@1money/component-ui 0.0.95-alpha.1 → 0.0.95-alpha.3

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 (117) hide show
  1. package/es/business/Dialog/BaseDialog/BaseDialog.d.ts +0 -1
  2. package/es/business/Dialog/BaseDialog/BaseDialog.js +43 -66
  3. package/es/business/Dialog/BaseDialog/constants.d.ts +7 -8
  4. package/es/business/Dialog/BaseDialog/constants.js +8 -9
  5. package/es/business/Dialog/variants/LoadingDialog.js +3 -3
  6. package/es/business/{PageForm → Form/PageForm}/PageForm.d.ts +1 -1
  7. package/es/business/Form/PageForm/PageForm.js +97 -0
  8. package/es/business/Form/PageForm/index.js +5 -0
  9. package/es/business/{PageForm → Form/PageForm}/interface.d.ts +5 -5
  10. package/es/business/Form/PageForm/interface.js +2 -0
  11. package/es/business/Form/ResultForm/ResultForm.d.ts +2 -0
  12. package/es/business/Form/ResultForm/ResultForm.js +38 -0
  13. package/es/business/Form/ResultForm/index.d.ts +4 -0
  14. package/es/business/Form/ResultForm/index.js +5 -0
  15. package/es/business/Form/ResultForm/interface.d.ts +10 -0
  16. package/es/business/Form/ResultForm/interface.js +2 -0
  17. package/es/business/Form/index.d.ts +3 -0
  18. package/es/business/Form/index.js +15 -0
  19. package/es/business/Form/variants/ExpiredForm.d.ts +3 -0
  20. package/es/business/Form/variants/ExpiredForm.js +21 -0
  21. package/es/business/Form/variants/FailureForm.d.ts +3 -0
  22. package/es/business/Form/variants/FailureForm.js +20 -0
  23. package/es/business/Form/variants/PendingForm.d.ts +3 -0
  24. package/es/business/Form/variants/PendingForm.js +20 -0
  25. package/es/business/Form/variants/SuccessForm.d.ts +3 -0
  26. package/es/business/Form/variants/SuccessForm.js +20 -0
  27. package/es/business/Form/variants/index.d.ts +8 -0
  28. package/es/business/Form/variants/index.js +12 -0
  29. package/es/business/index.d.ts +1 -1
  30. package/es/business/index.js +2 -2
  31. package/es/components/ActionBar/ActionBar.js +3 -4
  32. package/es/components/ActionBar/interface.d.ts +7 -2
  33. package/es/components/Dialog/interface.d.ts +10 -4
  34. package/es/components/FormLayout/interface.d.ts +6 -1
  35. package/es/components/PanelLayout/PanelLayout.d.ts +3 -0
  36. package/es/components/PanelLayout/PanelLayout.js +162 -0
  37. package/es/components/PanelLayout/constants.d.ts +60 -0
  38. package/es/components/PanelLayout/constants.js +48 -0
  39. package/es/components/PanelLayout/index.d.ts +6 -0
  40. package/es/components/PanelLayout/index.js +6 -0
  41. package/es/components/PanelLayout/interface.d.ts +73 -0
  42. package/es/components/PanelLayout/interface.js +2 -0
  43. package/es/components/PanelLayout/style/PanelLayout.css +50 -0
  44. package/es/components/PanelLayout/style/css.js +2 -0
  45. package/es/components/PanelLayout/style/index.d.ts +1 -0
  46. package/es/components/PanelLayout/style/index.js +2 -0
  47. package/es/index.css +1 -1
  48. package/es/index.d.ts +2 -0
  49. package/es/index.js +2 -1
  50. package/lib/business/Dialog/BaseDialog/BaseDialog.d.ts +0 -1
  51. package/lib/business/Dialog/BaseDialog/BaseDialog.js +42 -65
  52. package/lib/business/Dialog/BaseDialog/constants.d.ts +7 -8
  53. package/lib/business/Dialog/BaseDialog/constants.js +9 -10
  54. package/lib/business/Dialog/variants/LoadingDialog.js +3 -3
  55. package/lib/business/{PageForm → Form/PageForm}/PageForm.d.ts +1 -1
  56. package/lib/business/Form/PageForm/PageForm.js +103 -0
  57. package/lib/business/Form/PageForm/index.js +30 -0
  58. package/lib/business/{PageForm → Form/PageForm}/interface.d.ts +5 -5
  59. package/lib/business/Form/PageForm/interface.js +6 -0
  60. package/lib/business/Form/ResultForm/ResultForm.d.ts +2 -0
  61. package/lib/business/Form/ResultForm/ResultForm.js +44 -0
  62. package/lib/business/Form/ResultForm/index.d.ts +4 -0
  63. package/lib/business/Form/ResultForm/index.js +30 -0
  64. package/lib/business/Form/ResultForm/interface.d.ts +10 -0
  65. package/lib/business/Form/ResultForm/interface.js +6 -0
  66. package/lib/business/Form/index.d.ts +3 -0
  67. package/lib/business/Form/index.js +39 -0
  68. package/lib/business/Form/variants/ExpiredForm.d.ts +3 -0
  69. package/lib/business/Form/variants/ExpiredForm.js +27 -0
  70. package/lib/business/Form/variants/FailureForm.d.ts +3 -0
  71. package/lib/business/Form/variants/FailureForm.js +26 -0
  72. package/lib/business/Form/variants/PendingForm.d.ts +3 -0
  73. package/lib/business/Form/variants/PendingForm.js +26 -0
  74. package/lib/business/Form/variants/SuccessForm.d.ts +3 -0
  75. package/lib/business/Form/variants/SuccessForm.js +26 -0
  76. package/lib/business/Form/variants/index.d.ts +8 -0
  77. package/lib/business/Form/variants/index.js +34 -0
  78. package/lib/business/index.d.ts +1 -1
  79. package/lib/business/index.js +5 -5
  80. package/lib/components/ActionBar/ActionBar.js +3 -4
  81. package/lib/components/ActionBar/interface.d.ts +7 -2
  82. package/lib/components/Dialog/interface.d.ts +10 -4
  83. package/lib/components/FormLayout/interface.d.ts +6 -1
  84. package/lib/components/PanelLayout/PanelLayout.d.ts +3 -0
  85. package/lib/components/PanelLayout/PanelLayout.js +171 -0
  86. package/lib/components/PanelLayout/constants.d.ts +60 -0
  87. package/lib/components/PanelLayout/constants.js +54 -0
  88. package/lib/components/PanelLayout/index.d.ts +6 -0
  89. package/lib/components/PanelLayout/index.js +52 -0
  90. package/lib/components/PanelLayout/interface.d.ts +73 -0
  91. package/lib/components/PanelLayout/interface.js +6 -0
  92. package/lib/components/PanelLayout/style/PanelLayout.css +50 -0
  93. package/lib/components/PanelLayout/style/css.js +4 -0
  94. package/lib/components/PanelLayout/style/index.d.ts +1 -0
  95. package/lib/components/PanelLayout/style/index.js +4 -0
  96. package/lib/index.css +1 -1
  97. package/lib/index.d.ts +2 -0
  98. package/lib/index.js +14 -1
  99. package/package.json +29 -4
  100. package/scripts/mcp-server/examples.generated.json +42 -0
  101. package/scripts/mcp-server/index.generated.json +236 -3
  102. package/es/business/Dialog/BaseDialog/style/BaseDialog.css +0 -72
  103. package/es/business/Dialog/BaseDialog/style/css.js +0 -2
  104. package/es/business/Dialog/BaseDialog/style/index.d.ts +0 -1
  105. package/es/business/Dialog/BaseDialog/style/index.js +0 -2
  106. package/es/business/PageForm/PageForm.js +0 -97
  107. package/es/business/PageForm/index.js +0 -5
  108. package/es/business/PageForm/interface.js +0 -2
  109. package/lib/business/Dialog/BaseDialog/style/BaseDialog.css +0 -72
  110. package/lib/business/Dialog/BaseDialog/style/css.js +0 -4
  111. package/lib/business/Dialog/BaseDialog/style/index.d.ts +0 -1
  112. package/lib/business/Dialog/BaseDialog/style/index.js +0 -4
  113. package/lib/business/PageForm/PageForm.js +0 -103
  114. package/lib/business/PageForm/index.js +0 -30
  115. package/lib/business/PageForm/interface.js +0 -6
  116. /package/es/business/{PageForm → Form/PageForm}/index.d.ts +0 -0
  117. /package/lib/business/{PageForm → Form/PageForm}/index.d.ts +0 -0
@@ -0,0 +1,15 @@
1
+ // Form — scenario shells for the PAGE host, one per surface kind:
2
+ // `PageForm` mounts a ProForm inside FormLayout, `ResultForm` pins
3
+ // PanelLayout to the page. Their dialog counterparts (FormDialog /
4
+ // BaseDialog) live in `business/Dialog`, and both pairs are the same
5
+ // ingredients rearranged: the page shells use a panel directly, the dialog
6
+ // shells wrap one in `Dialog(bare)`.
7
+ //
8
+ // NOTE: `PageForm` used to sit at `business/PageForm`, and that subpath is
9
+ // still published (package.json maps it here) so existing imports keep
10
+ // resolving. New code should use `business/Form/PageForm` — or just the
11
+ // `business` barrel, which is how the app imports it today.
12
+ export * from './PageForm';
13
+ export * from './ResultForm';
14
+ export * from './variants';
15
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NyYy9idXNpbmVzcy9Gb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLFlBQVk7QUFDMUIsY0FBYyxjQUFjO0FBQzVCLGNBQWMsWUFBWSIsImZpbGUiOiJidXNpbmVzcy9Gb3JtL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,3 @@
1
+ import type { ResultFormProps } from '../ResultForm';
2
+ export type ExpiredFormProps = ResultFormProps;
3
+ export declare const ExpiredForm: import("react").NamedExoticComponent<ResultFormProps>;
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import { ResultForm } from '../ResultForm';
4
+ /**
5
+ * `ResultForm` preset for expired links (verification, invitation, password
6
+ * reset). It has no dialog counterpart: an expired link is always something
7
+ * the user LANDS on from an email, never something a dialog opens onto.
8
+ *
9
+ * Shape only. Copy (title / description / labels) always comes from the
10
+ * caller; product copy never lives in the library.
11
+ */
12
+ var ExpiredFormBase = function ExpiredFormBase(props) {
13
+ return (
14
+ // The preset leads so an explicit `illustration` still wins.
15
+ _jsx(ResultForm, Object.assign({
16
+ illustration: 'illusLinkExpired'
17
+ }, props))
18
+ );
19
+ };
20
+ export var ExpiredForm = /*#__PURE__*/memo(ExpiredFormBase);
21
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0Zvcm0vdmFyaWFudHMvRXhwaXJlZEZvcm0uanMiLCJidXNpbmVzcy9Gb3JtL3NyYy9idXNpbmVzcy9Gb3JtL3ZhcmlhbnRzL0V4cGlyZWRGb3JtLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwibWVtbyIsIlJlc3VsdEZvcm0iLCJFeHBpcmVkRm9ybUJhc2UiLCJwcm9wcyIsIk9iamVjdCIsImFzc2lnbiIsImlsbHVzdHJhdGlvbiIsIkV4cGlyZWRGb3JtIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBL0MsU0FBU0MsSUFBSSxRQUFRLE9BQU87QUFDNUIsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFNMUM7QURIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ0tBLElBQU1DLGVBQWUsR0FBeUIsU0FBeENBLGVBQWVBLENBQTBCQyxLQUFLO0VBQUE7SUFDbEQ7SUFDQUosSUFBQSxDQUFDRSxVQUFVLEVBQUFHLE1BQUEsQ0FBQUMsTUFBQSxDQUFBO01BQUNDLFlBQVksRUFBQztJQUFrQixDQUFBLEVBQUtILEtBQUssQ0FBQTtFQUFJO0FBQUEsQ0FDMUQ7QUFFRCxPQUFPLElBQU1JLFdBQVcsZ0JBQUdQLElBQUksQ0FBQ0UsZUFBZSxDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0Zvcm0vdmFyaWFudHMvRXhwaXJlZEZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFJlc3VsdEZvcm0gfSBmcm9tICcuLi9SZXN1bHRGb3JtJztcbi8qKlxuICogYFJlc3VsdEZvcm1gIHByZXNldCBmb3IgZXhwaXJlZCBsaW5rcyAodmVyaWZpY2F0aW9uLCBpbnZpdGF0aW9uLCBwYXNzd29yZFxuICogcmVzZXQpLiBJdCBoYXMgbm8gZGlhbG9nIGNvdW50ZXJwYXJ0OiBhbiBleHBpcmVkIGxpbmsgaXMgYWx3YXlzIHNvbWV0aGluZ1xuICogdGhlIHVzZXIgTEFORFMgb24gZnJvbSBhbiBlbWFpbCwgbmV2ZXIgc29tZXRoaW5nIGEgZGlhbG9nIG9wZW5zIG9udG8uXG4gKlxuICogU2hhcGUgb25seS4gQ29weSAodGl0bGUgLyBkZXNjcmlwdGlvbiAvIGxhYmVscykgYWx3YXlzIGNvbWVzIGZyb20gdGhlXG4gKiBjYWxsZXI7IHByb2R1Y3QgY29weSBuZXZlciBsaXZlcyBpbiB0aGUgbGlicmFyeS5cbiAqL1xuY29uc3QgRXhwaXJlZEZvcm1CYXNlID0gKHByb3BzKSA9PiAoXG4vLyBUaGUgcHJlc2V0IGxlYWRzIHNvIGFuIGV4cGxpY2l0IGBpbGx1c3RyYXRpb25gIHN0aWxsIHdpbnMuXG5fanN4KFJlc3VsdEZvcm0sIE9iamVjdC5hc3NpZ24oeyBpbGx1c3RyYXRpb246ICdpbGx1c0xpbmtFeHBpcmVkJyB9LCBwcm9wcykpKTtcbmV4cG9ydCBjb25zdCBFeHBpcmVkRm9ybSA9IG1lbW8oRXhwaXJlZEZvcm1CYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,3 @@
1
+ import type { ResultFormProps } from '../ResultForm';
2
+ export type FailureFormProps = ResultFormProps;
3
+ export declare const FailureForm: import("react").NamedExoticComponent<ResultFormProps>;
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import { ResultForm } from '../ResultForm';
4
+ /**
5
+ * `ResultForm` preset for failure results on a page — the page counterpart of
6
+ * `FailureDialog`, carrying the same illustration.
7
+ *
8
+ * Shape only. Copy (title / description / labels) always comes from the
9
+ * caller; product copy never lives in the library.
10
+ */
11
+ var FailureFormBase = function FailureFormBase(props) {
12
+ return (
13
+ // The preset leads so an explicit `illustration` still wins.
14
+ _jsx(ResultForm, Object.assign({
15
+ illustration: 'illusError'
16
+ }, props))
17
+ );
18
+ };
19
+ export var FailureForm = /*#__PURE__*/memo(FailureFormBase);
20
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0Zvcm0vdmFyaWFudHMvRmFpbHVyZUZvcm0uanMiLCJidXNpbmVzcy9Gb3JtL3NyYy9idXNpbmVzcy9Gb3JtL3ZhcmlhbnRzL0ZhaWx1cmVGb3JtLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwibWVtbyIsIlJlc3VsdEZvcm0iLCJGYWlsdXJlRm9ybUJhc2UiLCJwcm9wcyIsIk9iamVjdCIsImFzc2lnbiIsImlsbHVzdHJhdGlvbiIsIkZhaWx1cmVGb3JtIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBL0MsU0FBU0MsSUFBSSxRQUFRLE9BQU87QUFDNUIsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFNMUM7QURIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNLQSxJQUFNQyxlQUFlLEdBQXlCLFNBQXhDQSxlQUFlQSxDQUEwQkMsS0FBSztFQUFBO0lBQ2xEO0lBQ0FKLElBQUEsQ0FBQ0UsVUFBVSxFQUFBRyxNQUFBLENBQUFDLE1BQUEsQ0FBQTtNQUFDQyxZQUFZLEVBQUM7SUFBWSxDQUFBLEVBQUtILEtBQUssQ0FBQTtFQUFJO0FBQUEsQ0FDcEQ7QUFFRCxPQUFPLElBQU1JLFdBQVcsZ0JBQUdQLElBQUksQ0FBQ0UsZUFBZSxDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0Zvcm0vdmFyaWFudHMvRmFpbHVyZUZvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFJlc3VsdEZvcm0gfSBmcm9tICcuLi9SZXN1bHRGb3JtJztcbi8qKlxuICogYFJlc3VsdEZvcm1gIHByZXNldCBmb3IgZmFpbHVyZSByZXN1bHRzIG9uIGEgcGFnZSDigJQgdGhlIHBhZ2UgY291bnRlcnBhcnQgb2ZcbiAqIGBGYWlsdXJlRGlhbG9nYCwgY2FycnlpbmcgdGhlIHNhbWUgaWxsdXN0cmF0aW9uLlxuICpcbiAqIFNoYXBlIG9ubHkuIENvcHkgKHRpdGxlIC8gZGVzY3JpcHRpb24gLyBsYWJlbHMpIGFsd2F5cyBjb21lcyBmcm9tIHRoZVxuICogY2FsbGVyOyBwcm9kdWN0IGNvcHkgbmV2ZXIgbGl2ZXMgaW4gdGhlIGxpYnJhcnkuXG4gKi9cbmNvbnN0IEZhaWx1cmVGb3JtQmFzZSA9IChwcm9wcykgPT4gKFxuLy8gVGhlIHByZXNldCBsZWFkcyBzbyBhbiBleHBsaWNpdCBgaWxsdXN0cmF0aW9uYCBzdGlsbCB3aW5zLlxuX2pzeChSZXN1bHRGb3JtLCBPYmplY3QuYXNzaWduKHsgaWxsdXN0cmF0aW9uOiAnaWxsdXNFcnJvcicgfSwgcHJvcHMpKSk7XG5leHBvcnQgY29uc3QgRmFpbHVyZUZvcm0gPSBtZW1vKEZhaWx1cmVGb3JtQmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,3 @@
1
+ import type { ResultFormProps } from '../ResultForm';
2
+ export type PendingFormProps = ResultFormProps;
3
+ export declare const PendingForm: import("react").NamedExoticComponent<ResultFormProps>;
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import { ResultForm } from '../ResultForm';
4
+ /**
5
+ * `ResultForm` preset for pending / in-review results on a page — the page
6
+ * counterpart of `PendingDialog`, carrying the same illustration.
7
+ *
8
+ * Shape only. Copy (title / description / labels) always comes from the
9
+ * caller; product copy never lives in the library.
10
+ */
11
+ var PendingFormBase = function PendingFormBase(props) {
12
+ return (
13
+ // The preset leads so an explicit `illustration` still wins.
14
+ _jsx(ResultForm, Object.assign({
15
+ illustration: 'illusPending'
16
+ }, props))
17
+ );
18
+ };
19
+ export var PendingForm = /*#__PURE__*/memo(PendingFormBase);
20
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0Zvcm0vdmFyaWFudHMvUGVuZGluZ0Zvcm0uanMiLCJidXNpbmVzcy9Gb3JtL3NyYy9idXNpbmVzcy9Gb3JtL3ZhcmlhbnRzL1BlbmRpbmdGb3JtLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwibWVtbyIsIlJlc3VsdEZvcm0iLCJQZW5kaW5nRm9ybUJhc2UiLCJwcm9wcyIsIk9iamVjdCIsImFzc2lnbiIsImlsbHVzdHJhdGlvbiIsIlBlbmRpbmdGb3JtIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBL0MsU0FBU0MsSUFBSSxRQUFRLE9BQU87QUFDNUIsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFNMUM7QURIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNLQSxJQUFNQyxlQUFlLEdBQXlCLFNBQXhDQSxlQUFlQSxDQUEwQkMsS0FBSztFQUFBO0lBQ2xEO0lBQ0FKLElBQUEsQ0FBQ0UsVUFBVSxFQUFBRyxNQUFBLENBQUFDLE1BQUEsQ0FBQTtNQUFDQyxZQUFZLEVBQUM7SUFBYyxDQUFBLEVBQUtILEtBQUssQ0FBQTtFQUFJO0FBQUEsQ0FDdEQ7QUFFRCxPQUFPLElBQU1JLFdBQVcsZ0JBQUdQLElBQUksQ0FBQ0UsZUFBZSxDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0Zvcm0vdmFyaWFudHMvUGVuZGluZ0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFJlc3VsdEZvcm0gfSBmcm9tICcuLi9SZXN1bHRGb3JtJztcbi8qKlxuICogYFJlc3VsdEZvcm1gIHByZXNldCBmb3IgcGVuZGluZyAvIGluLXJldmlldyByZXN1bHRzIG9uIGEgcGFnZSDigJQgdGhlIHBhZ2VcbiAqIGNvdW50ZXJwYXJ0IG9mIGBQZW5kaW5nRGlhbG9nYCwgY2FycnlpbmcgdGhlIHNhbWUgaWxsdXN0cmF0aW9uLlxuICpcbiAqIFNoYXBlIG9ubHkuIENvcHkgKHRpdGxlIC8gZGVzY3JpcHRpb24gLyBsYWJlbHMpIGFsd2F5cyBjb21lcyBmcm9tIHRoZVxuICogY2FsbGVyOyBwcm9kdWN0IGNvcHkgbmV2ZXIgbGl2ZXMgaW4gdGhlIGxpYnJhcnkuXG4gKi9cbmNvbnN0IFBlbmRpbmdGb3JtQmFzZSA9IChwcm9wcykgPT4gKFxuLy8gVGhlIHByZXNldCBsZWFkcyBzbyBhbiBleHBsaWNpdCBgaWxsdXN0cmF0aW9uYCBzdGlsbCB3aW5zLlxuX2pzeChSZXN1bHRGb3JtLCBPYmplY3QuYXNzaWduKHsgaWxsdXN0cmF0aW9uOiAnaWxsdXNQZW5kaW5nJyB9LCBwcm9wcykpKTtcbmV4cG9ydCBjb25zdCBQZW5kaW5nRm9ybSA9IG1lbW8oUGVuZGluZ0Zvcm1CYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,3 @@
1
+ import type { ResultFormProps } from '../ResultForm';
2
+ export type SuccessFormProps = ResultFormProps;
3
+ export declare const SuccessForm: import("react").NamedExoticComponent<ResultFormProps>;
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import { ResultForm } from '../ResultForm';
4
+ /**
5
+ * `ResultForm` preset for success results on a page — the page counterpart of
6
+ * `SuccessDialog`, carrying the same illustration.
7
+ *
8
+ * Shape only. Copy (title / description / labels) always comes from the
9
+ * caller; product copy never lives in the library.
10
+ */
11
+ var SuccessFormBase = function SuccessFormBase(props) {
12
+ return (
13
+ // The preset leads so an explicit `illustration` still wins.
14
+ _jsx(ResultForm, Object.assign({
15
+ illustration: 'illusChecked'
16
+ }, props))
17
+ );
18
+ };
19
+ export var SuccessForm = /*#__PURE__*/memo(SuccessFormBase);
20
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0Zvcm0vdmFyaWFudHMvU3VjY2Vzc0Zvcm0uanMiLCJidXNpbmVzcy9Gb3JtL3NyYy9idXNpbmVzcy9Gb3JtL3ZhcmlhbnRzL1N1Y2Nlc3NGb3JtLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwibWVtbyIsIlJlc3VsdEZvcm0iLCJTdWNjZXNzRm9ybUJhc2UiLCJwcm9wcyIsIk9iamVjdCIsImFzc2lnbiIsImlsbHVzdHJhdGlvbiIsIlN1Y2Nlc3NGb3JtIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBL0MsU0FBU0MsSUFBSSxRQUFRLE9BQU87QUFDNUIsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFNMUM7QURIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNLQSxJQUFNQyxlQUFlLEdBQXlCLFNBQXhDQSxlQUFlQSxDQUEwQkMsS0FBSztFQUFBO0lBQ2xEO0lBQ0FKLElBQUEsQ0FBQ0UsVUFBVSxFQUFBRyxNQUFBLENBQUFDLE1BQUEsQ0FBQTtNQUFDQyxZQUFZLEVBQUM7SUFBYyxDQUFBLEVBQUtILEtBQUssQ0FBQTtFQUFJO0FBQUEsQ0FDdEQ7QUFFRCxPQUFPLElBQU1JLFdBQVcsZ0JBQUdQLElBQUksQ0FBQ0UsZUFBZSxDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0Zvcm0vdmFyaWFudHMvU3VjY2Vzc0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFJlc3VsdEZvcm0gfSBmcm9tICcuLi9SZXN1bHRGb3JtJztcbi8qKlxuICogYFJlc3VsdEZvcm1gIHByZXNldCBmb3Igc3VjY2VzcyByZXN1bHRzIG9uIGEgcGFnZSDigJQgdGhlIHBhZ2UgY291bnRlcnBhcnQgb2ZcbiAqIGBTdWNjZXNzRGlhbG9nYCwgY2FycnlpbmcgdGhlIHNhbWUgaWxsdXN0cmF0aW9uLlxuICpcbiAqIFNoYXBlIG9ubHkuIENvcHkgKHRpdGxlIC8gZGVzY3JpcHRpb24gLyBsYWJlbHMpIGFsd2F5cyBjb21lcyBmcm9tIHRoZVxuICogY2FsbGVyOyBwcm9kdWN0IGNvcHkgbmV2ZXIgbGl2ZXMgaW4gdGhlIGxpYnJhcnkuXG4gKi9cbmNvbnN0IFN1Y2Nlc3NGb3JtQmFzZSA9IChwcm9wcykgPT4gKFxuLy8gVGhlIHByZXNldCBsZWFkcyBzbyBhbiBleHBsaWNpdCBgaWxsdXN0cmF0aW9uYCBzdGlsbCB3aW5zLlxuX2pzeChSZXN1bHRGb3JtLCBPYmplY3QuYXNzaWduKHsgaWxsdXN0cmF0aW9uOiAnaWxsdXNDaGVja2VkJyB9LCBwcm9wcykpKTtcbmV4cG9ydCBjb25zdCBTdWNjZXNzRm9ybSA9IG1lbW8oU3VjY2Vzc0Zvcm1CYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,8 @@
1
+ export { SuccessForm } from './SuccessForm';
2
+ export type { SuccessFormProps } from './SuccessForm';
3
+ export { FailureForm } from './FailureForm';
4
+ export type { FailureFormProps } from './FailureForm';
5
+ export { PendingForm } from './PendingForm';
6
+ export type { PendingFormProps } from './PendingForm';
7
+ export { ExpiredForm } from './ExpiredForm';
8
+ export type { ExpiredFormProps } from './ExpiredForm';
@@ -0,0 +1,12 @@
1
+ // Named ResultForm variants — SHAPE-ONLY presets (the illustration). No copy:
2
+ // titles, descriptions, and button labels always come from the caller.
3
+ //
4
+ // Mirrors `Dialog/variants` so the same scenario reads the same in both hosts
5
+ // (SuccessForm ↔ SuccessDialog). Only the scenarios that actually occur on a
6
+ // page are here: Delete / Loading are dialog-only by nature — a destructive
7
+ // confirm or a spinner-and-wait interrupts, it is not a page you land on.
8
+ export { SuccessForm } from './SuccessForm';
9
+ export { FailureForm } from './FailureForm';
10
+ export { PendingForm } from './PendingForm';
11
+ export { ExpiredForm } from './ExpiredForm';
12
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0Zvcm0vc3JjL2J1c2luZXNzL0Zvcm0vdmFyaWFudHMvaW5kZXgudHMiXSwibmFtZXMiOlsiU3VjY2Vzc0Zvcm0iLCJGYWlsdXJlRm9ybSIsIlBlbmRpbmdGb3JtIiwiRXhwaXJlZEZvcm0iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsV0FBVyxRQUFRLGVBQWU7QUFFM0MsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFFM0MsU0FBU0MsV0FBVyxRQUFRLGVBQWU7QUFFM0MsU0FBU0MsV0FBVyxRQUFRLGVBQWUiLCJmaWxlIjoiYnVzaW5lc3MvRm9ybS92YXJpYW50cy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -1,6 +1,6 @@
1
1
  export * from './Filter';
2
2
  export * from './Dialog';
3
3
  export * from './Select';
4
- export * from './PageForm';
4
+ export * from './Form';
5
5
  export { default as FieldList } from './FieldList';
6
6
  export type { FieldRow, FieldListProps } from './FieldList';
@@ -1,6 +1,6 @@
1
1
  export * from './Filter';
2
2
  export * from './Dialog';
3
3
  export * from './Select';
4
- export * from './PageForm';
4
+ export * from './Form';
5
5
  export { default as FieldList } from './FieldList';
6
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9idXNpbmVzcy9pbmRleC50cyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiRmllbGRMaXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVU7QUFDeEIsY0FBYyxVQUFVO0FBQ3hCLGNBQWMsVUFBVTtBQUN4QixjQUFjLFlBQVk7QUFDMUIsU0FBU0EsT0FBTyxJQUFJQyxTQUFTLFFBQVEsYUFBYSIsImZpbGUiOiJidXNpbmVzcy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
6
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9idXNpbmVzcy9pbmRleC50cyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiRmllbGRMaXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVU7QUFDeEIsY0FBYyxVQUFVO0FBQ3hCLGNBQWMsVUFBVTtBQUN4QixjQUFjLFFBQVE7QUFDdEIsU0FBU0EsT0FBTyxJQUFJQyxTQUFTLFFBQVEsYUFBYSIsImZpbGUiOiJidXNpbmVzcy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -41,12 +41,11 @@ var Footnote = function Footnote(_ref) {
41
41
  justify: 'center',
42
42
  gap: 4,
43
43
  children: [prompt && _jsx(Typography.Body, {
44
- size: 'md',
45
- strong: true,
44
+ size: 'sm',
46
45
  color: 'default-tertiary',
47
46
  children: prompt
48
47
  }), action && _jsx(Typography.Link, {
49
- size: 'md',
48
+ size: 'sm',
50
49
  color: 'brand',
51
50
  role: 'button',
52
51
  tabIndex: 0,
@@ -114,4 +113,4 @@ var ActionBarBase = function ActionBarBase(_ref2) {
114
113
  });
115
114
  };
116
115
  export var ActionBar = /*#__PURE__*/memo(ActionBarBase);
117
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvQWN0aW9uQmFyL0FjdGlvbkJhci5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvQWN0aW9uQmFyL0FjdGlvbkJhci50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwibWVtbyIsIkJ1dHRvbiIsIkRpdmlkZXIiLCJGbGV4IiwiVHlwb2dyYXBoeSIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiam9pbkNscyIsIkFDVElPTl9CQVJfQlVUVE9OX1NJWkUiLCJBQ1RJT05fQkFSX0RFRkFVTFRTIiwiQUNUSU9OX0JBUl9QUkVGSVgiLCJBQ1RJT05fQkFSX1NMT1QiLCJBQ1RJVkFUSU9OX0tFWVMiLCJyZW5kZXJBY3Rpb24iLCJhY3Rpb24iLCJmYWxsYmFja0xhYmVsIiwiZGVmYXVsdENvbG9yIiwic2l6ZSIsIl9hIiwiX2IiLCJ2YXJpYW50IiwiY29sb3IiLCJpY29uU3RhcnQiLCJpY29uIiwibG9hZGluZyIsImRpc2FibGVkIiwib25DbGljayIsInR5cGUiLCJmb3JtIiwiY2hpbGRyZW4iLCJsYWJlbCIsIkZvb3Rub3RlIiwiX3JlZiIsInByb21wdCIsImRpdmlkZWQiLCJjbGFzc2VzIiwiaGFuZGxlS2V5RG93biIsImV2ZW50IiwiaW5jbHVkZXMiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsImNsYXNzTmFtZSIsImZvb3Rub3RlIiwiYWxpZ24iLCJqdXN0aWZ5IiwiZ2FwIiwiQm9keSIsInN0cm9uZyIsIkxpbmsiLCJyb2xlIiwidGFiSW5kZXgiLCJvbktleURvd24iLCJBY3Rpb25CYXJCYXNlIiwiX3JlZjIiLCJfcmVmMiRsYXlvdXQiLCJsYXlvdXQiLCJfcmVmMiRkaXJlY3Rpb24iLCJkaXJlY3Rpb24iLCJwcmltYXJ5IiwicHJpbWFyeVNsb3QiLCJzZWNvbmRhcnkiLCJfcmVmMiRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJfYyIsIl9kIiwidmVydGljYWwiLCJidXR0b25TaXplIiwiaXRlbXMiLCJvcmRlciIsIm5vZGUiLCJzZWNvbmRhcnlMYWJlbCIsInNlY29uZGFyeUNvbG9yIiwicHJpbWFyeUxhYmVsIiwicHJpbWFyeUNvbG9yIiwidW5kZWZpbmVkIiwiZmlsdGVyIiwiaXRlbSIsIkJvb2xlYW4iLCJzb3J0IiwiYSIsImIiLCJsZW5ndGgiLCJhY3Rpb25zIiwibWFwIiwiT2JqZWN0IiwiYXNzaWduIiwiQWN0aW9uQmFyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQTlELFNBQVNDLFFBQVEsRUFBRUMsSUFBSSxRQUFRLE9BQU87QUFDdEMsU0FBU0MsTUFBTSxRQUFRLFdBQVc7QUFDbEMsU0FBU0MsT0FBTyxRQUFRLFlBQVk7QUFDcEMsU0FBU0MsSUFBSSxRQUFRLFNBQVM7QUFDOUIsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFDMUMsU0FBU0MsT0FBTyxJQUFJQyxVQUFVLEVBQUVDLE9BQU8sUUFBUSx3QkFBd0I7QUFDdkUsU0FDRUMsc0JBQXNCLEVBQ3RCQyxtQkFBbUIsRUFDbkJDLGlCQUFpQixFQUNqQkMsZUFBZSxRQUNWLGFBQWE7QUFLcEIsT0FBTyxTQUFTO0FBRWhCLElBQU1DLGVBQWUsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7QUFFdEMsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQ2hCQyxNQUF1QixFQUN2QkMsYUFBd0IsRUFDeEJDLFlBQXlCLEVBQ3pCQyxJQUFnQixFQUNkO0VEZEEsSUFBSUMsRUFBRSxFQUFFQyxFQUFFO0VDY1QsT0FDSHZCLElBQUEsQ0FBQ0ssTUFBTSxFQUFBO0lBQ0xnQixJQUFJLEVBQUVBLElBQUk7SUFDVkcsT0FBTyxFQUFFTixNQUFNLENBQUNNLE9BQU87SUFDdkJDLEtBQUssRUFBRSxDQUFBSCxFQUFBLEdBQUFKLE1BQU0sQ0FBQ08sS0FBSyxNQUFBLElBQUEsSUFBQUgsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFB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LENBQUNPLElBQUksRUFBQTtNQUFDOEQsUUFBUSxFQUFFQSxRQUFRO01BQUV4QixTQUFTLEVBQUVOLE9BQU8sQ0FBQ3hCLGVBQWUsQ0FBQ3VFLE9BQU8sQ0FBQztNQUFBckQsUUFBQSxFQUNsRXNDLEtBQUssQ0FBQ2dCLEdBQUcsQ0FBQyxVQUFDUCxJQUFJO1FBQUEsT0FDZGhGLElBQUEsQ0FBQ0csUUFBUSxFQUFBO1VBQUE4QixRQUFBLEVBQWlCK0MsSUFBSSxDQUFDUDtRQUFJLENBQUEsRUFBcEJPLElBQUksQ0FBQ3JDLEdBQUcsQ0FBd0I7TUFBQSxDQUNoRDtJQUFDLENBQUEsQ0FFTCxFQUNBRyxRQUFRLElBQUk5QyxJQUFBLENBQUNtQyxRQUFRLEVBQUFxRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBSzNDLFFBQVEsRUFBQTtNQUFFUCxPQUFPLEVBQUVBO0lBQU8sQ0FBQSxDQUFBLENBQUk7RUFBQSxDQUFBLENBQ3BEO0FBRVgsQ0FBQztBQUVELE9BQU8sSUFBTW1ELFNBQVMsZ0JBQUd0RixJQUFJLENBQUNvRCxhQUFhLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9BY3Rpb25CYXIvQWN0aW9uQmFyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZyYWdtZW50LCBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IERpdmlkZXIgfSBmcm9tICcuLi9EaXZpZGVyJztcbmltcG9ydCB7IEZsZXggfSBmcm9tICcuLi9GbGV4JztcbmltcG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQUNUSU9OX0JBUl9CVVRUT05fU0laRSwgQUNUSU9OX0JBUl9ERUZBVUxUUywgQUNUSU9OX0JBUl9QUkVGSVgsIEFDVElPTl9CQVJfU0xPVCwgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgQUNUSVZBVElPTl9LRVlTID0gWydFbnRlcicsICcgJ107XG5jb25zdCByZW5kZXJBY3Rpb24gPSAoYWN0aW9uLCBmYWxsYmFja0xhYmVsLCBkZWZhdWx0Q29sb3IsIHNpemUpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIHJldHVybiAoX2pzeChCdXR0b24sIHsgc2l6ZTogc2l6ZSwgdmFyaWFudDogYWN0aW9uLnZhcmlhbnQsIGNvbG9yOiAoX2EgPSBhY3Rpb24uY29sb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRlZmF1bHRDb2xvciwgaWNvblN0YXJ0OiBhY3Rpb24uaWNvbiwgbG9hZGluZzogYWN0aW9uLmxvYWRpbmcsIGRpc2FibGVkOiBhY3Rpb24uZGlzYWJsZWQsIG9uQ2xpY2s6IGFjdGlvbi5vbkNsaWNrLCB0eXBlOiBhY3Rpb24udHlwZSwgZm9ybTogYWN0aW9uLmZvcm0sIGNoaWxkcmVuOiAoX2IgPSBhY3Rpb24ubGFiZWwpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGZhbGxiYWNrTGFiZWwgfSkpO1xufTtcbmNvbnN0IEZvb3Rub3RlID0gKHsgcHJvbXB0LCBhY3Rpb24sIG9uQ2xpY2ssIGRpdmlkZWQsIGNsYXNzZXMsIH0pID0+IHtcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghQUNUSVZBVElPTl9LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uQ2xpY2sgPT09IG51bGwgfHwgb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbGljaygpO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcyhBQ1RJT05fQkFSX1NMT1QuZm9vdG5vdGUpLCBjaGlsZHJlbjogW2RpdmlkZWQgJiYgX2pzeChEaXZpZGVyLCB7fSksIF9qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBqdXN0aWZ5OiAnY2VudGVyJywgZ2FwOiA0LCBjaGlsZHJlbjogW3Byb21wdCAmJiAoX2pzeChUeXBvZ3JhcGh5LkJvZHksIHsgc2l6ZTogJ21kJywgc3Ryb25nOiB0cnVlLCBjb2xvcjogJ2RlZmF1bHQtdGVydGlhcnknLCBjaGlsZHJlbjogcHJvbXB0IH0pKSwgYWN0aW9uICYmIChfanN4KFR5cG9ncmFwaHkuTGluaywgeyBzaXplOiAnbWQnLCBjb2xvcjogJ2JyYW5kJywgcm9sZTogJ2J1dHRvbicsIHRhYkluZGV4OiAwLCBvbkNsaWNrOiBvbkNsaWNrLCBvbktleURvd246IGhhbmRsZUtleURvd24sIGNoaWxkcmVuOiBhY3Rpb24gfSkpXSB9KV0gfSkpO1xufTtcbi8qKlxuICogRm9vdGVyIGFjdGlvbiBlbmdpbmUgc2hhcmVkIGJ5IGV2ZXJ5IGZvcm0vZGlhbG9nIHN1cmZhY2UuIE9yZGVyIGFuZCB0b25lc1xuICogYXJlIGxvY2tlZCAoc2Vjb25kYXJ5IGxlZnQsIHByaW1hcnkgcmlnaHQpOyB0aGUgYGxheW91dGAg4oCUIGNob3NlbiBieSB0aGVcbiAqIHNjZW5hcmlvIHNoZWxsLCBuZXZlciBieSBidXNpbmVzcyBjb2RlIOKAlCBkZWNpZGVzIHRoZSB0d28gRFMgZm9vdGVyIHNoYXBlczpcbiAqIGBmaWxsYCAocm93LXNoYXJpbmcgbGFyZ2UgYnV0dG9ucykgb3IgYGNvbXBhY3RgIChhdXRvLXdpZHRoIG1lZGl1bSBidXR0b25zLFxuICogbGVmdC1hbGlnbmVkKS5cbiAqL1xuY29uc3QgQWN0aW9uQmFyQmFzZSA9ICh7IGxheW91dCA9ICdmaWxsJywgZGlyZWN0aW9uID0gJ2hvcml6b250YWwnLCBwcmltYXJ5LCBwcmltYXJ5U2xvdCwgc2Vjb25kYXJ5LCBmb290bm90ZSwgcHJlZml4Q2xzID0gQUNUSU9OX0JBUl9QUkVGSVgsIGNsYXNzTmFtZSwgfSkgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IHZlcnRpY2FsID0gZGlyZWN0aW9uID09PSAndmVydGljYWwnO1xuICAgIGNvbnN0IGJ1dHRvblNpemUgPSBBQ1RJT05fQkFSX0JVVFRPTl9TSVpFW2xheW91dF07XG4gICAgLy8gRGVmYXVsdCBvcmRlcjogaG9yaXpvbnRhbCDihpIgc2Vjb25kYXJ5IGxlZnQgb2YgcHJpbWFyeTsgdmVydGljYWwg4oaSXG4gICAgLy8gcHJpbWFyeSBvbiB0b3AuIEFuIGV4cGxpY2l0IGBhY3Rpb24ub3JkZXJgIG92ZXJyaWRlcyBlaXRoZXIuXG4gICAgY29uc3QgaXRlbXMgPSBbXG4gICAgICAgIHNlY29uZGFyeSAmJiB7XG4gICAgICAgICAgICBrZXk6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgb3JkZXI6IChfYSA9IHNlY29uZGFyeS5vcmRlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogKHZlcnRpY2FsID8gMSA6IDApLFxuICAgICAgICAgICAgbm9kZTogcmVuZGVyQWN0aW9uKHNlY29uZGFyeSwgQUNUSU9OX0JBUl9ERUZBVUxUUy5zZWNvbmRhcnlMYWJlbCwgQUNUSU9OX0JBUl9ERUZBVUxUUy5zZWNvbmRhcnlDb2xvciwgKF9iID0gc2Vjb25kYXJ5LnNpemUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGJ1dHRvblNpemUpLFxuICAgICAgICB9LFxuICAgICAgICAocHJpbWFyeSB8fCBwcmltYXJ5U2xvdCAhPSBudWxsKSA/IHtcbiAgICAgICAgICAgIGtleTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgb3JkZXI6IChfYyA9IHByaW1hcnkgPT09IG51bGwgfHwgcHJpbWFyeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJpbWFyeS5vcmRlcikgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogKHZlcnRpY2FsID8gMCA6IDEpLFxuICAgICAgICAgICAgbm9kZTogcHJpbWFyeVNsb3QgIT09IG51bGwgJiYgcHJpbWFyeVNsb3QgIT09IHZvaWQgMCA/IHByaW1hcnlTbG90IDogcmVuZGVyQWN0aW9uKHByaW1hcnksIEFDVElPTl9CQVJfREVGQVVMVFMucHJpbWFyeUxhYmVsLCBBQ1RJT05fQkFSX0RFRkFVTFRTLnByaW1hcnlDb2xvciwgKF9kID0gcHJpbWFyeS5zaXplKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBidXR0b25TaXplKSxcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICBdXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IEJvb2xlYW4oaXRlbSkpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgaWYgKCFpdGVtcy5sZW5ndGggJiYgIWZvb3Rub3RlKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3hzKEZsZXgsIHsgdmVydGljYWw6IHRydWUsIGdhcDogMTYsIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCksIGNsYXNzZXMobGF5b3V0KSwgY2xhc3NlcyhkaXJlY3Rpb24pLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogW2l0ZW1zLmxlbmd0aCA+IDAgJiYgKF9qc3goRmxleCwgeyB2ZXJ0aWNhbDogdmVydGljYWwsIGNsYXNzTmFtZTogY2xhc3NlcyhBQ1RJT05fQkFSX1NMT1QuYWN0aW9ucyksIGNoaWxkcmVuOiBpdGVtcy5tYXAoKGl0ZW0pID0+IChfanN4KEZyYWdtZW50LCB7IGNoaWxkcmVuOiBpdGVtLm5vZGUgfSwgaXRlbS5rZXkpKSkgfSkpLCBmb290bm90ZSAmJiBfanN4KEZvb3Rub3RlLCBPYmplY3QuYXNzaWduKHt9LCBmb290bm90ZSwgeyBjbGFzc2VzOiBjbGFzc2VzIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBjb25zdCBBY3Rpb25CYXIgPSBtZW1vKEFjdGlvbkJhckJhc2UpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
116
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvQWN0aW9uQmFyL0FjdGlvbkJhci5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvQWN0aW9uQmFyL0FjdGlvbkJhci50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwibWVtbyIsIkJ1dHRvbiIsIkRpdmlkZXIiLCJGbGV4IiwiVHlwb2dyYXBoeSIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiam9pbkNscyIsIkFDVElPTl9CQVJfQlVUVE9OX1NJWkUiLCJBQ1RJT05fQkFSX0RFRkFVTFRTIiwiQUNUSU9OX0JBUl9QUkVGSVgiLCJBQ1RJT05fQkFSX1NMT1QiLCJBQ1RJVkFUSU9OX0tFWVMiLCJyZW5kZXJBY3Rpb24iLCJhY3Rpb24iLCJmYWxsYmFja0xhYmVsIiwiZGVmYXVsdENvbG9yIiwic2l6ZSIsIl9hIiwiX2IiLCJ2YXJpYW50IiwiY29sb3IiLCJpY29uU3RhcnQiLCJpY29uIiwibG9hZGluZyIsImRpc2FibGVkIiwib25DbGljayIsInR5cGUiLCJmb3JtIiwiY2hpbGRyZW4iLCJsYWJlbCIsIkZvb3Rub3RlIiwiX3JlZiIsInByb21wdCIsImRpdmlkZWQiLCJjbGFzc2VzIiwiaGFuZGxlS2V5RG93biIsImV2ZW50IiwiaW5jbHVkZXMiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsImNsYXNzTmFtZSIsImZvb3Rub3RlIiwiYWxpZ24iLCJqdXN0aWZ5IiwiZ2FwIiwiQm9keSIsIkxpbmsiLCJyb2xlIiwidGFiSW5kZXgiLCJvbktleURvd24iLCJBY3Rpb25CYXJCYXNlIiwiX3JlZjIiLCJfcmVmMiRsYXlvdXQiLCJsYXlvdXQiLCJfcmVmMiRkaXJlY3Rpb24iLCJkaXJlY3Rpb24iLCJwcmltYXJ5IiwicHJpbWFyeVNsb3QiLCJzZWNvbmRhcnkiLCJfcmVmMiRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJfYyIsIl9kIiwidmVydGljYWwiLCJidXR0b25TaXplIiwiaXRlbXMiLCJvcmRlciIsIm5vZGUiLCJzZWNvbmRhcnlMYWJlbCIsInNlY29uZGFyeUNvbG9yIiwicHJpbWFyeUxhYmVsIiwicHJpbWFyeUNvbG9yIiwidW5kZWZpbmVkIiwiZmlsdGVyIiwiaXRlbSIsIkJvb2xlYW4iLCJzb3J0IiwiYSIsImIiLCJsZW5ndGgiLCJhY3Rpb25zIiwibWFwIiwiT2JqZWN0IiwiYXNzaWduIiwiQWN0aW9uQmFyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQTlELFNBQVNDLFFBQVEsRUFBRUMsSUFBSSxRQUFRLE9BQU87QUFDdEMsU0FBU0MsTUFBTSxRQUFRLFdBQVc7QUFDbEMsU0FBU0MsT0FBTyxRQUFRLFlBQVk7QUFDcEMsU0FBU0MsSUFBSSxRQUFRLFNBQVM7QUFDOUIsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFDMUMsU0FBU0MsT0FBTyxJQUFJQyxVQUFVLEVBQUVDLE9BQU8sUUFBUSx3QkFBd0I7QUFDdkUsU0FDRUMsc0JBQXNCLEVBQ3RCQyxtQkFBbUIsRUFDbkJDLGlCQUFpQixFQUNqQkMsZUFBZSxRQUNWLGFBQWE7QUFLcEIsT0FBTyxTQUFTO0FBRWhCLElBQU1DLGVBQWUsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7QUFFdEMsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQ2hCQyxNQUF1QixFQUN2QkMsYUFBd0IsRUFDeEJDLFlBQXlCLEVBQ3pCQyxJQUFnQixFQUNkO0VEZEEsSUFBSUMsRUFBRSxFQUFFQyxFQUFFO0VDY1QsT0FDSHZCLElBQUEsQ0FBQ0ssTUFBTSxFQUFBO0lBQ0xnQixJQUFJLEVBQUVBLElBQUk7SUFDVkcsT0FBTyxFQUFFTixNQUFNLENBQUNNLE9BQU87SUFDdkJDLEtBQUssRUFBRSxDQUFBSCxFQUFBLEdBQUFKLE1BQU0sQ0FBQ08sS0FBSyxNQUFBLElBQUEsSUFBQUgsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUlGLFlB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QSxRQUFRO01BQUV2QixTQUFTLEVBQUVOLE9BQU8sQ0FBQ3hCLGVBQWUsQ0FBQ3NFLE9BQU8sQ0FBQztNQUFBcEQsUUFBQSxFQUNsRXFDLEtBQUssQ0FBQ2dCLEdBQUcsQ0FBQyxVQUFDUCxJQUFJO1FBQUEsT0FDZC9FLElBQUEsQ0FBQ0csUUFBUSxFQUFBO1VBQUE4QixRQUFBLEVBQWlCOEMsSUFBSSxDQUFDUDtRQUFJLENBQUEsRUFBcEJPLElBQUksQ0FBQ3BDLEdBQUcsQ0FBd0I7TUFBQSxDQUNoRDtJQUFDLENBQUEsQ0FFTCxFQUNBRyxRQUFRLElBQUk5QyxJQUFBLENBQUNtQyxRQUFRLEVBQUFvRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBSzFDLFFBQVEsRUFBQTtNQUFFUCxPQUFPLEVBQUVBO0lBQU8sQ0FBQSxDQUFBLENBQUk7RUFBQSxDQUFBLENBQ3BEO0FBRVgsQ0FBQztBQUVELE9BQU8sSUFBTWtELFNBQVMsZ0JBQUdyRixJQUFJLENBQUNtRCxhQUFhLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9BY3Rpb25CYXIvQWN0aW9uQmFyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZyYWdtZW50LCBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCB7IERpdmlkZXIgfSBmcm9tICcuLi9EaXZpZGVyJztcbmltcG9ydCB7IEZsZXggfSBmcm9tICcuLi9GbGV4JztcbmltcG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQUNUSU9OX0JBUl9CVVRUT05fU0laRSwgQUNUSU9OX0JBUl9ERUZBVUxUUywgQUNUSU9OX0JBUl9QUkVGSVgsIEFDVElPTl9CQVJfU0xPVCwgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgQUNUSVZBVElPTl9LRVlTID0gWydFbnRlcicsICcgJ107XG5jb25zdCByZW5kZXJBY3Rpb24gPSAoYWN0aW9uLCBmYWxsYmFja0xhYmVsLCBkZWZhdWx0Q29sb3IsIHNpemUpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIHJldHVybiAoX2pzeChCdXR0b24sIHsgc2l6ZTogc2l6ZSwgdmFyaWFudDogYWN0aW9uLnZhcmlhbnQsIGNvbG9yOiAoX2EgPSBhY3Rpb24uY29sb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGRlZmF1bHRDb2xvciwgaWNvblN0YXJ0OiBhY3Rpb24uaWNvbiwgbG9hZGluZzogYWN0aW9uLmxvYWRpbmcsIGRpc2FibGVkOiBhY3Rpb24uZGlzYWJsZWQsIG9uQ2xpY2s6IGFjdGlvbi5vbkNsaWNrLCB0eXBlOiBhY3Rpb24udHlwZSwgZm9ybTogYWN0aW9uLmZvcm0sIGNoaWxkcmVuOiAoX2IgPSBhY3Rpb24ubGFiZWwpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGZhbGxiYWNrTGFiZWwgfSkpO1xufTtcbmNvbnN0IEZvb3Rub3RlID0gKHsgcHJvbXB0LCBhY3Rpb24sIG9uQ2xpY2ssIGRpdmlkZWQsIGNsYXNzZXMsIH0pID0+IHtcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghQUNUSVZBVElPTl9LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uQ2xpY2sgPT09IG51bGwgfHwgb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbGljaygpO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcyhBQ1RJT05fQkFSX1NMT1QuZm9vdG5vdGUpLCBjaGlsZHJlbjogW2RpdmlkZWQgJiYgX2pzeChEaXZpZGVyLCB7fSksIF9qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBqdXN0aWZ5OiAnY2VudGVyJywgZ2FwOiA0LCBjaGlsZHJlbjogW3Byb21wdCAmJiAoX2pzeChUeXBvZ3JhcGh5LkJvZHksIHsgc2l6ZTogJ3NtJywgY29sb3I6ICdkZWZhdWx0LXRlcnRpYXJ5JywgY2hpbGRyZW46IHByb21wdCB9KSksIGFjdGlvbiAmJiAoX2pzeChUeXBvZ3JhcGh5LkxpbmssIHsgc2l6ZTogJ3NtJywgY29sb3I6ICdicmFuZCcsIHJvbGU6ICdidXR0b24nLCB0YWJJbmRleDogMCwgb25DbGljazogb25DbGljaywgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLCBjaGlsZHJlbjogYWN0aW9uIH0pKV0gfSldIH0pKTtcbn07XG4vKipcbiAqIEZvb3RlciBhY3Rpb24gZW5naW5lIHNoYXJlZCBieSBldmVyeSBmb3JtL2RpYWxvZyBzdXJmYWNlLiBPcmRlciBhbmQgdG9uZXNcbiAqIGFyZSBsb2NrZWQgKHNlY29uZGFyeSBsZWZ0LCBwcmltYXJ5IHJpZ2h0KTsgdGhlIGBsYXlvdXRgIOKAlCBjaG9zZW4gYnkgdGhlXG4gKiBzY2VuYXJpbyBzaGVsbCwgbmV2ZXIgYnkgYnVzaW5lc3MgY29kZSDigJQgZGVjaWRlcyB0aGUgdHdvIERTIGZvb3RlciBzaGFwZXM6XG4gKiBgZmlsbGAgKHJvdy1zaGFyaW5nIGxhcmdlIGJ1dHRvbnMpIG9yIGBjb21wYWN0YCAoYXV0by13aWR0aCBtZWRpdW0gYnV0dG9ucyxcbiAqIGxlZnQtYWxpZ25lZCkuXG4gKi9cbmNvbnN0IEFjdGlvbkJhckJhc2UgPSAoeyBsYXlvdXQgPSAnZmlsbCcsIGRpcmVjdGlvbiA9ICdob3Jpem9udGFsJywgcHJpbWFyeSwgcHJpbWFyeVNsb3QsIHNlY29uZGFyeSwgZm9vdG5vdGUsIHByZWZpeENscyA9IEFDVElPTl9CQVJfUFJFRklYLCBjbGFzc05hbWUsIH0pID0+IHtcbiAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCB2ZXJ0aWNhbCA9IGRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJztcbiAgICBjb25zdCBidXR0b25TaXplID0gQUNUSU9OX0JBUl9CVVRUT05fU0laRVtsYXlvdXRdO1xuICAgIC8vIERlZmF1bHQgb3JkZXI6IGhvcml6b250YWwg4oaSIHNlY29uZGFyeSBsZWZ0IG9mIHByaW1hcnk7IHZlcnRpY2FsIOKGklxuICAgIC8vIHByaW1hcnkgb24gdG9wLiBBbiBleHBsaWNpdCBgYWN0aW9uLm9yZGVyYCBvdmVycmlkZXMgZWl0aGVyLlxuICAgIGNvbnN0IGl0ZW1zID0gW1xuICAgICAgICBzZWNvbmRhcnkgJiYge1xuICAgICAgICAgICAga2V5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgICAgIG9yZGVyOiAoX2EgPSBzZWNvbmRhcnkub3JkZXIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICh2ZXJ0aWNhbCA/IDEgOiAwKSxcbiAgICAgICAgICAgIG5vZGU6IHJlbmRlckFjdGlvbihzZWNvbmRhcnksIEFDVElPTl9CQVJfREVGQVVMVFMuc2Vjb25kYXJ5TGFiZWwsIEFDVElPTl9CQVJfREVGQVVMVFMuc2Vjb25kYXJ5Q29sb3IsIChfYiA9IHNlY29uZGFyeS5zaXplKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBidXR0b25TaXplKSxcbiAgICAgICAgfSxcbiAgICAgICAgKHByaW1hcnkgfHwgcHJpbWFyeVNsb3QgIT0gbnVsbCkgPyB7XG4gICAgICAgICAgICBrZXk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgIG9yZGVyOiAoX2MgPSBwcmltYXJ5ID09PSBudWxsIHx8IHByaW1hcnkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByaW1hcnkub3JkZXIpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICh2ZXJ0aWNhbCA/IDAgOiAxKSxcbiAgICAgICAgICAgIG5vZGU6IHByaW1hcnlTbG90ICE9PSBudWxsICYmIHByaW1hcnlTbG90ICE9PSB2b2lkIDAgPyBwcmltYXJ5U2xvdCA6IHJlbmRlckFjdGlvbihwcmltYXJ5LCBBQ1RJT05fQkFSX0RFRkFVTFRTLnByaW1hcnlMYWJlbCwgQUNUSU9OX0JBUl9ERUZBVUxUUy5wcmltYXJ5Q29sb3IsIChfZCA9IHByaW1hcnkuc2l6ZSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogYnV0dG9uU2l6ZSksXG4gICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgXVxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBCb29sZWFuKGl0ZW0pKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgIGlmICghaXRlbXMubGVuZ3RoICYmICFmb290bm90ZSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIChfanN4cyhGbGV4LCB7IHZlcnRpY2FsOiB0cnVlLCBnYXA6IDE2LCBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc2VzKGxheW91dCksIGNsYXNzZXMoZGlyZWN0aW9uKSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IFtpdGVtcy5sZW5ndGggPiAwICYmIChfanN4KEZsZXgsIHsgdmVydGljYWw6IHZlcnRpY2FsLCBjbGFzc05hbWU6IGNsYXNzZXMoQUNUSU9OX0JBUl9TTE9ULmFjdGlvbnMpLCBjaGlsZHJlbjogaXRlbXMubWFwKChpdGVtKSA9PiAoX2pzeChGcmFnbWVudCwgeyBjaGlsZHJlbjogaXRlbS5ub2RlIH0sIGl0ZW0ua2V5KSkpIH0pKSwgZm9vdG5vdGUgJiYgX2pzeChGb290bm90ZSwgT2JqZWN0LmFzc2lnbih7fSwgZm9vdG5vdGUsIHsgY2xhc3NlczogY2xhc3NlcyB9KSldIH0pKTtcbn07XG5leHBvcnQgY29uc3QgQWN0aW9uQmFyID0gbWVtbyhBY3Rpb25CYXJCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -69,8 +69,13 @@ export interface ActionBarProps {
69
69
  */
70
70
  layout?: ActionBarLayout;
71
71
  /**
72
- * Arrangement: `horizontal` (default) or `vertical` (stacked, each button
73
- * full-width — result-dialog style).
72
+ * Arrangement: `horizontal` (default two actions split the row) or
73
+ * `vertical` (stacked, each button full-width).
74
+ *
75
+ * The default applies everywhere, result surfaces included: `PanelLayout`
76
+ * and `BaseDialog` pass this straight through and set no default of their
77
+ * own. `vertical` is opt-in, for flows that want the actions read
78
+ * top-to-bottom rather than weighed side by side.
74
79
  */
75
80
  direction?: ActionBarDirection;
76
81
  /**
@@ -15,10 +15,16 @@ export interface DialogProps extends Omit<HTMLAttributes<HTMLDivElement>, 'child
15
15
  fullWidth?: boolean;
16
16
  fixed?: boolean;
17
17
  /**
18
- * Bare panel mode: keep the overlay machinery (portal, mask, Esc, close /
19
- * back controls, viewport max-height, width presets) but render NO panel
20
- * chrome and NO header/body/footer slots — children fill the panel
21
- * directly. For surfaces that bring their own chrome (e.g. FormLayout).
18
+ * Bare panel mode: keep the overlay machinery (portal, mask, Esc, the close
19
+ * control, viewport max-height, width presets) but render NO panel chrome
20
+ * and NO header/body/footer slots — children fill the panel directly. For
21
+ * surfaces that bring their own chrome (e.g. FormLayout).
22
+ *
23
+ * `showBackIcon` is NOT honoured here. The close control is absolutely
24
+ * positioned overlay chrome and works in either mode, but the back arrow
25
+ * takes its own row in the content flow — and a bare panel has no content
26
+ * flow to put it in. A bare host that needs one renders it into its own
27
+ * surface instead (PanelLayout takes `showBackIcon`/`onBack` of its own).
22
28
  */
23
29
  bare?: boolean;
24
30
  width?: number | string;
@@ -27,7 +27,12 @@ export interface FormLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 't
27
27
  * footer stay pinned); when `false` content always grows the panel.
28
28
  */
29
29
  scroll?: boolean;
30
- /** Heading; a plain string renders as Headline/md (24px). */
30
+ /**
31
+ * Heading; a plain string renders as `Headline/sm` (24 / 28) regardless of
32
+ * variant or size. Pass a node to compose your own header block (e.g. a
33
+ * title with a description under it) — the automatic wrapping is skipped,
34
+ * so supply the `Headline/sm` typography yourself.
35
+ */
31
36
  title?: ReactNode;
32
37
  /** Trailing slot on the title row (e.g. an environment switcher). */
33
38
  extra?: ReactNode;
@@ -0,0 +1,3 @@
1
+ import type { PanelLayoutProps } from './interface';
2
+ import './style';
3
+ export declare const PanelLayout: import("react").NamedExoticComponent<PanelLayoutProps>;
@@ -0,0 +1,162 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import { ActionBar } from '../ActionBar';
4
+ import { FormLayout } from '../FormLayout';
5
+ import { Icons } from '../Icons';
6
+ import { Typography } from '../Typography';
7
+ import { default as classnames, joinCls } from '../../utils/classnames';
8
+ import { PANEL_LAYOUT_BACK_ICON_SIZE, PANEL_LAYOUT_BACK_LABEL, PANEL_LAYOUT_PREFIX, resolvePanelLayoutConfig } from './constants';
9
+ import './style';
10
+ /**
11
+ * The non-form content PANEL — the counterpart to `FormLayout`: that one
12
+ * holds fields, this one holds an illustration, copy and actions. ONE surface
13
+ * serving two hosts:
14
+ *
15
+ * page host <PanelLayout /> used directly
16
+ * dialog host BaseDialog = Dialog(bare) + this(modal) only adds the overlay
17
+ *
18
+ * Deliberately NOT named for a scenario, because it carries several: a
19
+ * verification challenge, a stepped wizard (2FA setup — hence the back
20
+ * arrow), a terminal page with no action at all.
21
+ *
22
+ * On a page, ONE of those scenarios has a shell of its own and the rest do
23
+ * not — which decides where business code should reach:
24
+ *
25
+ * a result (success / failure / expired / …) → `ResultForm`, business/Form
26
+ * anything else → this, directly
27
+ *
28
+ * So being used directly is the normal case here, not a fallback. Only add
29
+ * another shell on top when a scenario earns a name AND recurring copy (a
30
+ * `preset`); a shell that just re-exports this one buys nothing.
31
+ *
32
+ * Assembly:
33
+ *
34
+ * FormLayout card chrome (surface, hairline, radius) + the 24
35
+ * │ padding and 16 region gap. Its `page/small` width
36
+ * │ (448, the sign-in card) is NOT used — the panel width
37
+ * │ comes from the config table.
38
+ * ├─ header slot back / illustration / eyebrow / title / description as
39
+ * │ ONE block on 8px seams. It goes in the title slot, not
40
+ * │ the content region, because it is all header copy —
41
+ * │ that also keeps it pinned when the content scrolls.
42
+ * ├─ content region `children` — free-form (a QR code, an OTP input, rows)
43
+ * └─ ActionBar(fill) the actions.
44
+ *
45
+ * It owns no copy and no loose numbers: everything host-specific comes from
46
+ * `PANEL_LAYOUT_CONFIG`, so a divergence between page and dialog is a value
47
+ * change in that table and nothing else.
48
+ */
49
+ var PanelLayoutBase = function PanelLayoutBase(_ref) {
50
+ var _ref$variant = _ref.variant,
51
+ variant = _ref$variant === void 0 ? 'page' : _ref$variant,
52
+ scroll = _ref.scroll,
53
+ width = _ref.width,
54
+ className = _ref.className,
55
+ showBackIcon = _ref.showBackIcon,
56
+ onBack = _ref.onBack,
57
+ backIcon = _ref.backIcon,
58
+ eyebrow = _ref.eyebrow,
59
+ title = _ref.title,
60
+ description = _ref.description,
61
+ _ref$descriptionStron = _ref.descriptionStrong,
62
+ descriptionStrong = _ref$descriptionStron === void 0 ? true : _ref$descriptionStron,
63
+ illustration = _ref.illustration,
64
+ primary = _ref.primary,
65
+ secondary = _ref.secondary,
66
+ direction = _ref.direction,
67
+ footnote = _ref.footnote,
68
+ children = _ref.children;
69
+ var classes = classnames(PANEL_LAYOUT_PREFIX);
70
+ var config = resolvePanelLayoutConfig(variant);
71
+ // A plain string becomes the family heading; a node passes through so
72
+ // callers can compose (e.g. a Tag above a two-line title).
73
+ var titleNode = typeof title === 'string' || typeof title === 'number' ? _jsx(Typography.Headline, {
74
+ size: 'sm',
75
+ as: 'h2',
76
+ color: 'default',
77
+ children: title
78
+ }) : title;
79
+ // Same contract as `title`: a plain string gets the family treatment (the
80
+ // muted label of "Step 2 of 3"), a node passes through so a Tag or a
81
+ // composed row still works. Without this every caller with a text eyebrow
82
+ // would hand-roll the same Typography.
83
+ //
84
+ // An EMPTY string counts as absent. Callers routinely hold the eyebrow in a
85
+ // state object that starts as `''`, and rendering an empty label would open
86
+ // an 8px seam above the title for nothing — so they can pass the value
87
+ // straight through instead of guarding it at every call site.
88
+ var eyebrowNode = eyebrow == null || eyebrow === '' ? null : typeof eyebrow === 'string' || typeof eyebrow === 'number' ? _jsx(Typography.Body, {
89
+ size: 'sm',
90
+ color: 'default-tertiary',
91
+ children: eyebrow
92
+ }) : eyebrow;
93
+ var illustrationNode = typeof illustration === 'string' ? _jsx(Icons, {
94
+ name: illustration,
95
+ size: config.illustrationSize
96
+ }) : illustration;
97
+ // Its own row above everything else, on the block's 8px seam — the shape
98
+ // stepped flows use in both hosts (2FA setup on a page, wizard dialogs).
99
+ var backNode = showBackIcon ? _jsx("button", {
100
+ type: 'button',
101
+ className: classes('back'),
102
+ "aria-label": PANEL_LAYOUT_BACK_LABEL,
103
+ onClick: onBack,
104
+ children: backIcon !== null && backIcon !== void 0 ? backIcon : _jsx(Icons, {
105
+ name: 'arrowLeft',
106
+ size: PANEL_LAYOUT_BACK_ICON_SIZE
107
+ })
108
+ }) : null;
109
+ var hasHeader = showBackIcon || illustration != null || eyebrowNode != null || title != null || description != null;
110
+ var header = hasHeader ? _jsxs("div", {
111
+ className: classes('header'),
112
+ children: [backNode, illustrationNode != null && _jsx("div", {
113
+ className: classes('illustration'),
114
+ children: illustrationNode
115
+ }), eyebrowNode, titleNode, description != null && _jsx(Typography.Body, {
116
+ as: 'p',
117
+ size: 'md',
118
+ strong: descriptionStrong,
119
+ color: 'default-secondary',
120
+ children: description
121
+ })]
122
+ }) : undefined;
123
+ // The bar owns the button size, so the family size is applied per action
124
+ // rather than as a bar-level prop; an explicit per-action `size` still wins.
125
+ var withSize = function withSize(action) {
126
+ var _a;
127
+ return action && Object.assign(Object.assign({}, action), {
128
+ size: (_a = action.size) !== null && _a !== void 0 ? _a : config.buttonSize
129
+ });
130
+ };
131
+ var footer = primary || secondary || footnote ? _jsx(ActionBar, {
132
+ direction: direction,
133
+ primary: withSize(primary),
134
+ secondary: withSize(secondary),
135
+ footnote: footnote
136
+ }) : undefined;
137
+ return _jsx(FormLayout
138
+ // `page/small` is used for its 24 padding and 16 region gap, which are
139
+ // already the result family's numbers. Its 448 width is NOT — that is
140
+ // the sign-in card; the result panel is 380, from the config table.
141
+ , {
142
+ // `page/small` is used for its 24 padding and 16 region gap, which are
143
+ // already the result family's numbers. Its 448 width is NOT — that is
144
+ // the sign-in card; the result panel is 380, from the config table.
145
+ variant: 'page',
146
+ size: 'small',
147
+ scroll: scroll,
148
+ // In a dialog the Dialog panel carries the width (BaseDialog reads the
149
+ // same entry) and the layout fills it: sizing a bare panel from its
150
+ // child hits the shrink-to-fit percentage circularity.
151
+ width: width !== null && width !== void 0 ? width : variant === 'modal' ? '100%' : config.width,
152
+ className: joinCls(classes(), classes(variant), className),
153
+ style: {
154
+ '--form-layout-action-gap': "".concat(config.actionGap, "px")
155
+ },
156
+ title: header,
157
+ footer: footer,
158
+ children: children
159
+ });
160
+ };
161
+ export var PanelLayout = /*#__PURE__*/memo(PanelLayoutBase);
162
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUGFuZWxMYXlvdXQvUGFuZWxMYXlvdXQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1BhbmVsTGF5b3V0L1BhbmVsTGF5b3V0LnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsIkFjdGlvbkJhciIsIkZvcm1MYXlvdXQiLCJJY29ucyIsIlR5cG9ncmFwaHkiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJQQU5FTF9MQVlPVVRfQkFDS19JQ09OX1NJWkUiLCJQQU5FTF9MQVlPVVRfQkFDS19MQUJFTCIsIlBBTkVMX0xBWU9VVF9QUkVGSVgiLCJyZXNvbHZlUGFuZWxMYXlvdXRDb25maWciLCJQYW5lbExheW91dEJhc2UiLCJfcmVmIiwiX3JlZiR2YXJpYW50IiwidmFyaWFudCIsInNjcm9sbCIsIndpZHRoIiwiY2xhc3NOYW1lIiwic2hvd0JhY2tJY29uIiwib25CYWNrIiwiYmFja0ljb24iLCJleWVicm93IiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIl9yZWYkZGVzY3JpcHRpb25TdHJvbiIsImRlc2NyaXB0aW9uU3Ryb25nIiwiaWxsdXN0cmF0aW9uIiwicHJpbWFyeSIsInNlY29uZGFyeSIsImRpcmVjdGlvbiIsImZvb3Rub3RlIiwiY2hpbGRyZW4iLCJjbGFzc2VzIiwiY29uZmlnIiwidGl0bGVOb2RlIiwiSGVhZGxpbmUiLCJzaXplIiwiYXMiLCJjb2xvciIsImV5ZWJyb3dOb2RlIiwiQm9keSIsImlsbHVzdHJhdGlvbk5vZGUiLCJuYW1lIiwiaWxsdXN0cmF0aW9uU2l6ZSIsImJhY2tOb2RlIiwidHlwZSIsIm9uQ2xpY2siLCJoYXNIZWFkZXIiLCJoZWFkZXIiLCJzdHJvbmciLCJ1bmRlZmluZWQiLCJ3aXRoU2l6ZSIsImFjdGlvbiIsIl9hIiwiT2JqZWN0IiwiYXNzaWduIiwiYnV0dG9uU2l6ZSIsImZvb3RlciIsInN0eWxlIiwiY29uY2F0IiwiYWN0aW9uR2FwIiwiUGFuZWxMYXlvdXQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsU0FBU0MsSUFBSSxRQUFRLE9BQU87QUFDNUIsU0FBU0MsU0FBUyxRQUFRLGNBQWM7QUFDeEMsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFDMUMsU0FBU0MsS0FBSyxRQUFRLFVBQVU7QUFDaEMsU0FBU0MsVUFBVSxRQUFRLGVBQWU7QUFDMUMsU0FBU0MsT0FBTyxJQUFJQyxVQUFVLEVBQUVDLE9BQU8sUUFBUSx3QkFBd0I7QUFDdkUsU0FDRUMsMkJBQTJCLEVBQzNCQyx1QkFBdUIsRUFDdkJDLG1CQUFtQixFQUNuQkMsd0JBQXdCLFFBQ25CLGFBQWE7QUFLcEIsT0FBTyxTQUFTO0FBRWhCO0FEUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ1VBLElBQU1DLGVBQWUsR0FBeUIsU0FBeENBLGVBQWVBLENBQUFDLElBQUEsRUFrQmhCO0VBQUEsSUFBQUMsWUFBQSxHQUFBRCxJQUFBLENBakJIRSxPQUFPO0lBQVBBLE9BQU8sR0FBQUQsWUFBQSxjQUFHLE1BQU0sR0FBQUEsWUFBQTtJQUNoQkUsTUFBTSxHQUFBSCxJQUFBLENBQU5HLE1BQU07SUFDTkMsS0FBSyxHQUFBSixJQUFBLENBQUxJLEtBQUs7SUFDTEMsU0FBUyxHQUFBTCxJQUFBLENBQVRLLFNBQVM7SUFDVEMsWUFBWSxHQUFBTixJQUFBLENBQVpNLFlBQVk7SUFDWkMsTUFBTSxHQUFBUCxJQUFBLENBQU5PLE1BQU07SUFDTkMsUUFBUSxHQUFBUixJQUFBLENBQVJRLFFBQVE7SUFDUkMsT0FBTyxHQUFBVCxJQUFBLENBQVBTLE9BQU87SUFDUEMsS0FBSyxHQUFBVixJQUFBLENBQUxVLEtBQUs7SUFDTEMsV0FBVyxHQUFBWCxJQUFBLENBQVhXLFdBQVc7SUFBQUMscUJBQUEsR0FBQVosSUFBQSxDQUNYYSxpQkFBaUI7SUFBakJBLGlCQUFpQixHQUFBRCxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7SUFDeEJFLFlBQVksR0FBQWQsSUFBQSxDQUFaYyxZQUFZO0lBQ1pDLE9BQU8sR0FBQWYsSUFBQSxDQUFQZSxPQUFPO0lBQ1BDLFNBQVMsR0FBQWhCLElBQUEsQ0FBVGdCLFNBQVM7SUFDVEMsU0FBUyxHQUFBakIsSUFBQSxDQUFUaUIsU0FBUztJQUNUQyxRQUFRLEdBQUFsQixJQUFBLENBQVJrQixRQUFRO0lBQ1JDLFFBQVEsR0FBQW5CLElBQUEsQ0FBUm1CLFFBQVE7RUFFUixJQUFNQyxPQUFPLEdBQUczQixVQUFVLENBQUNJLG1CQUFtQixDQUFDO0VBQy9DLElBQU13QixNQUFNLEdBQUd2Qix3QkFBd0IsQ0FBQ0ksT0FBTyxDQUFDO0VBRWhEO0VBQ0E7RUFDQSxJQUFNb0IsU0FBUyxHQUNiLE9BQU9aLEtBQUssS0FBSyxRQUFRLElBQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsR0FDcEQxQixJQUFBLENBQUNPLFVBQVUsQ0FBQ2dDLFFBQVEsRUFBQTtJQUFDQyxJQUFJLEVBQUMsSUFBSTtJQUFDQyxFQUFFLEVBQUMsSUFBSTtJQUFDQyxLQUFLLEVBQUMsU0FBUztJQUFBUCxRQUFBLEVBQ25EVDtFQUFLLENBQUEsQ0FDYyxHQUV0QkEsS0FDRDtFQUVIO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLElBQU1pQixXQUFXLEdBQ2ZsQixPQUFPLElBQUksSUFBSSxJQUFJQSxPQUFPLEtBQUssRUFBRSxHQUFHLElBQUksR0FDcEMsT0FBT0EsT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxPQUFPLEtBQUssUUFBUSxHQUMxRHpCLElBQUEsQ0FBQ08sVUFBVSxDQUFDcUMsSUFBSSxFQUFBO0lBQUNKLElBQUksRUFBQyxJQUFJO0lBQUNFLEtBQUssRUFBQyxrQkFBa0I7SUFBQVAsUUFBQSxFQUNoRFY7RUFBTyxDQUFBLENBQ1EsR0FFbEJBLE9BQ0Q7RUFFTCxJQUFNb0IsZ0JBQWdCLEdBQ3BCLE9BQU9mLFlBQVksS0FBSyxRQUFRLEdBQzlCOUIsSUFBQSxDQUFDTSxLQUFLLEVBQUE7SUFBQ3dDLElBQUksRUFBRWhCLFlBQXdCO0lBQUVVLElBQUksRUFBRUgsTUFBTSxDQUFDVTtFQUFnQixDQUFBLENBQUksR0FFeEVqQixZQUNEO0VBRUg7RUFDQTtFQUNBLElBQU1rQixRQUFRLEdBQUcxQixZQUFZLEdBQzNCdEIsSUFBQSxDQUFBLFFBQUEsRUFBQTtJQUNFaUQsSUFBSSxFQUFDLFFBQVE7SUFDYjVCLFNBQVMsRUFBRWUsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUFBLFlBQUEsRUFDZHhCLHVCQUF1QjtJQUNuQ3NDLE9BQU8sRUFBRTNCLE1BQU07SUFBQVksUUFBQSxFQUVkWCxRQUFRLEtBQUEsSUFBQSxJQUFSQSxRQUFRLEtBQUEsS0FBQSxDQUFBLEdBQVJBLFFBQVEsR0FBSXhCLElBQUEsQ0FBQ00sS0FBSyxFQUFBO01BQUN3QyxJQUFJLEVBQUMsV0FBVztNQUFDTixJQUFJLEVBQUU3QjtJQUEyQixDQUFBO0VBQUksQ0FBQSxDQUNuRSxHQUNQLElBQUk7RUFFUixJQUFNd0MsU0FBUyxHQUNiN0IsWUFBWSxJQUNaUSxZQUFZLElBQUksSUFBSSxJQUNwQmEsV0FBVyxJQUFJLElBQUksSUFDbkJqQixLQUFLLElBQUksSUFBSSxJQUNiQyxXQUFXLElBQUksSUFBSTtFQUVyQixJQUFNeUIsTUFBTSxHQUFHRCxTQUFTLEdBQ3RCakQsS0FBQSxDQUFBLEtBQUEsRUFBQTtJQUFLbUIsU0FBUyxFQUFFZSxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQUFELFFBQUEsRUFBQSxDQUM5QmEsUUFBUSxFQUdSSCxnQkFBZ0IsSUFBSSxJQUFJLElBQ3ZCN0MsSUFBQSxDQUFBLEtBQUEsRUFBQTtNQUFLcUIsU0FBUyxFQUFFZSxPQUFPLENBQUMsY0FBYyxDQUFDO01BQUFELFFBQUEsRUFBR1U7SUFBZ0IsQ0FBQSxDQUMzRCxFQUNBRixXQUFXLEVBQ1hMLFNBQVMsRUFDVFgsV0FBVyxJQUFJLElBQUksSUFDbEIzQixJQUFBLENBQUNPLFVBQVUsQ0FBQ3FDLElBQUksRUFBQTtNQUFDSCxFQUFFLEVBQUMsR0FBRztNQUFDRCxJQUFJLEVBQUMsSUFBSTtNQUFDYSxNQUFNLEVBQUV4QixpQkFBaUI7TUFBRWEsS0FBSyxFQUFDLG1CQUFtQjtNQUFBUCxRQUFBLEVBQ25GUjtJQUFXLENBQUEsQ0FFZjtFQUFBLENBQUEsQ0FDRyxHQUNKMkIsU0FBUztFQUViO0VBQ0E7RUFDQSxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUMsTUFBd0IsRUFBSTtJQUFBLElBQUFDLEVBQUE7SUFDNUMsT0FBQUQsTUFBTSxJQUFBRSxNQUFBLENBQUFDLE1BQUEsQ0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQVNILE1BQU0sQ0FBQSxFQUFBO01BQUVoQixJQUFJLEVBQUUsQ0FBQWlCLEVBQUEsR0FBQUQsTUFBTSxDQUFDaEIsSUFBSSxNQUFBLElBQUEsSUFBQWlCLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJcEIsTUFBTSxDQUFDdUI7SUFBVSxDQUFBLENBQUU7RUFBQSxDQUFBO0VBRWpFLElBQU1DLE1BQU0sR0FDVjlCLE9BQU8sSUFBSUMsU0FBUyxJQUFJRSxRQUFRLEdBQzlCbEMsSUFBQSxDQUFDSSxTQUFTLEVBQUE7SUFDUjZCLFNBQVMsRUFBRUEsU0FBUztJQUNwQkYsT0FBTyxFQUFFd0IsUUFBUSxDQUFDeEIsT0FBTyxDQUFDO0lBQzFCQyxTQUFTLEVBQUV1QixRQUFRLENBQUN2QixTQUFTLENBQUM7SUFDOUJFLFFBQVEsRUFBRUE7RUFBUSxDQUFBLENBQ2xCLEdBQ0FvQixTQUFTO0VBRWYsT0FDRXRELElBQUEsQ0FBQ0s7RUFDQztFQUNBO0VBQ0E7RUFBQSxFRDFGQTtJQ3dGQTtJQUNBO0lBQ0E7SUFDQWEsT0FBTyxFQUFDLE1BQU07SUFDZHNCLElBQUksRUFBQyxPQUFPO0lBQ1pyQixNQUFNLEVBQUVBLE1BQU07SUFDZDtJQUNBO0lBQ0E7SUFDQUMsS0FBSyxFQUFFQSxLQUFLLEtBQUEsSUFBQSxJQUFMQSxLQUFLLEtBQUEsS0FBQSxDQUFBLEdBQUxBLEtBQUssR0FBS0YsT0FBTyxLQUFLLE9BQU8sR0FBRyxNQUFNLEdBQUdtQixNQUFNLENBQUNqQixLQUFNO0lBQzdEQyxTQUFTLEVBQUVYLE9BQU8sQ0FBQzBCLE9BQU8sQ0FBQSxDQUFFLEVBQUVBLE9BQU8sQ0FBQ2xCLE9BQU8sQ0FBQyxFQUFFRyxTQUFTLENBQUM7SUFDMUR5QyxLQUFLLEVBQUU7TUFBRSwwQkFBMEIsS0FBQUMsTUFBQSxDQUFLMUIsTUFBTSxDQUFDMkIsU0FBUztJQUFJLENBQW1CO0lBQy9FdEMsS0FBSyxFQUFFMEIsTUFBTTtJQUNiUyxNQUFNLEVBQUVBLE1BQU07SUFBQTFCLFFBQUEsRUFFYkE7RUFBUSxDQUFBLENBQ0U7QUFFakIsQ0FBQztBQUVELE9BQU8sSUFBTThCLFdBQVcsZ0JBQUc5RCxJQUFJLENBQUNZLGVBQWUsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1BhbmVsTGF5b3V0L1BhbmVsTGF5b3V0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBY3Rpb25CYXIgfSBmcm9tICcuLi9BY3Rpb25CYXInO1xuaW1wb3J0IHsgRm9ybUxheW91dCB9IGZyb20gJy4uL0Zvcm1MYXlvdXQnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IFBBTkVMX0xBWU9VVF9CQUNLX0lDT05fU0laRSwgUEFORUxfTEFZT1VUX0JBQ0tfTEFCRUwsIFBBTkVMX0xBWU9VVF9QUkVGSVgsIHJlc29sdmVQYW5lbExheW91dENvbmZpZywgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuLyoqXG4gKiBUaGUgbm9uLWZvcm0gY29udGVudCBQQU5FTCDigJQgdGhlIGNvdW50ZXJwYXJ0IHRvIGBGb3JtTGF5b3V0YDogdGhhdCBvbmVcbiAqIGhvbGRzIGZpZWxkcywgdGhpcyBvbmUgaG9sZHMgYW4gaWxsdXN0cmF0aW9uLCBjb3B5IGFuZCBhY3Rpb25zLiBPTkUgc3VyZmFjZVxuICogc2VydmluZyB0d28gaG9zdHM6XG4gKlxuICogICBwYWdlIGhvc3QgICAgPFBhbmVsTGF5b3V0IC8+ICAgICAgICAgICAgICAgICAgICAgICAgIHVzZWQgZGlyZWN0bHlcbiAqICAgZGlhbG9nIGhvc3QgIEJhc2VEaWFsb2cgPSBEaWFsb2coYmFyZSkgKyB0aGlzKG1vZGFsKSBvbmx5IGFkZHMgdGhlIG92ZXJsYXlcbiAqXG4gKiBEZWxpYmVyYXRlbHkgTk9UIG5hbWVkIGZvciBhIHNjZW5hcmlvLCBiZWNhdXNlIGl0IGNhcnJpZXMgc2V2ZXJhbDogYVxuICogdmVyaWZpY2F0aW9uIGNoYWxsZW5nZSwgYSBzdGVwcGVkIHdpemFyZCAoMkZBIHNldHVwIOKAlCBoZW5jZSB0aGUgYmFja1xuICogYXJyb3cpLCBhIHRlcm1pbmFsIHBhZ2Ugd2l0aCBubyBhY3Rpb24gYXQgYWxsLlxuICpcbiAqIE9uIGEgcGFnZSwgT05FIG9mIHRob3NlIHNjZW5hcmlvcyBoYXMgYSBzaGVsbCBvZiBpdHMgb3duIGFuZCB0aGUgcmVzdCBkb1xuICogbm90IOKAlCB3aGljaCBkZWNpZGVzIHdoZXJlIGJ1c2luZXNzIGNvZGUgc2hvdWxkIHJlYWNoOlxuICpcbiAqICAgYSByZXN1bHQgKHN1Y2Nlc3MgLyBmYWlsdXJlIC8gZXhwaXJlZCAvIOKApikgIOKGkiBgUmVzdWx0Rm9ybWAsIGJ1c2luZXNzL0Zvcm1cbiAqICAgYW55dGhpbmcgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpIgdGhpcywgZGlyZWN0bHlcbiAqXG4gKiBTbyBiZWluZyB1c2VkIGRpcmVjdGx5IGlzIHRoZSBub3JtYWwgY2FzZSBoZXJlLCBub3QgYSBmYWxsYmFjay4gT25seSBhZGRcbiAqIGFub3RoZXIgc2hlbGwgb24gdG9wIHdoZW4gYSBzY2VuYXJpbyBlYXJucyBhIG5hbWUgQU5EIHJlY3VycmluZyBjb3B5IChhXG4gKiBgcHJlc2V0YCk7IGEgc2hlbGwgdGhhdCBqdXN0IHJlLWV4cG9ydHMgdGhpcyBvbmUgYnV5cyBub3RoaW5nLlxuICpcbiAqIEFzc2VtYmx5OlxuICpcbiAqICAgRm9ybUxheW91dCAgICAgICAgICBjYXJkIGNocm9tZSAoc3VyZmFjZSwgaGFpcmxpbmUsIHJhZGl1cykgKyB0aGUgMjRcbiAqICAg4pSCICAgICAgICAgICAgICAgICAgIHBhZGRpbmcgYW5kIDE2IHJlZ2lvbiBnYXAuIEl0cyBgcGFnZS9zbWFsbGAgd2lkdGhcbiAqICAg4pSCICAgICAgICAgICAgICAgICAgICg0NDgsIHRoZSBzaWduLWluIGNhcmQpIGlzIE5PVCB1c2VkIOKAlCB0aGUgcGFuZWwgd2lkdGhcbiAqICAg4pSCICAgICAgICAgICAgICAgICAgIGNvbWVzIGZyb20gdGhlIGNvbmZpZyB0YWJsZS5cbiAqICAg4pSc4pSAIGhlYWRlciBzbG90ICAgICAgYmFjayAvIGlsbHVzdHJhdGlvbiAvIGV5ZWJyb3cgLyB0aXRsZSAvIGRlc2NyaXB0aW9uIGFzXG4gKiAgIOKUgiAgICAgICAgICAgICAgICAgICBPTkUgYmxvY2sgb24gOHB4IHNlYW1zLiBJdCBnb2VzIGluIHRoZSB0aXRsZSBzbG90LCBub3RcbiAqICAg4pSCICAgICAgICAgICAgICAgICAgIHRoZSBjb250ZW50IHJlZ2lvbiwgYmVjYXVzZSBpdCBpcyBhbGwgaGVhZGVyIGNvcHkg4oCUXG4gKiAgIOKUgiAgICAgICAgICAgICAgICAgICB0aGF0IGFsc28ga2VlcHMgaXQgcGlubmVkIHdoZW4gdGhlIGNvbnRlbnQgc2Nyb2xscy5cbiAqICAg4pSc4pSAIGNvbnRlbnQgcmVnaW9uICAgYGNoaWxkcmVuYCDigJQgZnJlZS1mb3JtIChhIFFSIGNvZGUsIGFuIE9UUCBpbnB1dCwgcm93cylcbiAqICAg4pSU4pSAIEFjdGlvbkJhcihmaWxsKSAgdGhlIGFjdGlvbnMuXG4gKlxuICogSXQgb3ducyBubyBjb3B5IGFuZCBubyBsb29zZSBudW1iZXJzOiBldmVyeXRoaW5nIGhvc3Qtc3BlY2lmaWMgY29tZXMgZnJvbVxuICogYFBBTkVMX0xBWU9VVF9DT05GSUdgLCBzbyBhIGRpdmVyZ2VuY2UgYmV0d2VlbiBwYWdlIGFuZCBkaWFsb2cgaXMgYSB2YWx1ZVxuICogY2hhbmdlIGluIHRoYXQgdGFibGUgYW5kIG5vdGhpbmcgZWxzZS5cbiAqL1xuY29uc3QgUGFuZWxMYXlvdXRCYXNlID0gKHsgdmFyaWFudCA9ICdwYWdlJywgc2Nyb2xsLCB3aWR0aCwgY2xhc3NOYW1lLCBzaG93QmFja0ljb24sIG9uQmFjaywgYmFja0ljb24sIGV5ZWJyb3csIHRpdGxlLCBkZXNjcmlwdGlvbiwgZGVzY3JpcHRpb25TdHJvbmcgPSB0cnVlLCBpbGx1c3RyYXRpb24sIHByaW1hcnksIHNlY29uZGFyeSwgZGlyZWN0aW9uLCBmb290bm90ZSwgY2hpbGRyZW4sIH0pID0+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhQQU5FTF9MQVlPVVRfUFJFRklYKTtcbiAgICBjb25zdCBjb25maWcgPSByZXNvbHZlUGFuZWxMYXlvdXRDb25maWcodmFyaWFudCk7XG4gICAgLy8gQSBwbGFpbiBzdHJpbmcgYmVjb21lcyB0aGUgZmFtaWx5IGhlYWRpbmc7IGEgbm9kZSBwYXNzZXMgdGhyb3VnaCBzb1xuICAgIC8vIGNhbGxlcnMgY2FuIGNvbXBvc2UgKGUuZy4gYSBUYWcgYWJvdmUgYSB0d28tbGluZSB0aXRsZSkuXG4gICAgY29uc3QgdGl0bGVOb2RlID0gdHlwZW9mIHRpdGxlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdGl0bGUgPT09ICdudW1iZXInID8gKF9qc3goVHlwb2dyYXBoeS5IZWFkbGluZSwgeyBzaXplOiAnc20nLCBhczogJ2gyJywgY29sb3I6ICdkZWZhdWx0JywgY2hpbGRyZW46IHRpdGxlIH0pKSA6ICh0aXRsZSk7XG4gICAgLy8gU2FtZSBjb250cmFjdCBhcyBgdGl0bGVgOiBhIHBsYWluIHN0cmluZyBnZXRzIHRoZSBmYW1pbHkgdHJlYXRtZW50ICh0aGVcbiAgICAvLyBtdXRlZCBsYWJlbCBvZiBcIlN0ZXAgMiBvZiAzXCIpLCBhIG5vZGUgcGFzc2VzIHRocm91Z2ggc28gYSBUYWcgb3IgYVxuICAgIC8vIGNvbXBvc2VkIHJvdyBzdGlsbCB3b3Jrcy4gV2l0aG91dCB0aGlzIGV2ZXJ5IGNhbGxlciB3aXRoIGEgdGV4dCBleWVicm93XG4gICAgLy8gd291bGQgaGFuZC1yb2xsIHRoZSBzYW1lIFR5cG9ncmFwaHkuXG4gICAgLy9cbiAgICAvLyBBbiBFTVBUWSBzdHJpbmcgY291bnRzIGFzIGFic2VudC4gQ2FsbGVycyByb3V0aW5lbHkgaG9sZCB0aGUgZXllYnJvdyBpbiBhXG4gICAgLy8gc3RhdGUgb2JqZWN0IHRoYXQgc3RhcnRzIGFzIGAnJ2AsIGFuZCByZW5kZXJpbmcgYW4gZW1wdHkgbGFiZWwgd291bGQgb3BlblxuICAgIC8vIGFuIDhweCBzZWFtIGFib3ZlIHRoZSB0aXRsZSBmb3Igbm90aGluZyDigJQgc28gdGhleSBjYW4gcGFzcyB0aGUgdmFsdWVcbiAgICAvLyBzdHJhaWdodCB0aHJvdWdoIGluc3RlYWQgb2YgZ3VhcmRpbmcgaXQgYXQgZXZlcnkgY2FsbCBzaXRlLlxuICAgIGNvbnN0IGV5ZWJyb3dOb2RlID0gZXllYnJvdyA9PSBudWxsIHx8IGV5ZWJyb3cgPT09ICcnID8gbnVsbFxuICAgICAgICA6IHR5cGVvZiBleWVicm93ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgZXllYnJvdyA9PT0gJ251bWJlcicgPyAoX2pzeChUeXBvZ3JhcGh5LkJvZHksIHsgc2l6ZTogJ3NtJywgY29sb3I6ICdkZWZhdWx0LXRlcnRpYXJ5JywgY2hpbGRyZW46IGV5ZWJyb3cgfSkpIDogKGV5ZWJyb3cpO1xuICAgIGNvbnN0IGlsbHVzdHJhdGlvbk5vZGUgPSB0eXBlb2YgaWxsdXN0cmF0aW9uID09PSAnc3RyaW5nJyA/IChfanN4KEljb25zLCB7IG5hbWU6IGlsbHVzdHJhdGlvbiwgc2l6ZTogY29uZmlnLmlsbHVzdHJhdGlvblNpemUgfSkpIDogKGlsbHVzdHJhdGlvbik7XG4gICAgLy8gSXRzIG93biByb3cgYWJvdmUgZXZlcnl0aGluZyBlbHNlLCBvbiB0aGUgYmxvY2sncyA4cHggc2VhbSDigJQgdGhlIHNoYXBlXG4gICAgLy8gc3RlcHBlZCBmbG93cyB1c2UgaW4gYm90aCBob3N0cyAoMkZBIHNldHVwIG9uIGEgcGFnZSwgd2l6YXJkIGRpYWxvZ3MpLlxuICAgIGNvbnN0IGJhY2tOb2RlID0gc2hvd0JhY2tJY29uID8gKF9qc3goXCJidXR0b25cIiwgeyB0eXBlOiAnYnV0dG9uJywgY2xhc3NOYW1lOiBjbGFzc2VzKCdiYWNrJyksIFwiYXJpYS1sYWJlbFwiOiBQQU5FTF9MQVlPVVRfQkFDS19MQUJFTCwgb25DbGljazogb25CYWNrLCBjaGlsZHJlbjogYmFja0ljb24gIT09IG51bGwgJiYgYmFja0ljb24gIT09IHZvaWQgMCA/IGJhY2tJY29uIDogX2pzeChJY29ucywgeyBuYW1lOiAnYXJyb3dMZWZ0Jywgc2l6ZTogUEFORUxfTEFZT1VUX0JBQ0tfSUNPTl9TSVpFIH0pIH0pKSA6IG51bGw7XG4gICAgY29uc3QgaGFzSGVhZGVyID0gc2hvd0JhY2tJY29uIHx8XG4gICAgICAgIGlsbHVzdHJhdGlvbiAhPSBudWxsIHx8XG4gICAgICAgIGV5ZWJyb3dOb2RlICE9IG51bGwgfHxcbiAgICAgICAgdGl0bGUgIT0gbnVsbCB8fFxuICAgICAgICBkZXNjcmlwdGlvbiAhPSBudWxsO1xuICAgIGNvbnN0IGhlYWRlciA9IGhhc0hlYWRlciA/IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaGVhZGVyJyksIGNoaWxkcmVuOiBbYmFja05vZGUsIGlsbHVzdHJhdGlvbk5vZGUgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWxsdXN0cmF0aW9uJyksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgZXllYnJvd05vZGUsIHRpdGxlTm9kZSwgZGVzY3JpcHRpb24gIT0gbnVsbCAmJiAoX2pzeChUeXBvZ3JhcGh5LkJvZHksIHsgYXM6ICdwJywgc2l6ZTogJ21kJywgc3Ryb25nOiBkZXNjcmlwdGlvblN0cm9uZywgY29sb3I6ICdkZWZhdWx0LXNlY29uZGFyeScsIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSldIH0pKSA6IHVuZGVmaW5lZDtcbiAgICAvLyBUaGUgYmFyIG93bnMgdGhlIGJ1dHRvbiBzaXplLCBzbyB0aGUgZmFtaWx5IHNpemUgaXMgYXBwbGllZCBwZXIgYWN0aW9uXG4gICAgLy8gcmF0aGVyIHRoYW4gYXMgYSBiYXItbGV2ZWwgcHJvcDsgYW4gZXhwbGljaXQgcGVyLWFjdGlvbiBgc2l6ZWAgc3RpbGwgd2lucy5cbiAgICBjb25zdCB3aXRoU2l6ZSA9IChhY3Rpb24pID0+IHsgdmFyIF9hOyByZXR1cm4gYWN0aW9uICYmIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYWN0aW9uKSwgeyBzaXplOiAoX2EgPSBhY3Rpb24uc2l6ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogY29uZmlnLmJ1dHRvblNpemUgfSk7IH07XG4gICAgY29uc3QgZm9vdGVyID0gcHJpbWFyeSB8fCBzZWNvbmRhcnkgfHwgZm9vdG5vdGUgPyAoX2pzeChBY3Rpb25CYXIsIHsgZGlyZWN0aW9uOiBkaXJlY3Rpb24sIHByaW1hcnk6IHdpdGhTaXplKHByaW1hcnkpLCBzZWNvbmRhcnk6IHdpdGhTaXplKHNlY29uZGFyeSksIGZvb3Rub3RlOiBmb290bm90ZSB9KSkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4KEZvcm1MYXlvdXRcbiAgICAvLyBgcGFnZS9zbWFsbGAgaXMgdXNlZCBmb3IgaXRzIDI0IHBhZGRpbmcgYW5kIDE2IHJlZ2lvbiBnYXAsIHdoaWNoIGFyZVxuICAgIC8vIGFscmVhZHkgdGhlIHJlc3VsdCBmYW1pbHkncyBudW1iZXJzLiBJdHMgNDQ4IHdpZHRoIGlzIE5PVCDigJQgdGhhdCBpc1xuICAgIC8vIHRoZSBzaWduLWluIGNhcmQ7IHRoZSByZXN1bHQgcGFuZWwgaXMgMzgwLCBmcm9tIHRoZSBjb25maWcgdGFibGUuXG4gICAgLCB7IFxuICAgICAgICAvLyBgcGFnZS9zbWFsbGAgaXMgdXNlZCBmb3IgaXRzIDI0IHBhZGRpbmcgYW5kIDE2IHJlZ2lvbiBnYXAsIHdoaWNoIGFyZVxuICAgICAgICAvLyBhbHJlYWR5IHRoZSByZXN1bHQgZmFtaWx5J3MgbnVtYmVycy4gSXRzIDQ0OCB3aWR0aCBpcyBOT1Qg4oCUIHRoYXQgaXNcbiAgICAgICAgLy8gdGhlIHNpZ24taW4gY2FyZDsgdGhlIHJlc3VsdCBwYW5lbCBpcyAzODAsIGZyb20gdGhlIGNvbmZpZyB0YWJsZS5cbiAgICAgICAgdmFyaWFudDogJ3BhZ2UnLCBzaXplOiAnc21hbGwnLCBzY3JvbGw6IHNjcm9sbCwgXG4gICAgICAgIC8vIEluIGEgZGlhbG9nIHRoZSBEaWFsb2cgcGFuZWwgY2FycmllcyB0aGUgd2lkdGggKEJhc2VEaWFsb2cgcmVhZHMgdGhlXG4gICAgICAgIC8vIHNhbWUgZW50cnkpIGFuZCB0aGUgbGF5b3V0IGZpbGxzIGl0OiBzaXppbmcgYSBiYXJlIHBhbmVsIGZyb20gaXRzXG4gICAgICAgIC8vIGNoaWxkIGhpdHMgdGhlIHNocmluay10by1maXQgcGVyY2VudGFnZSBjaXJjdWxhcml0eS5cbiAgICAgICAgd2lkdGg6IHdpZHRoICE9PSBudWxsICYmIHdpZHRoICE9PSB2b2lkIDAgPyB3aWR0aCA6ICh2YXJpYW50ID09PSAnbW9kYWwnID8gJzEwMCUnIDogY29uZmlnLndpZHRoKSwgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3Nlcyh2YXJpYW50KSwgY2xhc3NOYW1lKSwgc3R5bGU6IHsgJy0tZm9ybS1sYXlvdXQtYWN0aW9uLWdhcCc6IGAke2NvbmZpZy5hY3Rpb25HYXB9cHhgIH0sIHRpdGxlOiBoZWFkZXIsIGZvb3RlcjogZm9vdGVyLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcbmV4cG9ydCBjb25zdCBQYW5lbExheW91dCA9IG1lbW8oUGFuZWxMYXlvdXRCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,60 @@
1
+ export declare const PANEL_LAYOUT_PREFIX = "panel-layout";
2
+ /** Back-arrow control: 24px icon, and its accessible name. */
3
+ export declare const PANEL_LAYOUT_BACK_ICON_SIZE = 24;
4
+ export declare const PANEL_LAYOUT_BACK_LABEL = "Go back";
5
+ /**
6
+ * THE density table for content panels — the single thing to edit when the
7
+ * design changes. Same shape as `FORM_LAYOUT_CONFIG`: one entry per host, so
8
+ * a divergence between the two is a value change, never a structural one.
9
+ *
10
+ * The two entries are currently IDENTICAL, and that is the design: a panel
11
+ * renders the same on a page and in a dialog, the only difference being
12
+ * whether a `Dialog(bare)` is wrapped around it. They are still spelled out
13
+ * separately so that (a) the sameness reads as deliberate rather than as an
14
+ * oversight, and (b) a divergence later is a value change here and nothing
15
+ * else — no consumer passes these numbers, they only pass `variant`.
16
+ *
17
+ * `width` is the panel width used in BOTH hosts (380). It is NOT inherited
18
+ * from FormLayout's `page/small` density — that entry is 448, the app's
19
+ * sign-in card, a different surface. Only the padding (24) and the region gap
20
+ * (16) come from that density, and those already match. Inside a dialog the
21
+ * value goes on the Dialog panel and the layout fills at 100%: sizing a bare
22
+ * panel from its child hits the shrink-to-fit percentage circularity (the
23
+ * same reason FormDialog gives).
24
+ */
25
+ export declare const PANEL_LAYOUT_CONFIG: {
26
+ /** Standalone on a page. */
27
+ readonly page: {
28
+ /** Panel width (px). */
29
+ readonly width: 380;
30
+ /** Illustration above the header copy (px). */
31
+ readonly illustrationSize: 52;
32
+ /** Footer action button size. */
33
+ readonly buttonSize: "medium";
34
+ /** Gap between footer action buttons (px); ActionBar reads it via var. */
35
+ readonly actionGap: 8;
36
+ };
37
+ /** Inside a dialog, wrapped by `BaseDialog` in a `Dialog(bare)`. */
38
+ readonly modal: {
39
+ readonly width: 380;
40
+ readonly illustrationSize: 52;
41
+ readonly buttonSize: "medium";
42
+ readonly actionGap: 8;
43
+ };
44
+ };
45
+ export type PanelLayoutVariant = keyof typeof PANEL_LAYOUT_CONFIG;
46
+ export declare const resolvePanelLayoutConfig: (variant: PanelLayoutVariant) => {
47
+ /** Panel width (px). */
48
+ readonly width: 380;
49
+ /** Illustration above the header copy (px). */
50
+ readonly illustrationSize: 52;
51
+ /** Footer action button size. */
52
+ readonly buttonSize: "medium";
53
+ /** Gap between footer action buttons (px); ActionBar reads it via var. */
54
+ readonly actionGap: 8;
55
+ } | {
56
+ readonly width: 380;
57
+ readonly illustrationSize: 52;
58
+ readonly buttonSize: "medium";
59
+ readonly actionGap: 8;
60
+ };