@trebired/frontend 0.5.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +56 -84
  3. package/dist/config/index.d.ts +1 -1
  4. package/dist/config/index.d.ts.map +1 -1
  5. package/dist/config/module.js +1 -1
  6. package/dist/config/module.js.map +1 -1
  7. package/dist/config/normalize.d.ts +1 -2
  8. package/dist/config/normalize.d.ts.map +1 -1
  9. package/dist/config/normalize.js +24 -13
  10. package/dist/config/normalize.js.map +1 -1
  11. package/dist/config/palette.d.ts +8 -0
  12. package/dist/config/palette.d.ts.map +1 -0
  13. package/dist/config/palette.js +104 -0
  14. package/dist/config/palette.js.map +1 -0
  15. package/dist/config/scales-css.d.ts +8 -0
  16. package/dist/config/scales-css.d.ts.map +1 -0
  17. package/dist/config/scales-css.js +99 -0
  18. package/dist/config/scales-css.js.map +1 -0
  19. package/dist/config/scales.d.ts +4 -0
  20. package/dist/config/scales.d.ts.map +1 -0
  21. package/dist/config/scales.js +55 -0
  22. package/dist/config/scales.js.map +1 -0
  23. package/dist/config/scss.d.ts.map +1 -1
  24. package/dist/config/scss.js +57 -7
  25. package/dist/config/scss.js.map +1 -1
  26. package/dist/config/types.d.ts +67 -2
  27. package/dist/config/types.d.ts.map +1 -1
  28. package/dist/fullscreen/components/index.d.ts +20 -0
  29. package/dist/fullscreen/components/index.d.ts.map +1 -0
  30. package/dist/fullscreen/components/index.js +19 -0
  31. package/dist/fullscreen/components/index.js.map +1 -0
  32. package/dist/fullscreen/index.d.ts +24 -3
  33. package/dist/fullscreen/index.d.ts.map +1 -1
  34. package/dist/fullscreen/index.js +268 -7
  35. package/dist/fullscreen/index.js.map +1 -1
  36. package/dist/fullscreen/styles/index.scss +71 -0
  37. package/dist/index.d.ts +7 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +9 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/layout/components/index.d.ts +43 -0
  42. package/dist/layout/components/index.d.ts.map +1 -0
  43. package/dist/layout/components/index.js +53 -0
  44. package/dist/layout/components/index.js.map +1 -0
  45. package/dist/layout/index.d.ts +27 -0
  46. package/dist/layout/index.d.ts.map +1 -0
  47. package/dist/layout/index.js +80 -0
  48. package/dist/layout/index.js.map +1 -0
  49. package/dist/layout/styles/index.scss +137 -0
  50. package/dist/react/index.d.ts +14 -0
  51. package/dist/react/index.d.ts.map +1 -1
  52. package/dist/react/index.js +14 -0
  53. package/dist/react/index.js.map +1 -1
  54. package/dist/server/index.d.ts +5 -0
  55. package/dist/server/index.d.ts.map +1 -0
  56. package/dist/server/index.js +5 -0
  57. package/dist/server/index.js.map +1 -0
  58. package/dist/sidebar/components/index.d.ts +35 -0
  59. package/dist/sidebar/components/index.d.ts.map +1 -0
  60. package/dist/sidebar/components/index.js +49 -0
  61. package/dist/sidebar/components/index.js.map +1 -0
  62. package/dist/sidebar/index.d.ts +62 -0
  63. package/dist/sidebar/index.d.ts.map +1 -0
  64. package/dist/sidebar/index.js +247 -0
  65. package/dist/sidebar/index.js.map +1 -0
  66. package/dist/sidebar/styles/index.scss +205 -0
  67. package/dist/src/config/index.d.ts +1 -1
  68. package/dist/src/config/index.d.ts.map +1 -1
  69. package/dist/src/config/module.js +1 -1
  70. package/dist/src/config/module.js.map +1 -1
  71. package/dist/src/config/normalize.d.ts +1 -2
  72. package/dist/src/config/normalize.d.ts.map +1 -1
  73. package/dist/src/config/normalize.js +24 -13
  74. package/dist/src/config/normalize.js.map +1 -1
  75. package/dist/src/config/palette.d.ts +8 -0
  76. package/dist/src/config/palette.d.ts.map +1 -0
  77. package/dist/src/config/palette.js +104 -0
  78. package/dist/src/config/palette.js.map +1 -0
  79. package/dist/src/config/scales-css.d.ts +8 -0
  80. package/dist/src/config/scales-css.d.ts.map +1 -0
  81. package/dist/src/config/scales-css.js +99 -0
  82. package/dist/src/config/scales-css.js.map +1 -0
  83. package/dist/src/config/scales.d.ts +4 -0
  84. package/dist/src/config/scales.d.ts.map +1 -0
  85. package/dist/src/config/scales.js +55 -0
  86. package/dist/src/config/scales.js.map +1 -0
  87. package/dist/src/config/scss.d.ts.map +1 -1
  88. package/dist/src/config/scss.js +57 -7
  89. package/dist/src/config/scss.js.map +1 -1
  90. package/dist/src/config/types.d.ts +67 -2
  91. package/dist/src/config/types.d.ts.map +1 -1
  92. package/dist/src/fullscreen/components/index.d.ts +20 -0
  93. package/dist/src/fullscreen/components/index.d.ts.map +1 -0
  94. package/dist/src/fullscreen/components/index.js +19 -0
  95. package/dist/src/fullscreen/components/index.js.map +1 -0
  96. package/dist/src/fullscreen/index.d.ts +24 -3
  97. package/dist/src/fullscreen/index.d.ts.map +1 -1
  98. package/dist/src/fullscreen/index.js +268 -7
  99. package/dist/src/fullscreen/index.js.map +1 -1
  100. package/dist/src/index.d.ts +7 -1
  101. package/dist/src/index.d.ts.map +1 -1
  102. package/dist/src/index.js +9 -1
  103. package/dist/src/index.js.map +1 -1
  104. package/dist/src/layout/components/index.d.ts +43 -0
  105. package/dist/src/layout/components/index.d.ts.map +1 -0
  106. package/dist/src/layout/components/index.js +53 -0
  107. package/dist/src/layout/components/index.js.map +1 -0
  108. package/dist/src/layout/index.d.ts +27 -0
  109. package/dist/src/layout/index.d.ts.map +1 -0
  110. package/dist/src/layout/index.js +80 -0
  111. package/dist/src/layout/index.js.map +1 -0
  112. package/dist/src/react/index.d.ts +14 -0
  113. package/dist/src/react/index.d.ts.map +1 -1
  114. package/dist/src/react/index.js +14 -0
  115. package/dist/src/react/index.js.map +1 -1
  116. package/dist/src/server/index.d.ts +5 -0
  117. package/dist/src/server/index.d.ts.map +1 -0
  118. package/dist/src/server/index.js +5 -0
  119. package/dist/src/server/index.js.map +1 -0
  120. package/dist/src/sidebar/components/index.d.ts +35 -0
  121. package/dist/src/sidebar/components/index.d.ts.map +1 -0
  122. package/dist/src/sidebar/components/index.js +49 -0
  123. package/dist/src/sidebar/components/index.js.map +1 -0
  124. package/dist/src/sidebar/index.d.ts +62 -0
  125. package/dist/src/sidebar/index.d.ts.map +1 -0
  126. package/dist/src/sidebar/index.js +247 -0
  127. package/dist/src/sidebar/index.js.map +1 -0
  128. package/dist/styles/utils.scss +193 -0
  129. package/package.json +4 -167
  130. package/dist/src/styles/index.d.ts +0 -3
  131. package/dist/src/styles/index.d.ts.map +0 -1
  132. package/dist/src/styles/index.js +0 -15
  133. package/dist/src/styles/index.js.map +0 -1
  134. package/dist/styles/index.d.ts +0 -3
  135. package/dist/styles/index.d.ts.map +0 -1
  136. package/dist/styles/index.js +0 -15
  137. package/dist/styles/index.js.map +0 -1
@@ -0,0 +1,27 @@
1
+ import { type BindRoot } from "../../dom/index.d.ts";
2
+ declare const LAYOUT_ROOT_SELECTOR = "[data-tbf-layout-root]";
3
+ declare const LAYOUT_MAIN_SELECTOR = "[data-tbf-layout-main]";
4
+ declare const LAYOUT_CONTENT_SELECTOR = "[data-tbf-layout-content]";
5
+ declare const LAYOUT_PORTAL_ROOT_ID = "tbf_layout_portal_root";
6
+ declare const LAYOUT_PORTAL_ROOT_SELECTOR = "[data-tbf-layout-portal-root]";
7
+ declare const LAYOUT_BODY_ATTRIBUTE = "data-tbf-layout";
8
+ declare const LAYOUT_MOBILE_BODY_ATTRIBUTE = "data-tbf-layout-mobile";
9
+ type LayoutSide = "left" | "right";
10
+ type LayoutBodyState = {
11
+ hasLeftSidebar: boolean;
12
+ hasMobileBottomBar: boolean;
13
+ hasRightSidebar: boolean;
14
+ };
15
+ type LayoutRuntimeOptions = {
16
+ mobile?: boolean;
17
+ };
18
+ declare function readLayoutBodyState(root?: ParentNode): LayoutBodyState;
19
+ declare function applyLayoutBodyState(state: LayoutBodyState, options?: LayoutRuntimeOptions): LayoutBodyState;
20
+ declare function syncLayoutBodyState(root?: ParentNode, options?: LayoutRuntimeOptions): LayoutBodyState;
21
+ declare function bindLayoutRoot(root: HTMLElement | null, options?: LayoutRuntimeOptions): HTMLElement;
22
+ declare function bindLayouts(root?: BindRoot, options?: LayoutRuntimeOptions): void;
23
+ declare function ensureLayoutPortalRoot(): HTMLElement;
24
+ declare function createLayoutBootScript(state?: Partial<LayoutBodyState>): string;
25
+ export { LAYOUT_BODY_ATTRIBUTE, LAYOUT_CONTENT_SELECTOR, LAYOUT_MAIN_SELECTOR, LAYOUT_MOBILE_BODY_ATTRIBUTE, LAYOUT_PORTAL_ROOT_ID, LAYOUT_PORTAL_ROOT_SELECTOR, LAYOUT_ROOT_SELECTOR, applyLayoutBodyState, bindLayoutRoot, bindLayouts, createLayoutBootScript, ensureLayoutPortalRoot, readLayoutBodyState, syncLayoutBodyState, };
26
+ export type { LayoutBodyState, LayoutRuntimeOptions, LayoutSide };
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,QAAA,MAAM,oBAAoB,2BAA2B,CAAC;AACtD,QAAA,MAAM,oBAAoB,2BAA2B,CAAC;AACtD,QAAA,MAAM,uBAAuB,8BAA8B,CAAC;AAC5D,QAAA,MAAM,qBAAqB,2BAA2B,CAAC;AACvD,QAAA,MAAM,2BAA2B,kCAAkC,CAAC;AACpE,QAAA,MAAM,qBAAqB,oBAAoB,CAAC;AAChD,QAAA,MAAM,4BAA4B,2BAA2B,CAAC;AAE9D,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnC,KAAK,eAAe,GAAG;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAUF,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CAMzE;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB,mBAWvF;AAED,iBAAS,mBAAmB,CAAC,IAAI,GAAE,UAAqB,EAAE,OAAO,GAAE,oBAAyB,mBAE3F;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,oBAAyB,eAKnF;AAED,iBAAS,WAAW,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,oBAAyB,QAKjF;AAED,iBAAS,sBAAsB,gBAS9B;AAED,iBAAS,sBAAsB,CAAC,KAAK,GAAE,OAAO,CAAC,eAAe,CAAM,UAiBnE;AAED,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,80 @@
1
+ import { queryAll } from "../../dom/index.js";
2
+ const LAYOUT_ROOT_SELECTOR = "[data-tbf-layout-root]";
3
+ const LAYOUT_MAIN_SELECTOR = "[data-tbf-layout-main]";
4
+ const LAYOUT_CONTENT_SELECTOR = "[data-tbf-layout-content]";
5
+ const LAYOUT_PORTAL_ROOT_ID = "tbf_layout_portal_root";
6
+ const LAYOUT_PORTAL_ROOT_SELECTOR = "[data-tbf-layout-portal-root]";
7
+ const LAYOUT_BODY_ATTRIBUTE = "data-tbf-layout";
8
+ const LAYOUT_MOBILE_BODY_ATTRIBUTE = "data-tbf-layout-mobile";
9
+ function layoutSideSelector(side) {
10
+ return `[data-tbf-sidebar-shell][data-tbf-sidebar-side="${side}"]`;
11
+ }
12
+ function hasSidebar(root, side) {
13
+ return Boolean(root.querySelector(layoutSideSelector(side)));
14
+ }
15
+ function readLayoutBodyState(root = document) {
16
+ return {
17
+ hasLeftSidebar: hasSidebar(root, "left"),
18
+ hasMobileBottomBar: Boolean(root.querySelector("[data-tbf-layout-bottom-bar]")),
19
+ hasRightSidebar: hasSidebar(root, "right"),
20
+ };
21
+ }
22
+ function applyLayoutBodyState(state, options = {}) {
23
+ const body = typeof document !== "undefined" ? document.body : null;
24
+ if (!body)
25
+ return state;
26
+ body.setAttribute(LAYOUT_BODY_ATTRIBUTE, "true");
27
+ body.setAttribute("data-tbf-sidebar-left", state.hasLeftSidebar ? "true" : "false");
28
+ body.setAttribute("data-tbf-sidebar-right", state.hasRightSidebar ? "true" : "false");
29
+ body.setAttribute(LAYOUT_MOBILE_BODY_ATTRIBUTE, options.mobile === true || state.hasMobileBottomBar ? "true" : "false");
30
+ return state;
31
+ }
32
+ function syncLayoutBodyState(root = document, options = {}) {
33
+ return applyLayoutBodyState(readLayoutBodyState(root), options);
34
+ }
35
+ function bindLayoutRoot(root, options = {}) {
36
+ if (!(root instanceof HTMLElement))
37
+ return null;
38
+ root.setAttribute("data-tbf-layout-bound", "true");
39
+ syncLayoutBodyState(root, options);
40
+ return root;
41
+ }
42
+ function bindLayouts(root = document, options = {}) {
43
+ queryAll(root, LAYOUT_ROOT_SELECTOR).forEach((layoutRoot) => {
44
+ bindLayoutRoot(layoutRoot, options);
45
+ });
46
+ if (root === document)
47
+ syncLayoutBodyState(document, options);
48
+ }
49
+ function ensureLayoutPortalRoot() {
50
+ if (typeof document === "undefined")
51
+ return null;
52
+ const existing = document.getElementById(LAYOUT_PORTAL_ROOT_ID);
53
+ if (existing instanceof HTMLElement)
54
+ return existing;
55
+ const root = document.createElement("div");
56
+ root.id = LAYOUT_PORTAL_ROOT_ID;
57
+ root.setAttribute("data-tbf-layout-portal-root", "");
58
+ document.body?.appendChild(root);
59
+ return root;
60
+ }
61
+ function createLayoutBootScript(state = {}) {
62
+ const payload = JSON.stringify({
63
+ hasLeftSidebar: state.hasLeftSidebar === true,
64
+ hasMobileBottomBar: state.hasMobileBottomBar === true,
65
+ hasRightSidebar: state.hasRightSidebar === true,
66
+ }).replace(/</gu, "\\u003c");
67
+ return [
68
+ "(function(){try{",
69
+ `var state=${payload};`,
70
+ "var body=document.body;",
71
+ "if(!body)return;",
72
+ "body.setAttribute('data-tbf-layout','true');",
73
+ "body.setAttribute('data-tbf-sidebar-left',state.hasLeftSidebar?'true':'false');",
74
+ "body.setAttribute('data-tbf-sidebar-right',state.hasRightSidebar?'true':'false');",
75
+ "body.setAttribute('data-tbf-layout-mobile',state.hasMobileBottomBar?'true':'false');",
76
+ "}catch(e){}})();",
77
+ ].join("");
78
+ }
79
+ export { LAYOUT_BODY_ATTRIBUTE, LAYOUT_CONTENT_SELECTOR, LAYOUT_MAIN_SELECTOR, LAYOUT_MOBILE_BODY_ATTRIBUTE, LAYOUT_PORTAL_ROOT_ID, LAYOUT_PORTAL_ROOT_SELECTOR, LAYOUT_ROOT_SELECTOR, applyLayoutBodyState, bindLayoutRoot, bindLayouts, createLayoutBootScript, ensureLayoutPortalRoot, readLayoutBodyState, syncLayoutBodyState, };
80
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"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"}
@@ -14,4 +14,18 @@ declare function mountLiveIsland(options: {
14
14
  }): Promise<import("react-dom/client").Root>;
15
15
  export { mountLiveIsland, mountReactRoot, readJsonScript, renderReactRoot, unmountReactRoot, };
16
16
  export type { ReactRootOptions };
17
+ export * from "../../actions/components/index.d.ts";
18
+ export * from "../../flash/components/index.d.ts";
19
+ export * from "../../icons/react/index.d.ts";
20
+ export * from "../../inputs/components/index.d.ts";
21
+ export * from "../../layer/components/index.d.ts";
22
+ export * from "../../layout/components/index.d.ts";
23
+ export * from "../../live/components/index.d.ts";
24
+ export * from "../../modal/components/index.d.ts";
25
+ export * from "../../popover/components/index.d.ts";
26
+ export * from "../../progress/components/index.d.ts";
27
+ export * from "../../theme/components/index.d.ts";
28
+ export * from "../../tooltip/components/index.d.ts";
29
+ export * from "../../fullscreen/components/index.d.ts";
30
+ export * from "../../sidebar/components/index.d.ts";
17
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAIF,iBAAe,cAAc,CAC3B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,gBAAqB,4CAc/B;AAED,iBAAe,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,4CAE5D;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,OAAO,WAMtC;AAED,iBAAe,eAAe,CAAC,OAAO,EAAE;IACtC,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,SAAS,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,4CAgBA;AAED,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAIF,iBAAe,cAAc,CAC3B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,gBAAqB,4CAc/B;AAED,iBAAe,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,4CAE5D;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,OAAO,WAMtC;AAED,iBAAe,eAAe,CAAC,OAAO,EAAE;IACtC,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,SAAS,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,4CAgBA;AAED,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -44,4 +44,18 @@ async function mountLiveIsland(options) {
44
44
  return root;
45
45
  }
46
46
  export { mountLiveIsland, mountReactRoot, readJsonScript, renderReactRoot, unmountReactRoot, };
47
+ export * from "../../actions/components/index.js";
48
+ export * from "../../flash/components/index.js";
49
+ export * from "../../icons/react/index.js";
50
+ export * from "../../inputs/components/index.js";
51
+ export * from "../../layer/components/index.js";
52
+ export * from "../../layout/components/index.js";
53
+ export * from "../../live/components/index.js";
54
+ export * from "../../modal/components/index.js";
55
+ export * from "../../popover/components/index.js";
56
+ export * from "../../progress/components/index.js";
57
+ export * from "../../theme/components/index.js";
58
+ export * from "../../tooltip/components/index.js";
59
+ export * from "../../fullscreen/components/index.js";
60
+ export * from "../../sidebar/components/index.js";
47
61
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAM/C,MAAM,KAAK,GAAG,IAAI,OAAO,EAAuE,CAAC;AAEjG,KAAK,UAAU,cAAc,CAC3B,IAAa,EACb,IAAe,EACf,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI;QACtC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAW,CAAC;QACvC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,MAAM,CAAC,IAAW,CAAC,CAAC;IAC1D,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAa,EAAE,IAAe;IAC3D,OAAO,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAK9B;IACC,MAAM,MAAM,GACV,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAC9B,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,IAAI,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO;QAC3B,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;QAC9C,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from "../../icons/middleware/index.d.ts";
2
+ export * from "../../icons/server/index.d.ts";
3
+ export * from "../../icons/server-context.d.ts";
4
+ export * from "../../icons/shared.d.ts";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "../../icons/middleware/index.js";
2
+ export * from "../../icons/server/index.js";
3
+ export * from "../../icons/server-context.js";
4
+ export * from "../../icons/shared.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { AnchorHTMLAttributes, ButtonHTMLAttributes, HTMLAttributes, ReactNode, ScriptHTMLAttributes } from "react";
2
+ import { type SidebarSide } from "../../../sidebar/index.d.ts";
3
+ type SidebarShellProps = HTMLAttributes<HTMLDivElement> & {
4
+ minimized?: boolean;
5
+ open?: boolean;
6
+ persist?: boolean;
7
+ side?: SidebarSide;
8
+ };
9
+ type SidebarProps = HTMLAttributes<HTMLElement>;
10
+ type SidebarButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
11
+ controls: string;
12
+ };
13
+ type SidebarLinkProps = AnchorHTMLAttributes<HTMLAnchorElement> & {
14
+ active?: boolean;
15
+ badge?: ReactNode;
16
+ disabled?: boolean;
17
+ icon?: ReactNode;
18
+ };
19
+ type SidebarBootScriptProps = ScriptHTMLAttributes<HTMLScriptElement> & {
20
+ sides?: SidebarSide[];
21
+ };
22
+ declare function SidebarShell(props: SidebarShellProps): import("react").JSX.Element;
23
+ declare function Sidebar(props: SidebarProps): import("react").JSX.Element;
24
+ declare function SidebarBody(props: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
25
+ declare function SidebarFooter(props: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
26
+ declare function SidebarMinimizeButton(props: SidebarButtonProps): import("react").JSX.Element;
27
+ declare function SidebarOpenButton(props: SidebarButtonProps): import("react").JSX.Element;
28
+ declare function SidebarCloseButton(props: ButtonHTMLAttributes<HTMLButtonElement>): import("react").JSX.Element;
29
+ declare function SidebarList(props: HTMLAttributes<HTMLUListElement>): import("react").JSX.Element;
30
+ declare function SidebarLink(props: SidebarLinkProps): import("react").JSX.Element;
31
+ declare function SidebarSeparator(props: HTMLAttributes<HTMLLIElement>): import("react").JSX.Element;
32
+ declare function SidebarBootScript(props: SidebarBootScriptProps): import("react").JSX.Element;
33
+ export { Sidebar, SidebarBody, SidebarBootScript, SidebarCloseButton, SidebarFooter, SidebarLink, SidebarList, SidebarMinimizeButton, SidebarOpenButton, SidebarSeparator, SidebarShell, };
34
+ export type { SidebarBootScriptProps, SidebarButtonProps, SidebarLinkProps, SidebarProps, SidebarShellProps, };
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sidebar/components/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,oBAAoB,EACrB,MAAM,OAAO,CAAC;AAEf,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAE1E,KAAK,iBAAiB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,KAAK,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAEhD,KAAK,kBAAkB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAClE,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,gBAAgB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,KAAK,sBAAsB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACtE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAEF,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,+BAuB7C;AAED,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,+BAWnC;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,+BAWzD;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,+BAW3D;AAED,iBAAS,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,+BAcvD;AAED,iBAAS,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,+BAanD;AAED,iBAAS,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,+BAYzE;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,gBAAgB,CAAC,+BAW3D;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BA+B3C;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC,+BAY7D;AAED,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,+BASvD;AAED,OAAO,EACL,OAAO,EACP,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,CAAC;AACF,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { classNames, dataBool } from "../../../components/index.js";
3
+ import { createSidebarBootScript } from "../../../sidebar/index.js";
4
+ function SidebarShell(props) {
5
+ const { children, className, minimized, open, persist = true, side = "left", ...rest } = props;
6
+ return (_jsx("div", { ...rest, className: classNames("tbf-sidebar-shell", className), "data-tbf-sidebar-shell": "", "data-tbf-sidebar-side": String(side), "data-tbf-sidebar-minimized": minimized === undefined ? undefined : String(minimized), "data-tbf-sidebar-open": open === undefined ? undefined : String(open), "data-tbf-sidebar-persist": persist ? undefined : "false", children: children }));
7
+ }
8
+ function Sidebar(props) {
9
+ const { children, className, ...rest } = props;
10
+ return (_jsx("aside", { ...rest, className: classNames("tbf-sidebar", className), "data-tbf-sidebar": "", children: children }));
11
+ }
12
+ function SidebarBody(props) {
13
+ const { children, className, ...rest } = props;
14
+ return (_jsx("div", { ...rest, className: classNames("tbf-sidebar__body", className), "data-tbf-sidebar-body": "", children: children }));
15
+ }
16
+ function SidebarFooter(props) {
17
+ const { children, className, ...rest } = props;
18
+ return (_jsx("div", { ...rest, className: classNames("tbf-sidebar__footer", className), "data-tbf-sidebar-footer": "", children: children }));
19
+ }
20
+ function SidebarMinimizeButton(props) {
21
+ const { children, className, controls, type = "button", ...rest } = props;
22
+ return (_jsx("button", { ...rest, className: classNames("tbf-button tbf-sidebar__minimize", className), "data-tbf-sidebar-minimize": "", "aria-controls": controls, "aria-expanded": props["aria-expanded"] ?? true, type: type, children: children }));
23
+ }
24
+ function SidebarOpenButton(props) {
25
+ const { children, className, controls, type = "button", ...rest } = props;
26
+ return (_jsx("button", { ...rest, className: classNames("tbf-button tbf-sidebar__open", className), "data-tbf-sidebar-open": "", "aria-controls": controls, type: type, children: children }));
27
+ }
28
+ function SidebarCloseButton(props) {
29
+ const { children = "Close", className, type = "button", ...rest } = props;
30
+ return (_jsx("button", { ...rest, className: classNames("tbf-button tbf-sidebar__close", className), "data-tbf-sidebar-close": "", type: type, children: children }));
31
+ }
32
+ function SidebarList(props) {
33
+ const { children, className, ...rest } = props;
34
+ return (_jsx("ul", { ...rest, className: classNames("tbf-sidebar-list", className), "data-tbf-sidebar-list": "", children: children }));
35
+ }
36
+ function SidebarLink(props) {
37
+ const { active, badge, children, className, disabled, icon, ...rest } = props;
38
+ return (_jsx("li", { className: "tbf-sidebar-list__item", "data-tbf-sidebar-link-row": "", "data-tbf-active": dataBool(active), children: _jsxs("a", { ...rest, "aria-current": active ? "page" : props["aria-current"], "aria-disabled": disabled ? true : props["aria-disabled"], className: classNames("tbf-sidebar-link", className), "data-tbf-sidebar-link": "", "data-tbf-disabled": dataBool(disabled), tabIndex: disabled ? -1 : props.tabIndex, children: [icon ? _jsx("span", { className: "tbf-sidebar-link__icon", "data-tbf-sidebar-link-icon": "", children: icon }) : null, _jsx("span", { className: "tbf-sidebar-link__label", "data-tbf-sidebar-label": "", children: children }), badge ? _jsx("span", { className: "tbf-sidebar-link__badge", children: badge }) : null] }) }));
39
+ }
40
+ function SidebarSeparator(props) {
41
+ const { className, ...rest } = props;
42
+ return (_jsx("li", { ...rest, className: classNames("tbf-sidebar-separator", className), "data-tbf-sidebar-separator": "", role: "separator", children: _jsx("span", {}) }));
43
+ }
44
+ function SidebarBootScript(props) {
45
+ const { sides, ...rest } = props;
46
+ return (_jsx("script", { ...rest, "data-tbf-sidebar-boot": "", dangerouslySetInnerHTML: { __html: createSidebarBootScript(sides) } }));
47
+ }
48
+ export { Sidebar, SidebarBody, SidebarBootScript, SidebarCloseButton, SidebarFooter, SidebarLink, SidebarList, SidebarMinimizeButton, SidebarOpenButton, SidebarSeparator, SidebarShell, };
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sidebar/components/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { type BindRoot } from "../../dom/index.d.ts";
2
+ declare const SIDEBAR_SHELL_SELECTOR = "[data-tbf-sidebar-shell]";
3
+ declare const SIDEBAR_MINIMIZE_SELECTOR = "[data-tbf-sidebar-minimize][aria-controls]";
4
+ declare const SIDEBAR_OPEN_SELECTOR = "[data-tbf-sidebar-open][aria-controls]";
5
+ declare const SIDEBAR_CLOSE_SELECTOR = "[data-tbf-sidebar-close]";
6
+ declare const SIDEBAR_BOOT_ATTRIBUTE = "data-tbf-sidebar-boot";
7
+ declare const SIDEBAR_STATE_EVENT = "tbf:sidebar-state";
8
+ type SidebarSide = "left" | "right" | string;
9
+ type SidebarState = {
10
+ minimized: boolean;
11
+ open: boolean;
12
+ shell: HTMLElement;
13
+ side: SidebarSide;
14
+ };
15
+ type SidebarPersistenceAdapter = (state: SidebarState) => Promise<unknown> | unknown;
16
+ type SidebarRuntimeOptions = {
17
+ persistence?: SidebarPersistenceAdapter;
18
+ };
19
+ declare function setSidebarMinimized(shell: HTMLElement, minimized: boolean, options?: SidebarRuntimeOptions): Promise<{
20
+ shell: HTMLElement;
21
+ side: string;
22
+ open: boolean;
23
+ minimized: boolean;
24
+ }>;
25
+ declare function setSidebarOpen(shell: HTMLElement, open: boolean): {
26
+ shell: HTMLElement;
27
+ side: string;
28
+ open: boolean;
29
+ minimized: boolean;
30
+ };
31
+ declare function toggleSidebarMinimized(shell: HTMLElement, options?: SidebarRuntimeOptions): Promise<{
32
+ shell: HTMLElement;
33
+ side: string;
34
+ open: boolean;
35
+ minimized: boolean;
36
+ }>;
37
+ declare function openSidebar(shell: HTMLElement): {
38
+ shell: HTMLElement;
39
+ side: string;
40
+ open: boolean;
41
+ minimized: boolean;
42
+ };
43
+ declare function closeSidebar(shell: HTMLElement): {
44
+ shell: HTMLElement;
45
+ side: string;
46
+ open: boolean;
47
+ minimized: boolean;
48
+ };
49
+ declare function bindSidebarShell(shell: HTMLElement | null, options?: SidebarRuntimeOptions): {
50
+ shell: HTMLElement;
51
+ side: string;
52
+ open: boolean;
53
+ minimized: boolean;
54
+ };
55
+ declare function bindSidebarMinimizeButton(button: HTMLElement | null, root?: BindRoot, options?: SidebarRuntimeOptions): HTMLElement;
56
+ declare function bindSidebarOpenButton(button: HTMLElement | null, root?: BindRoot): HTMLElement;
57
+ declare function bindSidebarCloseButton(button: HTMLElement | null): HTMLElement;
58
+ declare function bindSidebars(root?: BindRoot, options?: SidebarRuntimeOptions): void;
59
+ declare function createSidebarBootScript(sides?: SidebarSide[]): string;
60
+ export { SIDEBAR_BOOT_ATTRIBUTE, SIDEBAR_CLOSE_SELECTOR, SIDEBAR_MINIMIZE_SELECTOR, SIDEBAR_OPEN_SELECTOR, SIDEBAR_SHELL_SELECTOR, SIDEBAR_STATE_EVENT, bindSidebarCloseButton, bindSidebarMinimizeButton, bindSidebarOpenButton, bindSidebarShell, bindSidebars, closeSidebar, createSidebarBootScript, openSidebar, setSidebarMinimized, setSidebarOpen, toggleSidebarMinimized, };
61
+ export type { SidebarPersistenceAdapter, SidebarRuntimeOptions, SidebarSide, SidebarState };
62
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sidebar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAEvB,QAAA,MAAM,sBAAsB,6BAA6B,CAAC;AAC1D,QAAA,MAAM,yBAAyB,+CAA+C,CAAC;AAC/E,QAAA,MAAM,qBAAqB,2CAA2C,CAAC;AACvE,QAAA,MAAM,sBAAsB,6BAA6B,CAAC;AAC1D,QAAA,MAAM,sBAAsB,0BAA0B,CAAC;AACvD,QAAA,MAAM,mBAAmB,sBAAsB,CAAC;AAGhD,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C,KAAK,YAAY,GAAG;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAEF,KAAK,yBAAyB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAErF,KAAK,qBAAqB,GAAG;IAC3B,WAAW,CAAC,EAAE,yBAAyB,CAAC;CACzC,CAAC;AA4GF,iBAAe,mBAAmB,CAChC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,OAAO,EAClB,OAAO,GAAE,qBAA0B;;;UAxH7B,OAAO;eADF,OAAO;GAoInB;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO;;;UArIjD,OAAO;eADF,OAAO;EAwInB;AAED,iBAAS,sBAAsB,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,qBAA0B;;;UA3I7B,OAAO;eADF,OAAO;GAiJnB;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,WAAW;;;UAlJ/B,OAAO;eADF,OAAO;EAqJnB;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,WAAW;;;UAtJhC,OAAO;eADF,OAAO;EAyJnB;AAED,iBAAS,gBAAgB,CACvB,KAAK,EAAE,WAAW,GAAG,IAAI,EACzB,OAAO,GAAE,qBAA0B;;;UA5J7B,OAAO;eADF,OAAO;EAyKnB;AAOD,iBAAS,yBAAyB,CAChC,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,IAAI,GAAE,QAAmB,EACzB,OAAO,GAAE,qBAA0B,eAkBpC;AAED,iBAAS,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,GAAE,QAAmB,eAUnF;AAED,iBAAS,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,eAUzD;AAuBD,iBAAS,YAAY,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,qBAA0B,QAYnF;AAED,iBAAS,uBAAuB,CAAC,KAAK,GAAE,WAAW,EAAa,GAAG,MAAM,CAaxE;AAED,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,uBAAuB,EACvB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,sBAAsB,GACvB,CAAC;AACF,YAAY,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,247 @@
1
+ import { cssEscape, queryAll, resolveDocumentTarget, setAriaExpanded, setControlDisabled, } from "../../dom/index.js";
2
+ const SIDEBAR_SHELL_SELECTOR = "[data-tbf-sidebar-shell]";
3
+ const SIDEBAR_MINIMIZE_SELECTOR = "[data-tbf-sidebar-minimize][aria-controls]";
4
+ const SIDEBAR_OPEN_SELECTOR = "[data-tbf-sidebar-open][aria-controls]";
5
+ const SIDEBAR_CLOSE_SELECTOR = "[data-tbf-sidebar-close]";
6
+ const SIDEBAR_BOOT_ATTRIBUTE = "data-tbf-sidebar-boot";
7
+ const SIDEBAR_STATE_EVENT = "tbf:sidebar-state";
8
+ const SIDEBAR_STORAGE_PREFIX = "tbf:sidebar:";
9
+ const shellStates = new WeakMap();
10
+ const minimizeButtons = new WeakMap();
11
+ const boundMinimizeButtons = new WeakSet();
12
+ const boundOpenButtons = new WeakSet();
13
+ const boundCloseButtons = new WeakSet();
14
+ let sharedListenersInstalled = false;
15
+ function storageKey(side) {
16
+ return `${SIDEBAR_STORAGE_PREFIX}${String(side || "left")}:minimized`;
17
+ }
18
+ function browserStorage() {
19
+ try {
20
+ return typeof window !== "undefined" ? window.localStorage : null;
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ }
26
+ function normalizeSide(value) {
27
+ const side = String(value || "left").trim();
28
+ return side || "left";
29
+ }
30
+ function isPersistent(shell) {
31
+ return shell.getAttribute("data-tbf-sidebar-persist") !== "false";
32
+ }
33
+ function readSavedMinimized(side) {
34
+ const storage = browserStorage();
35
+ const saved = storage?.getItem(storageKey(side));
36
+ if (saved === "1")
37
+ return true;
38
+ if (saved === "0")
39
+ return false;
40
+ return false;
41
+ }
42
+ function writeSavedMinimized(side, minimized) {
43
+ const storage = browserStorage();
44
+ if (!storage)
45
+ return;
46
+ storage.setItem(storageKey(side), minimized ? "1" : "0");
47
+ }
48
+ function dispatchSidebarState(state) {
49
+ state.shell.dispatchEvent(new CustomEvent(SIDEBAR_STATE_EVENT, {
50
+ bubbles: true,
51
+ detail: { ...state },
52
+ }));
53
+ }
54
+ function applyBodyState(state) {
55
+ const body = typeof document !== "undefined" ? document.body : null;
56
+ if (!body)
57
+ return;
58
+ const side = String(state.side || "left");
59
+ body.setAttribute(`data-tbf-sidebar-${side}`, "true");
60
+ body.setAttribute(`data-tbf-sidebar-${side}-minimized`, state.minimized ? "true" : "false");
61
+ body.setAttribute(`data-tbf-sidebar-${side}-open`, state.open ? "true" : "false");
62
+ }
63
+ function syncSidebarButtons(shell, state) {
64
+ for (const button of minimizeButtons.get(shell) || []) {
65
+ setAriaExpanded(button, !state.minimized);
66
+ button.setAttribute("data-tbf-sidebar-minimized", state.minimized ? "true" : "false");
67
+ }
68
+ }
69
+ function applySidebarState(shell, next) {
70
+ const current = shellStates.get(shell) || {
71
+ minimized: false,
72
+ open: false,
73
+ shell,
74
+ side: normalizeSide(shell.getAttribute("data-tbf-sidebar-side")),
75
+ };
76
+ const state = {
77
+ ...current,
78
+ ...next,
79
+ shell,
80
+ side: normalizeSide(shell.getAttribute("data-tbf-sidebar-side") || current.side),
81
+ };
82
+ shellStates.set(shell, state);
83
+ shell.setAttribute("data-tbf-sidebar-minimized", state.minimized ? "true" : "false");
84
+ shell.setAttribute("data-tbf-sidebar-open", state.open ? "true" : "false");
85
+ applyBodyState(state);
86
+ syncSidebarButtons(shell, state);
87
+ dispatchSidebarState(state);
88
+ return state;
89
+ }
90
+ function resolveSidebarShell(root, value) {
91
+ const id = String(value || "").trim();
92
+ if (!id)
93
+ return null;
94
+ const scoped = root.querySelector(`#${cssEscape(id)}`);
95
+ if (scoped instanceof HTMLElement)
96
+ return scoped;
97
+ return resolveDocumentTarget(`#${id}`);
98
+ }
99
+ async function persistSidebarState(state, options) {
100
+ if (isPersistent(state.shell))
101
+ writeSavedMinimized(state.side, state.minimized);
102
+ await options.persistence?.(state);
103
+ }
104
+ async function setSidebarMinimized(shell, minimized, options = {}) {
105
+ const previous = shellStates.get(shell);
106
+ const state = applySidebarState(shell, { minimized });
107
+ try {
108
+ await persistSidebarState(state, options);
109
+ }
110
+ catch (error) {
111
+ if (previous)
112
+ applySidebarState(shell, { minimized: previous.minimized });
113
+ throw error;
114
+ }
115
+ return state;
116
+ }
117
+ function setSidebarOpen(shell, open) {
118
+ return applySidebarState(shell, { open });
119
+ }
120
+ function toggleSidebarMinimized(shell, options = {}) {
121
+ const current = shellStates.get(shell) || bindSidebarShell(shell, options);
122
+ if (!current)
123
+ return null;
124
+ return setSidebarMinimized(shell, !current.minimized, options);
125
+ }
126
+ function openSidebar(shell) {
127
+ return setSidebarOpen(shell, true);
128
+ }
129
+ function closeSidebar(shell) {
130
+ return setSidebarOpen(shell, false);
131
+ }
132
+ function bindSidebarShell(shell, options = {}) {
133
+ if (!(shell instanceof HTMLElement))
134
+ return null;
135
+ const side = normalizeSide(shell.getAttribute("data-tbf-sidebar-side"));
136
+ const attrMinimized = shell.getAttribute("data-tbf-sidebar-minimized");
137
+ const minimized = attrMinimized === "true" || (attrMinimized == null && isPersistent(shell) && readSavedMinimized(side));
138
+ const state = applySidebarState(shell, {
139
+ minimized,
140
+ open: shell.getAttribute("data-tbf-sidebar-open") === "true",
141
+ });
142
+ void options;
143
+ return state;
144
+ }
145
+ function setButtonBusy(button, busy) {
146
+ button.setAttribute("aria-busy", busy ? "true" : "false");
147
+ setControlDisabled(button, busy);
148
+ }
149
+ function bindSidebarMinimizeButton(button, root = document, options = {}) {
150
+ if (!(button instanceof HTMLElement) || boundMinimizeButtons.has(button))
151
+ return null;
152
+ const shell = resolveSidebarShell(root, button.getAttribute("aria-controls"));
153
+ if (!(shell instanceof HTMLElement))
154
+ return null;
155
+ const buttons = minimizeButtons.get(shell) || [];
156
+ buttons.push(button);
157
+ minimizeButtons.set(shell, buttons);
158
+ boundMinimizeButtons.add(button);
159
+ bindSidebarShell(shell, options);
160
+ button.addEventListener("click", (event) => {
161
+ event.preventDefault();
162
+ setButtonBusy(button, true);
163
+ void Promise.resolve(toggleSidebarMinimized(shell, options)).finally(() => {
164
+ setButtonBusy(button, false);
165
+ });
166
+ });
167
+ return shell;
168
+ }
169
+ function bindSidebarOpenButton(button, root = document) {
170
+ if (!(button instanceof HTMLElement) || boundOpenButtons.has(button))
171
+ return null;
172
+ const shell = resolveSidebarShell(root, button.getAttribute("aria-controls"));
173
+ if (!(shell instanceof HTMLElement))
174
+ return null;
175
+ boundOpenButtons.add(button);
176
+ button.addEventListener("click", (event) => {
177
+ event.preventDefault();
178
+ openSidebar(shell);
179
+ });
180
+ return shell;
181
+ }
182
+ function bindSidebarCloseButton(button) {
183
+ if (!(button instanceof HTMLElement) || boundCloseButtons.has(button))
184
+ return null;
185
+ const shell = button.closest(SIDEBAR_SHELL_SELECTOR);
186
+ if (!(shell instanceof HTMLElement))
187
+ return null;
188
+ boundCloseButtons.add(button);
189
+ button.addEventListener("click", (event) => {
190
+ event.preventDefault();
191
+ closeSidebar(shell);
192
+ });
193
+ return shell;
194
+ }
195
+ function closeOpenSidebarFromEvent(event) {
196
+ const target = event.target instanceof Node ? event.target : null;
197
+ if (!target)
198
+ return;
199
+ for (const shell of queryAll(document, `${SIDEBAR_SHELL_SELECTOR}[data-tbf-sidebar-open="true"]`)) {
200
+ if (shell.contains(target))
201
+ continue;
202
+ if (target instanceof Element && target.closest(SIDEBAR_OPEN_SELECTOR))
203
+ continue;
204
+ closeSidebar(shell);
205
+ }
206
+ }
207
+ function installSharedSidebarListeners() {
208
+ if (sharedListenersInstalled || typeof document === "undefined")
209
+ return;
210
+ sharedListenersInstalled = true;
211
+ document.addEventListener("click", closeOpenSidebarFromEvent);
212
+ document.addEventListener("keydown", (event) => {
213
+ if (event.key !== "Escape")
214
+ return;
215
+ queryAll(document, `${SIDEBAR_SHELL_SELECTOR}[data-tbf-sidebar-open="true"]`)
216
+ .forEach(closeSidebar);
217
+ });
218
+ }
219
+ function bindSidebars(root = document, options = {}) {
220
+ queryAll(root, SIDEBAR_SHELL_SELECTOR).forEach((shell) => {
221
+ bindSidebarShell(shell, options);
222
+ });
223
+ queryAll(root, SIDEBAR_MINIMIZE_SELECTOR).forEach((button) => {
224
+ bindSidebarMinimizeButton(button, root, options);
225
+ });
226
+ queryAll(root, SIDEBAR_OPEN_SELECTOR).forEach((button) => {
227
+ bindSidebarOpenButton(button, root);
228
+ });
229
+ queryAll(root, SIDEBAR_CLOSE_SELECTOR).forEach(bindSidebarCloseButton);
230
+ installSharedSidebarListeners();
231
+ }
232
+ function createSidebarBootScript(sides = ["left"]) {
233
+ const payload = JSON.stringify({ prefix: SIDEBAR_STORAGE_PREFIX, sides }).replace(/</gu, "\\u003c");
234
+ return [
235
+ "(function(){try{",
236
+ `var config=${payload};`,
237
+ "var storage=window.localStorage;",
238
+ "for(var i=0;i<config.sides.length;i++){",
239
+ "var side=String(config.sides[i]||'left');",
240
+ "var value=storage&&storage.getItem(config.prefix+side+':minimized');",
241
+ "if(value==='1'||value==='0'){document.body.setAttribute('data-tbf-sidebar-'+side+'-minimized',value==='1'?'true':'false');}",
242
+ "}",
243
+ "}catch(e){}})();",
244
+ ].join("");
245
+ }
246
+ export { SIDEBAR_BOOT_ATTRIBUTE, SIDEBAR_CLOSE_SELECTOR, SIDEBAR_MINIMIZE_SELECTOR, SIDEBAR_OPEN_SELECTOR, SIDEBAR_SHELL_SELECTOR, SIDEBAR_STATE_EVENT, bindSidebarCloseButton, bindSidebarMinimizeButton, bindSidebarOpenButton, bindSidebarShell, bindSidebars, closeSidebar, createSidebarBootScript, openSidebar, setSidebarMinimized, setSidebarOpen, toggleSidebarMinimized, };
247
+ //# sourceMappingURL=index.js.map