@trebired/frontend 0.5.0 → 1.1.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 (189) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +56 -84
  3. package/dist/config/fonts.d.ts +5 -0
  4. package/dist/config/fonts.d.ts.map +1 -0
  5. package/dist/config/fonts.js +158 -0
  6. package/dist/config/fonts.js.map +1 -0
  7. package/dist/config/index.d.ts +1 -1
  8. package/dist/config/index.d.ts.map +1 -1
  9. package/dist/config/module.js +1 -1
  10. package/dist/config/module.js.map +1 -1
  11. package/dist/config/normalize.d.ts +1 -2
  12. package/dist/config/normalize.d.ts.map +1 -1
  13. package/dist/config/normalize.js +30 -13
  14. package/dist/config/normalize.js.map +1 -1
  15. package/dist/config/palette.d.ts +8 -0
  16. package/dist/config/palette.d.ts.map +1 -0
  17. package/dist/config/palette.js +104 -0
  18. package/dist/config/palette.js.map +1 -0
  19. package/dist/config/scales-css.d.ts +8 -0
  20. package/dist/config/scales-css.d.ts.map +1 -0
  21. package/dist/config/scales-css.js +103 -0
  22. package/dist/config/scales-css.js.map +1 -0
  23. package/dist/config/scales.d.ts +4 -0
  24. package/dist/config/scales.d.ts.map +1 -0
  25. package/dist/config/scales.js +55 -0
  26. package/dist/config/scales.js.map +1 -0
  27. package/dist/config/scss.d.ts.map +1 -1
  28. package/dist/config/scss.js +61 -7
  29. package/dist/config/scss.js.map +1 -1
  30. package/dist/config/types.d.ts +97 -2
  31. package/dist/config/types.d.ts.map +1 -1
  32. package/dist/flash/dialogs.d.ts +20 -2
  33. package/dist/flash/dialogs.d.ts.map +1 -1
  34. package/dist/flash/dialogs.js +185 -17
  35. package/dist/flash/dialogs.js.map +1 -1
  36. package/dist/flash/elements.d.ts +1 -1
  37. package/dist/flash/elements.d.ts.map +1 -1
  38. package/dist/flash/elements.js +17 -4
  39. package/dist/flash/elements.js.map +1 -1
  40. package/dist/flash/index.d.ts +5 -4
  41. package/dist/flash/index.d.ts.map +1 -1
  42. package/dist/flash/index.js +21 -3
  43. package/dist/flash/index.js.map +1 -1
  44. package/dist/flash/stack.d.ts.map +1 -1
  45. package/dist/flash/stack.js +26 -1
  46. package/dist/flash/stack.js.map +1 -1
  47. package/dist/flash/styles/index.scss +54 -2
  48. package/dist/flash/toast.d.ts +10 -1
  49. package/dist/flash/toast.d.ts.map +1 -1
  50. package/dist/flash/toast.js +23 -4
  51. package/dist/flash/toast.js.map +1 -1
  52. package/dist/flash/types.d.ts +38 -2
  53. package/dist/flash/types.d.ts.map +1 -1
  54. package/dist/fullscreen/components/index.d.ts +20 -0
  55. package/dist/fullscreen/components/index.d.ts.map +1 -0
  56. package/dist/fullscreen/components/index.js +19 -0
  57. package/dist/fullscreen/components/index.js.map +1 -0
  58. package/dist/fullscreen/index.d.ts +24 -3
  59. package/dist/fullscreen/index.d.ts.map +1 -1
  60. package/dist/fullscreen/index.js +268 -7
  61. package/dist/fullscreen/index.js.map +1 -1
  62. package/dist/fullscreen/styles/index.scss +71 -0
  63. package/dist/index.d.ts +7 -1
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +9 -1
  66. package/dist/index.js.map +1 -1
  67. package/dist/layout/components/index.d.ts +43 -0
  68. package/dist/layout/components/index.d.ts.map +1 -0
  69. package/dist/layout/components/index.js +53 -0
  70. package/dist/layout/components/index.js.map +1 -0
  71. package/dist/layout/index.d.ts +27 -0
  72. package/dist/layout/index.d.ts.map +1 -0
  73. package/dist/layout/index.js +80 -0
  74. package/dist/layout/index.js.map +1 -0
  75. package/dist/layout/styles/index.scss +137 -0
  76. package/dist/react/index.d.ts +14 -0
  77. package/dist/react/index.d.ts.map +1 -1
  78. package/dist/react/index.js +14 -0
  79. package/dist/react/index.js.map +1 -1
  80. package/dist/server/index.d.ts +5 -0
  81. package/dist/server/index.d.ts.map +1 -0
  82. package/dist/server/index.js +5 -0
  83. package/dist/server/index.js.map +1 -0
  84. package/dist/sidebar/components/index.d.ts +35 -0
  85. package/dist/sidebar/components/index.d.ts.map +1 -0
  86. package/dist/sidebar/components/index.js +49 -0
  87. package/dist/sidebar/components/index.js.map +1 -0
  88. package/dist/sidebar/index.d.ts +62 -0
  89. package/dist/sidebar/index.d.ts.map +1 -0
  90. package/dist/sidebar/index.js +247 -0
  91. package/dist/sidebar/index.js.map +1 -0
  92. package/dist/sidebar/styles/index.scss +205 -0
  93. package/dist/src/config/fonts.d.ts +5 -0
  94. package/dist/src/config/fonts.d.ts.map +1 -0
  95. package/dist/src/config/fonts.js +158 -0
  96. package/dist/src/config/fonts.js.map +1 -0
  97. package/dist/src/config/index.d.ts +1 -1
  98. package/dist/src/config/index.d.ts.map +1 -1
  99. package/dist/src/config/module.js +1 -1
  100. package/dist/src/config/module.js.map +1 -1
  101. package/dist/src/config/normalize.d.ts +1 -2
  102. package/dist/src/config/normalize.d.ts.map +1 -1
  103. package/dist/src/config/normalize.js +30 -13
  104. package/dist/src/config/normalize.js.map +1 -1
  105. package/dist/src/config/palette.d.ts +8 -0
  106. package/dist/src/config/palette.d.ts.map +1 -0
  107. package/dist/src/config/palette.js +104 -0
  108. package/dist/src/config/palette.js.map +1 -0
  109. package/dist/src/config/scales-css.d.ts +8 -0
  110. package/dist/src/config/scales-css.d.ts.map +1 -0
  111. package/dist/src/config/scales-css.js +103 -0
  112. package/dist/src/config/scales-css.js.map +1 -0
  113. package/dist/src/config/scales.d.ts +4 -0
  114. package/dist/src/config/scales.d.ts.map +1 -0
  115. package/dist/src/config/scales.js +55 -0
  116. package/dist/src/config/scales.js.map +1 -0
  117. package/dist/src/config/scss.d.ts.map +1 -1
  118. package/dist/src/config/scss.js +61 -7
  119. package/dist/src/config/scss.js.map +1 -1
  120. package/dist/src/config/types.d.ts +97 -2
  121. package/dist/src/config/types.d.ts.map +1 -1
  122. package/dist/src/flash/dialogs.d.ts +20 -2
  123. package/dist/src/flash/dialogs.d.ts.map +1 -1
  124. package/dist/src/flash/dialogs.js +185 -17
  125. package/dist/src/flash/dialogs.js.map +1 -1
  126. package/dist/src/flash/elements.d.ts +1 -1
  127. package/dist/src/flash/elements.d.ts.map +1 -1
  128. package/dist/src/flash/elements.js +17 -4
  129. package/dist/src/flash/elements.js.map +1 -1
  130. package/dist/src/flash/index.d.ts +5 -4
  131. package/dist/src/flash/index.d.ts.map +1 -1
  132. package/dist/src/flash/index.js +21 -3
  133. package/dist/src/flash/index.js.map +1 -1
  134. package/dist/src/flash/stack.d.ts.map +1 -1
  135. package/dist/src/flash/stack.js +26 -1
  136. package/dist/src/flash/stack.js.map +1 -1
  137. package/dist/src/flash/toast.d.ts +10 -1
  138. package/dist/src/flash/toast.d.ts.map +1 -1
  139. package/dist/src/flash/toast.js +23 -4
  140. package/dist/src/flash/toast.js.map +1 -1
  141. package/dist/src/flash/types.d.ts +38 -2
  142. package/dist/src/flash/types.d.ts.map +1 -1
  143. package/dist/src/fullscreen/components/index.d.ts +20 -0
  144. package/dist/src/fullscreen/components/index.d.ts.map +1 -0
  145. package/dist/src/fullscreen/components/index.js +19 -0
  146. package/dist/src/fullscreen/components/index.js.map +1 -0
  147. package/dist/src/fullscreen/index.d.ts +24 -3
  148. package/dist/src/fullscreen/index.d.ts.map +1 -1
  149. package/dist/src/fullscreen/index.js +268 -7
  150. package/dist/src/fullscreen/index.js.map +1 -1
  151. package/dist/src/index.d.ts +7 -1
  152. package/dist/src/index.d.ts.map +1 -1
  153. package/dist/src/index.js +9 -1
  154. package/dist/src/index.js.map +1 -1
  155. package/dist/src/layout/components/index.d.ts +43 -0
  156. package/dist/src/layout/components/index.d.ts.map +1 -0
  157. package/dist/src/layout/components/index.js +53 -0
  158. package/dist/src/layout/components/index.js.map +1 -0
  159. package/dist/src/layout/index.d.ts +27 -0
  160. package/dist/src/layout/index.d.ts.map +1 -0
  161. package/dist/src/layout/index.js +80 -0
  162. package/dist/src/layout/index.js.map +1 -0
  163. package/dist/src/react/index.d.ts +14 -0
  164. package/dist/src/react/index.d.ts.map +1 -1
  165. package/dist/src/react/index.js +14 -0
  166. package/dist/src/react/index.js.map +1 -1
  167. package/dist/src/server/index.d.ts +5 -0
  168. package/dist/src/server/index.d.ts.map +1 -0
  169. package/dist/src/server/index.js +5 -0
  170. package/dist/src/server/index.js.map +1 -0
  171. package/dist/src/sidebar/components/index.d.ts +35 -0
  172. package/dist/src/sidebar/components/index.d.ts.map +1 -0
  173. package/dist/src/sidebar/components/index.js +49 -0
  174. package/dist/src/sidebar/components/index.js.map +1 -0
  175. package/dist/src/sidebar/index.d.ts +62 -0
  176. package/dist/src/sidebar/index.d.ts.map +1 -0
  177. package/dist/src/sidebar/index.js +247 -0
  178. package/dist/src/sidebar/index.js.map +1 -0
  179. package/dist/styles/tokens.scss +61 -9
  180. package/dist/styles/utils.scss +479 -0
  181. package/package.json +4 -167
  182. package/dist/src/styles/index.d.ts +0 -3
  183. package/dist/src/styles/index.d.ts.map +0 -1
  184. package/dist/src/styles/index.js +0 -15
  185. package/dist/src/styles/index.js.map +0 -1
  186. package/dist/styles/index.d.ts +0 -3
  187. package/dist/styles/index.d.ts.map +0 -1
  188. package/dist/styles/index.js +0 -15
  189. package/dist/styles/index.js.map +0 -1
@@ -2,23 +2,32 @@ import type { FlashOptions, FlashType } from "./types.js";
2
2
  declare function dismissFlash(id: string): boolean;
3
3
  declare function showFlashImpl(type: FlashType, message: unknown, description?: unknown, options?: FlashOptions): {
4
4
  dismiss: () => boolean;
5
+ el: HTMLElement;
5
6
  element: HTMLElement;
7
+ hide: () => boolean;
6
8
  id: string;
7
9
  };
8
10
  declare function showFlash(message: unknown, type?: FlashType, description?: string, options?: {}): {
9
11
  dismiss: () => boolean;
12
+ el: HTMLElement;
10
13
  element: HTMLElement;
14
+ hide: () => boolean;
11
15
  id: string;
12
16
  };
13
17
  declare function stickyFlash(type: FlashType, message: unknown, description?: string, options?: {}): {
14
18
  dismiss: () => boolean;
19
+ el: HTMLElement;
15
20
  element: HTMLElement;
21
+ hide: () => boolean;
16
22
  id: string;
17
23
  };
18
24
  declare function liveFlash(type: FlashType, message: unknown, description?: string, options?: {}): {
19
25
  dismiss: () => boolean;
26
+ el: HTMLElement;
20
27
  element: HTMLElement;
28
+ hide: () => boolean;
21
29
  id: string;
22
30
  };
23
- export { dismissFlash, liveFlash, showFlash, showFlashImpl, stickyFlash };
31
+ declare function showFlashMessage(flashApi: Record<string, any> | null | undefined, kind: unknown, message: unknown, description?: string): any;
32
+ export { dismissFlash, liveFlash, showFlash, showFlashImpl, showFlashMessage, stickyFlash, };
24
33
  //# sourceMappingURL=toast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/flash/toast.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvE,iBAAS,YAAY,CAAC,EAAE,EAAE,MAAM,WAS/B;AAED,iBAAS,aAAa,CACpB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,EAChB,WAAW,GAAE,OAAY,EACzB,OAAO,GAAE,YAAiB;;;;EAe3B;AAwBD,iBAAS,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE,SAAkB,EAAE,WAAW,SAAK,EAAE,OAAO,KAAK;;;;EAE5F;AAED,iBAAS,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,SAAK,EAAE,OAAO,KAAK;;;;EAKrF;AAED,iBAAS,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,SAAK,EAAE,OAAO,KAAK;;;;EAMnF;AAED,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/flash/toast.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvE,iBAAS,YAAY,CAAC,EAAE,EAAE,MAAM,WAS/B;AAED,iBAAS,aAAa,CACpB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,EAChB,WAAW,GAAE,OAAY,EACzB,OAAO,GAAE,YAAiB;;;;;;EAkB3B;AAwBD,iBAAS,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE,SAAkB,EAAE,WAAW,SAAK,EAAE,OAAO,KAAK;;;;;;EAE5F;AAED,iBAAS,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,SAAK,EAAE,OAAO,KAAK;;;;;;EAKrF;AAED,iBAAS,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,SAAK,EAAE,OAAO,KAAK;;;;;;EAMnF;AAED,iBAAS,gBAAgB,CACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,EAChD,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,OAAO,EAChB,WAAW,SAAK,OAUjB;AASD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,WAAW,GACZ,CAAC"}
@@ -8,7 +8,7 @@ function dismissFlash(id) {
8
8
  const safeId = String(id || "").trim();
9
9
  if (!safeId)
10
10
  return false;
11
- const target = stack.querySelector(`[data-tbf-flash-id="${safeId}"]`);
11
+ const target = stack.querySelector(attrSelector("data-tbf-flash-id", safeId));
12
12
  if (!target)
13
13
  return false;
14
14
  hideFlashElement(stack, target);
@@ -19,15 +19,18 @@ function showFlashImpl(type, message, description = "", options = {}) {
19
19
  if (!stack)
20
20
  return null;
21
21
  const id = String(options.id || "").trim() || flashId();
22
- const existing = stack.querySelector(`[data-tbf-flash-id="${id}"]`);
22
+ const existing = stack.querySelector(attrSelector("data-tbf-flash-id", id));
23
23
  if (existing && options.update === true)
24
24
  existing.remove();
25
25
  const controls = createFlashElement(type, message, description, id, options);
26
26
  stack.appendChild(controls.element);
27
27
  startFlashLifetime(stack, controls, message, description, options);
28
+ const dismiss = () => dismissFlash(id);
28
29
  return {
29
- dismiss: () => dismissFlash(id),
30
+ dismiss,
31
+ el: controls.element,
30
32
  element: controls.element,
33
+ hide: dismiss,
31
34
  id,
32
35
  };
33
36
  }
@@ -63,5 +66,21 @@ function liveFlash(type, message, description = "", options = {}) {
63
66
  update: true,
64
67
  });
65
68
  }
66
- export { dismissFlash, liveFlash, showFlash, showFlashImpl, stickyFlash };
69
+ function showFlashMessage(flashApi, kind, message, description = "") {
70
+ const type = normalizeFlashType(kind);
71
+ if (flashApi && typeof flashApi[type] === "function") {
72
+ return flashApi[type](message, description);
73
+ }
74
+ if (flashApi && typeof flashApi === "function") {
75
+ return flashApi(message, type, description);
76
+ }
77
+ return showFlashImpl(type, message, description);
78
+ }
79
+ function attrSelector(name, value) {
80
+ const escaped = typeof CSS !== "undefined" && typeof CSS.escape === "function"
81
+ ? CSS.escape(value)
82
+ : value.replace(/\\/gu, "\\\\").replace(/"/gu, "\\\"");
83
+ return `[${name}="${escaped}"]`;
84
+ }
85
+ export { dismissFlash, liveFlash, showFlash, showFlashImpl, showFlashMessage, stickyFlash, };
67
86
  //# sourceMappingURL=toast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../src/flash/toast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../src/flash/toast.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,65 @@
1
1
  type FlashType = "error" | "info" | "success" | "warn";
2
+ type FlashStackPriority = "high" | "low" | "normal";
3
+ type FlashProgressTone = "blue" | "cyan" | "gray" | "green" | "indigo" | "orange" | "red" | "ruby" | "yellow" | (string & {});
2
4
  type FlashOptions = {
3
5
  description?: string;
4
6
  id?: string;
5
- stackPriority?: "high" | "low" | "normal";
7
+ progressTone?: FlashProgressTone;
8
+ progressType?: FlashProgressTone;
9
+ stackPriority?: FlashStackPriority;
6
10
  sticky?: boolean;
7
11
  update?: boolean;
8
12
  };
9
13
  type FlashHandle = {
10
14
  dismiss: () => boolean;
15
+ el: HTMLElement;
11
16
  element: HTMLElement;
17
+ hide: () => boolean;
12
18
  id: string;
13
19
  };
20
+ type ConfirmVariant = "archive" | "delete" | "drop";
21
+ type ConfirmationAttrsInput = {
22
+ confirmationText?: unknown;
23
+ mode?: unknown;
24
+ subject?: unknown;
25
+ target?: unknown;
26
+ variant?: unknown;
27
+ };
14
28
  type ConfirmOptions = {
15
29
  cancelText?: string;
30
+ confirmButtonText?: string;
31
+ confirmMode?: "classic" | "text";
16
32
  confirmText?: string;
33
+ confirmType?: "classic" | "text";
17
34
  confirmationText?: string;
18
35
  mode?: "classic" | "text";
19
36
  placeholder?: string;
37
+ progressTone?: FlashProgressTone;
38
+ progressType?: FlashProgressTone;
39
+ subject?: string;
40
+ target?: string;
20
41
  type?: FlashType;
42
+ variant?: ConfirmVariant | (string & {});
43
+ };
44
+ type ConfirmModel = {
45
+ cancelText: string;
46
+ confirmButtonText: string;
47
+ confirmMode: "classic" | "text";
48
+ confirmationText: string;
49
+ description: string;
50
+ isTextConfirm: boolean;
51
+ placeholder: string;
52
+ progressTone: string;
53
+ title: string;
54
+ type: FlashType;
21
55
  };
22
56
  type PromptOptions = {
23
57
  cancelText?: string;
24
58
  placeholder?: string;
59
+ progressTone?: FlashProgressTone;
60
+ progressType?: FlashProgressTone;
25
61
  submitText?: string;
26
62
  value?: string;
27
63
  };
28
- export type { ConfirmOptions, FlashHandle, FlashOptions, FlashType, PromptOptions, };
64
+ export type { ConfirmationAttrsInput, ConfirmModel, ConfirmOptions, ConfirmVariant, FlashHandle, FlashOptions, FlashProgressTone, FlashStackPriority, FlashType, PromptOptions, };
29
65
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/flash/types.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AACvD,KAAK,YAAY,GAAG;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AACF,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,OAAO,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AACF,KAAK,cAAc,GAAG;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AACF,KAAK,aAAa,GAAG;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,YAAY,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,GACd,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/flash/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { ButtonHTMLAttributes, HTMLAttributes } from "react";
2
+ import type { FullscreenTriggerMode } from "../index.d.ts";
3
+ type FullscreenTargetProps = HTMLAttributes<HTMLDivElement> & {
4
+ fullscreenId: string;
5
+ group?: string;
6
+ persist?: boolean;
7
+ };
8
+ type FullscreenButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
9
+ fullscreenId?: string;
10
+ group?: string;
11
+ mode?: FullscreenTriggerMode;
12
+ nativeTarget?: string;
13
+ };
14
+ declare function FullscreenTarget(props: FullscreenTargetProps): import("react").JSX.Element;
15
+ declare function FullscreenButton(props: FullscreenButtonProps): import("react").JSX.Element;
16
+ declare function FullscreenOpenButton(props: Omit<FullscreenButtonProps, "mode">): import("react").JSX.Element;
17
+ declare function FullscreenCloseButton(props: Omit<FullscreenButtonProps, "mode">): import("react").JSX.Element;
18
+ export { FullscreenButton, FullscreenCloseButton, FullscreenOpenButton, FullscreenTarget, };
19
+ export type { FullscreenButtonProps, FullscreenTargetProps };
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fullscreen/components/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EAEf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,KAAK,qBAAqB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,qBAAqB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,iBAAS,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,+BAqBrD;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,+BA6BrD;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,+BAEvE;AAED,iBAAS,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,+BAExE;AAED,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { classNames, dataBool } from "../../components/index.js";
3
+ function FullscreenTarget(props) {
4
+ const { children, className, fullscreenId, group = "default", persist, ...rest } = props;
5
+ return (_jsx("div", { ...rest, className: classNames("tbf-fullscreen-target", className), "data-tbf-fullscreen-target": "", "data-tbf-fullscreen-id": fullscreenId, "data-tbf-fullscreen-group": group, "data-tbf-fullscreen-persist": dataBool(persist), children: children }));
6
+ }
7
+ function FullscreenButton(props) {
8
+ const { children, className, fullscreenId, group = "default", mode = "toggle", nativeTarget, type = "button", ...rest } = props;
9
+ const panel = Boolean(fullscreenId);
10
+ return (_jsx("button", { ...rest, className: classNames("tbf-button tbf-fullscreen-button", className), "data-tbf-fullscreen-trigger": panel ? "" : undefined, "data-tbf-fullscreen-id": fullscreenId, "data-tbf-fullscreen-group": panel ? group : undefined, "data-tbf-fullscreen-mode": mode, "data-tbf-fullscreen-target": nativeTarget, "data-tbf-fullscreen-toggle": !panel && mode === "toggle" ? "" : undefined, "data-tbf-fullscreen-enter": !panel && mode === "open" ? "" : undefined, "data-tbf-fullscreen-exit": !panel && (mode === "close" || mode === "exit") ? "" : undefined, type: type, children: children }));
11
+ }
12
+ function FullscreenOpenButton(props) {
13
+ return _jsx(FullscreenButton, { ...props, mode: "open" });
14
+ }
15
+ function FullscreenCloseButton(props) {
16
+ return _jsx(FullscreenButton, { ...props, mode: "close" });
17
+ }
18
+ export { FullscreenButton, FullscreenCloseButton, FullscreenOpenButton, FullscreenTarget, };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/fullscreen/components/index.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAgBrD,SAAS,gBAAgB,CAAC,KAA4B;IACpD,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,KAAK,GAAG,SAAS,EACjB,OAAO,EACP,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IACV,OAAO,CACL,iBACM,IAAI,EACR,SAAS,EAAE,UAAU,CAAC,uBAAuB,EAAE,SAAS,CAAC,gCAC9B,EAAE,4BACL,YAAY,+BACT,KAAK,iCACH,QAAQ,CAAC,OAAO,CAAC,YAE7C,QAAqB,GAClB,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA4B;IACpD,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,QAAQ,EACf,YAAY,EACZ,IAAI,GAAG,QAAQ,EACf,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IACV,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,OAAO,CACL,oBACM,IAAI,EACR,SAAS,EAAE,UAAU,CAAC,kCAAkC,EAAE,SAAS,CAAC,iCACvC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,4BAC3B,YAAY,+BACT,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,8BAC1B,IAAI,gCACF,YAAY,gCACZ,CAAC,KAAK,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,+BAC7C,CAAC,KAAK,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,8BAC3C,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAC1F,IAAI,EAAE,IAAI,YAET,QAAQ,GACF,CACV,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA0C;IACtE,OAAO,KAAC,gBAAgB,OAAK,KAAK,EAAE,IAAI,EAAC,MAAM,GAAG,CAAC;AACrD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA0C;IACvE,OAAO,KAAC,gBAAgB,OAAK,KAAK,EAAE,IAAI,EAAC,OAAO,GAAG,CAAC;AACtD,CAAC;AAED,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,CAAC"}
@@ -1,15 +1,36 @@
1
1
  import { type BindRoot } from "../dom/index.d.ts";
2
- declare const FULLSCREEN_TRIGGER_SELECTOR = "[data-tbf-fullscreen-toggle],[data-tbf-fullscreen-enter],[data-tbf-fullscreen-exit]";
2
+ declare const FULLSCREEN_BASE_Z_INDEX = 1120;
3
+ declare const FULLSCREEN_TRIGGER_SELECTOR: string;
4
+ declare const FULLSCREEN_TARGET_SELECTOR = "[data-tbf-fullscreen-target][data-tbf-fullscreen-id][data-tbf-fullscreen-group]";
5
+ declare const FULLSCREEN_STORAGE_PREFIX = "tbf:fullscreen:";
3
6
  type FullscreenRuntimeOptions = {
4
7
  target?: Element | string | null;
5
8
  };
9
+ type FullscreenTriggerMode = "close" | "exit" | "open" | "toggle";
10
+ type FullscreenPanelState = {
11
+ group: string;
12
+ id: string;
13
+ nextSibling: ChildNode | null;
14
+ originalParent: Node | null;
15
+ originalStyle: string | null;
16
+ overlay: HTMLElement;
17
+ placeholder: HTMLElement;
18
+ target: HTMLElement;
19
+ trigger: HTMLElement | null;
20
+ };
6
21
  declare function fullscreenElement(): Element | null;
7
22
  declare function fullscreenSupported(): boolean;
8
23
  declare function enterFullscreen(target?: Element | string | null): Promise<boolean>;
9
24
  declare function exitFullscreen(): Promise<boolean>;
10
25
  declare function toggleFullscreen(target?: Element | string | null): Promise<boolean>;
26
+ declare function registerFullscreenTarget(target: HTMLElement | null): HTMLElement;
27
+ declare function openFullscreenTarget(id: string, group?: string, trigger?: HTMLElement | null): HTMLElement;
28
+ declare function closeFullscreenTarget(options?: {
29
+ immediate?: boolean;
30
+ }): boolean;
31
+ declare function toggleFullscreenTarget(id: string, group?: string, trigger?: HTMLElement | null): HTMLElement;
11
32
  declare function bindFullscreenTrigger(trigger: HTMLElement | null, options?: FullscreenRuntimeOptions): boolean;
12
33
  declare function bindFullscreen(root?: BindRoot, options?: FullscreenRuntimeOptions): void;
13
- export { FULLSCREEN_TRIGGER_SELECTOR, bindFullscreen, bindFullscreenTrigger, enterFullscreen, exitFullscreen, fullscreenElement, fullscreenSupported, toggleFullscreen, };
14
- export type { FullscreenRuntimeOptions };
34
+ export { FULLSCREEN_BASE_Z_INDEX, FULLSCREEN_STORAGE_PREFIX, FULLSCREEN_TARGET_SELECTOR, FULLSCREEN_TRIGGER_SELECTOR, bindFullscreen, bindFullscreenTrigger, enterFullscreen, exitFullscreen, fullscreenElement, fullscreenSupported, openFullscreenTarget, closeFullscreenTarget, registerFullscreenTarget, toggleFullscreen, toggleFullscreenTarget, };
35
+ export type { FullscreenPanelState, FullscreenRuntimeOptions, FullscreenTriggerMode };
15
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fullscreen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE/E,QAAA,MAAM,2BAA2B,wFAAwF,CAAC;AAE1H,KAAK,wBAAwB,GAAG;IAC9B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,iBAAS,iBAAiB,IAAI,OAAO,GAAG,IAAI,CAE3C;AAED,iBAAS,mBAAmB,IAAI,OAAO,CAEtC;AAQD,iBAAe,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAMjF;AAED,iBAAe,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAKhD;AAED,iBAAe,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAElF;AAOD,iBAAS,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAc3G;AAED,iBAAS,cAAc,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,wBAA6B,GAAG,IAAI,CAI/F;AAED,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fullscreen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQ/E,QAAA,MAAM,uBAAuB,OAAO,CAAC;AACrC,QAAA,MAAM,2BAA2B,QAKtB,CAAC;AACZ,QAAA,MAAM,0BAA0B,oFAAoF,CAAC;AACrH,QAAA,MAAM,yBAAyB,oBAAoB,CAAC;AAEpD,KAAK,wBAAwB,GAAG;IAC9B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,KAAK,qBAAqB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAElE,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B,CAAC;AASF,iBAAS,iBAAiB,IAAI,OAAO,GAAG,IAAI,CAE3C;AAED,iBAAS,mBAAmB,IAAI,OAAO,CAEtC;AAQD,iBAAe,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAMjF;AAED,iBAAe,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAKhD;AAED,iBAAe,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAElF;AA2HD,iBAAS,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,eAY3D;AASD,iBAAS,oBAAoB,CAC3B,EAAE,EAAE,MAAM,EACV,KAAK,SAAY,EACjB,OAAO,GAAE,WAAW,GAAG,IAAW,eA2CnC;AAmBD,iBAAS,qBAAqB,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,WAiBnE;AAED,iBAAS,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAY,EAAE,OAAO,GAAE,WAAW,GAAG,IAAW,eAMhG;AAED,iBAAS,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CA2B3G;AAED,iBAAS,cAAc,CAAC,IAAI,GAAE,QAAmB,EAAE,OAAO,GAAE,wBAA6B,GAAG,IAAI,CAO/F;AAUD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,GACvB,CAAC;AACF,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1,5 +1,20 @@
1
1
  import { queryAll, resolveDocumentTarget } from "../dom/index.js";
2
- const FULLSCREEN_TRIGGER_SELECTOR = "[data-tbf-fullscreen-toggle],[data-tbf-fullscreen-enter],[data-tbf-fullscreen-exit]";
2
+ import { applyZIndex, clearZIndex, moveLayerElementToTop, portalElement, } from "../layer/index.js";
3
+ const FULLSCREEN_BASE_Z_INDEX = 1120;
4
+ const FULLSCREEN_TRIGGER_SELECTOR = [
5
+ "[data-tbf-fullscreen-trigger]",
6
+ "[data-tbf-fullscreen-toggle]",
7
+ "[data-tbf-fullscreen-enter]",
8
+ "[data-tbf-fullscreen-exit]",
9
+ ].join(",");
10
+ const FULLSCREEN_TARGET_SELECTOR = "[data-tbf-fullscreen-target][data-tbf-fullscreen-id][data-tbf-fullscreen-group]";
11
+ const FULLSCREEN_STORAGE_PREFIX = "tbf:fullscreen:";
12
+ const targetRegistry = new Map();
13
+ const boundTriggers = new WeakSet();
14
+ let panelState = null;
15
+ let panelListenersInstalled = false;
16
+ let originalBodyOverflow = "";
17
+ let originalBodyPaddingRight = "";
3
18
  function fullscreenElement() {
4
19
  return typeof document === "undefined" ? null : document.fullscreenElement;
5
20
  }
@@ -31,32 +46,278 @@ async function exitFullscreen() {
31
46
  async function toggleFullscreen(target) {
32
47
  return fullscreenElement() ? exitFullscreen() : enterFullscreen(target);
33
48
  }
34
- function readTriggerTarget(trigger, fallback) {
49
+ function readNativeTriggerTarget(trigger, fallback) {
35
50
  const value = trigger.getAttribute("data-tbf-fullscreen-target");
36
51
  return value || fallback || null;
37
52
  }
53
+ function fullscreenTargetKey(id, group) {
54
+ return `${String(group || "default").trim() || "default"}:${String(id || "").trim()}`;
55
+ }
56
+ function readPanelId(element) {
57
+ return String(element.getAttribute("data-tbf-fullscreen-id") || "").trim();
58
+ }
59
+ function readPanelGroup(element) {
60
+ return String(element.getAttribute("data-tbf-fullscreen-group") || "default").trim() || "default";
61
+ }
62
+ function readPanelTriggerMode(trigger) {
63
+ const explicit = String(trigger.getAttribute("data-tbf-fullscreen-mode") || "").trim().toLowerCase();
64
+ if (explicit === "close" || explicit === "exit" || explicit === "open" || explicit === "toggle") {
65
+ return explicit;
66
+ }
67
+ if (trigger.hasAttribute("data-tbf-fullscreen-exit"))
68
+ return "exit";
69
+ if (trigger.hasAttribute("data-tbf-fullscreen-enter"))
70
+ return "open";
71
+ return "toggle";
72
+ }
73
+ function targetShouldPersist(target) {
74
+ return target.getAttribute("data-tbf-fullscreen-persist") === "true";
75
+ }
76
+ function storage() {
77
+ try {
78
+ return typeof window !== "undefined" ? window.localStorage : null;
79
+ }
80
+ catch {
81
+ return null;
82
+ }
83
+ }
84
+ function readStoredPanelId(group) {
85
+ return storage()?.getItem(`${FULLSCREEN_STORAGE_PREFIX}${group}`) || "";
86
+ }
87
+ function writeStoredPanelId(group, id) {
88
+ storage()?.setItem(`${FULLSCREEN_STORAGE_PREFIX}${group}`, id);
89
+ }
90
+ function clearStoredPanelId(group) {
91
+ storage()?.removeItem(`${FULLSCREEN_STORAGE_PREFIX}${group}`);
92
+ }
93
+ function lockDocumentScroll(lock) {
94
+ if (!document.body)
95
+ return;
96
+ if (lock) {
97
+ originalBodyOverflow = document.body.style.overflow;
98
+ originalBodyPaddingRight = document.body.style.paddingRight;
99
+ const scrollbarGap = Math.max(0, window.innerWidth - document.documentElement.clientWidth);
100
+ if (scrollbarGap > 0) {
101
+ const currentPadding = Number.parseFloat(window.getComputedStyle(document.body).paddingRight || "0") || 0;
102
+ document.body.style.paddingRight = `${currentPadding + scrollbarGap}px`;
103
+ }
104
+ document.body.style.overflow = "hidden";
105
+ document.documentElement.setAttribute("data-tbf-fullscreen-scroll-locked", "true");
106
+ document.body.setAttribute("data-tbf-fullscreen-scroll-locked", "true");
107
+ return;
108
+ }
109
+ document.body.style.overflow = originalBodyOverflow;
110
+ document.body.style.paddingRight = originalBodyPaddingRight;
111
+ document.documentElement.removeAttribute("data-tbf-fullscreen-scroll-locked");
112
+ document.body.removeAttribute("data-tbf-fullscreen-scroll-locked");
113
+ }
114
+ function createPlaceholder(target) {
115
+ const rect = target.getBoundingClientRect();
116
+ const placeholder = document.createElement("div");
117
+ placeholder.className = "tbf-fullscreen-placeholder";
118
+ placeholder.setAttribute("data-tbf-fullscreen-placeholder", "");
119
+ placeholder.style.width = `${Math.max(0, rect.width)}px`;
120
+ placeholder.style.height = `${Math.max(0, rect.height)}px`;
121
+ return placeholder;
122
+ }
123
+ function createOverlay(id, group) {
124
+ const overlay = document.createElement("div");
125
+ overlay.className = "tbf-fullscreen-overlay";
126
+ overlay.setAttribute("data-tbf-fullscreen-overlay", "");
127
+ overlay.setAttribute("data-tbf-fullscreen-id", id);
128
+ overlay.setAttribute("data-tbf-fullscreen-group", group);
129
+ overlay.setAttribute("aria-hidden", "true");
130
+ overlay.setAttribute("role", "presentation");
131
+ return overlay;
132
+ }
133
+ function dispatchPanelEvent(name, state) {
134
+ state.target.dispatchEvent(new CustomEvent(name, {
135
+ bubbles: true,
136
+ detail: {
137
+ group: state.group,
138
+ id: state.id,
139
+ overlay: state.overlay,
140
+ target: state.target,
141
+ trigger: state.trigger,
142
+ },
143
+ }));
144
+ }
145
+ function syncPanelTriggers() {
146
+ const active = panelState;
147
+ queryAll(document, "[data-tbf-fullscreen-trigger]").forEach((trigger) => {
148
+ const id = readPanelId(trigger);
149
+ const group = readPanelGroup(trigger);
150
+ const matches = Boolean(active && active.id === id && active.group === group);
151
+ const mode = readPanelTriggerMode(trigger);
152
+ trigger.setAttribute("data-tbf-fullscreen-active", matches ? "true" : "false");
153
+ trigger.setAttribute("data-tbf-fullscreen-hidden", (mode === "open" && matches) || ((mode === "close" || mode === "exit") && !matches) ? "true" : "false");
154
+ });
155
+ }
156
+ function registerFullscreenTarget(target) {
157
+ if (!(target instanceof HTMLElement))
158
+ return null;
159
+ const id = readPanelId(target);
160
+ if (!id)
161
+ return null;
162
+ const group = readPanelGroup(target);
163
+ targetRegistry.set(fullscreenTargetKey(id, group), target);
164
+ target.setAttribute("data-tbf-fullscreen-target", "");
165
+ const storedId = readStoredPanelId(group);
166
+ if (storedId && storedId === id && targetShouldPersist(target) && !panelState) {
167
+ openFullscreenTarget(id, group);
168
+ }
169
+ return target;
170
+ }
171
+ function findRegisteredFullscreenTarget(id, group) {
172
+ const existing = targetRegistry.get(fullscreenTargetKey(id, group));
173
+ if (existing?.isConnected)
174
+ return existing;
175
+ const match = resolveDocumentTarget(`[data-tbf-fullscreen-target][data-tbf-fullscreen-id="${id}"][data-tbf-fullscreen-group="${group}"]`);
176
+ return match instanceof HTMLElement ? registerFullscreenTarget(match) : null;
177
+ }
178
+ function openFullscreenTarget(id, group = "default", trigger = null) {
179
+ const target = findRegisteredFullscreenTarget(id, group);
180
+ if (!(target instanceof HTMLElement))
181
+ return null;
182
+ if (panelState?.target === target)
183
+ return target;
184
+ if (panelState)
185
+ closeFullscreenTarget({ immediate: true });
186
+ const placeholder = createPlaceholder(target);
187
+ const overlay = createOverlay(id, group);
188
+ const originalParent = target.parentNode;
189
+ const nextSibling = target.nextSibling;
190
+ const originalStyle = target.getAttribute("style");
191
+ originalParent?.insertBefore(placeholder, target);
192
+ portalElement(overlay);
193
+ moveLayerElementToTop(overlay);
194
+ moveLayerElementToTop(target);
195
+ const overlayZ = applyZIndex(overlay, { fallback: FULLSCREEN_BASE_Z_INDEX });
196
+ applyZIndex(target, { fallback: overlayZ == null ? FULLSCREEN_BASE_Z_INDEX + 1 : overlayZ + 1 });
197
+ target.setAttribute("data-tbf-fullscreen-active", "true");
198
+ target.setAttribute("aria-modal", "true");
199
+ lockDocumentScroll(true);
200
+ panelState = {
201
+ group,
202
+ id,
203
+ nextSibling,
204
+ originalParent,
205
+ originalStyle,
206
+ overlay,
207
+ placeholder,
208
+ target,
209
+ trigger,
210
+ };
211
+ if (targetShouldPersist(target))
212
+ writeStoredPanelId(group, id);
213
+ overlay.addEventListener("click", () => closeFullscreenTarget(), { once: true });
214
+ window.requestAnimationFrame(() => {
215
+ if (panelState?.target !== target)
216
+ return;
217
+ overlay.setAttribute("data-tbf-open", "true");
218
+ overlay.setAttribute("aria-hidden", "false");
219
+ target.setAttribute("data-tbf-fullscreen-full", "true");
220
+ dispatchPanelEvent("tbf:fullscreen-open", panelState);
221
+ });
222
+ syncPanelTriggers();
223
+ installPanelListeners();
224
+ return target;
225
+ }
226
+ function restoreFullscreenTarget(state) {
227
+ state.target.removeAttribute("data-tbf-fullscreen-active");
228
+ state.target.removeAttribute("data-tbf-fullscreen-full");
229
+ state.target.removeAttribute("aria-modal");
230
+ clearZIndex(state.target);
231
+ if (state.originalStyle == null)
232
+ state.target.removeAttribute("style");
233
+ else
234
+ state.target.setAttribute("style", state.originalStyle);
235
+ if (state.placeholder.parentNode) {
236
+ state.placeholder.parentNode.insertBefore(state.target, state.placeholder);
237
+ }
238
+ else if (state.originalParent) {
239
+ state.originalParent.insertBefore(state.target, state.nextSibling);
240
+ }
241
+ state.placeholder.remove();
242
+ state.overlay.remove();
243
+ clearZIndex(state.overlay);
244
+ }
245
+ function closeFullscreenTarget(options = {}) {
246
+ const state = panelState;
247
+ if (!state)
248
+ return false;
249
+ panelState = null;
250
+ state.overlay.removeAttribute("data-tbf-open");
251
+ state.overlay.setAttribute("aria-hidden", "true");
252
+ clearStoredPanelId(state.group);
253
+ const finish = () => {
254
+ restoreFullscreenTarget(state);
255
+ lockDocumentScroll(false);
256
+ state.trigger?.focus({ preventScroll: true });
257
+ dispatchPanelEvent("tbf:fullscreen-close", state);
258
+ syncPanelTriggers();
259
+ };
260
+ if (options.immediate)
261
+ finish();
262
+ else
263
+ window.setTimeout(finish, 180);
264
+ return true;
265
+ }
266
+ function toggleFullscreenTarget(id, group = "default", trigger = null) {
267
+ if (panelState?.id === id && panelState.group === group) {
268
+ closeFullscreenTarget();
269
+ return null;
270
+ }
271
+ return openFullscreenTarget(id, group, trigger);
272
+ }
38
273
  function bindFullscreenTrigger(trigger, options = {}) {
39
274
  if (!(trigger instanceof HTMLElement) || trigger.hasAttribute("data-tbf-fullscreen-bound"))
40
275
  return false;
41
276
  trigger.setAttribute("data-tbf-fullscreen-bound", "true");
42
277
  trigger.addEventListener("click", (event) => {
43
278
  event.preventDefault();
44
- if (trigger.hasAttribute("data-tbf-fullscreen-exit")) {
45
- void exitFullscreen();
279
+ const id = readPanelId(trigger);
280
+ const group = readPanelGroup(trigger);
281
+ const mode = readPanelTriggerMode(trigger);
282
+ if (id) {
283
+ if (mode === "close" || mode === "exit") {
284
+ closeFullscreenTarget();
285
+ return;
286
+ }
287
+ if (mode === "open") {
288
+ openFullscreenTarget(id, group, trigger);
289
+ return;
290
+ }
291
+ toggleFullscreenTarget(id, group, trigger);
46
292
  return;
47
293
  }
48
- const target = readTriggerTarget(trigger, options.target);
49
- if (trigger.hasAttribute("data-tbf-fullscreen-enter"))
294
+ const target = readNativeTriggerTarget(trigger, options.target);
295
+ if (mode === "exit" || mode === "close")
296
+ void exitFullscreen();
297
+ else if (mode === "open")
50
298
  void enterFullscreen(target);
51
299
  else
52
300
  void toggleFullscreen(target);
53
301
  });
302
+ boundTriggers.add(trigger);
54
303
  return true;
55
304
  }
56
305
  function bindFullscreen(root = document, options = {}) {
306
+ queryAll(root, FULLSCREEN_TARGET_SELECTOR).forEach(registerFullscreenTarget);
57
307
  queryAll(root, FULLSCREEN_TRIGGER_SELECTOR).forEach((trigger) => {
58
308
  bindFullscreenTrigger(trigger, options);
59
309
  });
310
+ syncPanelTriggers();
311
+ installPanelListeners();
312
+ }
313
+ function installPanelListeners() {
314
+ if (panelListenersInstalled || typeof document === "undefined")
315
+ return;
316
+ panelListenersInstalled = true;
317
+ document.addEventListener("keydown", (event) => {
318
+ if (event.key === "Escape")
319
+ closeFullscreenTarget();
320
+ });
60
321
  }
61
- export { FULLSCREEN_TRIGGER_SELECTOR, bindFullscreen, bindFullscreenTrigger, enterFullscreen, exitFullscreen, fullscreenElement, fullscreenSupported, toggleFullscreen, };
322
+ export { FULLSCREEN_BASE_Z_INDEX, FULLSCREEN_STORAGE_PREFIX, FULLSCREEN_TARGET_SELECTOR, FULLSCREEN_TRIGGER_SELECTOR, bindFullscreen, bindFullscreenTrigger, enterFullscreen, exitFullscreen, fullscreenElement, fullscreenSupported, openFullscreenTarget, closeFullscreenTarget, registerFullscreenTarget, toggleFullscreen, toggleFullscreenTarget, };
62
323
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fullscreen/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fullscreen/index.ts"],"names":[],"mappings":"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"}