@rdlabo/ionic-theme-ios27 1.2.0-3 → 1.2.0-4

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 (175) hide show
  1. package/README.md +15 -2
  2. package/dist/_virtual/_rolldown/runtime.js +13 -0
  3. package/dist/css/ionic-theme-ios27.css +1 -1
  4. package/dist/css/vertical-bars.css +1 -1
  5. package/dist/focus-controller/index.d.ts +4 -2
  6. package/dist/focus-controller/index.d.ts.map +1 -1
  7. package/dist/focus-controller/index.js +100 -57
  8. package/dist/focus-controller/index.js.map +1 -0
  9. package/dist/index.d.ts +10 -8
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +54 -60
  12. package/dist/index.js.map +1 -0
  13. package/dist/native/components/index.d.ts +13 -10
  14. package/dist/native/components/index.d.ts.map +1 -1
  15. package/dist/native/components/index.js +39 -41
  16. package/dist/native/components/index.js.map +1 -0
  17. package/dist/native/components/ion-back-button.d.ts +6 -1
  18. package/dist/native/components/ion-back-button.d.ts.map +1 -1
  19. package/dist/native/components/ion-back-button.js +19 -13
  20. package/dist/native/components/ion-back-button.js.map +1 -0
  21. package/dist/native/components/ion-button.d.ts +8 -2
  22. package/dist/native/components/ion-button.d.ts.map +1 -1
  23. package/dist/native/components/ion-button.js +22 -17
  24. package/dist/native/components/ion-button.js.map +1 -0
  25. package/dist/native/components/ion-buttons.d.ts +8 -2
  26. package/dist/native/components/ion-buttons.d.ts.map +1 -1
  27. package/dist/native/components/ion-buttons.js +29 -33
  28. package/dist/native/components/ion-buttons.js.map +1 -0
  29. package/dist/native/components/ion-fab.d.ts +6 -1
  30. package/dist/native/components/ion-fab.d.ts.map +1 -1
  31. package/dist/native/components/ion-fab.js +131 -151
  32. package/dist/native/components/ion-fab.js.map +1 -0
  33. package/dist/native/components/ion-menu-button.d.ts +8 -2
  34. package/dist/native/components/ion-menu-button.d.ts.map +1 -1
  35. package/dist/native/components/ion-menu-button.js +29 -19
  36. package/dist/native/components/ion-menu-button.js.map +1 -0
  37. package/dist/native/components/ion-segment.d.ts +6 -1
  38. package/dist/native/components/ion-segment.d.ts.map +1 -1
  39. package/dist/native/components/ion-segment.js +29 -23
  40. package/dist/native/components/ion-segment.js.map +1 -0
  41. package/dist/native/components/ion-tab-bar.d.ts +6 -1
  42. package/dist/native/components/ion-tab-bar.d.ts.map +1 -1
  43. package/dist/native/components/ion-tab-bar.js +49 -40
  44. package/dist/native/components/ion-tab-bar.js.map +1 -0
  45. package/dist/native/components/searchable-tabs.d.ts +17 -15
  46. package/dist/native/components/searchable-tabs.d.ts.map +1 -1
  47. package/dist/native/components/searchable-tabs.js +382 -434
  48. package/dist/native/components/searchable-tabs.js.map +1 -0
  49. package/dist/native/definitions.d.ts +118 -111
  50. package/dist/native/definitions.d.ts.map +1 -1
  51. package/dist/native/definitions.js +0 -1
  52. package/dist/native/foldable/fold-state.d.ts +5 -0
  53. package/dist/native/foldable/fold-state.d.ts.map +1 -0
  54. package/dist/native/foldable/fold-state.js +14 -0
  55. package/dist/native/foldable/fold-state.js.map +1 -0
  56. package/dist/native/foldable/types.d.ts +12 -0
  57. package/dist/native/foldable/types.d.ts.map +1 -0
  58. package/dist/native/foldable/types.js +0 -0
  59. package/dist/native/index.d.ts +6 -3
  60. package/dist/native/index.d.ts.map +1 -1
  61. package/dist/native/index.js +228 -204
  62. package/dist/native/index.js.map +1 -0
  63. package/dist/native/prehide.d.ts +4 -2
  64. package/dist/native/prehide.d.ts.map +1 -1
  65. package/dist/native/prehide.js +220 -242
  66. package/dist/native/prehide.js.map +1 -0
  67. package/dist/native/runtime.d.ts +3 -1
  68. package/dist/native/runtime.d.ts.map +1 -1
  69. package/dist/native/runtime.js +626 -730
  70. package/dist/native/runtime.js.map +1 -0
  71. package/dist/native/shared/candidate.d.ts +16 -11
  72. package/dist/native/shared/candidate.d.ts.map +1 -1
  73. package/dist/native/shared/candidate.js +96 -95
  74. package/dist/native/shared/candidate.js.map +1 -0
  75. package/dist/native/shared/crossfade.d.ts +6 -4
  76. package/dist/native/shared/crossfade.d.ts.map +1 -1
  77. package/dist/native/shared/crossfade.js +49 -45
  78. package/dist/native/shared/crossfade.js.map +1 -0
  79. package/dist/native/shared/dom.d.ts +7 -5
  80. package/dist/native/shared/dom.d.ts.map +1 -1
  81. package/dist/native/shared/dom.js +163 -211
  82. package/dist/native/shared/dom.js.map +1 -0
  83. package/dist/native/shared/events.d.ts +8 -6
  84. package/dist/native/shared/events.d.ts.map +1 -1
  85. package/dist/native/shared/events.js +12 -7
  86. package/dist/native/shared/events.js.map +1 -0
  87. package/dist/native/shared/icons.d.ts +4 -2
  88. package/dist/native/shared/icons.d.ts.map +1 -1
  89. package/dist/native/shared/icons.js +59 -53
  90. package/dist/native/shared/icons.js.map +1 -0
  91. package/dist/native/shared/modal.d.ts +3 -1
  92. package/dist/native/shared/modal.d.ts.map +1 -1
  93. package/dist/native/shared/modal.js +156 -139
  94. package/dist/native/shared/modal.js.map +1 -0
  95. package/dist/native/vertical-bars-web.d.ts +3 -1
  96. package/dist/native/vertical-bars-web.d.ts.map +1 -1
  97. package/dist/native/vertical-bars-web.js +332 -346
  98. package/dist/native/vertical-bars-web.js.map +1 -0
  99. package/dist/native-integration/index.d.ts +10 -8
  100. package/dist/native-integration/index.d.ts.map +1 -1
  101. package/dist/native-integration/index.js +102 -100
  102. package/dist/native-integration/index.js.map +1 -0
  103. package/dist/native-integration/transition.d.ts +3 -1
  104. package/dist/native-integration/transition.d.ts.map +1 -1
  105. package/dist/native-integration/transition.js +15 -6
  106. package/dist/native-integration/transition.js.map +1 -0
  107. package/dist/searchbar/index.d.ts +4 -2
  108. package/dist/searchbar/index.d.ts.map +1 -1
  109. package/dist/searchbar/index.js +64 -56
  110. package/dist/searchbar/index.js.map +1 -0
  111. package/dist/segment/index.d.ts +3 -1
  112. package/dist/segment/index.d.ts.map +1 -1
  113. package/dist/segment/index.js +465 -324
  114. package/dist/segment/index.js.map +1 -0
  115. package/dist/sheets-of-glass/animations.d.ts +13 -12
  116. package/dist/sheets-of-glass/animations.d.ts.map +1 -1
  117. package/dist/sheets-of-glass/animations.js +496 -306
  118. package/dist/sheets-of-glass/animations.js.map +1 -0
  119. package/dist/sheets-of-glass/index.d.ts +3 -1
  120. package/dist/sheets-of-glass/index.d.ts.map +1 -1
  121. package/dist/sheets-of-glass/index.js +294 -357
  122. package/dist/sheets-of-glass/index.js.map +1 -0
  123. package/dist/sheets-of-glass/interfaces.d.ts +11 -9
  124. package/dist/sheets-of-glass/interfaces.d.ts.map +1 -1
  125. package/dist/sheets-of-glass/interfaces.js +0 -1
  126. package/dist/tab-bar-searchable/animations/enter.d.ts +4 -2
  127. package/dist/tab-bar-searchable/animations/enter.d.ts.map +1 -1
  128. package/dist/tab-bar-searchable/animations/enter.js +50 -69
  129. package/dist/tab-bar-searchable/animations/enter.js.map +1 -0
  130. package/dist/tab-bar-searchable/animations/leave.d.ts +4 -2
  131. package/dist/tab-bar-searchable/animations/leave.d.ts.map +1 -1
  132. package/dist/tab-bar-searchable/animations/leave.js +48 -62
  133. package/dist/tab-bar-searchable/animations/leave.js.map +1 -0
  134. package/dist/tab-bar-searchable/index.d.ts +5 -3
  135. package/dist/tab-bar-searchable/index.d.ts.map +1 -1
  136. package/dist/tab-bar-searchable/index.js +123 -135
  137. package/dist/tab-bar-searchable/index.js.map +1 -0
  138. package/dist/transition/index.d.ts +9 -8
  139. package/dist/transition/index.d.ts.map +1 -1
  140. package/dist/transition/index.js +203 -192
  141. package/dist/transition/index.js.map +1 -0
  142. package/dist/transition/ios.transition.d.ts +7 -5
  143. package/dist/transition/ios.transition.d.ts.map +1 -1
  144. package/dist/transition/ios.transition.js +15 -11
  145. package/dist/transition/ios.transition.js.map +1 -0
  146. package/dist/utils.d.ts +10 -8
  147. package/dist/utils.d.ts.map +1 -1
  148. package/dist/utils.js +58 -66
  149. package/dist/utils.js.map +1 -0
  150. package/dist/vertical-bars.d.ts +5 -4
  151. package/dist/vertical-bars.js +4 -2
  152. package/docs/iphone-duo-with-original-theme.md +18 -29
  153. package/docs/iphone-duo.md +44 -204
  154. package/docs/native-ui-shell.md +10 -8
  155. package/docs/special-markup.md +2 -0
  156. package/docs/vertical-bars.md +283 -0
  157. package/ios/Sources/IonicNativeUIShellPlugin/Components/ShellVerticalBars.swift +34 -14
  158. package/ios/Sources/IonicNativeUIShellPlugin/Shared/ShellSnapshot.swift +2 -0
  159. package/ios/Tests/IonicNativeUIShellPluginTests/ShellSnapshotTests.swift +3 -0
  160. package/package.json +9 -6
  161. package/src/native/components/index.ts +3 -2
  162. package/src/native/components/ion-button.ts +3 -2
  163. package/src/native/components/ion-buttons.ts +4 -3
  164. package/src/native/components/ion-menu-button.ts +3 -2
  165. package/src/native/definitions.ts +22 -1
  166. package/src/native/foldable/fold-state.ts +9 -0
  167. package/src/native/foldable/types.ts +4 -0
  168. package/src/native/index.ts +17 -3
  169. package/src/native/prehide.ts +3 -1
  170. package/src/native/runtime.ts +2 -2
  171. package/src/native/shared/candidate.ts +39 -10
  172. package/src/native/shared/dom.ts +4 -4
  173. package/src/styles/vertical-bars.scss +4 -2
  174. package/src/vertical-bars.ts +9 -1
  175. package/dist/vertical-bars.d.ts.map +0 -1
@@ -1,55 +1,61 @@
1
- export const iconSource = (svg, mirrored) => {
2
- if (svg.querySelector('script, foreignObject, image, use, animate, animateTransform, set, style, text') ||
3
- /url\((?!["']?#)/.test(svg.outerHTML))
4
- return undefined;
5
- if (mirrored === undefined && svg.parentElement?.matches('.icon-inner')) {
6
- const transform = new DOMMatrixReadOnly(getComputedStyle(svg.parentElement).transform);
7
- mirrored = transform.is2D && transform.a === -1 && transform.d === 1 && !transform.b && !transform.c && !transform.e && !transform.f;
8
- }
9
- const copy = svg.cloneNode(true);
10
- const originals = [svg, ...Array.from(svg.querySelectorAll('*'))];
11
- const copies = [copy, ...Array.from(copy.querySelectorAll('*'))];
12
- originals.forEach((node, index) => {
13
- const style = getComputedStyle(node);
14
- for (const property of ['fill', 'stroke', 'stroke-width', 'opacity', 'fill-opacity', 'stroke-opacity', 'color']) {
15
- copies[index].style.setProperty(property, style.getPropertyValue(property));
16
- }
17
- });
18
- copy.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
19
- if (mirrored) {
20
- copy.style.transform = 'scaleX(-1)';
21
- copy.style.transformOrigin = 'center';
22
- }
23
- return new XMLSerializer().serializeToString(copy);
1
+ //#region src/native/shared/icons.ts
2
+ const iconSource = (svg, mirrored) => {
3
+ if (svg.querySelector("script, foreignObject, image, use, animate, animateTransform, set, style, text") || /url\((?!["']?#)/.test(svg.outerHTML)) return void 0;
4
+ if (mirrored === void 0 && svg.parentElement?.matches(".icon-inner")) {
5
+ const transform = new DOMMatrixReadOnly(getComputedStyle(svg.parentElement).transform);
6
+ mirrored = transform.is2D && transform.a === -1 && transform.d === 1 && !transform.b && !transform.c && !transform.e && !transform.f;
7
+ }
8
+ const copy = svg.cloneNode(true);
9
+ const originals = [svg, ...Array.from(svg.querySelectorAll("*"))];
10
+ const copies = [copy, ...Array.from(copy.querySelectorAll("*"))];
11
+ originals.forEach((node, index) => {
12
+ const style = getComputedStyle(node);
13
+ for (const property of [
14
+ "fill",
15
+ "stroke",
16
+ "stroke-width",
17
+ "opacity",
18
+ "fill-opacity",
19
+ "stroke-opacity",
20
+ "color"
21
+ ]) copies[index].style.setProperty(property, style.getPropertyValue(property));
22
+ });
23
+ copy.setAttribute("xmlns", "http://www.w3.org/2000/svg");
24
+ if (mirrored) {
25
+ copy.style.transform = "scaleX(-1)";
26
+ copy.style.transformOrigin = "center";
27
+ }
28
+ return new XMLSerializer().serializeToString(copy);
24
29
  };
25
- export const createIconRenderer = () => {
26
- const cache = new Map();
27
- return {
28
- clear: () => cache.clear(),
29
- async render(source, width, height) {
30
- const scale = devicePixelRatio || 1;
31
- const key = `${width}:${height}:${scale}:${source}`;
32
- const cached = cache.get(key);
33
- if (cached)
34
- return cached;
35
- const url = URL.createObjectURL(new Blob([source], { type: 'image/svg+xml' }));
36
- try {
37
- const image = new Image();
38
- image.src = url;
39
- await image.decode();
40
- const canvas = document.createElement('canvas');
41
- canvas.width = Math.ceil(width * scale);
42
- canvas.height = Math.ceil(height * scale);
43
- canvas.getContext('2d').drawImage(image, 0, 0, canvas.width, canvas.height);
44
- const data = canvas.toDataURL('image/png').split(',')[1];
45
- if (cache.size >= 128)
46
- cache.delete(cache.keys().next().value);
47
- cache.set(key, data);
48
- return data;
49
- }
50
- finally {
51
- URL.revokeObjectURL(url);
52
- }
53
- },
54
- };
30
+ const createIconRenderer = () => {
31
+ const cache = /* @__PURE__ */ new Map();
32
+ return {
33
+ clear: () => cache.clear(),
34
+ async render(source, width, height) {
35
+ const scale = devicePixelRatio || 1;
36
+ const key = `${width}:${height}:${scale}:${source}`;
37
+ const cached = cache.get(key);
38
+ if (cached) return cached;
39
+ const url = URL.createObjectURL(new Blob([source], { type: "image/svg+xml" }));
40
+ try {
41
+ const image = new Image();
42
+ image.src = url;
43
+ await image.decode();
44
+ const canvas = document.createElement("canvas");
45
+ canvas.width = Math.ceil(width * scale);
46
+ canvas.height = Math.ceil(height * scale);
47
+ canvas.getContext("2d").drawImage(image, 0, 0, canvas.width, canvas.height);
48
+ const data = canvas.toDataURL("image/png").split(",")[1];
49
+ if (cache.size >= 128) cache.delete(cache.keys().next().value);
50
+ cache.set(key, data);
51
+ return data;
52
+ } finally {
53
+ URL.revokeObjectURL(url);
54
+ }
55
+ }
56
+ };
55
57
  };
58
+ //#endregion
59
+ export { createIconRenderer, iconSource };
60
+
61
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","names":[],"sources":["../../../src/native/shared/icons.ts"],"sourcesContent":["export const iconSource = (svg: SVGElement, mirrored?: boolean): string | undefined => {\n // A small, local SVG subset. Never load external content while projecting UI.\n if (\n svg.querySelector('script, foreignObject, image, use, animate, animateTransform, set, style, text') ||\n /url\\((?![\"']?#)/.test(svg.outerHTML)\n )\n return undefined;\n // Ionicons flips the wrapper, not the SVG, for directional icons in RTL.\n if (mirrored === undefined && svg.parentElement?.matches('.icon-inner')) {\n const transform = new DOMMatrixReadOnly(getComputedStyle(svg.parentElement).transform);\n mirrored = transform.is2D && transform.a === -1 && transform.d === 1 && !transform.b && !transform.c && !transform.e && !transform.f;\n }\n const copy = svg.cloneNode(true) as SVGElement;\n const originals = [svg, ...Array.from(svg.querySelectorAll('*'))];\n const copies = [copy, ...Array.from(copy.querySelectorAll('*'))];\n originals.forEach((node, index) => {\n const style = getComputedStyle(node);\n for (const property of ['fill', 'stroke', 'stroke-width', 'opacity', 'fill-opacity', 'stroke-opacity', 'color']) {\n (copies[index] as SVGElement).style.setProperty(property, style.getPropertyValue(property));\n }\n });\n copy.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n if (mirrored) {\n copy.style.transform = 'scaleX(-1)';\n copy.style.transformOrigin = 'center';\n }\n return new XMLSerializer().serializeToString(copy);\n};\n\nexport const createIconRenderer = () => {\n const cache = new Map<string, string>();\n return {\n clear: () => cache.clear(),\n async render(source: string, width: number, height: number): Promise<string> {\n const scale = devicePixelRatio || 1;\n const key = `${width}:${height}:${scale}:${source}`;\n const cached = cache.get(key);\n if (cached) return cached;\n const url = URL.createObjectURL(new Blob([source], { type: 'image/svg+xml' }));\n try {\n const image = new Image();\n image.src = url;\n await image.decode();\n const canvas = document.createElement('canvas');\n canvas.width = Math.ceil(width * scale);\n canvas.height = Math.ceil(height * scale);\n canvas.getContext('2d')!.drawImage(image, 0, 0, canvas.width, canvas.height);\n const data = canvas.toDataURL('image/png').split(',')[1];\n if (cache.size >= 128) cache.delete(cache.keys().next().value!);\n cache.set(key, data);\n return data;\n } finally {\n URL.revokeObjectURL(url);\n }\n },\n };\n};\n"],"mappings":";AAAA,MAAa,cAAc,KAAiB,aAA2C;CAErF,IACE,IAAI,cAAc,gFAAgF,KAClG,kBAAkB,KAAK,IAAI,SAAS,GAEpC,OAAO,KAAA;CAET,IAAI,aAAa,KAAA,KAAa,IAAI,eAAe,QAAQ,aAAa,GAAG;EACvE,MAAM,YAAY,IAAI,kBAAkB,iBAAiB,IAAI,aAAa,CAAC,CAAC,SAAS;EACrF,WAAW,UAAU,QAAQ,UAAU,MAAM,MAAM,UAAU,MAAM,KAAK,CAAC,UAAU,KAAK,CAAC,UAAU,KAAK,CAAC,UAAU,KAAK,CAAC,UAAU;CACrI;CACA,MAAM,OAAO,IAAI,UAAU,IAAI;CAC/B,MAAM,YAAY,CAAC,KAAK,GAAG,MAAM,KAAK,IAAI,iBAAiB,GAAG,CAAC,CAAC;CAChE,MAAM,SAAS,CAAC,MAAM,GAAG,MAAM,KAAK,KAAK,iBAAiB,GAAG,CAAC,CAAC;CAC/D,UAAU,SAAS,MAAM,UAAU;EACjC,MAAM,QAAQ,iBAAiB,IAAI;EACnC,KAAK,MAAM,YAAY;GAAC;GAAQ;GAAU;GAAgB;GAAW;GAAgB;GAAkB;EAAO,GAC5G,OAAQ,MAAM,CAAgB,MAAM,YAAY,UAAU,MAAM,iBAAiB,QAAQ,CAAC;CAE9F,CAAC;CACD,KAAK,aAAa,SAAS,4BAA4B;CACvD,IAAI,UAAU;EACZ,KAAK,MAAM,YAAY;EACvB,KAAK,MAAM,kBAAkB;CAC/B;CACA,OAAO,IAAI,cAAc,CAAC,CAAC,kBAAkB,IAAI;AACnD;AAEA,MAAa,2BAA2B;CACtC,MAAM,wBAAQ,IAAI,IAAoB;CACtC,OAAO;EACL,aAAa,MAAM,MAAM;EACzB,MAAM,OAAO,QAAgB,OAAe,QAAiC;GAC3E,MAAM,QAAQ,oBAAoB;GAClC,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG;GAC3C,MAAM,SAAS,MAAM,IAAI,GAAG;GAC5B,IAAI,QAAQ,OAAO;GACnB,MAAM,MAAM,IAAI,gBAAgB,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,MAAM,gBAAgB,CAAC,CAAC;GAC7E,IAAI;IACF,MAAM,QAAQ,IAAI,MAAM;IACxB,MAAM,MAAM;IACZ,MAAM,MAAM,OAAO;IACnB,MAAM,SAAS,SAAS,cAAc,QAAQ;IAC9C,OAAO,QAAQ,KAAK,KAAK,QAAQ,KAAK;IACtC,OAAO,SAAS,KAAK,KAAK,SAAS,KAAK;IACxC,OAAO,WAAW,IAAI,CAAC,CAAE,UAAU,OAAO,GAAG,GAAG,OAAO,OAAO,OAAO,MAAM;IAC3E,MAAM,OAAO,OAAO,UAAU,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACtD,IAAI,MAAM,QAAQ,KAAK,MAAM,OAAO,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAM;IAC9D,MAAM,IAAI,KAAK,IAAI;IACnB,OAAO;GACT,UAAU;IACR,IAAI,gBAAgB,GAAG;GACzB;EACF;CACF;AACF"}
@@ -1,8 +1,10 @@
1
- import type { Frame } from '../definitions';
1
+ import { Frame } from "../definitions.js";
2
+ //#region src/native/shared/modal.d.ts
2
3
  export declare const modalRailClass = "ios-theme-vertical-bars-modal";
3
4
  export declare const topModal: (doc: Document) => HTMLIonModalElement | undefined;
4
5
  export declare const modalUsesVerticalBars: (element: Element) => boolean;
5
6
  export declare const inVerticalBarsSurface: (element: Element) => boolean;
6
7
  export declare const observeVerticalBarsModals: (doc: Document) => (() => void);
7
8
  export declare const modalVerticalBarFrame: (modal: Element) => Frame | undefined;
9
+ //#endregion
8
10
  //# sourceMappingURL=modal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/native/shared/modal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,eAAO,MAAM,cAAc,kCAAkC,CAAC;AAG9D,eAAO,MAAM,QAAQ,GAAI,KAAK,QAAQ,KAAG,mBAAmB,GAAG,SAAiC,CAAC;AACjG,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,KAAG,OAGxD,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,KAAG,OAGxD,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,KAAK,QAAQ,KAAG,CAAC,MAAM,IAAI,CAgIpE,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAI,OAAO,OAAO,KAAG,KAAK,GAAG,SAO9D,CAAC"}
1
+ {"version":3,"file":"modal.d.ts","names":[],"sources":["../../../src/native/shared/modal.ts"],"mappings":";;qBAGa;qBAGA,WAAY,KAAK,aAAW;qBAC5B,wBAAyB,SAAS;qBAMlC,wBAAyB,SAAS;qBAKlC,4BAA6B,KAAK;qBAmIlC,wBAAyB,OAAO,YAAU"}
@@ -1,143 +1,160 @@
1
- export const modalRailClass = 'ios-theme-vertical-bars-modal';
2
- const states = new WeakMap();
3
- export const topModal = (doc) => states.get(doc)?.top;
4
- export const modalUsesVerticalBars = (element) => {
5
- const modal = element.closest('ion-modal');
6
- return !modal || modal.classList.contains(modalRailClass);
1
+ //#region src/native/shared/modal.ts
2
+ /** Modal hosts cover the viewport even when their visible dialog is centered. */
3
+ const modalRailClass = "ios-theme-vertical-bars-modal";
4
+ const states = /* @__PURE__ */ new WeakMap();
5
+ const topModal = (doc) => states.get(doc)?.top;
6
+ const modalUsesVerticalBars = (element) => {
7
+ const modal = element.closest("ion-modal");
8
+ return !modal || modal.classList.contains("ios-theme-vertical-bars-modal");
7
9
  };
8
- export const inVerticalBarsSurface = (element) => {
9
- const modal = topModal(element.ownerDocument);
10
- return modal ? element.closest('ion-modal') === modal && modalUsesVerticalBars(element) : !element.closest('ion-modal');
10
+ /** Only the foreground modal may contribute controls; never the covered page. */
11
+ const inVerticalBarsSurface = (element) => {
12
+ const modal = topModal(element.ownerDocument);
13
+ return modal ? element.closest("ion-modal") === modal && modalUsesVerticalBars(element) : !element.closest("ion-modal");
11
14
  };
12
- export const observeVerticalBarsModals = (doc) => {
13
- const win = doc.defaultView;
14
- const state = {};
15
- states.set(doc, state);
16
- const presenting = new Set();
17
- const dismissed = new WeakSet();
18
- const observed = new Set();
19
- const listeners = new AbortController();
20
- let stopped = false;
21
- let frame = 0;
22
- let pointerActive = false;
23
- let bounds = '';
24
- const toolbarTop = '--ios-theme-vertical-bars-modal-offset-top';
25
- const refresh = () => {
26
- win.cancelAnimationFrame(frame);
27
- frame = 0;
28
- if (stopped)
29
- return;
30
- const app = doc.querySelector('ion-app.ios-theme-vertical-bars');
31
- const modals = Array.from(doc.querySelectorAll('ion-modal'));
32
- const active = modals.filter((modal) => !dismissed.has(modal) && (modal.presented || presenting.has(modal)));
33
- for (const modal of presenting)
34
- if (!modal.isConnected)
35
- presenting.delete(modal);
36
- const top = active.sort((a, b) => a.overlayIndex - b.overlayIndex).slice(-1)[0];
37
- let changed = state.top !== top;
38
- state.top = top;
39
- const nextBounds = top ? JSON.stringify(modalVerticalBarFrame(top)) : '';
40
- changed || (changed = bounds !== nextBounds);
41
- bounds = nextBounds;
42
- const wanted = new Set();
43
- for (const modal of modals) {
44
- const content = modal.shadowRoot?.querySelector('[part~="content"]');
45
- if (content)
46
- wanted.add(content);
47
- const fullWidth = !!content && Math.abs(content.offsetWidth - win.innerWidth) <= 1 && Math.abs(content.offsetLeft) <= 1;
48
- const enabled = !!app?.contains(modal) && active.includes(modal) && fullWidth;
49
- if (enabled) {
50
- const top = modalVerticalBarFrame(modal)?.y ?? 0;
51
- const offset = `${top}px`;
52
- if (modal.style.getPropertyValue(toolbarTop) !== offset) {
53
- modal.style.setProperty(toolbarTop, offset);
54
- changed = true;
55
- }
56
- }
57
- else
58
- modal.style.removeProperty(toolbarTop);
59
- if (modal.classList.contains(modalRailClass) !== enabled) {
60
- modal.classList.toggle(modalRailClass, enabled);
61
- changed = true;
62
- }
63
- }
64
- if (wanted.size !== observed.size || [...wanted].some((element) => !observed.has(element))) {
65
- resize?.disconnect();
66
- observer.disconnect();
67
- observer.observe(doc.documentElement, observation);
68
- observed.clear();
69
- for (const element of wanted) {
70
- resize?.observe(element);
71
- observer.observe(element, { attributes: true, attributeFilter: ['style', 'class'] });
72
- observed.add(element);
73
- }
74
- }
75
- if (changed)
76
- win.dispatchEvent(new Event('nativeUIShellRefresh'));
77
- if (top &&
78
- (pointerActive ||
79
- Array.from(wanted).some((element) => element.getAnimations().some((animation) => animation.playState === 'running'))))
80
- schedule();
81
- };
82
- const schedule = () => {
83
- if (!stopped && !frame)
84
- frame = win.requestAnimationFrame(refresh);
85
- };
86
- const resize = win.ResizeObserver ? new win.ResizeObserver(schedule) : undefined;
87
- const observer = new MutationObserver(schedule);
88
- const observation = { subtree: true, childList: true, attributes: true, attributeFilter: ['class', 'style'] };
89
- observer.observe(doc.documentElement, observation);
90
- for (const name of ['ionModalWillPresent', 'ionModalDidPresent', 'ionModalWillDismiss', 'ionModalDidDismiss', 'ionBreakpointDidChange']) {
91
- doc.addEventListener(name, (event) => {
92
- const modal = event.target;
93
- if (modal.localName !== 'ion-modal')
94
- return;
95
- if (name === 'ionModalDidDismiss') {
96
- presenting.delete(modal);
97
- dismissed.add(modal);
98
- }
99
- else {
100
- presenting.add(modal);
101
- dismissed.delete(modal);
102
- }
103
- refresh();
104
- }, { capture: true, signal: listeners.signal });
105
- }
106
- doc.addEventListener('pointerdown', (event) => {
107
- if (event.target.closest('ion-modal')) {
108
- pointerActive = true;
109
- schedule();
110
- }
111
- }, { capture: true, signal: listeners.signal });
112
- for (const name of ['pointerup', 'pointercancel'])
113
- doc.addEventListener(name, () => {
114
- pointerActive = false;
115
- schedule();
116
- }, { capture: true, signal: listeners.signal });
117
- win.addEventListener('resize', schedule, { signal: listeners.signal });
118
- win.addEventListener('nativeUIShellRefresh', schedule, { signal: listeners.signal });
119
- refresh();
120
- return () => {
121
- stopped = true;
122
- win.cancelAnimationFrame(frame);
123
- observer.disconnect();
124
- resize?.disconnect();
125
- listeners.abort();
126
- if (states.get(doc) !== state)
127
- return;
128
- states.delete(doc);
129
- doc.querySelectorAll(`.${modalRailClass}`).forEach((modal) => {
130
- modal.classList.remove(modalRailClass);
131
- modal.style.removeProperty(toolbarTop);
132
- });
133
- };
15
+ const observeVerticalBarsModals = (doc) => {
16
+ const win = doc.defaultView;
17
+ const state = {};
18
+ states.set(doc, state);
19
+ const presenting = /* @__PURE__ */ new Set();
20
+ const dismissed = /* @__PURE__ */ new WeakSet();
21
+ const observed = /* @__PURE__ */ new Set();
22
+ const listeners = new AbortController();
23
+ let stopped = false;
24
+ let frame = 0;
25
+ let pointerActive = false;
26
+ let bounds = "";
27
+ const toolbarTop = "--ios-theme-vertical-bars-modal-offset-top";
28
+ const refresh = () => {
29
+ win.cancelAnimationFrame(frame);
30
+ frame = 0;
31
+ if (stopped) return;
32
+ const app = doc.querySelector("ion-app.ios-theme-vertical-bars");
33
+ const modals = Array.from(doc.querySelectorAll("ion-modal"));
34
+ const active = modals.filter((modal) => !dismissed.has(modal) && (modal.presented || presenting.has(modal)));
35
+ for (const modal of presenting) if (!modal.isConnected) presenting.delete(modal);
36
+ const top = active.sort((a, b) => a.overlayIndex - b.overlayIndex).slice(-1)[0];
37
+ let changed = state.top !== top;
38
+ state.top = top;
39
+ const nextBounds = top ? JSON.stringify(modalVerticalBarFrame(top)) : "";
40
+ changed || (changed = bounds !== nextBounds);
41
+ bounds = nextBounds;
42
+ const wanted = /* @__PURE__ */ new Set();
43
+ for (const modal of modals) {
44
+ const content = modal.shadowRoot?.querySelector("[part~=\"content\"]");
45
+ if (content) wanted.add(content);
46
+ const fullWidth = !!content && Math.abs(content.offsetWidth - win.innerWidth) <= 1 && Math.abs(content.offsetLeft) <= 1;
47
+ const enabled = !!app?.contains(modal) && active.includes(modal) && fullWidth;
48
+ if (enabled) {
49
+ const offset = `${modalVerticalBarFrame(modal)?.y ?? 0}px`;
50
+ if (modal.style.getPropertyValue(toolbarTop) !== offset) {
51
+ modal.style.setProperty(toolbarTop, offset);
52
+ changed = true;
53
+ }
54
+ } else modal.style.removeProperty(toolbarTop);
55
+ if (modal.classList.contains("ios-theme-vertical-bars-modal") !== enabled) {
56
+ modal.classList.toggle(modalRailClass, enabled);
57
+ changed = true;
58
+ }
59
+ }
60
+ if (wanted.size !== observed.size || [...wanted].some((element) => !observed.has(element))) {
61
+ resize?.disconnect();
62
+ observer.disconnect();
63
+ observer.observe(doc.documentElement, observation);
64
+ observed.clear();
65
+ for (const element of wanted) {
66
+ resize?.observe(element);
67
+ observer.observe(element, {
68
+ attributes: true,
69
+ attributeFilter: ["style", "class"]
70
+ });
71
+ observed.add(element);
72
+ }
73
+ }
74
+ if (changed) win.dispatchEvent(new Event("nativeUIShellRefresh"));
75
+ if (top && (pointerActive || Array.from(wanted).some((element) => element.getAnimations().some((animation) => animation.playState === "running")))) schedule();
76
+ };
77
+ const schedule = () => {
78
+ if (!stopped && !frame) frame = win.requestAnimationFrame(refresh);
79
+ };
80
+ const resize = win.ResizeObserver ? new win.ResizeObserver(schedule) : void 0;
81
+ const observer = new MutationObserver(schedule);
82
+ const observation = {
83
+ subtree: true,
84
+ childList: true,
85
+ attributes: true,
86
+ attributeFilter: ["class", "style"]
87
+ };
88
+ observer.observe(doc.documentElement, observation);
89
+ for (const name of [
90
+ "ionModalWillPresent",
91
+ "ionModalDidPresent",
92
+ "ionModalWillDismiss",
93
+ "ionModalDidDismiss",
94
+ "ionBreakpointDidChange"
95
+ ]) doc.addEventListener(name, (event) => {
96
+ const modal = event.target;
97
+ if (modal.localName !== "ion-modal") return;
98
+ if (name === "ionModalDidDismiss") {
99
+ presenting.delete(modal);
100
+ dismissed.add(modal);
101
+ } else {
102
+ presenting.add(modal);
103
+ dismissed.delete(modal);
104
+ }
105
+ refresh();
106
+ }, {
107
+ capture: true,
108
+ signal: listeners.signal
109
+ });
110
+ doc.addEventListener("pointerdown", (event) => {
111
+ if (event.target.closest("ion-modal")) {
112
+ pointerActive = true;
113
+ schedule();
114
+ }
115
+ }, {
116
+ capture: true,
117
+ signal: listeners.signal
118
+ });
119
+ for (const name of ["pointerup", "pointercancel"]) doc.addEventListener(name, () => {
120
+ pointerActive = false;
121
+ schedule();
122
+ }, {
123
+ capture: true,
124
+ signal: listeners.signal
125
+ });
126
+ win.addEventListener("resize", schedule, { signal: listeners.signal });
127
+ win.addEventListener("nativeUIShellRefresh", schedule, { signal: listeners.signal });
128
+ refresh();
129
+ return () => {
130
+ stopped = true;
131
+ win.cancelAnimationFrame(frame);
132
+ observer.disconnect();
133
+ resize?.disconnect();
134
+ listeners.abort();
135
+ if (states.get(doc) !== state) return;
136
+ states.delete(doc);
137
+ doc.querySelectorAll(`.${modalRailClass}`).forEach((modal) => {
138
+ modal.classList.remove(modalRailClass);
139
+ modal.style.removeProperty(toolbarTop);
140
+ });
141
+ };
134
142
  };
135
- export const modalVerticalBarFrame = (modal) => {
136
- const rect = modal.shadowRoot?.querySelector('[part~="content"]')?.getBoundingClientRect();
137
- const win = modal.ownerDocument.defaultView;
138
- if (!rect)
139
- return;
140
- const y = Math.max(0, rect.top);
141
- const height = Math.min(win.innerHeight, rect.bottom) - y;
142
- return height > 0 ? { x: 0, y, width: win.innerWidth, height } : undefined;
143
+ /** Visible modal bounds, clipped at the viewport for Ionic's translated sheets. */
144
+ const modalVerticalBarFrame = (modal) => {
145
+ const rect = modal.shadowRoot?.querySelector("[part~=\"content\"]")?.getBoundingClientRect();
146
+ const win = modal.ownerDocument.defaultView;
147
+ if (!rect) return;
148
+ const y = Math.max(0, rect.top);
149
+ const height = Math.min(win.innerHeight, rect.bottom) - y;
150
+ return height > 0 ? {
151
+ x: 0,
152
+ y,
153
+ width: win.innerWidth,
154
+ height
155
+ } : void 0;
143
156
  };
157
+ //#endregion
158
+ export { inVerticalBarsSurface, modalRailClass, modalUsesVerticalBars, modalVerticalBarFrame, observeVerticalBarsModals, topModal };
159
+
160
+ //# sourceMappingURL=modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.js","names":[],"sources":["../../../src/native/shared/modal.ts"],"sourcesContent":["import type { Frame } from '../definitions';\n\n/** Modal hosts cover the viewport even when their visible dialog is centered. */\nexport const modalRailClass = 'ios-theme-vertical-bars-modal';\nconst states = new WeakMap<Document, { top?: HTMLIonModalElement }>();\n\nexport const topModal = (doc: Document): HTMLIonModalElement | undefined => states.get(doc)?.top;\nexport const modalUsesVerticalBars = (element: Element): boolean => {\n const modal = element.closest('ion-modal');\n return !modal || modal.classList.contains(modalRailClass);\n};\n\n/** Only the foreground modal may contribute controls; never the covered page. */\nexport const inVerticalBarsSurface = (element: Element): boolean => {\n const modal = topModal(element.ownerDocument);\n return modal ? element.closest('ion-modal') === modal && modalUsesVerticalBars(element) : !element.closest('ion-modal');\n};\n\nexport const observeVerticalBarsModals = (doc: Document): (() => void) => {\n const win = doc.defaultView!;\n const state: { top?: HTMLIonModalElement } = {};\n states.set(doc, state);\n const presenting = new Set<HTMLIonModalElement>();\n const dismissed = new WeakSet<HTMLIonModalElement>();\n const observed = new Set<Element>();\n const listeners = new AbortController();\n let stopped = false;\n let frame = 0;\n let pointerActive = false;\n let bounds = '';\n const toolbarTop = '--ios-theme-vertical-bars-modal-offset-top';\n const refresh = () => {\n win.cancelAnimationFrame(frame);\n frame = 0;\n if (stopped) return;\n const app = doc.querySelector('ion-app.ios-theme-vertical-bars');\n const modals = Array.from(doc.querySelectorAll<HTMLIonModalElement>('ion-modal'));\n const active = modals.filter(\n (modal) => !dismissed.has(modal) && ((modal as HTMLIonModalElement & { presented?: boolean }).presented || presenting.has(modal)),\n );\n for (const modal of presenting) if (!modal.isConnected) presenting.delete(modal);\n const top = active.sort((a, b) => a.overlayIndex - b.overlayIndex).slice(-1)[0];\n let changed = state.top !== top;\n state.top = top;\n const nextBounds = top ? JSON.stringify(modalVerticalBarFrame(top)) : '';\n changed ||= bounds !== nextBounds;\n bounds = nextBounds;\n const wanted = new Set<Element>();\n for (const modal of modals) {\n const content = modal.shadowRoot?.querySelector<HTMLElement>('[part~=\"content\"]');\n if (content) wanted.add(content);\n // offsetWidth is unaffected by Ionic's presentation transforms.\n const fullWidth = !!content && Math.abs(content.offsetWidth - win.innerWidth) <= 1 && Math.abs(content.offsetLeft) <= 1;\n const enabled = !!app?.contains(modal) && active.includes(modal) && fullWidth;\n if (enabled) {\n const top = modalVerticalBarFrame(modal)?.y ?? 0;\n const offset = `${top}px`;\n if (modal.style.getPropertyValue(toolbarTop) !== offset) {\n modal.style.setProperty(toolbarTop, offset);\n changed = true;\n }\n } else modal.style.removeProperty(toolbarTop);\n if (modal.classList.contains(modalRailClass) !== enabled) {\n modal.classList.toggle(modalRailClass, enabled);\n changed = true;\n }\n }\n if (wanted.size !== observed.size || [...wanted].some((element) => !observed.has(element))) {\n resize?.disconnect();\n observer.disconnect();\n observer.observe(doc.documentElement, observation);\n observed.clear();\n for (const element of wanted) {\n resize?.observe(element);\n observer.observe(element, { attributes: true, attributeFilter: ['style', 'class'] });\n observed.add(element);\n }\n }\n if (changed) win.dispatchEvent(new Event('nativeUIShellRefresh'));\n if (\n top &&\n (pointerActive ||\n Array.from(wanted).some((element) => element.getAnimations().some((animation) => animation.playState === 'running')))\n )\n schedule();\n };\n const schedule = () => {\n if (!stopped && !frame) frame = win.requestAnimationFrame(refresh);\n };\n const resize = win.ResizeObserver ? new win.ResizeObserver(schedule) : undefined;\n const observer = new MutationObserver(schedule);\n const observation = { subtree: true, childList: true, attributes: true, attributeFilter: ['class', 'style'] };\n observer.observe(doc.documentElement, observation);\n for (const name of ['ionModalWillPresent', 'ionModalDidPresent', 'ionModalWillDismiss', 'ionModalDidDismiss', 'ionBreakpointDidChange']) {\n doc.addEventListener(\n name,\n (event) => {\n const modal = event.target as HTMLIonModalElement;\n if (modal.localName !== 'ion-modal') return;\n if (name === 'ionModalDidDismiss') {\n presenting.delete(modal);\n dismissed.add(modal);\n } else {\n presenting.add(modal);\n dismissed.delete(modal);\n }\n refresh();\n },\n { capture: true, signal: listeners.signal },\n );\n }\n doc.addEventListener(\n 'pointerdown',\n (event) => {\n if ((event.target as Element).closest('ion-modal')) {\n pointerActive = true;\n schedule();\n }\n },\n { capture: true, signal: listeners.signal },\n );\n for (const name of ['pointerup', 'pointercancel'])\n doc.addEventListener(\n name,\n () => {\n pointerActive = false;\n schedule();\n },\n { capture: true, signal: listeners.signal },\n );\n win.addEventListener('resize', schedule, { signal: listeners.signal });\n win.addEventListener('nativeUIShellRefresh', schedule, { signal: listeners.signal });\n refresh();\n return () => {\n stopped = true;\n win.cancelAnimationFrame(frame);\n observer.disconnect();\n resize?.disconnect();\n listeners.abort();\n if (states.get(doc) !== state) return;\n states.delete(doc);\n doc.querySelectorAll<HTMLElement>(`.${modalRailClass}`).forEach((modal) => {\n modal.classList.remove(modalRailClass);\n modal.style.removeProperty(toolbarTop);\n });\n };\n};\n\n/** Visible modal bounds, clipped at the viewport for Ionic's translated sheets. */\nexport const modalVerticalBarFrame = (modal: Element): Frame | undefined => {\n const rect = modal.shadowRoot?.querySelector('[part~=\"content\"]')?.getBoundingClientRect();\n const win = modal.ownerDocument.defaultView!;\n if (!rect) return;\n const y = Math.max(0, rect.top);\n const height = Math.min(win.innerHeight, rect.bottom) - y;\n return height > 0 ? { x: 0, y, width: win.innerWidth, height } : undefined;\n};\n"],"mappings":";;AAGA,MAAa,iBAAiB;AAC9B,MAAM,yBAAS,IAAI,QAAiD;AAEpE,MAAa,YAAY,QAAmD,OAAO,IAAI,GAAG,CAAC,EAAE;AAC7F,MAAa,yBAAyB,YAA8B;CAClE,MAAM,QAAQ,QAAQ,QAAQ,WAAW;CACzC,OAAO,CAAC,SAAS,MAAM,UAAU,SAAA,+BAAuB;AAC1D;;AAGA,MAAa,yBAAyB,YAA8B;CAClE,MAAM,QAAQ,SAAS,QAAQ,aAAa;CAC5C,OAAO,QAAQ,QAAQ,QAAQ,WAAW,MAAM,SAAS,sBAAsB,OAAO,IAAI,CAAC,QAAQ,QAAQ,WAAW;AACxH;AAEA,MAAa,6BAA6B,QAAgC;CACxE,MAAM,MAAM,IAAI;CAChB,MAAM,QAAuC,CAAC;CAC9C,OAAO,IAAI,KAAK,KAAK;CACrB,MAAM,6BAAa,IAAI,IAAyB;CAChD,MAAM,4BAAY,IAAI,QAA6B;CACnD,MAAM,2BAAW,IAAI,IAAa;CAClC,MAAM,YAAY,IAAI,gBAAgB;CACtC,IAAI,UAAU;CACd,IAAI,QAAQ;CACZ,IAAI,gBAAgB;CACpB,IAAI,SAAS;CACb,MAAM,aAAa;CACnB,MAAM,gBAAgB;EACpB,IAAI,qBAAqB,KAAK;EAC9B,QAAQ;EACR,IAAI,SAAS;EACb,MAAM,MAAM,IAAI,cAAc,iCAAiC;EAC/D,MAAM,SAAS,MAAM,KAAK,IAAI,iBAAsC,WAAW,CAAC;EAChF,MAAM,SAAS,OAAO,QACnB,UAAU,CAAC,UAAU,IAAI,KAAK,MAAO,MAAwD,aAAa,WAAW,IAAI,KAAK,EACjI;EACA,KAAK,MAAM,SAAS,YAAY,IAAI,CAAC,MAAM,aAAa,WAAW,OAAO,KAAK;EAC/E,MAAM,MAAM,OAAO,MAAM,GAAG,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;EAC7E,IAAI,UAAU,MAAM,QAAQ;EAC5B,MAAM,MAAM;EACZ,MAAM,aAAa,MAAM,KAAK,UAAU,sBAAsB,GAAG,CAAC,IAAI;EACtE,YAAA,UAAY,WAAW;EACvB,SAAS;EACT,MAAM,yBAAS,IAAI,IAAa;EAChC,KAAK,MAAM,SAAS,QAAQ;GAC1B,MAAM,UAAU,MAAM,YAAY,cAA2B,qBAAmB;GAChF,IAAI,SAAS,OAAO,IAAI,OAAO;GAE/B,MAAM,YAAY,CAAC,CAAC,WAAW,KAAK,IAAI,QAAQ,cAAc,IAAI,UAAU,KAAK,KAAK,KAAK,IAAI,QAAQ,UAAU,KAAK;GACtH,MAAM,UAAU,CAAC,CAAC,KAAK,SAAS,KAAK,KAAK,OAAO,SAAS,KAAK,KAAK;GACpE,IAAI,SAAS;IAEX,MAAM,SAAS,GADH,sBAAsB,KAAK,CAAC,EAAE,KAAK,EACzB;IACtB,IAAI,MAAM,MAAM,iBAAiB,UAAU,MAAM,QAAQ;KACvD,MAAM,MAAM,YAAY,YAAY,MAAM;KAC1C,UAAU;IACZ;GACF,OAAO,MAAM,MAAM,eAAe,UAAU;GAC5C,IAAI,MAAM,UAAU,SAAA,+BAAuB,MAAM,SAAS;IACxD,MAAM,UAAU,OAAO,gBAAgB,OAAO;IAC9C,UAAU;GACZ;EACF;EACA,IAAI,OAAO,SAAS,SAAS,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,YAAY,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG;GAC1F,QAAQ,WAAW;GACnB,SAAS,WAAW;GACpB,SAAS,QAAQ,IAAI,iBAAiB,WAAW;GACjD,SAAS,MAAM;GACf,KAAK,MAAM,WAAW,QAAQ;IAC5B,QAAQ,QAAQ,OAAO;IACvB,SAAS,QAAQ,SAAS;KAAE,YAAY;KAAM,iBAAiB,CAAC,SAAS,OAAO;IAAE,CAAC;IACnF,SAAS,IAAI,OAAO;GACtB;EACF;EACA,IAAI,SAAS,IAAI,cAAc,IAAI,MAAM,sBAAsB,CAAC;EAChE,IACE,QACC,iBACC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,YAAY,QAAQ,cAAc,CAAC,CAAC,MAAM,cAAc,UAAU,cAAc,SAAS,CAAC,IAErH,SAAS;CACb;CACA,MAAM,iBAAiB;EACrB,IAAI,CAAC,WAAW,CAAC,OAAO,QAAQ,IAAI,sBAAsB,OAAO;CACnE;CACA,MAAM,SAAS,IAAI,iBAAiB,IAAI,IAAI,eAAe,QAAQ,IAAI,KAAA;CACvE,MAAM,WAAW,IAAI,iBAAiB,QAAQ;CAC9C,MAAM,cAAc;EAAE,SAAS;EAAM,WAAW;EAAM,YAAY;EAAM,iBAAiB,CAAC,SAAS,OAAO;CAAE;CAC5G,SAAS,QAAQ,IAAI,iBAAiB,WAAW;CACjD,KAAK,MAAM,QAAQ;EAAC;EAAuB;EAAsB;EAAuB;EAAsB;CAAwB,GACpI,IAAI,iBACF,OACC,UAAU;EACT,MAAM,QAAQ,MAAM;EACpB,IAAI,MAAM,cAAc,aAAa;EACrC,IAAI,SAAS,sBAAsB;GACjC,WAAW,OAAO,KAAK;GACvB,UAAU,IAAI,KAAK;EACrB,OAAO;GACL,WAAW,IAAI,KAAK;GACpB,UAAU,OAAO,KAAK;EACxB;EACA,QAAQ;CACV,GACA;EAAE,SAAS;EAAM,QAAQ,UAAU;CAAO,CAC5C;CAEF,IAAI,iBACF,gBACC,UAAU;EACT,IAAK,MAAM,OAAmB,QAAQ,WAAW,GAAG;GAClD,gBAAgB;GAChB,SAAS;EACX;CACF,GACA;EAAE,SAAS;EAAM,QAAQ,UAAU;CAAO,CAC5C;CACA,KAAK,MAAM,QAAQ,CAAC,aAAa,eAAe,GAC9C,IAAI,iBACF,YACM;EACJ,gBAAgB;EAChB,SAAS;CACX,GACA;EAAE,SAAS;EAAM,QAAQ,UAAU;CAAO,CAC5C;CACF,IAAI,iBAAiB,UAAU,UAAU,EAAE,QAAQ,UAAU,OAAO,CAAC;CACrE,IAAI,iBAAiB,wBAAwB,UAAU,EAAE,QAAQ,UAAU,OAAO,CAAC;CACnF,QAAQ;CACR,aAAa;EACX,UAAU;EACV,IAAI,qBAAqB,KAAK;EAC9B,SAAS,WAAW;EACpB,QAAQ,WAAW;EACnB,UAAU,MAAM;EAChB,IAAI,OAAO,IAAI,GAAG,MAAM,OAAO;EAC/B,OAAO,OAAO,GAAG;EACjB,IAAI,iBAA8B,IAAI,gBAAgB,CAAC,CAAC,SAAS,UAAU;GACzE,MAAM,UAAU,OAAO,cAAc;GACrC,MAAM,MAAM,eAAe,UAAU;EACvC,CAAC;CACH;AACF;;AAGA,MAAa,yBAAyB,UAAsC;CAC1E,MAAM,OAAO,MAAM,YAAY,cAAc,qBAAmB,CAAC,EAAE,sBAAsB;CACzF,MAAM,MAAM,MAAM,cAAc;CAChC,IAAI,CAAC,MAAM;CACX,MAAM,IAAI,KAAK,IAAI,GAAG,KAAK,GAAG;CAC9B,MAAM,SAAS,KAAK,IAAI,IAAI,aAAa,KAAK,MAAM,IAAI;CACxD,OAAO,SAAS,IAAI;EAAE,GAAG;EAAG;EAAG,OAAO,IAAI;EAAY;CAAO,IAAI,KAAA;AACnE"}
@@ -1,3 +1,5 @@
1
- import type { NativeUIShellHandle, NativeUIShellOptions } from './definitions';
1
+ import { NativeUIShellHandle, NativeUIShellOptions } from "./definitions.js";
2
+ //#region src/native/vertical-bars-web.d.ts
2
3
  export declare const createVerticalBarsWebProjection: (doc: Document, options: NativeUIShellOptions, enabled?: () => boolean) => NativeUIShellHandle;
4
+ //#endregion
3
5
  //# sourceMappingURL=vertical-bars-web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vertical-bars-web.d.ts","sourceRoot":"","sources":["../../src/native/vertical-bars-web.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAuB,MAAM,eAAe,CAAC;AAqCpG,eAAO,MAAM,+BAA+B,GAC1C,KAAK,QAAQ,EACb,SAAS,oBAAoB,EAC7B,UAAS,MAAM,OAAoB,KAClC,mBAoVF,CAAC"}
1
+ {"version":3,"file":"vertical-bars-web.d.ts","names":[],"sources":["../../src/native/vertical-bars-web.ts"],"mappings":";;qBAsCa,kCACX,KAAK,UACL,SAAS,sBACT,4BACC"}