@guodun/antdv 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/es/components/contract-signing-location/index.mjs +1 -0
  2. package/dist/es/components/contract-signing-location/src/ContractSigningLocation.vue.mjs +304 -289
  3. package/dist/es/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.mjs +337 -326
  4. package/dist/es/components/contract-signing-location/src/ContractSigningLocationNavigator.vue.mjs +41 -33
  5. package/dist/es/components/contract-signing-location/src/ContractSigningTemplatePage.mjs +5 -0
  6. package/dist/es/components/contract-signing-location/src/ContractSigningTemplatePage.vue.mjs +23 -0
  7. package/dist/es/components/contract-signing-location/src/location-rules.mjs +115 -77
  8. package/dist/es/components/contract-signing-location/src/template-source.mjs +85 -0
  9. package/dist/es/components/contract-signing-location/style/index.css +1 -1
  10. package/dist/es/components/index.mjs +8 -6
  11. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.mjs +164 -57
  12. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.vue.mjs +128 -125
  13. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowNodeCard.vue.mjs +75 -49
  14. package/dist/es/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.mjs +135 -91
  15. package/dist/es/components/pro-contract-signing-flow/src/constants.mjs +25 -5
  16. package/dist/es/components/pro-contract-signing-flow/style/index.css +1 -1
  17. package/dist/es/components/pro-contract-template-designer/index.mjs +5 -4
  18. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.mjs +5 -0
  19. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.mjs +347 -0
  20. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.mjs +5 -0
  21. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.mjs +171 -0
  22. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateFileBar.mjs +5 -0
  23. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateFileBar.vue.mjs +166 -0
  24. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererField.vue.mjs +4 -4
  25. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererValidation.mjs +5 -0
  26. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererValidation.vue.mjs +36 -0
  27. package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +202 -202
  28. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1591 -1612
  29. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.mjs +235 -239
  30. package/dist/es/components/pro-contract-template-designer/src/SigningPlacementLayer.vue.mjs +16 -16
  31. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +166 -166
  32. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-draft-cache.mjs +100 -33
  33. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-files.mjs +77 -0
  34. package/dist/es/components/pro-contract-template-designer/src/extensions/word-paste.mjs +23 -23
  35. package/dist/es/components/pro-contract-template-designer/src/utils/file-tabs.mjs +14 -0
  36. package/dist/es/components/pro-contract-template-designer/src/utils/template-renderer.mjs +121 -121
  37. package/dist/es/components/pro-contract-template-designer/src/utils/toolbar-overflow.mjs +19 -0
  38. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  39. package/dist/es/index.mjs +23 -21
  40. package/dist/lib/components/contract-signing-location/index.cjs +1 -1
  41. package/dist/lib/components/contract-signing-location/src/ContractSigningLocation.vue.cjs +1 -1
  42. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs +1 -1
  43. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationNavigator.vue.cjs +1 -1
  44. package/dist/lib/components/contract-signing-location/src/ContractSigningTemplatePage.cjs +1 -0
  45. package/dist/lib/components/contract-signing-location/src/ContractSigningTemplatePage.vue.cjs +1 -0
  46. package/dist/lib/components/contract-signing-location/src/location-rules.cjs +1 -1
  47. package/dist/lib/components/contract-signing-location/src/template-source.cjs +1 -0
  48. package/dist/lib/components/contract-signing-location/style/index.css +1 -1
  49. package/dist/lib/components/index.cjs +1 -1
  50. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.cjs +1 -1
  51. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.vue.cjs +1 -1
  52. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowNodeCard.vue.cjs +1 -1
  53. package/dist/lib/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.cjs +1 -1
  54. package/dist/lib/components/pro-contract-signing-flow/src/constants.cjs +1 -1
  55. package/dist/lib/components/pro-contract-signing-flow/style/index.css +1 -1
  56. package/dist/lib/components/pro-contract-template-designer/index.cjs +1 -1
  57. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.cjs +1 -0
  58. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.cjs +1 -0
  59. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.cjs +1 -0
  60. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.cjs +1 -0
  61. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateFileBar.cjs +1 -0
  62. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateFileBar.vue.cjs +1 -0
  63. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererField.vue.cjs +1 -1
  64. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererValidation.cjs +1 -0
  65. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererValidation.vue.cjs +1 -0
  66. package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
  67. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  68. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.cjs +1 -1
  69. package/dist/lib/components/pro-contract-template-designer/src/SigningPlacementLayer.vue.cjs +1 -1
  70. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +2 -2
  71. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-draft-cache.cjs +1 -1
  72. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-files.cjs +2 -0
  73. package/dist/lib/components/pro-contract-template-designer/src/extensions/word-paste.cjs +1 -1
  74. package/dist/lib/components/pro-contract-template-designer/src/utils/file-tabs.cjs +1 -0
  75. package/dist/lib/components/pro-contract-template-designer/src/utils/template-renderer.cjs +2 -2
  76. package/dist/lib/components/pro-contract-template-designer/src/utils/toolbar-overflow.cjs +1 -0
  77. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  78. package/dist/lib/index.cjs +1 -1
  79. package/dist/theme/contract-signing-location.css +1 -1
  80. package/dist/theme/icon.css +1 -1
  81. package/dist/theme/index.css +1 -1
  82. package/dist/theme/pro-contract-signing-flow.css +1 -1
  83. package/dist/types/components/contract-signing-location/index.d.ts +1 -0
  84. package/dist/types/components/contract-signing-location/src/ContractSigningLocation.vue.d.ts +3 -1
  85. package/dist/types/components/contract-signing-location/src/ContractSigningLocationInspector.vue.d.ts +2 -2
  86. package/dist/types/components/contract-signing-location/src/ContractSigningTemplatePage.vue.d.ts +6 -0
  87. package/dist/types/components/contract-signing-location/src/location-rules.d.ts +3 -3
  88. package/dist/types/components/contract-signing-location/src/template-source.d.ts +20 -0
  89. package/dist/types/components/contract-signing-location/src/types.d.ts +47 -2
  90. package/dist/types/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.d.ts +19 -3
  91. package/dist/types/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.d.ts +223 -2
  92. package/dist/types/components/pro-contract-signing-flow/src/constants.d.ts +15 -0
  93. package/dist/types/components/pro-contract-signing-flow/src/types.d.ts +12 -0
  94. package/dist/types/components/pro-contract-template-designer/index.d.ts +1 -0
  95. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.d.ts +103 -0
  96. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.d.ts +48 -0
  97. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateFileBar.vue.d.ts +231 -0
  98. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateRendererValidation.vue.d.ts +15 -0
  99. package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +1 -1
  100. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +25 -2
  101. package/dist/types/components/pro-contract-template-designer/src/SigningPlacementInspector.vue.d.ts +2 -2
  102. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +1 -1
  103. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-draft-cache.d.ts +29 -1
  104. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-files.d.ts +24 -0
  105. package/dist/types/components/pro-contract-template-designer/src/constants.d.ts +2 -2
  106. package/dist/types/components/pro-contract-template-designer/src/types.d.ts +59 -1
  107. package/dist/types/components/pro-contract-template-designer/src/utils/file-tabs.d.ts +3 -0
  108. package/dist/types/components/pro-contract-template-designer/src/utils/toolbar-overflow.d.ts +11 -0
  109. package/package.json +2 -1
@@ -1 +1 @@
1
- :root{--gdant-primary-50:var(--primary-50,#f4f9ff);--gdant-primary-100:var(--primary-100,#e9f1f6);--gdant-primary-200:var(--primary-200,#bcd7ff);--gdant-primary-300:var(--primary-300,#7fb0ff);--gdant-primary-400:var(--primary-400,#3b87ff);--gdant-primary-500:var(--primary-500,#1161ff);--gdant-primary-600:var(--primary-600,#0d4ed1);--gdant-primary-700:var(--primary-700,#0a3da5);--gdant-primary-800:var(--primary-800,#082c79);--gdant-primary-900:var(--primary-900,#05204d);--gdant-neutral-0:var(--neutral-0,#fff);--gdant-neutral-50:var(--neutral-50,#fafbfc);--gdant-neutral-100:var(--neutral-100,#f5f6f8);--gdant-neutral-200:var(--neutral-200,#eaecef);--gdant-neutral-300:var(--neutral-300,#d9dce0);--gdant-neutral-400:var(--neutral-400,#aab0b7);--gdant-neutral-500:var(--neutral-500,#7a818b);--gdant-neutral-600:var(--neutral-600,#565b66);--gdant-neutral-700:var(--neutral-700,#383d47);--gdant-neutral-800:var(--neutral-800,#262a33);--gdant-neutral-900:var(--neutral-900,#0f131a);--gdant-success-50:var(--success-50,#e8f9ed);--gdant-success-500:var(--success-500,#00b42a);--gdant-success-600:var(--success-600,#009023);--gdant-warning-50:var(--warning-50,#fff3e8);--gdant-warning-100:var(--warning-100,#ffe4cc);--gdant-warning-500:var(--warning-500,#f58634);--gdant-warning-600:var(--warning-600,#d96c1c);--gdant-warning-700:var(--warning-700,#b35316);--gdant-error-50:var(--error-50,#fde9e9);--gdant-error-100:var(--error-100,#fcd4d4);--gdant-error-300:var(--error-300,#f47070);--gdant-error-500:var(--error-500,#ee3939);--gdant-error-600:var(--error-600,#c92626);--gdant-error-700:var(--error-700,#a31c1c);--gdant-radius-xs:var(--radius-xs,2px);--gdant-radius-sm:var(--radius-sm,4px);--gdant-radius-md:var(--radius-md,6px);--gdant-radius-lg:var(--radius-lg,8px);--gdant-radius-xl:var(--radius-xl,12px);--gdant-radius-pill:var(--radius-pill,9999px);--gdant-shadow-raised:var(--shadow-raised,0 1px 2px #0f172a0a, 0 1px 4px #0f172a0f);--gdant-shadow-overlay:var(--shadow-overlay,0 4px 12px #0f172a14, 0 2px 6px #0f172a0a);--gdant-shadow-modal:var(--shadow-modal,0 16px 48px #0f172a29, 0 4px 12px #0f172a14);--gdant-spacing-xs:var(--spacing-xs,4px);--gdant-spacing-sm:var(--spacing-sm,8px);--gdant-spacing-md:var(--spacing-md,12px);--gdant-spacing-base:var(--spacing-base,16px);--gdant-spacing-lg:var(--spacing-lg,20px);--gdant-spacing-xl:var(--spacing-xl,24px);--gdant-text-body:var(--text-body,14px);--gdant-text-body-sm:var(--text-body-sm,12px);--gdant-text-h3:var(--text-h3,16px);--gdant-font-medium:var(--font-medium,500);--gdant-font-semibold:var(--font-semibold,600);--gdant-duration-normal:var(--duration-normal,.2s);--gdant-duration-slow:var(--duration-slow,.3s);--gdant-easing-default:var(--easing-default,cubic-bezier(.2, 0, 0, 1));--gdant-overlay-bg:#ffffffb8;--gdant-z-overlay:var(--z-overlay,1040);--gdant-z-modal:var(--z-modal,1050)}.gd-contract-template-designer{--gd-toolbar-control-height:30px;--gd-toolbar-radius:10px;--gd-toolbar-gap:8px;--gd-toolbar-border:var(--gdant-neutral-200);--gd-toolbar-bg:var(--gdant-neutral-0);--gd-toolbar-muted-bg:var(--gdant-neutral-50);--gd-toolbar-shadow:var(--gdant-shadow-raised);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-100);min-height:640px;color:var(--gdant-neutral-800);flex-direction:column;font-size:14px;display:flex;overflow:hidden;container-type:inline-size}.gd-contract-template-designer__layout{--gd-sidebar-expanded:260px;--gd-inspector-expanded:300px;flex:auto;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.gd-contract-template-designer.is-fullscreen{z-index:980;border-radius:0;width:100vw;min-height:0;position:fixed;inset:0;height:100dvh!important}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector{z-index:1;background:var(--gdant-neutral-0);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);flex-direction:column;display:flex;position:relative;overflow:visible}.gd-contract-template-designer__sidebar{width:var(--gd-sidebar-expanded);border-right:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{width:var(--gd-inspector-expanded);border-left:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__sidebar.is-collapsed{border-right-width:0;width:0}.gd-contract-template-designer__inspector.is-collapsed{border-left-width:0;width:0}.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack{visibility:hidden}.gd-contract-template-designer__workspace{grid-template-rows:auto auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.gd-contract-template-designer__workspace-header{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-0) 0%, var(--gdant-neutral-50) 100%);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__workspace-meta{align-content:center;gap:2px;min-width:0;min-height:38px;display:grid}.gd-contract-template-designer__workspace-meta>span{color:var(--gdant-neutral-500);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.gd-contract-template-designer__workspace-meta>strong{color:var(--gdant-neutral-800);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.gd-contract-template-designer__workspace-meta>small{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__draft-cache-status.is-success{color:var(--gdant-success-600)}.gd-contract-template-designer__draft-cache-status.is-warning,.gd-contract-template-designer__draft-cache-status.is-error{color:var(--gdant-warning-700)}.gd-contract-template-designer__workspace-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.gd-contract-template-designer__workspace-controls,.gd-contract-template-designer__workspace-buttons{align-items:center;gap:var(--gd-toolbar-gap);border:1px solid var(--gd-toolbar-border);border-radius:var(--gdant-radius-xl);background:var(--gd-toolbar-bg);box-shadow:var(--gd-toolbar-shadow);padding:4px;display:flex}.gd-contract-template-designer__workspace-buttons{flex-wrap:wrap}.gd-contract-template-designer__toolbar{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-50) 0%, var(--gdant-neutral-50) 100%);align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__toolbar-section{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.gd-contract-template-designer__toolbar-section--main{flex-wrap:nowrap;flex:auto;gap:8px 0}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:nowrap;flex-shrink:0}.gd-contract-template-designer__toolbar-section--main>.gd-contract-template-designer__toolbar-group:first-child:before{display:none}.gd-contract-template-designer__toolbar-select{flex:none;min-width:80px;max-width:112px}.gd-contract-template-designer__toolbar-select.is-wide{min-width:108px;max-width:132px}.gd-contract-template-designer__toolbar-number{width:78px}.gd-contract-template-designer__icon-button.ant-btn-sm{width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);min-width:var(--gd-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-designer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-designer__icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__toolbar-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.gd-contract-template-designer__toolbar-group:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar .gd-contract-template-designer__icon-button.ant-btn-sm:not(.is-selected):not(.ant-btn-primary):hover:not(:disabled){background:var(--gdant-neutral-100)}.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__workspace-actions .ant-btn-sm{min-width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);border-radius:var(--gdant-radius-lg);padding-inline:10px;font-weight:500}.gd-contract-template-designer__toolbar .ant-btn-sm.ant-btn-icon-only,.gd-contract-template-designer__workspace-actions .ant-btn-sm.ant-btn-icon-only{padding-inline:0}.gd-contract-template-designer__toolbar .ant-select,.gd-contract-template-designer__workspace-actions .ant-select{align-self:stretch}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__toolbar .ant-input-number-input-wrap,.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__toolbar .gd-contract-template-designer__color,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-input-number-input-wrap,.gd-contract-template-designer__workspace-actions .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-btn-sm,.gd-contract-template-designer__workspace-actions .gd-contract-template-designer__color{height:var(--gd-toolbar-control-height)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number{border-radius:var(--gdant-radius-lg)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-select-selector{align-items:center;display:flex}.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-input-number-input{height:calc(var(--gd-toolbar-control-height) - 2px)}.gd-contract-template-designer__zoom{align-items:center;gap:var(--gd-toolbar-gap);flex:none;grid-template-columns:32px 56px 32px 32px 32px 32px;display:inline-grid}.gd-contract-template-designer__zoom>span{color:var(--gdant-neutral-600);text-align:center;white-space:nowrap;font-size:12px;line-height:24px}.gd-contract-template-designer__color{width:var(--gd-toolbar-control-height);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);padding:0}.gd-contract-template-designer__popover{gap:10px;min-width:220px;display:grid}.gd-contract-template-designer__popover>strong{color:var(--gdant-neutral-800);font-size:13px}.gd-contract-template-designer__control-insert-popover{--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);width:min(304px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-insert-popover{width:min(300px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-size-fields{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__image-size-fields label{gap:var(--gdant-spacing-xs);min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);display:grid}.gd-contract-template-designer__image-size-fields .ant-input-number{width:100%}.gd-contract-template-designer__hidden-file-input{display:none}.gd-contract-template-designer__canvas{place-content:start center;gap:28px;min-width:0;min-height:0;padding:24px;display:grid;overflow:auto}.gd-contract-template-designer__validation{border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);gap:8px;padding:10px 12px;display:grid}.gd-contract-template-designer__validation-list{gap:6px;max-height:126px;display:grid;overflow:auto}.gd-contract-template-designer__validation-item{border:1px solid var(--gdant-error-50);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;color:var(--gdant-error-700);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:7px 8px;display:flex}.gd-contract-template-designer__validation-item:hover{border-color:var(--gdant-error-300);background:var(--gdant-error-50)}.gd-contract-template-designer__validation-item small{color:var(--gdant-neutral-500);flex:none}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-md) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__panel-head{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:20px;color:var(--gdant-neutral-700);display:flex}.gd-contract-template-designer__panel-head>strong{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-800);font-size:14px;font-weight:var(--gdant-font-semibold);display:inline-flex}.gd-contract-template-designer__panel-head>strong:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__panel-head>span{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-designer__panel-actions{gap:8px;display:flex}.gd-contract-template-designer__panel-stack{flex:auto;width:100%;min-width:0;height:100%;min-height:0;overflow:hidden auto}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*{width:var(--gd-sidebar-expanded);flex:none}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{width:var(--gd-inspector-expanded);flex:none}.gd-contract-template-designer__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gd-contract-template-designer__panel-handle .anticon{font-size:10px}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-handle{border-radius:0 var(--gdant-radius-md) var(--gdant-radius-md) 0;border-left:0;right:-14px}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-handle{border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);border-right:0;left:-14px}.gd-contract-template-designer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__toolbar-more{flex:none;align-items:center;display:flex;position:relative}.gd-contract-template-designer__toolbar-more:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar-more-panel{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);width:236px;max-width:calc(100vw - 24px);box-shadow:var(--gdant-shadow-modal);flex-direction:column;gap:12px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.gd-contract-template-designer__toolbar-more-section{flex-direction:column;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-title{color:var(--gdant-neutral-500);font-size:12px;line-height:18px}.gd-contract-template-designer__toolbar-more-slot{flex-wrap:wrap;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1;gap:6px;width:100%}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group:before{display:none}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select,.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select.is-wide{flex:92px;min-width:92px;max-width:none}.gd-contract-template-designer__nav-item,.gd-contract-template-designer__variable-chip,.gd-contract-template-designer__tool-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;min-height:36px;color:var(--gdant-neutral-700);cursor:pointer;text-align:left;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);justify-content:space-between;align-items:center;margin:0;padding:8px;display:flex}.gd-contract-template-designer__nav-item:hover,.gd-contract-template-designer__variable-chip:hover,.gd-contract-template-designer__tool-item:hover,.gd-contract-template-designer__nav-item.is-active,.gd-contract-template-designer__variable-chip.is-active,.gd-contract-template-designer__tool-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__nav-item:focus-visible,.gd-contract-template-designer__variable-chip:focus-visible,.gd-contract-template-designer__tool-item:focus-visible{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent);outline:none}.gd-contract-template-designer__nav-item:disabled,.gd-contract-template-designer__variable-chip:disabled,.gd-contract-template-designer__tool-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__tool-item{justify-content:flex-start;gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__tool-item-icon{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);width:28px;height:28px;color:var(--gdant-primary-500);flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.gd-contract-template-designer__tool-item-icon .anticon,.gd-contract-template-designer__tool-item-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-designer__tool-item:disabled .gd-contract-template-designer__tool-item-icon{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__tool-item-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__nav-item>span{gap:2px;min-width:0;display:grid}.gd-contract-template-designer__page-nav-row{align-items:center;gap:var(--gdant-spacing-xs);margin-bottom:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.gd-contract-template-designer__page-nav-row .gd-contract-template-designer__nav-item{min-width:0;margin-bottom:0}.gd-contract-template-designer__page-nav-actions{gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-designer__page-nav-actions .gd-contract-template-designer__icon-button.ant-btn-sm{width:28px;min-width:28px;height:28px}.gd-contract-template-designer__nav-item small{max-width:92px;color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.gd-contract-template-designer__page-config{border-top:1px dashed var(--gdant-neutral-300);gap:8px;margin-top:12px;padding-top:12px;display:grid}.gd-contract-template-designer__page-size-note{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__variable-form{gap:8px;margin-bottom:10px;display:grid}.gd-contract-template-designer__page-shell{margin:0 auto;position:relative}.gd-contract-template-designer__page-zoom{border-radius:var(--gdant-radius-lg);width:fit-content;transform:translateX(-50%) scale(var(--gd-contract-page-zoom,1));transform-origin:top;border:1px solid #0000;padding:3px;position:absolute;top:0;left:50%}.gd-contract-template-designer__page-zoom.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__page-title{color:var(--gdant-neutral-600);justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.gd-contract-template-designer__page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);padding:54px 64px;position:relative;overflow:hidden}.gd-contract-template-designer__signing-layer{z-index:var(--gdant-z-overlay);pointer-events:none;position:absolute;inset:0;overflow:hidden}.gd-contract-template-designer__signing-coordinate-guides{z-index:1;pointer-events:none;position:absolute;inset:0}.gd-contract-template-designer__signing-coordinate-guide{border-color:color-mix(in srgb, var(--gdant-primary-500) 70%, transparent);pointer-events:none;border-style:dashed;display:block;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal{top:var(--gd-contract-signing-y);width:var(--gd-contract-signing-x);border-top-width:1px;left:0}.gd-contract-template-designer__signing-coordinate-guide.is-vertical{top:0;left:var(--gd-contract-signing-x);height:var(--gd-contract-signing-y);border-left-width:1px}.gd-contract-template-designer__signing-coordinate-guide small{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-50);color:var(--gdant-primary-700);font-size:11px;font-weight:var(--gdant-font-medium);white-space:nowrap;padding:1px 4px;line-height:16px;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal small{bottom:3px;right:4px}.gd-contract-template-designer__signing-coordinate-guide.is-vertical small{top:4px;left:3px}.gd-contract-template-designer__signing-placement{z-index:2;place-content:center;gap:var(--gdant-spacing-xs);box-sizing:border-box;min-width:0;min-height:0;padding:var(--gdant-spacing-xs);border:2px dashed var(--gdant-primary-500);border-radius:var(--gdant-radius-md);background:color-mix(in srgb, var(--gdant-primary-50) 76%, transparent);color:var(--gdant-primary-700);cursor:move;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);display:grid;position:absolute;overflow:hidden}.gd-contract-template-designer__signing-placement.is-seal{border-color:var(--gdant-error-500);background:color-mix(in srgb, var(--gdant-error-50) 80%, transparent);color:var(--gdant-error-700)}.gd-contract-template-designer__signing-placement.is-date{border-color:var(--gdant-warning-500);background:color-mix(in srgb, var(--gdant-warning-50) 80%, transparent);color:var(--gdant-warning-700)}.gd-contract-template-designer__signing-placement:hover,.gd-contract-template-designer__signing-placement:focus-visible,.gd-contract-template-designer__signing-placement.is-selected{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 20%, transparent);border-style:solid;outline:none}.gd-contract-template-designer__signing-placement-visual{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;inset:6px}.gd-contract-template-designer.is-readonly .gd-contract-template-designer__signing-placement,.gd-contract-template-designer.is-disabled .gd-contract-template-designer__signing-placement{cursor:pointer}.gd-contract-template-designer__signing-placement-label{font-size:13px;font-weight:var(--gdant-font-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.gd-contract-template-designer__signing-placement-required{text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.2;font-weight:var(--gdant-font-semibold);overflow:hidden}.gd-contract-template-designer__signing-tool{justify-content:flex-start;gap:var(--gdant-spacing-sm);border-style:dashed;min-width:0}.gd-contract-template-designer__signing-tool-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__signing-tool-label{color:var(--gdant-neutral-800);font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__signing-inspector-body{gap:var(--gdant-spacing-md);display:grid}.gd-contract-template-designer__inspector-section{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__inspector-section--nested{padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50)}.gd-contract-template-designer__inspector-section-title{color:var(--gdant-neutral-600);font-size:12px;font-weight:var(--gdant-font-medium);line-height:1.5}.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__switch-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__form-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__grid-form{margin-bottom:0}.gd-contract-template-designer__signing-inspector-actions{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__signing-inspector-actions .ant-btn{width:100%}.gd-contract-template-designer__signing-inspector-danger-action{padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__signing-empty{color:var(--gdant-neutral-500);margin:0;font-size:12px;line-height:1.6}.gd-contract-template-designer__editor-prose{min-height:var(--gd-contract-page-content-height,1000px);color:var(--gdant-neutral-800);font-family:var(--gd-contract-template-editor-font-family,"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif);outline:none;line-height:1.75}.gd-contract-template-designer__editor-prose p{margin:0 0 10px}.gd-contract-template-designer__editor-prose ul,.gd-contract-template-designer__editor-prose ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__editor-prose ul{list-style-type:disc}.gd-contract-template-designer__editor-prose ul ul{list-style-type:circle}.gd-contract-template-designer__editor-prose ul ul ul{list-style-type:square}.gd-contract-template-designer__editor-prose ol{list-style-type:decimal}.gd-contract-template-designer__editor-prose ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__editor-prose ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__preview .gd-contract-template-page ul,.gd-contract-template-designer__preview .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__preview .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-designer__preview .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-designer__preview .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-designer__preview .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-designer__preview .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__preview .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul,.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__editor-prose img,.gd-contract-template-designer__preview .gd-contract-template-page img,.gd-contract-template-renderer__page-frame .gd-contract-template-page img{object-fit:contain;vertical-align:middle;max-width:100%;display:inline-block}.gd-contract-template-designer__editor-prose img[width],.gd-contract-template-designer__editor-prose img[height],.gd-contract-template-designer__preview .gd-contract-template-page img[width],.gd-contract-template-designer__preview .gd-contract-template-page img[height],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[width],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[height]{max-width:none}.gd-contract-template-designer__editor-prose img:not([height]),.gd-contract-template-designer__preview .gd-contract-template-page img:not([height]),.gd-contract-template-renderer__page-frame .gd-contract-template-page img:not([height]){height:auto}.gd-contract-template-designer__editor-prose sup,.gd-contract-template-designer__editor-prose sub,.gd-contract-template-designer__preview .gd-contract-template-page sup,.gd-contract-template-designer__preview .gd-contract-template-page sub,.gd-contract-template-renderer__page-frame .gd-contract-template-page sup,.gd-contract-template-renderer__page-frame .gd-contract-template-page sub{line-height:0}.gd-contract-template-designer__editor-prose table{border-collapse:collapse;width:100%}.gd-contract-template-designer__editor-prose th,.gd-contract-template-designer__editor-prose td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__editor-prose .selectedCell:after{background:color-mix(in srgb, var(--gdant-primary-500) 14%, transparent)}.gd-contract-template-designer__page.is-variable-dragging .gd-contract-template-variable{cursor:grabbing}.gd-contract-template-variable{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);box-sizing:border-box;width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);border-radius:var(--gdant-radius-xs);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));font-size:var(--gd-contract-variable-font-size,14px);font-family:var(--gd-contract-variable-font-family,inherit);text-align:var(--gd-contract-variable-text-align,left);vertical-align:middle;white-space:nowrap;border:1px solid #0000;margin:0 2px;padding:0 6px;line-height:1.5;transition:border-color .12s,background-color .12s,box-shadow .12s;display:inline-flex;position:relative}.gd-contract-template-variable:hover{border-color:var(--gdant-primary-300);background-color:color-mix(in srgb, var(--gdant-primary-50) 48%, transparent)}.gd-contract-template-variable.has-border{border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-style:var(--gd-contract-variable-border-style,solid)}.gd-contract-template-variable.has-underline{border-color:#0000;border-bottom-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-bottom-style:var(--gd-contract-variable-border-style,solid);border-radius:0}.gd-contract-template-variable.is-placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-variable.is-active{border-color:var(--gdant-warning-500);background-color:var(--gdant-warning-50);color:var(--gdant-warning-700);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-warning-500) 18%, transparent)}.gd-contract-template-variable.is-multiline{width:var(--gd-contract-variable-width,160px);height:var(--gd-contract-variable-multiline-height,84px);min-height:var(--gd-contract-variable-multiline-height,84px);line-height:var(--gd-contract-variable-line-height,28px);vertical-align:top;white-space:pre-wrap;padding:0 6px;display:inline-block;overflow:hidden}.gd-contract-template-variable.is-multiline.has-underline{background-image:linear-gradient(to bottom, transparent calc(100% - 1px), var(--gd-contract-variable-line-color,var(--gdant-neutral-600)) calc(100% - 1px));background-repeat:repeat-y;background-size:100% var(--gd-contract-variable-line-height,28px);border-bottom-color:#0000}.gd-contract-template-variable.is-number{font-variant-numeric:tabular-nums}.gd-contract-template-variable.is-checkbox{width:auto;min-width:var(--gd-contract-variable-width,96px);justify-content:flex-start;gap:6px;padding:0 2px}.gd-contract-template-variable.is-checkbox:before{border-radius:var(--gdant-radius-xs);content:"";border:1px solid;justify-content:center;align-items:center;width:13px;height:13px;font-size:10px;line-height:1;display:inline-flex}.gd-contract-template-variable.is-checkbox.is-checked:before{content:"✓"}.gd-contract-template-variable.is-image{min-height:var(--gd-contract-variable-height,96px);border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-300));border-style:var(--gd-contract-variable-border-style,dashed);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500));white-space:normal;justify-content:center;overflow:hidden}.gd-contract-template-variable.is-image.has-value{color:#0000}.gd-contract-template-variable.is-image.has-value:before{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain);content:"";position:absolute;inset:4px}.gd-contract-template-designer__form-row{color:var(--gdant-neutral-600);gap:6px;margin-bottom:12px;font-size:12px;display:grid}.gd-contract-template-designer__form-row.is-compact{margin-bottom:0}.gd-contract-template-designer__switch-row{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);min-height:28px;color:var(--gdant-neutral-600);justify-content:space-between;align-items:center;gap:12px;margin:0;padding:6px 8px;font-size:12px;display:flex}.gd-contract-template-designer__switch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.gd-contract-template-designer__tool-item small{color:var(--gdant-neutral-500);font-size:11px}.gd-contract-template-designer__grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.gd-contract-template-designer__table-picker{gap:var(--gdant-spacing-sm);margin:var(--gdant-spacing-sm) 0;display:grid}.gd-contract-template-designer__table-picker-label{color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-designer__table-picker-grid{gap:3px;width:fit-content;display:grid}.gd-contract-template-designer__table-picker-row{grid-template-columns:repeat(10,18px);gap:3px;display:grid}.gd-contract-template-designer__table-picker-cell{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);cursor:pointer;width:18px;height:18px;padding:0}.gd-contract-template-designer__table-picker-cell:hover,.gd-contract-template-designer__table-picker-cell.is-previewed{border-color:var(--gdant-primary-500);background:var(--gdant-primary-100)}.gd-contract-template-designer__table-picker-cell:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:1px}.gd-contract-template-designer__grid-form label{color:var(--gdant-neutral-600);gap:6px;font-size:12px;display:grid}.gd-contract-template-designer__popover-actions{justify-content:flex-end;gap:8px;display:flex}.gd-contract-template-designer__table-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.gd-contract-template-designer__context-menu{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xl);background:color-mix(in srgb, var(--gdant-neutral-0) 98%, transparent);min-width:240px;max-width:min(360px,100vw - 24px);box-shadow:var(--gdant-shadow-modal);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);gap:8px;padding:10px;display:grid;position:fixed}.gd-contract-template-designer__context-menu-row{flex-wrap:wrap;gap:8px;display:flex}.gd-contract-template-designer__context-menu-group{border-bottom:1px solid var(--gdant-neutral-200);gap:6px;padding-bottom:8px;display:grid}.gd-contract-template-designer__context-menu-group>span{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__context-menu-group.is-danger{border-bottom:0;padding-bottom:0}.gd-contract-template-designer__image-context-menu{box-sizing:border-box;width:min(288px, 100vw - var(--gdant-spacing-xl));gap:var(--gdant-spacing-md);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);min-width:0;box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none}.gd-contract-template-designer__image-context-title{gap:calc(var(--gdant-spacing-xs) / 2);display:grid}.gd-contract-template-designer__image-context-title strong{color:var(--gdant-neutral-800);font-size:var(--gdant-text-body)}.gd-contract-template-designer__image-context-title span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__text-context-menu{--gd-text-context-menu-gutter:var(--gdant-spacing-md);--gd-text-context-menu-width:calc(var(--gdant-spacing-xl) * 12 + var(--gdant-spacing-sm) * 2);--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);--gd-text-context-menu-thin:calc(var(--gdant-spacing-xs) / 2);width:min(var(--gd-text-context-menu-width), 100vw - var(--gd-text-context-menu-gutter) * 2);min-width:0;max-width:none;max-height:calc(100vh - var(--gd-text-context-menu-gutter) * 2);gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);box-shadow:var(--gdant-shadow-raised);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;overflow-y:auto}.gd-contract-template-designer__text-menu-row{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;padding:0;display:flex}.gd-contract-template-designer__text-menu-row+.gd-contract-template-designer__text-menu-row{padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-quick-insert{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gd-contract-template-designer__text-menu-quick-insert .ant-btn{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-quick-insert .ant-btn>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-group{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__text-menu-control-head{justify-content:space-between;align-items:baseline;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-700);font-size:var(--gdant-text-body-sm);display:flex}.gd-contract-template-designer__text-menu-control-head>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-options{gap:var(--gdant-spacing-xs);grid-template-columns:repeat(5,minmax(0,1fr));min-width:0;display:grid}.gd-contract-template-designer__text-menu-control-option{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;min-height:calc(var(--gd-text-context-menu-control-size) + var(--gdant-spacing-md));padding:var(--gdant-spacing-xs) var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);flex-direction:column;line-height:1.2;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-control-option .anticon{color:var(--gdant-primary-500);font-size:var(--gdant-text-h3);flex:none}.gd-contract-template-designer__text-menu-control-option span{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;display:block;overflow:hidden}.gd-contract-template-designer__text-menu-control-option:hover{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-control-option:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:var(--gd-text-context-menu-control-size);padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);line-height:1.2;display:inline-flex}.gd-contract-template-designer__text-menu-bind-toggle:hover:not(:disabled){border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-toggle:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__text-menu-bind-search{width:100%}.gd-contract-template-designer__text-menu-bind-list{gap:var(--gdant-spacing-xs);max-height:calc(var(--gdant-spacing-xl) * 5 + var(--gdant-spacing-md));display:grid;overflow:auto}.gd-contract-template-designer__text-menu-bind-item{align-items:flex-start;gap:var(--gdant-spacing-xs);width:100%;min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-800);cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;display:flex}.gd-contract-template-designer__text-menu-bind-item-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.gd-contract-template-designer__text-menu-bind-item-meta,.gd-contract-template-designer__text-menu-bind-empty{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-designer__text-menu-bind-empty{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);margin:0}.gd-contract-template-designer__text-menu-bind-item:hover,.gd-contract-template-designer__text-menu-bind-item:focus-visible{background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-item:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-row--controls{gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm{flex:0 0 var(--gd-text-context-menu-control-size);width:var(--gd-text-context-menu-control-size);min-width:var(--gd-text-context-menu-control-size);height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-700);background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900);border-color:#0000}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-100);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:focus-visible,.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:focus-visible,.gd-contract-template-designer__context-menu-color:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-divider{width:var(--gd-text-context-menu-thin);height:var(--gdant-spacing-base);margin:0 var(--gd-text-context-menu-thin);background:var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-font-size{min-width:calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-alignment{min-width:calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-row .ant-select-selector{min-height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm)}.gd-contract-template-designer__text-menu-row .ant-select-focused .ant-select-selector{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent)}.gd-contract-template-designer__text-menu-row .ant-select-selection-search-input,.gd-contract-template-designer__text-menu-row .ant-select-selection-item{line-height:calc(var(--gd-text-context-menu-control-size) - var(--gdant-spacing-xs) / 2)}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:var(--gd-text-context-menu-control-size);padding:0 var(--gdant-spacing-sm);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);flex:1 1 0;display:inline-flex}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:hover:not(:disabled){border-color:var(--gdant-error-200);background:var(--gdant-error-50);color:var(--gdant-error-600)}.gd-contract-template-designer__table-context-menu{box-sizing:border-box;width:min(240px,100vw - 16px);min-width:0;max-width:none;max-height:min(520px,100vh - 24px);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;animation:gd-contract-template-table-menu-enter var(--gdant-duration-normal) var(--gdant-easing-default);display:block;overflow:hidden auto}.gd-contract-template-designer__table-menu-group{gap:calc(var(--gdant-spacing-xs) / 2);padding:var(--gdant-spacing-xs) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__table-menu-group.is-stacked{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__table-menu-group+.gd-contract-template-designer__table-menu-group{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__table-menu-item{appearance:none;box-sizing:border-box;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:32px;padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);cursor:pointer;font:inherit;font-size:var(--gdant-text-body);letter-spacing:0;text-align:left;white-space:nowrap;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;line-height:20px;display:flex}.gd-contract-template-designer__table-menu-item .anticon{width:16px;color:var(--gdant-neutral-500);transition:color var(--gdant-duration-normal) var(--gdant-easing-default);flex:0 0 16px;font-size:15px}.gd-contract-template-designer__table-menu-item:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900)}.gd-contract-template-designer__table-menu-item:hover:not(:disabled) .anticon{color:var(--gdant-neutral-700)}.gd-contract-template-designer__table-menu-item:focus-visible,.gd-contract-template-designer__table-menu-align-item:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:-2px}.gd-contract-template-designer__table-menu-item:disabled,.gd-contract-template-designer__table-menu-align-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__table-menu-item:disabled .anticon{color:var(--gdant-neutral-400)}.gd-contract-template-designer__table-menu-item.is-danger{color:var(--gdant-error-700);grid-column:1/-1}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled){background:var(--gdant-error-50);color:var(--gdant-error-700)}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled) .anticon{color:var(--gdant-error-600)}.gd-contract-template-designer__table-menu-align{align-items:center;gap:var(--gdant-spacing-sm);min-height:38px;padding:calc(var(--gdant-spacing-xs) / 2) var(--gdant-spacing-sm);grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__table-menu-align-label{min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.gd-contract-template-designer__table-menu-align-options{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-100);grid-template-columns:repeat(3,30px);gap:2px;padding:2px;display:grid}.gd-contract-template-designer__table-menu-align-item{appearance:none;border-radius:var(--gdant-radius-sm);width:30px;height:28px;color:var(--gdant-neutral-600);cursor:pointer;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;place-items:center;padding:0;font-size:15px;display:grid}.gd-contract-template-designer__table-menu-align-item:hover:not(:disabled){background:var(--gdant-neutral-200);color:var(--gdant-neutral-800)}.gd-contract-template-designer__table-menu-align-item.is-selected{background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-raised);color:var(--gdant-primary-600)}.gd-contract-template-designer__table-menu-danger{margin-top:var(--gdant-spacing-xs);padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}@keyframes gd-contract-template-table-menu-enter{0%{opacity:0;transform:translateY(-2px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.gd-contract-template-designer__table-context-menu{animation:none}.gd-contract-template-designer__table-menu-item,.gd-contract-template-designer__table-menu-item .anticon,.gd-contract-template-designer__table-menu-align-item,.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__panel-handle,.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-handle{transition:none}}@media (width<=260px){.gd-contract-template-designer__table-menu-group{grid-template-columns:minmax(0,1fr)}}.gd-contract-template-designer__sr-status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.gd-contract-template-designer__context-menu-field{flex:112px;min-width:112px}.gd-contract-template-designer__context-menu-color{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);cursor:pointer;width:40px;height:32px;padding:0}.gd-contract-template-designer.is-disabled{opacity:.68;pointer-events:none}.gd-contract-template-designer__preview-modal .ant-modal{max-width:calc(100vw - 32px)}.gd-contract-template-designer__preview-modal .ant-modal-body{padding:0}.gd-contract-template-designer__preview{background:var(--gdant-neutral-100);max-height:calc(100vh - 180px);padding:32px;display:block;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell{margin:0 auto 24px}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell:last-child{margin-bottom:0}.gd-contract-template-designer__preview .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);color:var(--gdant-neutral-800);padding:54px 64px;line-height:1.75;position:relative;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-designer__preview .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-designer__preview .gd-contract-template-page th,.gd-contract-template-designer__preview .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__preview-signing-layer{z-index:2;pointer-events:none;position:absolute;inset:0 auto auto 0}.gd-contract-template-designer__preview-signing-placement{box-sizing:border-box;border:1px solid var(--gdant-primary-500);background:color-mix(in srgb, var(--gdant-success-50) 60%, transparent);min-width:0;min-height:0;color:var(--gdant-primary-300);text-align:center;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;overflow:hidden}.gd-contract-template-designer__preview-signing-placement-add{gap:var(--gdant-spacing-xs);box-sizing:border-box;overflow-wrap:anywhere;max-width:100%;padding:10px;display:grid;overflow:hidden}.gd-contract-template-designer__submit-data-modal .ant-modal-body{padding:0}.gd-contract-template-designer__submit-data{background:var(--gdant-neutral-900);max-height:calc(100vh - 220px);color:var(--gdant-neutral-100);white-space:pre;margin:0;padding:16px 20px;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:12px;line-height:1.6;overflow:auto}.gd-contract-template-renderer{--gd-contract-renderer-background:var(--gdant-neutral-100);--gd-contract-renderer-surface:var(--gdant-neutral-0);--gd-contract-renderer-panel-width:336px;--gd-contract-renderer-page-gap:24px;--gd-contract-renderer-border-color:var(--gdant-neutral-300);--gd-contract-renderer-toolbar-control-height:30px;box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-background);min-height:420px;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""validation""body";display:grid;overflow:hidden}.gd-contract-template-renderer.is-disabled .gd-contract-template-renderer__field-list{opacity:.72}.gd-contract-template-renderer__header{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:56px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);flex-wrap:wrap;grid-area:header;display:flex}.gd-contract-template-renderer__title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-contract-template-renderer__title-bar{width:var(--gdant-spacing-xs);height:var(--gdant-spacing-base);border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);flex:none}.gd-contract-template-renderer__header-meta{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-contract-template-renderer__header-meta strong{color:var(--gdant-neutral-900);font-size:var(--gdant-text-h3);font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-renderer__header-meta span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__progress-pill{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-primary-200);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-50);color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);white-space:nowrap;flex:none}.gd-contract-template-renderer__progress-pill.is-warning{border-color:var(--gdant-warning-100);background:var(--gdant-warning-50);color:var(--gdant-warning-700)}.gd-contract-template-renderer__header-actions{align-items:center;gap:var(--gdant-spacing-sm);flex-wrap:wrap;flex:none;display:flex}.gd-contract-template-renderer__icon-button.ant-btn-sm{width:var(--gd-contract-renderer-toolbar-control-height);height:var(--gd-contract-renderer-toolbar-control-height);min-width:var(--gd-contract-renderer-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-renderer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-renderer__toolbar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-xl);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-raised);display:flex}.gd-contract-template-renderer__toolbar-group{align-items:center;gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-renderer__zoom-value{box-sizing:border-box;width:54px;color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;text-align:center}.gd-contract-template-renderer__page-select{width:min(240px,36vw)}.gd-contract-template-renderer__validation{gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);font-size:var(--gdant-text-body-sm);grid-area:validation;display:grid}.gd-contract-template-renderer__validation.is-success{background:var(--gdant-success-50);color:var(--gdant-success-600)}.gd-contract-template-renderer__validation.is-error{background:var(--gdant-error-50);color:var(--gdant-error-700);border-bottom-color:var(--gdant-error-100)}.gd-contract-template-renderer__validation-bar{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:28px;display:flex}.gd-contract-template-renderer__validation-toggle{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;text-decoration:underline}.gd-contract-template-renderer__validation-list{gap:var(--gdant-spacing-xs);max-height:132px;display:grid;overflow:auto}.gd-contract-template-renderer__validation-item{width:100%;padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border:1px solid var(--gdant-warning-100);border-radius:var(--gdant-radius-md);background:var(--gdant-warning-50);color:var(--gdant-error-700);text-align:left;cursor:pointer}.gd-contract-template-renderer__empty{min-height:0;padding:var(--gdant-spacing-base);grid-area:body;place-items:center;display:grid}.gd-contract-template-renderer__workspace{gap:var(--gdant-spacing-base);min-height:0;padding:var(--gdant-spacing-md);grid-area:body;grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.gd-contract-template-renderer__workspace.is-inline{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__pages-viewport{min-width:0;min-height:0;padding:var(--gdant-spacing-xs) 0;overscroll-behavior:contain;overflow:auto}.gd-contract-template-renderer__pages{place-content:start center;gap:var(--gd-contract-renderer-page-gap);width:max-content;min-width:100%;padding:0 24px 24px;display:grid}.gd-contract-template-renderer__page-shell{justify-content:center;gap:8px;min-width:0;scroll-margin:12px;display:grid}.gd-contract-template-renderer__page-meta{width:100%;color:var(--gdant-neutral-600);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;font-size:12px;display:grid}.gd-contract-template-renderer__page-meta strong{color:var(--gdant-neutral-800);font-weight:600}.gd-contract-template-renderer__page-meta span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-renderer__page-meta small{font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-renderer__page-frame{flex:none;transition:width .1s cubic-bezier(.4,0,.2,1),height .1s cubic-bezier(.4,0,.2,1);position:relative}.gd-contract-template-renderer__page-frame .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-overlay);transform-origin:0 0;padding:54px 64px;line-height:1.75;position:absolute;inset:0 auto auto 0;overflow:hidden}.gd-contract-template-renderer__page-frame .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-renderer__page-frame .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-renderer__page-frame .gd-contract-template-page th,.gd-contract-template-renderer__page-frame .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-renderer__panel-wrap{z-index:1;width:var(--gd-contract-renderer-panel-width);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);position:relative;overflow:visible}.gd-contract-template-renderer__panel-wrap.is-collapsed{width:0}.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:hidden}.gd-contract-template-renderer__panel-clip{width:100%;height:100%;overflow:hidden}.gd-contract-template-renderer__panel{gap:var(--gdant-spacing-sm);width:var(--gd-contract-renderer-panel-width);min-width:0;height:100%;min-height:0;padding:var(--gdant-spacing-md);border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-surface);flex-direction:column;display:flex;overflow:hidden}.gd-contract-template-renderer__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);border-right:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.gd-contract-template-renderer__panel-handle .anticon{font-size:10px}.gd-contract-template-renderer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-renderer__panel-head{z-index:1;gap:var(--gdant-spacing-sm);padding-bottom:var(--gdant-spacing-sm);background:var(--gd-contract-renderer-surface);display:grid;position:sticky;top:0}.gd-contract-template-renderer__panel-head-row{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-md);display:flex}.gd-contract-template-renderer__panel-head-row>div{gap:var(--gdant-spacing-xs);display:grid}.gd-contract-template-renderer__panel-head-row strong{font-size:15px}.gd-contract-template-renderer__panel-head-row span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__panel-head-actions{gap:var(--gdant-spacing-sm);flex-wrap:wrap;display:flex}.gd-contract-template-renderer__field-list{flex:auto;align-content:start;gap:12px;min-height:0;display:grid;overflow:auto}.gd-contract-template-renderer__field{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default);gap:8px;padding:12px;display:grid}.gd-contract-template-renderer__field.is-active{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 12%, transparent)}.gd-contract-template-renderer__field.has-error{border-color:var(--gdant-error-300)}.gd-contract-template-renderer__field .ant-input-number,.gd-contract-template-renderer__field .ant-picker{width:100%}.gd-contract-template-renderer__field-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gd-contract-template-renderer__field-head strong{overflow-wrap:anywhere;min-width:0;font-size:14px}.gd-contract-template-renderer__field-head small{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-renderer__field-title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;max-width:100%;display:inline-flex}.gd-contract-template-renderer__field-type-icon{color:var(--gdant-neutral-500);flex:none;align-items:center;font-size:1em;line-height:1;display:inline-flex}.gd-contract-template-renderer__field-type-icon .anticon,.gd-contract-template-renderer__field-type-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-renderer__field-title-text{overflow-wrap:anywhere;min-width:0}.gd-contract-template-renderer__field-required{color:var(--gdant-error-600);margin-left:2px}.gd-contract-template-renderer__field-checkbox{align-items:center;gap:8px;min-height:32px;display:inline-flex}.gd-contract-template-renderer__image-field{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.gd-contract-template-renderer__image-preview{border:1px dashed var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);min-width:0;color:var(--gdant-neutral-500);grid-column:1/-1;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;padding:8px;font-size:12px;display:grid}.gd-contract-template-renderer__image-preview .ant-image,.gd-contract-template-renderer__image-preview .ant-image-img{border-radius:var(--gdant-radius-sm);object-fit:contain;width:96px;height:56px}.gd-contract-template-renderer__field-errors{color:var(--gdant-error-600);gap:4px;font-size:12px;display:grid}.gd-contract-template-renderer__control{box-sizing:border-box;width:var(--gd-contract-variable-width,160px);min-width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));background:var(--gd-contract-variable-background,transparent);font-family:var(--gd-contract-variable-font-family,inherit);font-size:var(--gd-contract-variable-font-size,14px);text-align:var(--gd-contract-variable-text-align,left);vertical-align:baseline;border:0;border-radius:0;outline:none;padding:0 4px}.gd-contract-template-renderer__control::placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-renderer__control.has-border{border:1px var(--gd-contract-variable-border-style,solid) var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.gd-contract-template-renderer__control.has-underline{border-bottom:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.gd-contract-template-renderer__control.is-multiline{min-height:var(--gd-contract-variable-multiline-height,84px);line-height:var(--gd-contract-variable-line-height,28px);resize:vertical;display:inline-block}.gd-contract-template-renderer__preview-control{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);cursor:pointer;display:inline-flex}.gd-contract-template-renderer__preview-control.is-image{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain)}.gd-contract-template-renderer__preview-control.is-empty{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-renderer__preview-control.is-active{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 24%, transparent)}.gd-contract-template-renderer__preview-control:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 32%, transparent)}.gd-contract-template-renderer__checkbox-mark{border:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600));justify-content:center;align-items:center;width:14px;height:14px;font-size:12px;line-height:1;display:inline-flex}label.gd-contract-template-renderer__control{align-items:center;gap:6px;display:inline-flex}label.gd-contract-template-renderer__control input{margin:0}@media (width<=960px){.gd-contract-template-renderer__header{align-items:flex-start}.gd-contract-template-renderer__workspace{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-wrap.is-collapsed{width:auto;overflow:visible}.gd-contract-template-renderer__panel-clip,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:visible;height:auto;overflow:visible}.gd-contract-template-renderer__panel,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel{width:100%;max-height:420px}.gd-contract-template-renderer__panel-handle,.gd-contract-template-renderer__panel-toggle{display:none!important}}@media (width<=640px){.gd-contract-template-renderer{min-height:0}.gd-contract-template-renderer__header{padding:var(--gdant-spacing-sm);flex-direction:column;align-items:stretch}.gd-contract-template-renderer__header-actions{justify-content:flex-start}.gd-contract-template-renderer__workspace{padding:var(--gdant-spacing-sm)}.gd-contract-template-renderer__toolbar{flex-direction:column;align-items:stretch}.gd-contract-template-renderer__toolbar-group{justify-content:space-between}.gd-contract-template-renderer__page-select{width:100%}.gd-contract-template-renderer__pages{padding-inline:var(--gdant-spacing-sm);justify-content:start}.gd-contract-template-renderer__page-meta{grid-template-columns:auto minmax(0,1fr)}.gd-contract-template-renderer__page-meta small{grid-column:1/-1}}@media (width<=1180px){.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__toolbar{padding-inline:12px}.gd-contract-template-designer__canvas{justify-content:start}.gd-contract-template-designer__page-shell{margin-inline:0}}@media (width<=760px){.gd-contract-template-designer{height:auto;min-height:0;overflow:visible}.gd-contract-template-designer__layout,.gd-contract-template-designer__layout.is-sidebar-collapsed,.gd-contract-template-designer__layout.is-inspector-collapsed,.gd-contract-template-designer__layout.is-sidebar-collapsed.is-inspector-collapsed{grid-template-rows:auto minmax(560px,1fr) auto;grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__sidebar.is-collapsed,.gd-contract-template-designer__inspector.is-collapsed{border:0;width:auto;max-height:360px;overflow:auto}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{visibility:visible;width:100%}.gd-contract-template-designer__panel-handle,.gd-contract-template-designer__toolbar-more{display:none!important}.gd-contract-template-designer__toolbar-section--main{flex-wrap:wrap;row-gap:8px;display:flex}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1}.gd-contract-template-designer__sidebar{border-bottom:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__workspace{min-height:560px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__canvas{justify-content:start;padding:16px 8px}}@container (width<=1279px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:220px;--gd-inspector-expanded:260px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__canvas{justify-content:start}}@container (width<=1079px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:200px;--gd-inspector-expanded:240px}}
1
+ :root{--gdant-primary-50:var(--primary-50,#f4f9ff);--gdant-primary-100:var(--primary-100,#e9f1f6);--gdant-primary-200:var(--primary-200,#bcd7ff);--gdant-primary-300:var(--primary-300,#7fb0ff);--gdant-primary-400:var(--primary-400,#3b87ff);--gdant-primary-500:var(--primary-500,#1161ff);--gdant-primary-600:var(--primary-600,#0d4ed1);--gdant-primary-700:var(--primary-700,#0a3da5);--gdant-primary-800:var(--primary-800,#082c79);--gdant-primary-900:var(--primary-900,#05204d);--gdant-neutral-0:var(--neutral-0,#fff);--gdant-neutral-50:var(--neutral-50,#fafbfc);--gdant-neutral-100:var(--neutral-100,#f5f6f8);--gdant-neutral-200:var(--neutral-200,#eaecef);--gdant-neutral-300:var(--neutral-300,#d9dce0);--gdant-neutral-400:var(--neutral-400,#aab0b7);--gdant-neutral-500:var(--neutral-500,#7a818b);--gdant-neutral-600:var(--neutral-600,#565b66);--gdant-neutral-700:var(--neutral-700,#383d47);--gdant-neutral-800:var(--neutral-800,#262a33);--gdant-neutral-900:var(--neutral-900,#0f131a);--gdant-success-50:var(--success-50,#e8f9ed);--gdant-success-500:var(--success-500,#00b42a);--gdant-success-600:var(--success-600,#009023);--gdant-warning-50:var(--warning-50,#fff3e8);--gdant-warning-100:var(--warning-100,#ffe4cc);--gdant-warning-500:var(--warning-500,#f58634);--gdant-warning-600:var(--warning-600,#d96c1c);--gdant-warning-700:var(--warning-700,#b35316);--gdant-error-50:var(--error-50,#fde9e9);--gdant-error-100:var(--error-100,#fcd4d4);--gdant-error-300:var(--error-300,#f47070);--gdant-error-500:var(--error-500,#ee3939);--gdant-error-600:var(--error-600,#c92626);--gdant-error-700:var(--error-700,#a31c1c);--gdant-radius-xs:var(--radius-xs,2px);--gdant-radius-sm:var(--radius-sm,4px);--gdant-radius-md:var(--radius-md,6px);--gdant-radius-lg:var(--radius-lg,8px);--gdant-radius-xl:var(--radius-xl,12px);--gdant-radius-pill:var(--radius-pill,9999px);--gdant-shadow-raised:var(--shadow-raised,0 1px 2px #0f172a0a, 0 1px 4px #0f172a0f);--gdant-shadow-overlay:var(--shadow-overlay,0 4px 12px #0f172a14, 0 2px 6px #0f172a0a);--gdant-shadow-modal:var(--shadow-modal,0 16px 48px #0f172a29, 0 4px 12px #0f172a14);--gdant-spacing-xs:var(--spacing-xs,4px);--gdant-spacing-sm:var(--spacing-sm,8px);--gdant-spacing-md:var(--spacing-md,12px);--gdant-spacing-base:var(--spacing-base,16px);--gdant-spacing-lg:var(--spacing-lg,20px);--gdant-spacing-xl:var(--spacing-xl,24px);--gdant-text-body:var(--text-body,14px);--gdant-text-body-sm:var(--text-body-sm,12px);--gdant-text-h3:var(--text-h3,16px);--gdant-font-medium:var(--font-medium,500);--gdant-font-semibold:var(--font-semibold,600);--gdant-duration-normal:var(--duration-normal,.2s);--gdant-duration-slow:var(--duration-slow,.3s);--gdant-easing-default:var(--easing-default,cubic-bezier(.2, 0, 0, 1));--gdant-overlay-bg:#ffffffb8;--gdant-z-overlay:var(--z-overlay,1040);--gdant-z-modal:var(--z-modal,1050)}.gd-contract-template-designer{--gd-toolbar-control-height:30px;--gd-toolbar-radius:10px;--gd-toolbar-gap:8px;--gd-toolbar-border:var(--gdant-neutral-200);--gd-toolbar-bg:var(--gdant-neutral-0);--gd-toolbar-muted-bg:var(--gdant-neutral-50);--gd-toolbar-shadow:var(--gdant-shadow-raised);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-100);min-height:640px;color:var(--gdant-neutral-800);flex-direction:column;font-size:14px;display:flex;overflow:hidden;container-type:inline-size}.gd-contract-template-designer__layout{--gd-sidebar-expanded:260px;--gd-inspector-expanded:300px;flex:auto;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.gd-contract-template-designer__file-bar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-md);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);display:flex}.gd-contract-template-designer__file-list{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-width:thin;flex:auto;padding-block:2px;padding-inline-end:var(--gdant-spacing-xs);display:flex;overflow-x:auto}.gd-contract-template-designer__file-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);min-width:128px;max-width:280px;height:34px;transition:border-color var(--gdant-duration-fast) var(--gdant-easing-default), background var(--gdant-duration-fast) var(--gdant-easing-default), box-shadow var(--gdant-duration-fast) var(--gdant-easing-default);flex:none;align-items:center;display:inline-flex}.gd-contract-template-designer__file-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);box-shadow:inset 3px 0 0 var(--gdant-primary-500)}.gd-contract-template-designer__file-tab{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:100%;padding:0 var(--gdant-spacing-sm);color:var(--gdant-neutral-700);cursor:pointer;text-align:left;background:0 0;border:0;flex:auto;display:inline-flex}.gd-contract-template-designer__file-tab small{color:var(--gdant-neutral-500);flex:none;font-size:11px}.gd-contract-template-designer__file-index{background:var(--gdant-neutral-200);width:18px;height:18px;color:var(--gdant-neutral-600);font-size:11px;font-weight:var(--gdant-font-semibold);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.gd-contract-template-designer__file-item.is-active .gd-contract-template-designer__file-index{background:var(--gdant-primary-500);color:var(--gdant-neutral-0)}.gd-contract-template-designer__file-name{min-width:0;font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.gd-contract-template-designer__file-actions{flex:none;align-items:center;padding-inline-end:2px;display:inline-flex}.gd-contract-template-designer__file-actions .ant-btn-sm{width:24px;min-width:24px;height:24px;padding:0}.gd-contract-template-designer__file-rename{width:180px;margin-inline:var(--gdant-spacing-xs)}.gd-contract-template-designer__file-add.ant-btn-sm{border-color:var(--gdant-primary-200);height:30px;color:var(--gdant-primary-600);flex:none}.gd-contract-template-designer.is-fullscreen{z-index:980;border-radius:0;width:100vw;min-height:0;position:fixed;inset:0;height:100dvh!important}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector{z-index:1;background:var(--gdant-neutral-0);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);flex-direction:column;display:flex;position:relative;overflow:visible}.gd-contract-template-designer__sidebar{width:var(--gd-sidebar-expanded);border-right:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{width:var(--gd-inspector-expanded);border-left:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__sidebar.is-collapsed{border-right-width:0;width:0}.gd-contract-template-designer__inspector.is-collapsed{border-left-width:0;width:0}.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack{visibility:hidden}.gd-contract-template-designer__workspace{grid-template-rows:auto auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.gd-contract-template-designer__workspace-header{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-0) 0%, var(--gdant-neutral-50) 100%);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__workspace-meta{align-content:center;gap:2px;min-width:0;min-height:38px;display:grid}.gd-contract-template-designer__workspace-meta>span{color:var(--gdant-neutral-500);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.gd-contract-template-designer__workspace-meta>strong{color:var(--gdant-neutral-800);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.gd-contract-template-designer__workspace-meta>small{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__draft-cache-status.is-success{color:var(--gdant-success-600)}.gd-contract-template-designer__draft-cache-status.is-warning,.gd-contract-template-designer__draft-cache-status.is-error{color:var(--gdant-warning-700)}.gd-contract-template-designer__workspace-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.gd-contract-template-designer__workspace-controls,.gd-contract-template-designer__workspace-buttons{align-items:center;gap:var(--gd-toolbar-gap);border:1px solid var(--gd-toolbar-border);border-radius:var(--gdant-radius-xl);background:var(--gd-toolbar-bg);box-shadow:var(--gd-toolbar-shadow);padding:4px;display:flex}.gd-contract-template-designer__workspace-buttons{flex-wrap:wrap}.gd-contract-template-designer__toolbar{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-50) 0%, var(--gdant-neutral-50) 100%);align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__toolbar-section{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.gd-contract-template-designer__toolbar-section--main{flex-wrap:nowrap;flex:auto;gap:8px 0}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:nowrap;flex-shrink:0}.gd-contract-template-designer__toolbar-section--main>.gd-contract-template-designer__toolbar-group:first-child:before{display:none}.gd-contract-template-designer__toolbar-select{flex:none;min-width:80px;max-width:112px}.gd-contract-template-designer__toolbar-select.is-wide{min-width:108px;max-width:132px}.gd-contract-template-designer__toolbar-number{width:78px}.gd-contract-template-designer__icon-button.ant-btn-sm{width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);min-width:var(--gd-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-designer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-designer__icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__toolbar-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.gd-contract-template-designer__toolbar-group:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar .gd-contract-template-designer__icon-button.ant-btn-sm:not(.is-selected):not(.ant-btn-primary):hover:not(:disabled){background:var(--gdant-neutral-100)}.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__workspace-actions .ant-btn-sm{min-width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);border-radius:var(--gdant-radius-lg);padding-inline:10px;font-weight:500}.gd-contract-template-designer__toolbar .ant-btn-sm.ant-btn-icon-only,.gd-contract-template-designer__workspace-actions .ant-btn-sm.ant-btn-icon-only{padding-inline:0}.gd-contract-template-designer__toolbar .ant-select,.gd-contract-template-designer__workspace-actions .ant-select{align-self:stretch}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__toolbar .ant-input-number-input-wrap,.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__toolbar .gd-contract-template-designer__color,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-input-number-input-wrap,.gd-contract-template-designer__workspace-actions .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-btn-sm,.gd-contract-template-designer__workspace-actions .gd-contract-template-designer__color{height:var(--gd-toolbar-control-height)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number{border-radius:var(--gdant-radius-lg)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-select-selector{align-items:center;display:flex}.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-input-number-input{height:calc(var(--gd-toolbar-control-height) - 2px)}.gd-contract-template-designer__zoom{align-items:center;gap:var(--gd-toolbar-gap);flex:none;grid-template-columns:32px 56px 32px 32px 32px 32px;display:inline-grid}.gd-contract-template-designer__zoom>span{color:var(--gdant-neutral-600);text-align:center;white-space:nowrap;font-size:12px;line-height:24px}.gd-contract-template-designer__color{width:var(--gd-toolbar-control-height);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);padding:0}.gd-contract-template-designer__popover{gap:10px;min-width:220px;display:grid}.gd-contract-template-designer__popover>strong{color:var(--gdant-neutral-800);font-size:13px}.gd-contract-template-designer__control-insert-popover{--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);width:min(304px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-insert-popover{width:min(300px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-size-fields{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__image-size-fields label{gap:var(--gdant-spacing-xs);min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);display:grid}.gd-contract-template-designer__image-size-fields .ant-input-number{width:100%}.gd-contract-template-designer__hidden-file-input{display:none}.gd-contract-template-designer__canvas{scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;place-content:start center;gap:28px;min-width:0;min-height:0;padding:24px;display:grid;overflow:auto}.gd-contract-template-designer__validation{border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);gap:8px;padding:10px 12px;display:grid}.gd-contract-template-designer__validation-list{max-height:126px;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable;scrollbar-width:thin;gap:6px;padding-inline-end:var(--gdant-spacing-xs);display:grid;overflow:auto}.gd-contract-template-designer__validation-item{border:1px solid var(--gdant-error-50);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;color:var(--gdant-error-700);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:7px 8px;display:flex}.gd-contract-template-designer__validation-item:hover{border-color:var(--gdant-error-300);background:var(--gdant-error-50)}.gd-contract-template-designer__validation-item small{color:var(--gdant-neutral-500);flex:none}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-md) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__panel-head{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:20px;color:var(--gdant-neutral-700);display:flex}.gd-contract-template-designer__panel-head>strong{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-800);font-size:14px;font-weight:var(--gdant-font-semibold);display:inline-flex}.gd-contract-template-designer__panel-head>strong:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__panel-head>span{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-designer__panel-actions{gap:8px;display:flex}.gd-contract-template-designer__panel-stack{width:100%;min-width:0;height:100%;min-height:0;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable;scrollbar-width:thin;flex:auto;padding-inline-end:var(--gdant-spacing-xs);overflow:hidden auto}.gd-contract-template-designer__file-list::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__panel-stack::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__canvas::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__validation-list::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__file-list::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__canvas::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__validation-list::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__file-list::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__canvas::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__validation-list::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__file-list::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__canvas::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__validation-list::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*{width:calc(var(--gd-sidebar-expanded) - var(--gdant-spacing-xs));flex:none}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{width:calc(var(--gd-inspector-expanded) - var(--gdant-spacing-xs));flex:none}.gd-contract-template-designer__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gd-contract-template-designer__panel-handle .anticon{font-size:10px}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-handle{border-radius:0 var(--gdant-radius-md) var(--gdant-radius-md) 0;border-left:0;right:-14px}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-handle{border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);border-right:0;left:-14px}.gd-contract-template-designer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__toolbar-more{flex:none;align-items:center;display:flex;position:relative}.gd-contract-template-designer__toolbar-more:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar-more-panel{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);width:236px;max-width:calc(100vw - 24px);box-shadow:var(--gdant-shadow-modal);flex-direction:column;gap:12px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.gd-contract-template-designer__toolbar-more-section{flex-direction:column;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-title{color:var(--gdant-neutral-500);font-size:12px;line-height:18px}.gd-contract-template-designer__toolbar-more-slot{flex-wrap:wrap;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1;gap:6px;width:100%}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group:before{display:none}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select,.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select.is-wide{flex:92px;min-width:92px;max-width:none}.gd-contract-template-designer__nav-item,.gd-contract-template-designer__variable-chip,.gd-contract-template-designer__tool-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;min-height:36px;color:var(--gdant-neutral-700);cursor:pointer;text-align:left;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);justify-content:space-between;align-items:center;margin:0;padding:8px;display:flex}.gd-contract-template-designer__nav-item:hover,.gd-contract-template-designer__variable-chip:hover,.gd-contract-template-designer__tool-item:hover,.gd-contract-template-designer__nav-item.is-active,.gd-contract-template-designer__variable-chip.is-active,.gd-contract-template-designer__tool-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__nav-item:focus-visible,.gd-contract-template-designer__variable-chip:focus-visible,.gd-contract-template-designer__tool-item:focus-visible{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent);outline:none}.gd-contract-template-designer__nav-item:disabled,.gd-contract-template-designer__variable-chip:disabled,.gd-contract-template-designer__tool-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__tool-item{justify-content:flex-start;gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__tool-item-icon{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);width:28px;height:28px;color:var(--gdant-primary-500);flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.gd-contract-template-designer__tool-item-icon .anticon,.gd-contract-template-designer__tool-item-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-designer__tool-item:disabled .gd-contract-template-designer__tool-item-icon{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__tool-item-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__nav-item>span{gap:2px;min-width:0;display:grid}.gd-contract-template-designer__page-nav-row{align-items:center;gap:var(--gdant-spacing-xs);margin-bottom:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.gd-contract-template-designer__page-nav-row .gd-contract-template-designer__nav-item{min-width:0;margin-bottom:0}.gd-contract-template-designer__page-nav-actions{gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-designer__page-nav-actions .gd-contract-template-designer__icon-button.ant-btn-sm{width:28px;min-width:28px;height:28px}.gd-contract-template-designer__nav-item small{max-width:92px;color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.gd-contract-template-designer__page-config{border-top:1px dashed var(--gdant-neutral-300);gap:8px;margin-top:12px;padding-top:12px;display:grid}.gd-contract-template-designer__page-size-note{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__variable-form{gap:8px;margin-bottom:10px;display:grid}.gd-contract-template-designer__page-shell{margin:0 auto;position:relative}.gd-contract-template-designer__page-zoom{border-radius:var(--gdant-radius-lg);width:fit-content;transform:translateX(-50%) scale(var(--gd-contract-page-zoom,1));transform-origin:top;border:1px solid #0000;padding:3px;position:absolute;top:0;left:50%}.gd-contract-template-designer__page-zoom.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__page-title{color:var(--gdant-neutral-600);justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.gd-contract-template-designer__page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);padding:54px 64px;position:relative;overflow:hidden}.gd-contract-template-designer__signing-layer{z-index:var(--gdant-z-overlay);pointer-events:none;position:absolute;inset:0;overflow:hidden}.gd-contract-template-designer__signing-coordinate-guides{z-index:1;pointer-events:none;position:absolute;inset:0}.gd-contract-template-designer__signing-coordinate-guide{border-color:color-mix(in srgb, var(--gdant-primary-500) 70%, transparent);pointer-events:none;border-style:dashed;display:block;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal{top:var(--gd-contract-signing-y);width:var(--gd-contract-signing-x);border-top-width:1px;left:0}.gd-contract-template-designer__signing-coordinate-guide.is-vertical{top:0;left:var(--gd-contract-signing-x);height:var(--gd-contract-signing-y);border-left-width:1px}.gd-contract-template-designer__signing-coordinate-guide small{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-50);color:var(--gdant-primary-700);font-size:11px;font-weight:var(--gdant-font-medium);white-space:nowrap;padding:1px 4px;line-height:16px;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal small{bottom:3px;right:4px}.gd-contract-template-designer__signing-coordinate-guide.is-vertical small{top:4px;left:3px}.gd-contract-template-designer__signing-placement{z-index:2;place-content:center;gap:var(--gdant-spacing-xs);box-sizing:border-box;min-width:0;min-height:0;padding:var(--gdant-spacing-xs);border:2px dashed var(--gdant-primary-500);border-radius:var(--gdant-radius-md);background:color-mix(in srgb, var(--gdant-primary-50) 76%, transparent);color:var(--gdant-primary-700);cursor:move;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);display:grid;position:absolute;overflow:hidden}.gd-contract-template-designer__signing-placement.is-seal{border-color:var(--gdant-error-500);background:color-mix(in srgb, var(--gdant-error-50) 80%, transparent);color:var(--gdant-error-700)}.gd-contract-template-designer__signing-placement.is-date{border-color:var(--gdant-warning-500);background:color-mix(in srgb, var(--gdant-warning-50) 80%, transparent);color:var(--gdant-warning-700)}.gd-contract-template-designer__signing-placement:hover,.gd-contract-template-designer__signing-placement:focus-visible,.gd-contract-template-designer__signing-placement.is-selected{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 20%, transparent);border-style:solid;outline:none}.gd-contract-template-designer__signing-placement-visual{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;inset:6px}.gd-contract-template-designer.is-readonly .gd-contract-template-designer__signing-placement,.gd-contract-template-designer.is-disabled .gd-contract-template-designer__signing-placement{cursor:pointer}.gd-contract-template-designer__signing-placement-label{font-size:13px;font-weight:var(--gdant-font-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.gd-contract-template-designer__signing-placement-required{text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.2;font-weight:var(--gdant-font-semibold);overflow:hidden}.gd-contract-template-designer__signing-tool{justify-content:flex-start;gap:var(--gdant-spacing-sm);border-style:dashed;min-width:0}.gd-contract-template-designer__signing-tool-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__signing-tool-label{color:var(--gdant-neutral-800);font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__signing-inspector-body{gap:var(--gdant-spacing-md);display:grid}.gd-contract-template-designer__inspector-section{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__inspector-section--nested{padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50)}.gd-contract-template-designer__inspector-section-title{color:var(--gdant-neutral-600);font-size:12px;font-weight:var(--gdant-font-medium);line-height:1.5}.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__switch-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__form-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__grid-form{margin-bottom:0}.gd-contract-template-designer__signing-inspector-actions{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__signing-inspector-actions .ant-btn{width:100%}.gd-contract-template-designer__signing-inspector-danger-action{padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__signing-empty{color:var(--gdant-neutral-500);margin:0;font-size:12px;line-height:1.6}.gd-contract-template-designer__editor-prose{min-height:var(--gd-contract-page-content-height,1000px);color:var(--gdant-neutral-800);font-family:var(--gd-contract-template-editor-font-family,"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif);outline:none;line-height:1.75}.gd-contract-template-designer__editor-prose p{margin:0 0 10px}.gd-contract-template-designer__editor-prose ul,.gd-contract-template-designer__editor-prose ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__editor-prose ul{list-style-type:disc}.gd-contract-template-designer__editor-prose ul ul{list-style-type:circle}.gd-contract-template-designer__editor-prose ul ul ul{list-style-type:square}.gd-contract-template-designer__editor-prose ol{list-style-type:decimal}.gd-contract-template-designer__editor-prose ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__editor-prose ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__preview .gd-contract-template-page ul,.gd-contract-template-designer__preview .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__preview .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-designer__preview .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-designer__preview .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-designer__preview .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-designer__preview .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__preview .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul,.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__editor-prose img,.gd-contract-template-designer__preview .gd-contract-template-page img,.gd-contract-template-renderer__page-frame .gd-contract-template-page img{object-fit:contain;vertical-align:middle;max-width:100%;display:inline-block}.gd-contract-template-designer__editor-prose img[width],.gd-contract-template-designer__editor-prose img[height],.gd-contract-template-designer__preview .gd-contract-template-page img[width],.gd-contract-template-designer__preview .gd-contract-template-page img[height],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[width],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[height]{max-width:none}.gd-contract-template-designer__editor-prose img:not([height]),.gd-contract-template-designer__preview .gd-contract-template-page img:not([height]),.gd-contract-template-renderer__page-frame .gd-contract-template-page img:not([height]){height:auto}.gd-contract-template-designer__editor-prose sup,.gd-contract-template-designer__editor-prose sub,.gd-contract-template-designer__preview .gd-contract-template-page sup,.gd-contract-template-designer__preview .gd-contract-template-page sub,.gd-contract-template-renderer__page-frame .gd-contract-template-page sup,.gd-contract-template-renderer__page-frame .gd-contract-template-page sub{line-height:0}.gd-contract-template-designer__editor-prose table{border-collapse:collapse;width:100%}.gd-contract-template-designer__editor-prose th,.gd-contract-template-designer__editor-prose td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__editor-prose .selectedCell:after{background:color-mix(in srgb, var(--gdant-primary-500) 14%, transparent)}.gd-contract-template-designer__page.is-variable-dragging .gd-contract-template-variable{cursor:grabbing}.gd-contract-template-variable{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);box-sizing:border-box;width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);border-radius:var(--gdant-radius-xs);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));font-size:var(--gd-contract-variable-font-size,14px);font-family:var(--gd-contract-variable-font-family,inherit);text-align:var(--gd-contract-variable-text-align,left);vertical-align:middle;white-space:nowrap;border:1px solid #0000;margin:0 2px;padding:0 6px;line-height:1.5;transition:border-color .12s,background-color .12s,box-shadow .12s;display:inline-flex;position:relative}.gd-contract-template-variable:hover{border-color:var(--gdant-primary-300);background-color:color-mix(in srgb, var(--gdant-primary-50) 48%, transparent)}.gd-contract-template-variable.has-border{border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-style:var(--gd-contract-variable-border-style,solid)}.gd-contract-template-variable.has-underline{border-color:#0000;border-bottom-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-bottom-style:var(--gd-contract-variable-border-style,solid);border-radius:0}.gd-contract-template-variable.is-placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-variable.is-active{border-color:var(--gdant-warning-500);background-color:var(--gdant-warning-50);color:var(--gdant-warning-700);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-warning-500) 18%, transparent)}.gd-contract-template-variable.is-multiline{width:var(--gd-contract-variable-width,160px);height:var(--gd-contract-variable-multiline-height,84px);min-height:var(--gd-contract-variable-multiline-height,84px);line-height:var(--gd-contract-variable-line-height,28px);vertical-align:top;white-space:pre-wrap;padding:0 6px;display:inline-block;overflow:hidden}.gd-contract-template-variable.is-multiline.has-underline{background-image:linear-gradient(to bottom, transparent calc(100% - 1px), var(--gd-contract-variable-line-color,var(--gdant-neutral-600)) calc(100% - 1px));background-repeat:repeat-y;background-size:100% var(--gd-contract-variable-line-height,28px);border-bottom-color:#0000}.gd-contract-template-variable.is-number{font-variant-numeric:tabular-nums}.gd-contract-template-variable.is-checkbox{width:auto;min-width:var(--gd-contract-variable-width,96px);justify-content:flex-start;gap:6px;padding:0 2px}.gd-contract-template-variable.is-checkbox:before{border-radius:var(--gdant-radius-xs);content:"";border:1px solid;justify-content:center;align-items:center;width:13px;height:13px;font-size:10px;line-height:1;display:inline-flex}.gd-contract-template-variable.is-checkbox.is-checked:before{content:"✓"}.gd-contract-template-variable.is-image{min-height:var(--gd-contract-variable-height,96px);border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-300));border-style:var(--gd-contract-variable-border-style,dashed);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500));white-space:normal;justify-content:center;overflow:hidden}.gd-contract-template-variable.is-image.has-value{color:#0000}.gd-contract-template-variable.is-image.has-value:before{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain);content:"";position:absolute;inset:4px}.gd-contract-template-designer__form-row{color:var(--gdant-neutral-600);gap:6px;margin-bottom:12px;font-size:12px;display:grid}.gd-contract-template-designer__form-row.is-compact{margin-bottom:0}.gd-contract-template-designer__switch-row{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);min-height:28px;color:var(--gdant-neutral-600);justify-content:space-between;align-items:center;gap:12px;margin:0;padding:6px 8px;font-size:12px;display:flex}.gd-contract-template-designer__switch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.gd-contract-template-designer__tool-item small{color:var(--gdant-neutral-500);font-size:11px}.gd-contract-template-designer__grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.gd-contract-template-designer__table-picker{gap:var(--gdant-spacing-sm);margin:var(--gdant-spacing-sm) 0;display:grid}.gd-contract-template-designer__table-picker-label{color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-designer__table-picker-grid{gap:3px;width:fit-content;display:grid}.gd-contract-template-designer__table-picker-row{grid-template-columns:repeat(10,18px);gap:3px;display:grid}.gd-contract-template-designer__table-picker-cell{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);cursor:pointer;width:18px;height:18px;padding:0}.gd-contract-template-designer__table-picker-cell:hover,.gd-contract-template-designer__table-picker-cell.is-previewed{border-color:var(--gdant-primary-500);background:var(--gdant-primary-100)}.gd-contract-template-designer__table-picker-cell:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:1px}.gd-contract-template-designer__grid-form label{color:var(--gdant-neutral-600);gap:6px;font-size:12px;display:grid}.gd-contract-template-designer__popover-actions{justify-content:flex-end;gap:8px;display:flex}.gd-contract-template-designer__table-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.gd-contract-template-designer__context-menu{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xl);background:color-mix(in srgb, var(--gdant-neutral-0) 98%, transparent);min-width:240px;max-width:min(360px,100vw - 24px);box-shadow:var(--gdant-shadow-modal);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);gap:8px;padding:10px;display:grid;position:fixed}.gd-contract-template-designer__context-menu-row{flex-wrap:wrap;gap:8px;display:flex}.gd-contract-template-designer__context-menu-group{border-bottom:1px solid var(--gdant-neutral-200);gap:6px;padding-bottom:8px;display:grid}.gd-contract-template-designer__context-menu-group>span{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__context-menu-group.is-danger{border-bottom:0;padding-bottom:0}.gd-contract-template-designer__image-context-menu{box-sizing:border-box;width:min(288px, 100vw - var(--gdant-spacing-xl));gap:var(--gdant-spacing-md);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);min-width:0;box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none}.gd-contract-template-designer__image-context-title{gap:calc(var(--gdant-spacing-xs) / 2);display:grid}.gd-contract-template-designer__image-context-title strong{color:var(--gdant-neutral-800);font-size:var(--gdant-text-body)}.gd-contract-template-designer__image-context-title span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__text-context-menu{--gd-text-context-menu-gutter:var(--gdant-spacing-md);--gd-text-context-menu-width:calc(var(--gdant-spacing-xl) * 12 + var(--gdant-spacing-sm) * 2);--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);--gd-text-context-menu-thin:calc(var(--gdant-spacing-xs) / 2);width:min(var(--gd-text-context-menu-width), 100vw - var(--gd-text-context-menu-gutter) * 2);min-width:0;max-width:none;max-height:calc(100vh - var(--gd-text-context-menu-gutter) * 2);gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);box-shadow:var(--gdant-shadow-raised);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;overflow-y:auto}.gd-contract-template-designer__text-menu-row{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;padding:0;display:flex}.gd-contract-template-designer__text-menu-row+.gd-contract-template-designer__text-menu-row{padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-quick-insert{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gd-contract-template-designer__text-menu-quick-insert .ant-btn{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-quick-insert .ant-btn>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-group{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__text-menu-control-head{justify-content:space-between;align-items:baseline;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-700);font-size:var(--gdant-text-body-sm);display:flex}.gd-contract-template-designer__text-menu-control-head>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-options{gap:var(--gdant-spacing-xs);grid-template-columns:repeat(5,minmax(0,1fr));min-width:0;display:grid}.gd-contract-template-designer__text-menu-control-option{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;min-height:calc(var(--gd-text-context-menu-control-size) + var(--gdant-spacing-md));padding:var(--gdant-spacing-xs) var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);flex-direction:column;line-height:1.2;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-control-option .anticon{color:var(--gdant-primary-500);font-size:var(--gdant-text-h3);flex:none}.gd-contract-template-designer__text-menu-control-option span{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;display:block;overflow:hidden}.gd-contract-template-designer__text-menu-control-option:hover{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-control-option:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:var(--gd-text-context-menu-control-size);padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);line-height:1.2;display:inline-flex}.gd-contract-template-designer__text-menu-bind-toggle:hover:not(:disabled){border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-toggle:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__text-menu-bind-search{width:100%}.gd-contract-template-designer__text-menu-bind-list{gap:var(--gdant-spacing-xs);max-height:calc(var(--gdant-spacing-xl) * 5 + var(--gdant-spacing-md));display:grid;overflow:auto}.gd-contract-template-designer__text-menu-bind-item{align-items:flex-start;gap:var(--gdant-spacing-xs);width:100%;min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-800);cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;display:flex}.gd-contract-template-designer__text-menu-bind-item-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.gd-contract-template-designer__text-menu-bind-item-meta,.gd-contract-template-designer__text-menu-bind-empty{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-designer__text-menu-bind-empty{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);margin:0}.gd-contract-template-designer__text-menu-bind-item:hover,.gd-contract-template-designer__text-menu-bind-item:focus-visible{background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-item:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-row--controls{gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm{flex:0 0 var(--gd-text-context-menu-control-size);width:var(--gd-text-context-menu-control-size);min-width:var(--gd-text-context-menu-control-size);height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-700);background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900);border-color:#0000}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-100);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:focus-visible,.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:focus-visible,.gd-contract-template-designer__context-menu-color:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-divider{width:var(--gd-text-context-menu-thin);height:var(--gdant-spacing-base);margin:0 var(--gd-text-context-menu-thin);background:var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-font-size{min-width:calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-alignment{min-width:calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-row .ant-select-selector{min-height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm)}.gd-contract-template-designer__text-menu-row .ant-select-focused .ant-select-selector{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent)}.gd-contract-template-designer__text-menu-row .ant-select-selection-search-input,.gd-contract-template-designer__text-menu-row .ant-select-selection-item{line-height:calc(var(--gd-text-context-menu-control-size) - var(--gdant-spacing-xs) / 2)}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:var(--gd-text-context-menu-control-size);padding:0 var(--gdant-spacing-sm);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);flex:1 1 0;display:inline-flex}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:hover:not(:disabled){border-color:var(--gdant-error-200);background:var(--gdant-error-50);color:var(--gdant-error-600)}.gd-contract-template-designer__table-context-menu{box-sizing:border-box;width:min(240px,100vw - 16px);min-width:0;max-width:none;max-height:min(520px,100vh - 24px);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;animation:gd-contract-template-table-menu-enter var(--gdant-duration-normal) var(--gdant-easing-default);display:block;overflow:hidden auto}.gd-contract-template-designer__table-menu-group{gap:calc(var(--gdant-spacing-xs) / 2);padding:var(--gdant-spacing-xs) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__table-menu-group.is-stacked{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__table-menu-group+.gd-contract-template-designer__table-menu-group{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__table-menu-item{appearance:none;box-sizing:border-box;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:32px;padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);cursor:pointer;font:inherit;font-size:var(--gdant-text-body);letter-spacing:0;text-align:left;white-space:nowrap;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;line-height:20px;display:flex}.gd-contract-template-designer__table-menu-item .anticon{width:16px;color:var(--gdant-neutral-500);transition:color var(--gdant-duration-normal) var(--gdant-easing-default);flex:0 0 16px;font-size:15px}.gd-contract-template-designer__table-menu-item:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900)}.gd-contract-template-designer__table-menu-item:hover:not(:disabled) .anticon{color:var(--gdant-neutral-700)}.gd-contract-template-designer__table-menu-item:focus-visible,.gd-contract-template-designer__table-menu-align-item:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:-2px}.gd-contract-template-designer__table-menu-item:disabled,.gd-contract-template-designer__table-menu-align-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__table-menu-item:disabled .anticon{color:var(--gdant-neutral-400)}.gd-contract-template-designer__table-menu-item.is-danger{color:var(--gdant-error-700);grid-column:1/-1}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled){background:var(--gdant-error-50);color:var(--gdant-error-700)}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled) .anticon{color:var(--gdant-error-600)}.gd-contract-template-designer__table-menu-align{align-items:center;gap:var(--gdant-spacing-sm);min-height:38px;padding:calc(var(--gdant-spacing-xs) / 2) var(--gdant-spacing-sm);grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__table-menu-align-label{min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.gd-contract-template-designer__table-menu-align-options{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-100);grid-template-columns:repeat(3,30px);gap:2px;padding:2px;display:grid}.gd-contract-template-designer__table-menu-align-item{appearance:none;border-radius:var(--gdant-radius-sm);width:30px;height:28px;color:var(--gdant-neutral-600);cursor:pointer;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;place-items:center;padding:0;font-size:15px;display:grid}.gd-contract-template-designer__table-menu-align-item:hover:not(:disabled){background:var(--gdant-neutral-200);color:var(--gdant-neutral-800)}.gd-contract-template-designer__table-menu-align-item.is-selected{background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-raised);color:var(--gdant-primary-600)}.gd-contract-template-designer__table-menu-danger{margin-top:var(--gdant-spacing-xs);padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}@keyframes gd-contract-template-table-menu-enter{0%{opacity:0;transform:translateY(-2px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.gd-contract-template-designer__table-context-menu{animation:none}.gd-contract-template-designer__table-menu-item,.gd-contract-template-designer__table-menu-item .anticon,.gd-contract-template-designer__table-menu-align-item,.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__panel-handle,.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-handle{transition:none}}@media (width<=260px){.gd-contract-template-designer__table-menu-group{grid-template-columns:minmax(0,1fr)}}.gd-contract-template-designer__sr-status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.gd-contract-template-designer__context-menu-field{flex:112px;min-width:112px}.gd-contract-template-designer__context-menu-color{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);cursor:pointer;width:40px;height:32px;padding:0}.gd-contract-template-designer.is-disabled{opacity:.68;pointer-events:none}.gd-contract-template-designer__preview-modal .ant-modal{max-width:calc(100vw - 32px)}.gd-contract-template-designer__preview-modal .ant-modal-body{padding:0}.gd-contract-template-designer__preview{background:var(--gdant-neutral-100);max-height:calc(100vh - 180px);padding:32px;display:block;overflow:auto}.gd-contract-template-designer__preview.is-multi-file{padding:0;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout{grid-template-columns:220px minmax(0,1fr);height:min(720px,100vh - 180px);min-height:420px;display:grid}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav{gap:var(--gdant-spacing-xs);min-width:0;padding:var(--gdant-spacing-md);border-right:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-50);flex-direction:column;display:flex;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav-title{padding:0 var(--gdant-spacing-sm) var(--gdant-spacing-sm);color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab{align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:44px;padding:var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab>small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab:hover,.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab.is-active{border-color:var(--gdant-primary-200);background:var(--gdant-neutral-0);color:var(--gdant-primary-600)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout>.gd-contract-template-designer__preview-file{min-width:0;max-height:100%;margin:0;padding:24px;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell{width:fit-content;max-width:100%;margin:0 auto 24px}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell:last-child{margin-bottom:0}.gd-contract-template-designer__preview .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);color:var(--gdant-neutral-800);padding:54px 64px;line-height:1.75;position:relative;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-designer__preview .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-designer__preview .gd-contract-template-page th,.gd-contract-template-designer__preview .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__preview-file+.gd-contract-template-designer__preview-file{margin-top:var(--gdant-spacing-xl);padding-top:var(--gdant-spacing-xl);border-top:1px solid var(--gdant-neutral-300)}.gd-contract-template-designer__preview-file-title{align-items:center;gap:var(--gdant-spacing-sm);width:fit-content;margin:0 auto var(--gdant-spacing-md);color:var(--gdant-neutral-800);font-size:var(--gdant-text-title);display:flex}.gd-contract-template-designer__preview-file-title:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__preview-signing-layer{z-index:2;pointer-events:none;position:absolute;inset:0 auto auto 0}.gd-contract-template-designer__preview-signing-placement{box-sizing:border-box;border:1px solid var(--gdant-primary-500);background:color-mix(in srgb, var(--gdant-success-50) 60%, transparent);min-width:0;min-height:0;color:var(--gdant-primary-300);text-align:center;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;overflow:hidden}.gd-contract-template-designer__preview-signing-placement-add{gap:var(--gdant-spacing-xs);box-sizing:border-box;overflow-wrap:anywhere;max-width:100%;padding:10px;display:grid;overflow:hidden}@media (width<=760px){.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav{border-right:0;border-bottom:1px solid var(--gdant-neutral-200);flex-direction:row}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav-title{display:none}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab{flex:0 0 min(220px,72vw)}}.gd-contract-template-designer__submit-data-modal .ant-modal-body{padding:0}.gd-contract-template-designer__submit-data{background:var(--gdant-neutral-900);max-height:calc(100vh - 220px);color:var(--gdant-neutral-100);white-space:pre;margin:0;padding:16px 20px;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:12px;line-height:1.6;overflow:auto}.gd-contract-template-renderer{--gd-contract-renderer-background:var(--gdant-neutral-100);--gd-contract-renderer-surface:var(--gdant-neutral-0);--gd-contract-renderer-panel-width:336px;--gd-contract-renderer-page-gap:24px;--gd-contract-renderer-border-color:var(--gdant-neutral-300);--gd-contract-renderer-toolbar-control-height:30px;box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-background);min-height:420px;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""validation""body";display:grid;overflow:hidden}.gd-contract-template-renderer.is-disabled .gd-contract-template-renderer__field-list{opacity:.72}.gd-contract-template-renderer__header{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:56px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);flex-wrap:wrap;grid-area:header;display:flex}.gd-contract-template-renderer__title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-contract-template-renderer__title-bar{width:var(--gdant-spacing-xs);height:var(--gdant-spacing-base);border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);flex:none}.gd-contract-template-renderer__header-meta{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-contract-template-renderer__header-meta strong{color:var(--gdant-neutral-900);font-size:var(--gdant-text-h3);font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-renderer__header-meta span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__progress-pill{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-primary-200);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-50);color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);white-space:nowrap;flex:none}.gd-contract-template-renderer__progress-pill.is-warning{border-color:var(--gdant-warning-100);background:var(--gdant-warning-50);color:var(--gdant-warning-700)}.gd-contract-template-renderer__header-actions{align-items:center;gap:var(--gdant-spacing-sm);flex-wrap:wrap;flex:none;display:flex}.gd-contract-template-renderer__icon-button.ant-btn-sm{width:var(--gd-contract-renderer-toolbar-control-height);height:var(--gd-contract-renderer-toolbar-control-height);min-width:var(--gd-contract-renderer-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-renderer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-renderer__toolbar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-xl);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-raised);display:flex}.gd-contract-template-renderer__toolbar-group{align-items:center;gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-renderer__zoom-value{box-sizing:border-box;width:54px;color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;text-align:center}.gd-contract-template-renderer__page-select{width:min(240px,36vw)}.gd-contract-template-renderer__validation{gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);font-size:var(--gdant-text-body-sm);grid-area:validation;display:grid}.gd-contract-template-renderer__validation.is-success{background:var(--gdant-success-50);color:var(--gdant-success-600)}.gd-contract-template-renderer__validation.is-error{background:var(--gdant-error-50);color:var(--gdant-error-700);border-bottom-color:var(--gdant-error-100)}.gd-contract-template-renderer__validation-bar{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:28px;display:flex}.gd-contract-template-renderer__validation-toggle{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;text-decoration:underline}.gd-contract-template-renderer__validation-list{gap:var(--gdant-spacing-xs);max-height:132px;display:grid;overflow:auto}.gd-contract-template-renderer__validation-item{width:100%;padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border:1px solid var(--gdant-warning-100);border-radius:var(--gdant-radius-md);background:var(--gdant-warning-50);color:var(--gdant-error-700);text-align:left;cursor:pointer}.gd-contract-template-renderer__empty{min-height:0;padding:var(--gdant-spacing-base);grid-area:body;place-items:center;display:grid}.gd-contract-template-renderer__workspace{gap:var(--gdant-spacing-base);min-height:0;padding:var(--gdant-spacing-md);grid-area:body;grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.gd-contract-template-renderer__workspace.is-inline{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__pages-viewport{min-width:0;min-height:0;padding:var(--gdant-spacing-xs) 0;overscroll-behavior:contain;overflow:auto}.gd-contract-template-renderer__pages{place-content:start center;gap:var(--gd-contract-renderer-page-gap);width:max-content;min-width:100%;padding:0 24px 24px;display:grid}.gd-contract-template-renderer__page-shell{justify-content:center;gap:8px;min-width:0;scroll-margin:12px;display:grid}.gd-contract-template-renderer__page-meta{width:100%;color:var(--gdant-neutral-600);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;font-size:12px;display:grid}.gd-contract-template-renderer__page-meta strong{color:var(--gdant-neutral-800);font-weight:600}.gd-contract-template-renderer__page-meta span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-renderer__page-meta small{font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-renderer__page-frame{flex:none;transition:width .1s cubic-bezier(.4,0,.2,1),height .1s cubic-bezier(.4,0,.2,1);position:relative}.gd-contract-template-renderer__page-frame .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-overlay);transform-origin:0 0;padding:54px 64px;line-height:1.75;position:absolute;inset:0 auto auto 0;overflow:hidden}.gd-contract-template-renderer__page-frame .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-renderer__page-frame .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-renderer__page-frame .gd-contract-template-page th,.gd-contract-template-renderer__page-frame .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-renderer__panel-wrap{z-index:1;width:var(--gd-contract-renderer-panel-width);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);position:relative;overflow:visible}.gd-contract-template-renderer__panel-wrap.is-collapsed{width:0}.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:hidden}.gd-contract-template-renderer__panel-clip{width:100%;height:100%;overflow:hidden}.gd-contract-template-renderer__panel{gap:var(--gdant-spacing-sm);width:var(--gd-contract-renderer-panel-width);min-width:0;height:100%;min-height:0;padding:var(--gdant-spacing-md);border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-surface);flex-direction:column;display:flex;overflow:hidden}.gd-contract-template-renderer__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);border-right:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.gd-contract-template-renderer__panel-handle .anticon{font-size:10px}.gd-contract-template-renderer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-renderer__panel-head{z-index:1;gap:var(--gdant-spacing-sm);padding-bottom:var(--gdant-spacing-sm);background:var(--gd-contract-renderer-surface);display:grid;position:sticky;top:0}.gd-contract-template-renderer__panel-head-row{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-md);display:flex}.gd-contract-template-renderer__panel-head-row>div{gap:var(--gdant-spacing-xs);display:grid}.gd-contract-template-renderer__panel-head-row strong{font-size:15px}.gd-contract-template-renderer__panel-head-row span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__panel-head-actions{gap:var(--gdant-spacing-sm);flex-wrap:wrap;display:flex}.gd-contract-template-renderer__field-list{flex:auto;align-content:start;gap:12px;min-height:0;display:grid;overflow:auto}.gd-contract-template-renderer__field{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default);gap:8px;padding:12px;display:grid}.gd-contract-template-renderer__field.is-active{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 12%, transparent)}.gd-contract-template-renderer__field.has-error{border-color:var(--gdant-error-300)}.gd-contract-template-renderer__field .ant-input-number,.gd-contract-template-renderer__field .ant-picker{width:100%}.gd-contract-template-renderer__field-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gd-contract-template-renderer__field-head strong{overflow-wrap:anywhere;min-width:0;font-size:14px}.gd-contract-template-renderer__field-head small{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-renderer__field-title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;max-width:100%;display:inline-flex}.gd-contract-template-renderer__field-type-icon{color:var(--gdant-neutral-500);flex:none;align-items:center;font-size:1em;line-height:1;display:inline-flex}.gd-contract-template-renderer__field-type-icon .anticon,.gd-contract-template-renderer__field-type-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-renderer__field-title-text{overflow-wrap:anywhere;min-width:0}.gd-contract-template-renderer__field-required{color:var(--gdant-error-600);margin-left:2px}.gd-contract-template-renderer__field-checkbox{align-items:center;gap:8px;min-height:32px;display:inline-flex}.gd-contract-template-renderer__image-field{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.gd-contract-template-renderer__image-preview{border:1px dashed var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);min-width:0;color:var(--gdant-neutral-500);grid-column:1/-1;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;padding:8px;font-size:12px;display:grid}.gd-contract-template-renderer__image-preview .ant-image,.gd-contract-template-renderer__image-preview .ant-image-img{border-radius:var(--gdant-radius-sm);object-fit:contain;width:96px;height:56px}.gd-contract-template-renderer__field-errors{color:var(--gdant-error-600);gap:4px;font-size:12px;display:grid}.gd-contract-template-renderer__control{box-sizing:border-box;width:var(--gd-contract-variable-width,160px);min-width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));background:var(--gd-contract-variable-background,transparent);font-family:var(--gd-contract-variable-font-family,inherit);font-size:var(--gd-contract-variable-font-size,14px);text-align:var(--gd-contract-variable-text-align,left);vertical-align:baseline;border:0;border-radius:0;outline:none;padding:0 4px}.gd-contract-template-renderer__control::placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-renderer__control.has-border{border:1px var(--gd-contract-variable-border-style,solid) var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.gd-contract-template-renderer__control.has-underline{border-bottom:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.gd-contract-template-renderer__control.is-multiline{min-height:var(--gd-contract-variable-multiline-height,84px);line-height:var(--gd-contract-variable-line-height,28px);resize:vertical;display:inline-block}.gd-contract-template-renderer__preview-control{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);cursor:pointer;display:inline-flex}.gd-contract-template-renderer__preview-control.is-image{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain)}.gd-contract-template-renderer__preview-control.is-empty{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-renderer__preview-control.is-active{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 24%, transparent)}.gd-contract-template-renderer__preview-control:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 32%, transparent)}.gd-contract-template-renderer__checkbox-mark{border:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600));justify-content:center;align-items:center;width:14px;height:14px;font-size:12px;line-height:1;display:inline-flex}label.gd-contract-template-renderer__control{align-items:center;gap:6px;display:inline-flex}label.gd-contract-template-renderer__control input{margin:0}@media (width<=960px){.gd-contract-template-renderer__header{align-items:flex-start}.gd-contract-template-renderer__workspace{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-wrap.is-collapsed{width:auto;overflow:visible}.gd-contract-template-renderer__panel-clip,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:visible;height:auto;overflow:visible}.gd-contract-template-renderer__panel,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel{width:100%;max-height:420px}.gd-contract-template-renderer__panel-handle,.gd-contract-template-renderer__panel-toggle{display:none!important}}@media (width<=640px){.gd-contract-template-renderer{min-height:0}.gd-contract-template-renderer__header{padding:var(--gdant-spacing-sm);flex-direction:column;align-items:stretch}.gd-contract-template-renderer__header-actions{justify-content:flex-start}.gd-contract-template-renderer__workspace{padding:var(--gdant-spacing-sm)}.gd-contract-template-renderer__toolbar{flex-direction:column;align-items:stretch}.gd-contract-template-renderer__toolbar-group{justify-content:space-between}.gd-contract-template-renderer__page-select{width:100%}.gd-contract-template-renderer__pages{padding-inline:var(--gdant-spacing-sm);justify-content:start}.gd-contract-template-renderer__page-meta{grid-template-columns:auto minmax(0,1fr)}.gd-contract-template-renderer__page-meta small{grid-column:1/-1}}@media (width<=1180px){.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__toolbar{padding-inline:12px}.gd-contract-template-designer__canvas{justify-content:start}.gd-contract-template-designer__page-shell{margin-inline:0}}@media (height<=820px) and (width>=761px){.gd-contract-template-designer{min-height:560px}.gd-contract-template-designer__file-bar,.gd-contract-template-designer__workspace-header,.gd-contract-template-designer__toolbar{padding-block:var(--gdant-spacing-xs)}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-xs);padding-block:var(--gdant-spacing-sm)}.gd-contract-template-designer__canvas{gap:var(--gdant-spacing-base);padding-block:var(--gdant-spacing-base)}}@media (width<=760px){.gd-contract-template-designer{height:auto;min-height:0;overflow:visible}.gd-contract-template-designer__layout,.gd-contract-template-designer__layout.is-sidebar-collapsed,.gd-contract-template-designer__layout.is-inspector-collapsed,.gd-contract-template-designer__layout.is-sidebar-collapsed.is-inspector-collapsed{grid-template-rows:auto minmax(560px,1fr) auto;grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__file-bar{flex-direction:column;align-items:stretch}.gd-contract-template-designer__file-add.ant-btn-sm{align-self:flex-start}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__sidebar.is-collapsed,.gd-contract-template-designer__inspector.is-collapsed{border:0;width:auto;max-height:360px;overflow:auto}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{visibility:visible;width:100%}.gd-contract-template-designer__panel-handle,.gd-contract-template-designer__toolbar-more{display:none!important}.gd-contract-template-designer__toolbar-section--main{flex-wrap:wrap;row-gap:8px;display:flex}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1}.gd-contract-template-designer__sidebar{border-bottom:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__workspace{min-height:560px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__canvas{justify-content:start;padding:16px 8px}}@container (width<=1279px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:220px;--gd-inspector-expanded:260px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__canvas{justify-content:start}}@container (width<=1079px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:200px;--gd-inspector-expanded:240px}}
package/dist/es/index.mjs CHANGED
@@ -55,24 +55,26 @@ import { DRAWER_SIZE_WIDTH as ve } from "./components/pro-drawer/src/types.mjs";
55
55
  import ye from "./components/pro-drawer/index.mjs";
56
56
  import { CONTRACT_SIGNING_AUTO_SCROLL_EDGE_PX as be, CONTRACT_SIGNING_MIN_PLACEMENT_SIZE as xe, CONTRACT_SIGNING_PLACEMENT_LABELS as Se, CONTRACT_SIGNING_PLACEMENT_MIME as Ce, CONTRACT_SIGNING_PREVIEW_CONCURRENCY as we, CONTRACT_SIGNING_PX_PER_MM as Te, CONTRACT_SIGNING_SEAL_MAX_SIZE as Ee, CONTRACT_SIGNING_SEAL_MIN_SIZE as De, CONTRACT_SIGNING_SEAL_TYPE_OPTIONS as Q, CONTRACT_SIGNING_SEAL_TYPE_PRESETS as Oe, CONTRACT_SIGNING_SIZE_PROFILES as ke, CONTRACT_SIGNING_VISIBLE_PAGES_DEBOUNCE_MS as Ae, millimetersToContractSigningCssPixels as je, millimetersToContractSigningPixels as Me, resolveContractSigningSealSizeInCssPixels as Ne, resolveContractSigningSealSizeInPixels as Pe, resolveContractSigningSealTypeOption as Fe } from "./components/contract-signing-location/src/constants.mjs";
57
57
  import { CONTRACT_SIGNING_RENDER_ORIGIN_OFFSET as Ie, CONTRACT_SIGNING_SNAP_THRESHOLD_PX as Le, canResizeContractSigningPlacement as Re, clampContractSigningPlacement as ze, clampContractSigningZoom as Be, displayPointToContractPoint as Ve, getContractSigningPlacementDistances as He, getContractSigningPlacementSize as Ue, getContractSigningRuleGeometry as We, moveContractSigningPlacementByDisplayDelta as Ge, normalizeContractSigningCoordinateDimension as Ke, normalizeContractSigningCoordinateScale as qe, resizeContractSigningSealGeometry as Je, resolveContractSigningSealSizeLimit as Ye, resolveContractSigningSizeProfile as Xe, snapContractSigningPlacement as Ze } from "./components/contract-signing-location/src/coordinates.mjs";
58
- import { ContractSigningLocationBuildError as Qe, buildContractSigningLocationOutput as $e, buildContractSigningLocationRules as et, cloneContractSigningLocationValue as tt, createContractSigningLocationValue as nt, createContractSigningPlacement as rt, findContractSigningPage as it, getContractSigningHomePage as at, isContractSigningPageUsable as ot, normalizeContractSigningLocationValue as st, normalizeContractSigningProviderValue as ct, patchContractSigningPlacement as lt, resolveContractSigningPreviewPageSize as ut, validateContractSigningLocationValue as dt } from "./components/contract-signing-location/src/location-rules.mjs";
59
- import { CONTRACT_SIGNING_FALLBACK_PAGE_SIZE as ft, CONTRACT_SIGNING_PAGE_GAP as pt, CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES as mt, buildPageLayouts as ht, contentPointToPagePoint as gt, findPageAtOffset as _t, getContractSigningAutoScrollDelta as vt, getPageLayoutScrollTop as yt, getPageLayoutsContentSize as bt, getVisibleRange as xt } from "./components/contract-signing-location/src/page-layout.mjs";
60
- import { formatContractSigningDate as St, getContractSigningDateDataUrl as Ct, getContractSigningDateSvgDataUrl as wt, getContractSigningPlacementDataUrl as Tt, getContractSigningPlacementVisual as Et, getContractSigningSealDataUrl as Dt, getContractSigningSealLabel as Ot, getContractSigningSealSvgDataUrl as kt, getContractSigningSignatureDataUrl as At, getContractSigningSignaturePngDataUrl as jt, getContractSigningSignatureSvgDataUrl as Mt, isContractSigningVisualDataUrl as Nt, isSafeContractSigningVisualDataUrl as Pt, resolveContractSigningSealLabel as Ft, toContractSigningSvgDataUrl as It } from "./components/contract-signing-location/src/signing-visuals.mjs";
61
- import Lt from "./components/contract-signing-location/index.mjs";
62
- import { CONTRACT_TEXT_STYLE_PRESETS as Rt, CONTRACT_TEXT_STYLE_PRESET_COMMANDS as zt, DEFAULT_CONTRACT_FONT_FAMILY as Bt, DEFAULT_FONT_FAMILY_OPTIONS as $, DEFAULT_FONT_SIZE_PRESETS as Vt, DEFAULT_TEXT_ALIGN_OPTIONS as Ht, getContractTextStylePreset as Ut, normalizeFontFamilyValue as Wt, resolveContractTextStylePresetCommands as Gt, resolveFontFamilyOptions as Kt } from "./components/pro-contract-template-designer/src/constants.mjs";
63
- import { isSafeContractImageUrl as qt } from "./components/pro-contract-template-designer/src/utils/image-url.mjs";
64
- import { DEFAULT_CONTRACT_IMAGE_COMPRESSION as Jt, MAX_CONTRACT_IMAGE_BYTES as Yt, MAX_CONTRACT_IMAGE_DIMENSION as Xt, MIN_CONTRACT_IMAGE_DIMENSION as Zt, compressContractImage as Qt, normalizeContractImageCompression as $t, normalizeContractImageDimension as en, processContractImageFile as tn, readContractImageFileAsDataUrl as nn, resolveContractImageResizeDimensions as rn } from "./components/pro-contract-template-designer/src/utils/content-image.mjs";
65
- import { isContractTemplateFieldType as an } from "./components/pro-contract-template-designer/src/types.mjs";
66
- import { ContractTemplateLocationRuleBuildError as on, SIGNING_PLACEMENT_DEFAULT_SIZES as sn, SIGNING_PLACEMENT_MIME as cn, SIGNING_PLACEMENT_MIN_SIZE as ln, SIGNING_PLACEMENT_TYPE_LABELS as un, applySigningPlacementPatch as dn, buildContractLocationRules as fn, buildSigningPlacementLocationRules as pn, canMutateSigningPlacements as mn, clampSigningPlacement as hn, createSigningPlacement as gn, getSigningPlacementDefaultSize as _n, getSigningPlacementTypeLabel as vn, moveSigningPlacementByDisplayDelta as yn, normalizeSigningPlacements as bn, parseSigningPlacementDragPayload as xn, resizeSigningPlacement as Sn, resolveSigningPlacementToolItems as Cn, scaleSigningPlacementToPage as wn, serializeSigningPlacementDragPayload as Tn, validateSigningPlacements as En } from "./components/pro-contract-template-designer/src/utils/signing-placement.mjs";
67
- import { CONTRACT_TEMPLATE_RENDERER_VERSION as Dn, CONTRACT_TEMPLATE_STYLE_VERSION as On, DEFAULT_FIELD_STYLE as kn, DEFAULT_FIELD_TYPES as An, DEFAULT_MULTILINE_LINE_HEIGHT as jn, DEFAULT_MULTILINE_ROWS as Mn, DEFAULT_PAGE_SIZE as Nn, PAGE_SIZE_OPTIONS as Pn, buildTemplateExpressionHtml as Fn, buildTemplateHtml as In, buildTemplatePreviewHtml as Ln, buildTemplatePreviewPages as Rn, cloneTemplateValue as zn, collectTemplateLocationRuleExportErrors as Bn, collectTemplateValueVariableKeys as Vn, collectTemplateVariableKeys as Hn, constrainTemplatePageSizes as Un, createBlankPage as Wn, createBlankTemplate as Gn, createDefaultPage as Kn, createDefaultTemplate as qn, createDesignerId as Jn, createTemplateVariable as Yn, exportTemplateValue as Xn, findPageSizeOption as Zn, getFieldOption as Qn, getPageSizeKey as $n, getPageSizeOption as er, inferPageFormat as tr, normalizeContractTemplateMaxPages as nr, normalizePageSizeOptions as rr, normalizeTemplateValue as ir, resolvePageSize as ar, splitPageContentByMeasurements as or, syncTemplateVariablesWithPages as sr, validateTemplateValue as cr } from "./components/pro-contract-template-designer/src/composables/use-template-designer.mjs";
68
- import { CONTRACT_TEMPLATE_DRAFT_CACHE_VERSION as lr, DEFAULT_DRAFT_CACHE_INTERVAL as ur, DEFAULT_DRAFT_CACHE_KEY as dr, DEFAULT_DRAFT_CACHE_MAX_BYTES as fr, clearTemplateDraftCache as pr, createDraftCacheStatus as mr, estimateDraftCacheBytes as hr, formatDraftCacheSavedAt as gr, getBrowserDraftCacheStorage as _r, isBlankTemplateDraftValue as vr, loadTemplateDraftCache as yr, saveTemplateDraftCache as br } from "./components/pro-contract-template-designer/src/composables/use-template-draft-cache.mjs";
69
- import { buildInitialRenderValues as xr, buildTemplateRenderHtml as Sr, buildTemplateRenderPages as Cr, isEmptyRenderValue as wr, normalizeRenderValues as Tr, resolveTemplateRenderSubmitErrors as Er, sanitizeContractRendererHtml as Dr, validateTemplateRenderStructure as Or, validateTemplateRenderValues as kr } from "./components/pro-contract-template-designer/src/utils/template-renderer.mjs";
70
- import Ar, { GdAntProContractTemplateRenderer as jr } from "./components/pro-contract-template-designer/index.mjs";
71
- import { CONTRACT_SIGNING_FLOW_ACTION_LABELS as Mr, CONTRACT_SIGNING_FLOW_IDENTITY_OPTIONS as Nr, CONTRACT_SIGNING_FLOW_SEAL_TYPES as Pr, CONTRACT_SIGNING_FLOW_SIGN_ACTIONS as Fr } from "./components/pro-contract-signing-flow/src/constants.mjs";
72
- import { buildConnectList as Ir, createDefaultSignRule as Lr, createEndNode as Rr, createId as zr, createInitialFlow as Br, createSignNode as Vr, createStartNode as Hr, normalizeContractSigningFlow as Ur, normalizeSignRule as Wr, useContractSigningFlow as Gr, validateContractSigningFlow as Kr } from "./components/pro-contract-signing-flow/src/composables/use-contract-signing-flow.mjs";
73
- import qr from "./components/pro-contract-signing-flow/index.mjs";
74
- import { useContractTemplateAgent as Jr } from "./components/pro-contract-template-agent/src/composables/use-contract-template-agent.mjs";
75
- import { adaptContractTemplateAgentSpec as Yr } from "./components/pro-contract-template-agent/src/utils/contract-template-agent-adapter.mjs";
76
- import Xr, { GdAntProContractTemplateAgentPanel as Zr, GdAntProContractTemplateAgentPreview as Qr } from "./components/pro-contract-template-agent/index.mjs";
77
- import { setupAppConfig as $r, useBasicAppConfig as ei } from "./components/hooks/use-basic-app-config.mjs";
78
- export { be as CONTRACT_SIGNING_AUTO_SCROLL_EDGE_PX, ft as CONTRACT_SIGNING_FALLBACK_PAGE_SIZE, Mr as CONTRACT_SIGNING_FLOW_ACTION_LABELS, Nr as CONTRACT_SIGNING_FLOW_IDENTITY_OPTIONS, Pr as CONTRACT_SIGNING_FLOW_SEAL_TYPES, Fr as CONTRACT_SIGNING_FLOW_SIGN_ACTIONS, xe as CONTRACT_SIGNING_MIN_PLACEMENT_SIZE, pt as CONTRACT_SIGNING_PAGE_GAP, Se as CONTRACT_SIGNING_PLACEMENT_LABELS, Ce as CONTRACT_SIGNING_PLACEMENT_MIME, we as CONTRACT_SIGNING_PREVIEW_CONCURRENCY, Te as CONTRACT_SIGNING_PX_PER_MM, Ie as CONTRACT_SIGNING_RENDER_ORIGIN_OFFSET, Ee as CONTRACT_SIGNING_SEAL_MAX_SIZE, De as CONTRACT_SIGNING_SEAL_MIN_SIZE, Q as CONTRACT_SIGNING_SEAL_TYPE_OPTIONS, Oe as CONTRACT_SIGNING_SEAL_TYPE_PRESETS, ke as CONTRACT_SIGNING_SIZE_PROFILES, Le as CONTRACT_SIGNING_SNAP_THRESHOLD_PX, mt as CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES, Ae as CONTRACT_SIGNING_VISIBLE_PAGES_DEBOUNCE_MS, lr as CONTRACT_TEMPLATE_DRAFT_CACHE_VERSION, Dn as CONTRACT_TEMPLATE_RENDERER_VERSION, On as CONTRACT_TEMPLATE_STYLE_VERSION, Rt as CONTRACT_TEXT_STYLE_PRESETS, zt as CONTRACT_TEXT_STYLE_PRESET_COMMANDS, Qe as ContractSigningLocationBuildError, on as ContractTemplateLocationRuleBuildError, l as CoverScrollbarProps, Bt as DEFAULT_CONTRACT_FONT_FAMILY, Jt as DEFAULT_CONTRACT_IMAGE_COMPRESSION, ur as DEFAULT_DRAFT_CACHE_INTERVAL, dr as DEFAULT_DRAFT_CACHE_KEY, fr as DEFAULT_DRAFT_CACHE_MAX_BYTES, kn as DEFAULT_FIELD_STYLE, An as DEFAULT_FIELD_TYPES, $ as DEFAULT_FONT_FAMILY_OPTIONS, Vt as DEFAULT_FONT_SIZE_PRESETS, jn as DEFAULT_MULTILINE_LINE_HEIGHT, Mn as DEFAULT_MULTILINE_ROWS, Nn as DEFAULT_PAGE_SIZE, Ht as DEFAULT_TEXT_ALIGN_OPTIONS, ve as DRAWER_SIZE_WIDTH, ce as FORM_RENDER_CONTEXT_KEY, le as FormItemProps, ue as FormRenderProps, q as GET_DEPT_TREE_URL, H as GTE_OPTIONS_URL, j as GTE_ORGTREE_URL, ne as GdAntCollapseTranstion, Lt as GdAntContractSigningLocation, u as GdAntCoverScrollBar, X as GdAntDeptSelector, w as GdAntIcon, k as GdAntPlusUpload, y as GdAntProArea, pe as GdAntProCell, me as GdAntProCellGroup, qr as GdAntProContractSigningFlow, Zr as GdAntProContractTemplateAgentPanel, Qr as GdAntProContractTemplateAgentPreview, Xr as GdAntProContractTemplateAgentWorkbench, Ar as GdAntProContractTemplateDesigner, jr as GdAntProContractTemplateRenderer, ye as GdAntProDrawer, _e as GdAntProDynamicTags, de as GdAntProFormRender, O as GdAntProLoading, ae as GdAntProMenuTree, i as GdAntProModal, A as GdAntProOverlay, g as GdAntProPicker, K as GdAntProRoleSelector, ge as GdAntProSelectorGroup, x as GdAntProSignature, C as GdAntProTable, p as GdAntProTag, se as GdAntProTagGroup, o as GdAntProTitle, D as GdAntProUpload, V as GdAntProUserAvatar, O as GdAntProloading, G as GdAntRoleSelector, d as GdAntScaleVirtualList, c as GdAntScrollBar, B as GdAntUserAvatar, R as GdAntUserSelector, z as GdAntUserSelectorCheckbox, Yt as MAX_CONTRACT_IMAGE_BYTES, Xt as MAX_CONTRACT_IMAGE_DIMENSION, Z as MENU_TREE_URL, Zt as MIN_CONTRACT_IMAGE_DIMENSION, Pn as PAGE_SIZE_OPTIONS, fe as PRO_CELL_GROUP_KEY, m as PickerApiEnum, _ as ProAreaProps, h as ProPickerProps, b as ProSignatureProps, oe as ProTagGroupProps, I as ProUserSelector, F as ProUserSelectorCheckbox, sn as SIGNING_PLACEMENT_DEFAULT_SIZES, cn as SIGNING_PLACEMENT_MIME, ln as SIGNING_PLACEMENT_MIN_SIZE, Q as SIGNING_PLACEMENT_SEAL_TYPE_OPTIONS, un as SIGNING_PLACEMENT_TYPE_LABELS, a as TitleProps, T as UploadContextKey, M as UserSelectorProps, Yr as adaptContractTemplateAgentSpec, dn as applySigningPlacementPatch, Ir as buildConnectList, fn as buildContractLocationRules, $e as buildContractSigningLocationOutput, et as buildContractSigningLocationRules, xr as buildInitialRenderValues, ht as buildPageLayouts, pn as buildSigningPlacementLocationRules, Fn as buildTemplateExpressionHtml, In as buildTemplateHtml, Ln as buildTemplatePreviewHtml, Rn as buildTemplatePreviewPages, Sr as buildTemplateRenderHtml, Cr as buildTemplateRenderPages, mn as canMutateSigningPlacements, Re as canResizeContractSigningPlacement, ze as clampContractSigningPlacement, Be as clampContractSigningZoom, hn as clampSigningPlacement, pr as clearTemplateDraftCache, tt as cloneContractSigningLocationValue, zn as cloneTemplateValue, e as collapseProps, Bn as collectTemplateLocationRuleExportErrors, Vn as collectTemplateValueVariableKeys, Hn as collectTemplateVariableKeys, Qt as compressContractImage, Un as constrainTemplatePageSizes, gt as contentPointToPagePoint, Wn as createBlankPage, Gn as createBlankTemplate, nt as createContractSigningLocationValue, rt as createContractSigningPlacement, Kn as createDefaultPage, Lr as createDefaultSignRule, qn as createDefaultTemplate, Jn as createDesignerId, mr as createDraftCacheStatus, Rr as createEndNode, zr as createId, Br as createInitialFlow, Vr as createSignNode, gn as createSigningPlacement, Hr as createStartNode, Yn as createTemplateVariable, J as deptSelectorEmits, Y as deptSelectorProps, Ve as displayPointToContractPoint, hr as estimateDraftCacheBytes, Xn as exportTemplateValue, it as findContractSigningPage, _t as findPageAtOffset, Zn as findPageSizeOption, St as formatContractSigningDate, gr as formatDraftCacheSavedAt, ee as generatePalette, _r as getBrowserDraftCacheStorage, vt as getContractSigningAutoScrollDelta, Ct as getContractSigningDateDataUrl, wt as getContractSigningDateSvgDataUrl, at as getContractSigningHomePage, Tt as getContractSigningPlacementDataUrl, He as getContractSigningPlacementDistances, Ue as getContractSigningPlacementSize, Et as getContractSigningPlacementVisual, We as getContractSigningRuleGeometry, Dt as getContractSigningSealDataUrl, Ot as getContractSigningSealLabel, kt as getContractSigningSealSvgDataUrl, At as getContractSigningSignatureDataUrl, jt as getContractSigningSignaturePngDataUrl, Mt as getContractSigningSignatureSvgDataUrl, Ut as getContractTextStylePreset, Qn as getFieldOption, yt as getPageLayoutScrollTop, bt as getPageLayoutsContentSize, $n as getPageSizeKey, er as getPageSizeOption, _n as getSigningPlacementDefaultSize, vn as getSigningPlacementTypeLabel, xt as getVisibleRange, tr as inferPageFormat, vr as isBlankTemplateDraftValue, ot as isContractSigningPageUsable, Nt as isContractSigningVisualDataUrl, an as isContractTemplateFieldType, wr as isEmptyRenderValue, qt as isSafeContractImageUrl, Pt as isSafeContractSigningVisualDataUrl, yr as loadTemplateDraftCache, je as millimetersToContractSigningCssPixels, Me as millimetersToContractSigningPixels, Ge as moveContractSigningPlacementByDisplayDelta, yn as moveSigningPlacementByDisplayDelta, $t as normalizeContractImageCompression, en as normalizeContractImageDimension, Ke as normalizeContractSigningCoordinateDimension, qe as normalizeContractSigningCoordinateScale, Ur as normalizeContractSigningFlow, st as normalizeContractSigningLocationValue, ct as normalizeContractSigningProviderValue, nr as normalizeContractTemplateMaxPages, Wt as normalizeFontFamilyValue, rr as normalizePageSizeOptions, Tr as normalizeRenderValues, Wr as normalizeSignRule, bn as normalizeSigningPlacements, ir as normalizeTemplateValue, xn as parseSigningPlacementDragPayload, lt as patchContractSigningPlacement, re as proMenuTreeEmits, ie as proMenuTreeProps, t as proModalEmits, f as proTagProps, tn as processContractImageFile, nn as readContractImageFileAsDataUrl, Je as resizeContractSigningSealGeometry, Sn as resizeSigningPlacement, rn as resolveContractImageResizeDimensions, ut as resolveContractSigningPreviewPageSize, Ft as resolveContractSigningSealLabel, Ne as resolveContractSigningSealSizeInCssPixels, Pe as resolveContractSigningSealSizeInPixels, Ye as resolveContractSigningSealSizeLimit, Fe as resolveContractSigningSealTypeOption, Xe as resolveContractSigningSizeProfile, Gt as resolveContractTextStylePresetCommands, Kt as resolveFontFamilyOptions, ar as resolvePageSize, Cn as resolveSigningPlacementToolItems, Er as resolveTemplateRenderSubmitErrors, U as roleSelectorEmits, W as roleSelectorProps, Dr as sanitizeContractRendererHtml, br as saveTemplateDraftCache, wn as scaleSigningPlacementToPage, s as scrollbarProps, he as selectContextKey, N as selectUserContextKey, Tn as serializeSigningPlacementDragPayload, $r as setupAppConfig, te as setupTheme, Ze as snapContractSigningPlacement, or as splitPageContentByMeasurements, sr as syncTemplateVariablesWithPages, It as toContractSigningSvgDataUrl, ei as useBasicAppConfig, Gr as useContractSigningFlow, Jr as useContractTemplateAgent, v as useProArea, n as useProModal, r as useProModalInit, S as useProTable, E as useUpload, L as useUserSelector, P as userSelectorEmits, Kr as validateContractSigningFlow, dt as validateContractSigningLocationValue, En as validateSigningPlacements, Or as validateTemplateRenderStructure, kr as validateTemplateRenderValues, cr as validateTemplateValue };
58
+ import { isContractTemplateFieldType as Qe } from "./components/pro-contract-template-designer/src/types.mjs";
59
+ import { ContractTemplateLocationRuleBuildError as $e, SIGNING_PLACEMENT_DEFAULT_SIZES as et, SIGNING_PLACEMENT_MIME as tt, SIGNING_PLACEMENT_MIN_SIZE as nt, SIGNING_PLACEMENT_TYPE_LABELS as rt, applySigningPlacementPatch as it, buildContractLocationRules as at, buildSigningPlacementLocationRules as ot, canMutateSigningPlacements as st, clampSigningPlacement as ct, createSigningPlacement as lt, getSigningPlacementDefaultSize as ut, getSigningPlacementTypeLabel as dt, moveSigningPlacementByDisplayDelta as ft, normalizeSigningPlacements as pt, parseSigningPlacementDragPayload as mt, resizeSigningPlacement as ht, resolveSigningPlacementToolItems as gt, scaleSigningPlacementToPage as _t, serializeSigningPlacementDragPayload as vt, validateSigningPlacements as yt } from "./components/pro-contract-template-designer/src/utils/signing-placement.mjs";
60
+ import { CONTRACT_TEXT_STYLE_PRESETS as bt, CONTRACT_TEXT_STYLE_PRESET_COMMANDS as xt, DEFAULT_CONTRACT_FONT_FAMILY as St, DEFAULT_FONT_FAMILY_OPTIONS as Ct, DEFAULT_FONT_SIZE_PRESETS as wt, DEFAULT_TEXT_ALIGN_OPTIONS as Tt, getContractTextStylePreset as Et, normalizeFontFamilyValue as Dt, resolveContractTextStylePresetCommands as Ot, resolveFontFamilyOptions as kt } from "./components/pro-contract-template-designer/src/constants.mjs";
61
+ import { CONTRACT_TEMPLATE_RENDERER_VERSION as At, CONTRACT_TEMPLATE_STYLE_VERSION as jt, DEFAULT_FIELD_STYLE as Mt, DEFAULT_FIELD_TYPES as Nt, DEFAULT_MULTILINE_LINE_HEIGHT as Pt, DEFAULT_MULTILINE_ROWS as Ft, DEFAULT_PAGE_SIZE as It, PAGE_SIZE_OPTIONS as Lt, buildTemplateExpressionHtml as Rt, buildTemplateHtml as zt, buildTemplatePreviewHtml as Bt, buildTemplatePreviewPages as Vt, cloneTemplateValue as Ht, collectTemplateLocationRuleExportErrors as Ut, collectTemplateValueVariableKeys as Wt, collectTemplateVariableKeys as Gt, constrainTemplatePageSizes as Kt, createBlankPage as qt, createBlankTemplate as Jt, createDefaultPage as Yt, createDefaultTemplate as Xt, createDesignerId as Zt, createTemplateVariable as Qt, exportTemplateValue as $, findPageSizeOption as $t, getFieldOption as en, getPageSizeKey as tn, getPageSizeOption as nn, inferPageFormat as rn, normalizeContractTemplateMaxPages as an, normalizePageSizeOptions as on, normalizeTemplateValue as sn, resolvePageSize as cn, splitPageContentByMeasurements as ln, syncTemplateVariablesWithPages as un, validateTemplateValue as dn } from "./components/pro-contract-template-designer/src/composables/use-template-designer.mjs";
62
+ import { isSafeContractImageUrl as fn } from "./components/pro-contract-template-designer/src/utils/image-url.mjs";
63
+ import { buildInitialRenderValues as pn, buildTemplateRenderHtml as mn, buildTemplateRenderPages as hn, isEmptyRenderValue as gn, normalizeRenderValues as _n, resolveTemplateRenderSubmitErrors as vn, sanitizeContractRendererHtml as yn, validateTemplateRenderStructure as bn, validateTemplateRenderValues as xn } from "./components/pro-contract-template-designer/src/utils/template-renderer.mjs";
64
+ import { buildContractSigningTemplateRenderPages as Sn, getContractSigningTemplateDisplayError as Cn, isContractSigningTemplateFile as wn, isContractSigningTemplateSource as Tn, validateContractSigningTemplateFile as En } from "./components/contract-signing-location/src/template-source.mjs";
65
+ import { ContractSigningLocationBuildError as Dn, buildContractSigningLocationOutput as On, buildContractSigningLocationRules as kn, cloneContractSigningLocationValue as An, createContractSigningLocationValue as jn, createContractSigningPlacement as Mn, findContractSigningPage as Nn, getContractSigningHomePage as Pn, isContractSigningPageUsable as Fn, normalizeContractSigningLocationValue as In, normalizeContractSigningProviderValue as Ln, patchContractSigningPlacement as Rn, resolveContractSigningPreviewPageSize as zn, validateContractSigningLocationValue as Bn } from "./components/contract-signing-location/src/location-rules.mjs";
66
+ import { CONTRACT_SIGNING_FALLBACK_PAGE_SIZE as Vn, CONTRACT_SIGNING_PAGE_GAP as Hn, CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES as Un, buildPageLayouts as Wn, contentPointToPagePoint as Gn, findPageAtOffset as Kn, getContractSigningAutoScrollDelta as qn, getPageLayoutScrollTop as Jn, getPageLayoutsContentSize as Yn, getVisibleRange as Xn } from "./components/contract-signing-location/src/page-layout.mjs";
67
+ import { formatContractSigningDate as Zn, getContractSigningDateDataUrl as Qn, getContractSigningDateSvgDataUrl as $n, getContractSigningPlacementDataUrl as er, getContractSigningPlacementVisual as tr, getContractSigningSealDataUrl as nr, getContractSigningSealLabel as rr, getContractSigningSealSvgDataUrl as ir, getContractSigningSignatureDataUrl as ar, getContractSigningSignaturePngDataUrl as or, getContractSigningSignatureSvgDataUrl as sr, isContractSigningVisualDataUrl as cr, isSafeContractSigningVisualDataUrl as lr, resolveContractSigningSealLabel as ur, toContractSigningSvgDataUrl as dr } from "./components/contract-signing-location/src/signing-visuals.mjs";
68
+ import fr from "./components/contract-signing-location/index.mjs";
69
+ import { DEFAULT_CONTRACT_IMAGE_COMPRESSION as pr, MAX_CONTRACT_IMAGE_BYTES as mr, MAX_CONTRACT_IMAGE_DIMENSION as hr, MIN_CONTRACT_IMAGE_DIMENSION as gr, compressContractImage as _r, normalizeContractImageCompression as vr, normalizeContractImageDimension as yr, processContractImageFile as br, readContractImageFileAsDataUrl as xr, resolveContractImageResizeDimensions as Sr } from "./components/pro-contract-template-designer/src/utils/content-image.mjs";
70
+ import { CONTRACT_TEMPLATE_DRAFT_CACHE_VERSION as Cr, CONTRACT_TEMPLATE_FILES_DRAFT_CACHE_VERSION as wr, DEFAULT_DRAFT_CACHE_INTERVAL as Tr, DEFAULT_DRAFT_CACHE_KEY as Er, DEFAULT_DRAFT_CACHE_MAX_BYTES as Dr, clearTemplateDraftCache as Or, createDraftCacheStatus as kr, estimateDraftCacheBytes as Ar, formatDraftCacheSavedAt as jr, getBrowserDraftCacheStorage as Mr, isBlankTemplateDraftValue as Nr, isBlankTemplateFilesDraftValue as Pr, loadTemplateDraftCache as Fr, loadTemplateFilesDraftCache as Ir, saveTemplateDraftCache as Lr, saveTemplateFilesDraftCache as Rr } from "./components/pro-contract-template-designer/src/composables/use-template-draft-cache.mjs";
71
+ import { cloneContractTemplateFiles as zr, createContractTemplateFile as Br, exportContractTemplateFiles as Vr, moveContractTemplateFile as Hr, normalizeContractTemplateFiles as Ur, removeContractTemplateFile as Wr, renameContractTemplateFile as Gr, replaceContractTemplateFile as Kr, resolveContractTemplateActiveFileId as qr } from "./components/pro-contract-template-designer/src/composables/use-template-files.mjs";
72
+ import Jr, { GdAntProContractTemplateRenderer as Yr } from "./components/pro-contract-template-designer/index.mjs";
73
+ import { CONTRACT_SIGNING_FLOW_ACTION_LABELS as Xr, CONTRACT_SIGNING_FLOW_IDENTITY_OPTIONS as Zr, CONTRACT_SIGNING_FLOW_MAX_ZOOM as Qr, CONTRACT_SIGNING_FLOW_MIN_ZOOM as $r, CONTRACT_SIGNING_FLOW_SEAL_TYPES as ei, CONTRACT_SIGNING_FLOW_SIGN_ACTIONS as ti, CONTRACT_SIGNING_FLOW_ZOOM_STEP as ni, isContractSigningFlowInteractiveTarget as ri, normalizeContractSigningFlowZoom as ii, resolveContractSigningFlowZoomShortcut as ai, resolveContractSigningFlowZoomShortcutForTarget as oi } from "./components/pro-contract-signing-flow/src/constants.mjs";
74
+ import { buildConnectList as si, createDefaultSignRule as ci, createEndNode as li, createId as ui, createInitialFlow as di, createSignNode as fi, createStartNode as pi, normalizeContractSigningFlow as mi, normalizeSignRule as hi, useContractSigningFlow as gi, validateContractSigningFlow as _i } from "./components/pro-contract-signing-flow/src/composables/use-contract-signing-flow.mjs";
75
+ import vi from "./components/pro-contract-signing-flow/index.mjs";
76
+ import { useContractTemplateAgent as yi } from "./components/pro-contract-template-agent/src/composables/use-contract-template-agent.mjs";
77
+ import { adaptContractTemplateAgentSpec as bi } from "./components/pro-contract-template-agent/src/utils/contract-template-agent-adapter.mjs";
78
+ import xi, { GdAntProContractTemplateAgentPanel as Si, GdAntProContractTemplateAgentPreview as Ci } from "./components/pro-contract-template-agent/index.mjs";
79
+ import { setupAppConfig as wi, useBasicAppConfig as Ti } from "./components/hooks/use-basic-app-config.mjs";
80
+ export { be as CONTRACT_SIGNING_AUTO_SCROLL_EDGE_PX, Vn as CONTRACT_SIGNING_FALLBACK_PAGE_SIZE, Xr as CONTRACT_SIGNING_FLOW_ACTION_LABELS, Zr as CONTRACT_SIGNING_FLOW_IDENTITY_OPTIONS, Qr as CONTRACT_SIGNING_FLOW_MAX_ZOOM, $r as CONTRACT_SIGNING_FLOW_MIN_ZOOM, ei as CONTRACT_SIGNING_FLOW_SEAL_TYPES, ti as CONTRACT_SIGNING_FLOW_SIGN_ACTIONS, ni as CONTRACT_SIGNING_FLOW_ZOOM_STEP, xe as CONTRACT_SIGNING_MIN_PLACEMENT_SIZE, Hn as CONTRACT_SIGNING_PAGE_GAP, Se as CONTRACT_SIGNING_PLACEMENT_LABELS, Ce as CONTRACT_SIGNING_PLACEMENT_MIME, we as CONTRACT_SIGNING_PREVIEW_CONCURRENCY, Te as CONTRACT_SIGNING_PX_PER_MM, Ie as CONTRACT_SIGNING_RENDER_ORIGIN_OFFSET, Ee as CONTRACT_SIGNING_SEAL_MAX_SIZE, De as CONTRACT_SIGNING_SEAL_MIN_SIZE, Q as CONTRACT_SIGNING_SEAL_TYPE_OPTIONS, Oe as CONTRACT_SIGNING_SEAL_TYPE_PRESETS, ke as CONTRACT_SIGNING_SIZE_PROFILES, Le as CONTRACT_SIGNING_SNAP_THRESHOLD_PX, Un as CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES, Ae as CONTRACT_SIGNING_VISIBLE_PAGES_DEBOUNCE_MS, Cr as CONTRACT_TEMPLATE_DRAFT_CACHE_VERSION, wr as CONTRACT_TEMPLATE_FILES_DRAFT_CACHE_VERSION, At as CONTRACT_TEMPLATE_RENDERER_VERSION, jt as CONTRACT_TEMPLATE_STYLE_VERSION, bt as CONTRACT_TEXT_STYLE_PRESETS, xt as CONTRACT_TEXT_STYLE_PRESET_COMMANDS, Dn as ContractSigningLocationBuildError, $e as ContractTemplateLocationRuleBuildError, l as CoverScrollbarProps, St as DEFAULT_CONTRACT_FONT_FAMILY, pr as DEFAULT_CONTRACT_IMAGE_COMPRESSION, Tr as DEFAULT_DRAFT_CACHE_INTERVAL, Er as DEFAULT_DRAFT_CACHE_KEY, Dr as DEFAULT_DRAFT_CACHE_MAX_BYTES, Mt as DEFAULT_FIELD_STYLE, Nt as DEFAULT_FIELD_TYPES, Ct as DEFAULT_FONT_FAMILY_OPTIONS, wt as DEFAULT_FONT_SIZE_PRESETS, Pt as DEFAULT_MULTILINE_LINE_HEIGHT, Ft as DEFAULT_MULTILINE_ROWS, It as DEFAULT_PAGE_SIZE, Tt as DEFAULT_TEXT_ALIGN_OPTIONS, ve as DRAWER_SIZE_WIDTH, ce as FORM_RENDER_CONTEXT_KEY, le as FormItemProps, ue as FormRenderProps, q as GET_DEPT_TREE_URL, H as GTE_OPTIONS_URL, j as GTE_ORGTREE_URL, ne as GdAntCollapseTranstion, fr as GdAntContractSigningLocation, u as GdAntCoverScrollBar, X as GdAntDeptSelector, w as GdAntIcon, k as GdAntPlusUpload, y as GdAntProArea, pe as GdAntProCell, me as GdAntProCellGroup, vi as GdAntProContractSigningFlow, Si as GdAntProContractTemplateAgentPanel, Ci as GdAntProContractTemplateAgentPreview, xi as GdAntProContractTemplateAgentWorkbench, Jr as GdAntProContractTemplateDesigner, Yr as GdAntProContractTemplateRenderer, ye as GdAntProDrawer, _e as GdAntProDynamicTags, de as GdAntProFormRender, O as GdAntProLoading, ae as GdAntProMenuTree, i as GdAntProModal, A as GdAntProOverlay, g as GdAntProPicker, K as GdAntProRoleSelector, ge as GdAntProSelectorGroup, x as GdAntProSignature, C as GdAntProTable, p as GdAntProTag, se as GdAntProTagGroup, o as GdAntProTitle, D as GdAntProUpload, V as GdAntProUserAvatar, O as GdAntProloading, G as GdAntRoleSelector, d as GdAntScaleVirtualList, c as GdAntScrollBar, B as GdAntUserAvatar, R as GdAntUserSelector, z as GdAntUserSelectorCheckbox, mr as MAX_CONTRACT_IMAGE_BYTES, hr as MAX_CONTRACT_IMAGE_DIMENSION, Z as MENU_TREE_URL, gr as MIN_CONTRACT_IMAGE_DIMENSION, Lt as PAGE_SIZE_OPTIONS, fe as PRO_CELL_GROUP_KEY, m as PickerApiEnum, _ as ProAreaProps, h as ProPickerProps, b as ProSignatureProps, oe as ProTagGroupProps, I as ProUserSelector, F as ProUserSelectorCheckbox, et as SIGNING_PLACEMENT_DEFAULT_SIZES, tt as SIGNING_PLACEMENT_MIME, nt as SIGNING_PLACEMENT_MIN_SIZE, Q as SIGNING_PLACEMENT_SEAL_TYPE_OPTIONS, rt as SIGNING_PLACEMENT_TYPE_LABELS, a as TitleProps, T as UploadContextKey, M as UserSelectorProps, bi as adaptContractTemplateAgentSpec, it as applySigningPlacementPatch, si as buildConnectList, at as buildContractLocationRules, On as buildContractSigningLocationOutput, kn as buildContractSigningLocationRules, Sn as buildContractSigningTemplateRenderPages, pn as buildInitialRenderValues, Wn as buildPageLayouts, ot as buildSigningPlacementLocationRules, Rt as buildTemplateExpressionHtml, zt as buildTemplateHtml, Bt as buildTemplatePreviewHtml, Vt as buildTemplatePreviewPages, mn as buildTemplateRenderHtml, hn as buildTemplateRenderPages, st as canMutateSigningPlacements, Re as canResizeContractSigningPlacement, ze as clampContractSigningPlacement, Be as clampContractSigningZoom, ct as clampSigningPlacement, Or as clearTemplateDraftCache, An as cloneContractSigningLocationValue, zr as cloneContractTemplateFiles, Ht as cloneTemplateValue, e as collapseProps, Ut as collectTemplateLocationRuleExportErrors, Wt as collectTemplateValueVariableKeys, Gt as collectTemplateVariableKeys, _r as compressContractImage, Kt as constrainTemplatePageSizes, Gn as contentPointToPagePoint, qt as createBlankPage, Jt as createBlankTemplate, jn as createContractSigningLocationValue, Mn as createContractSigningPlacement, Br as createContractTemplateFile, Yt as createDefaultPage, ci as createDefaultSignRule, Xt as createDefaultTemplate, Zt as createDesignerId, kr as createDraftCacheStatus, li as createEndNode, ui as createId, di as createInitialFlow, fi as createSignNode, lt as createSigningPlacement, pi as createStartNode, Qt as createTemplateVariable, J as deptSelectorEmits, Y as deptSelectorProps, Ve as displayPointToContractPoint, Ar as estimateDraftCacheBytes, Vr as exportContractTemplateFiles, $ as exportTemplateValue, Nn as findContractSigningPage, Kn as findPageAtOffset, $t as findPageSizeOption, Zn as formatContractSigningDate, jr as formatDraftCacheSavedAt, ee as generatePalette, Mr as getBrowserDraftCacheStorage, qn as getContractSigningAutoScrollDelta, Qn as getContractSigningDateDataUrl, $n as getContractSigningDateSvgDataUrl, Pn as getContractSigningHomePage, er as getContractSigningPlacementDataUrl, He as getContractSigningPlacementDistances, Ue as getContractSigningPlacementSize, tr as getContractSigningPlacementVisual, We as getContractSigningRuleGeometry, nr as getContractSigningSealDataUrl, rr as getContractSigningSealLabel, ir as getContractSigningSealSvgDataUrl, ar as getContractSigningSignatureDataUrl, or as getContractSigningSignaturePngDataUrl, sr as getContractSigningSignatureSvgDataUrl, Cn as getContractSigningTemplateDisplayError, Et as getContractTextStylePreset, en as getFieldOption, Jn as getPageLayoutScrollTop, Yn as getPageLayoutsContentSize, tn as getPageSizeKey, nn as getPageSizeOption, ut as getSigningPlacementDefaultSize, dt as getSigningPlacementTypeLabel, Xn as getVisibleRange, rn as inferPageFormat, Nr as isBlankTemplateDraftValue, Pr as isBlankTemplateFilesDraftValue, ri as isContractSigningFlowInteractiveTarget, Fn as isContractSigningPageUsable, wn as isContractSigningTemplateFile, Tn as isContractSigningTemplateSource, cr as isContractSigningVisualDataUrl, Qe as isContractTemplateFieldType, gn as isEmptyRenderValue, fn as isSafeContractImageUrl, lr as isSafeContractSigningVisualDataUrl, Fr as loadTemplateDraftCache, Ir as loadTemplateFilesDraftCache, je as millimetersToContractSigningCssPixels, Me as millimetersToContractSigningPixels, Ge as moveContractSigningPlacementByDisplayDelta, Hr as moveContractTemplateFile, ft as moveSigningPlacementByDisplayDelta, vr as normalizeContractImageCompression, yr as normalizeContractImageDimension, Ke as normalizeContractSigningCoordinateDimension, qe as normalizeContractSigningCoordinateScale, mi as normalizeContractSigningFlow, ii as normalizeContractSigningFlowZoom, In as normalizeContractSigningLocationValue, Ln as normalizeContractSigningProviderValue, Ur as normalizeContractTemplateFiles, an as normalizeContractTemplateMaxPages, Dt as normalizeFontFamilyValue, on as normalizePageSizeOptions, _n as normalizeRenderValues, hi as normalizeSignRule, pt as normalizeSigningPlacements, sn as normalizeTemplateValue, mt as parseSigningPlacementDragPayload, Rn as patchContractSigningPlacement, re as proMenuTreeEmits, ie as proMenuTreeProps, t as proModalEmits, f as proTagProps, br as processContractImageFile, xr as readContractImageFileAsDataUrl, Wr as removeContractTemplateFile, Gr as renameContractTemplateFile, Kr as replaceContractTemplateFile, Je as resizeContractSigningSealGeometry, ht as resizeSigningPlacement, Sr as resolveContractImageResizeDimensions, ai as resolveContractSigningFlowZoomShortcut, oi as resolveContractSigningFlowZoomShortcutForTarget, zn as resolveContractSigningPreviewPageSize, ur as resolveContractSigningSealLabel, Ne as resolveContractSigningSealSizeInCssPixels, Pe as resolveContractSigningSealSizeInPixels, Ye as resolveContractSigningSealSizeLimit, Fe as resolveContractSigningSealTypeOption, Xe as resolveContractSigningSizeProfile, qr as resolveContractTemplateActiveFileId, Ot as resolveContractTextStylePresetCommands, kt as resolveFontFamilyOptions, cn as resolvePageSize, gt as resolveSigningPlacementToolItems, vn as resolveTemplateRenderSubmitErrors, U as roleSelectorEmits, W as roleSelectorProps, yn as sanitizeContractRendererHtml, Lr as saveTemplateDraftCache, Rr as saveTemplateFilesDraftCache, _t as scaleSigningPlacementToPage, s as scrollbarProps, he as selectContextKey, N as selectUserContextKey, vt as serializeSigningPlacementDragPayload, wi as setupAppConfig, te as setupTheme, Ze as snapContractSigningPlacement, ln as splitPageContentByMeasurements, un as syncTemplateVariablesWithPages, dr as toContractSigningSvgDataUrl, Ti as useBasicAppConfig, gi as useContractSigningFlow, yi as useContractTemplateAgent, v as useProArea, n as useProModal, r as useProModalInit, S as useProTable, E as useUpload, L as useUserSelector, P as userSelectorEmits, _i as validateContractSigningFlow, Bn as validateContractSigningLocationValue, En as validateContractSigningTemplateFile, yt as validateSigningPlacements, bn as validateTemplateRenderStructure, xn as validateTemplateRenderValues, dn as validateTemplateValue };
@@ -1 +1 @@
1
- const e=require(`../utils/install.cjs`);require(`./src/constants.cjs`),require(`./src/coordinates.cjs`),require(`./src/location-rules.cjs`),require(`./src/page-layout.cjs`),require(`./src/signing-visuals.cjs`);const t=require(`./src/ContractSigningLocation.cjs`);require(`./style/index.cjs`);var n=e.withInstall(t.default);exports.default=n;
1
+ const e=require(`../utils/install.cjs`);require(`./src/constants.cjs`),require(`./src/coordinates.cjs`),require(`./src/template-source.cjs`),require(`./src/location-rules.cjs`),require(`./src/page-layout.cjs`),require(`./src/signing-visuals.cjs`);const t=require(`./src/ContractSigningLocation.cjs`);require(`./style/index.cjs`);var n=e.withInstall(t.default);exports.default=n;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./constants.cjs`),t=require(`./coordinates.cjs`),n=require(`./location-rules.cjs`),r=require(`./ContractSigningLocationCanvas.cjs`),i=require(`./ContractSigningLocationInspector.cjs`),a=require(`./ContractSigningLocationNavigator.cjs`),o=require(`./preview-requests.cjs`);let s=require(`vue`),c=require(`ant-design-vue`),l=require(`@ant-design/icons-vue`);var u={class:`gd-ant-contract-signing-location__header`},ee={class:`gd-ant-contract-signing-location__header-actions`},te={class:`gd-ant-contract-signing-location__placement-count`},ne={key:0,class:`gd-ant-contract-signing-location__error`,role:`alert`},re=[`aria-label`,`aria-expanded`],ie={class:`gd-ant-contract-signing-location__panel-stack`},ae=[`aria-label`,`aria-expanded`],oe={class:`gd-ant-contract-signing-location__panel-stack`},se=(0,s.defineComponent)({name:`ContractSigningLocation`,__name:`ContractSigningLocation`,props:{modelValue:{default:void 0},contractId:{default:``},dataProvider:{default:void 0},sealTypeOptions:{default:()=>e.CONTRACT_SIGNING_SEAL_TYPE_OPTIONS.map(e=>({...e}))},sizeProfile:{default:`default`},autoLoad:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},minZoom:{default:.5},maxZoom:{default:1.5},zoom:{default:1},resizable:{type:Boolean,default:!1},sealMinSize:{default:8},sealMaxSize:{default:640},height:{default:void 0},showSubmitButton:{type:Boolean,default:!0}},emits:[`update:modelValue`,`update:zoom`,`change`,`ready`,`file-change`,`page-change`,`submit`,`error`],setup(e,{expose:se,emit:ce}){let d=e,f=ce,p=(0,s.computed)(()=>t.resolveContractSigningSealSizeLimit(d.sealMinSize,d.sealMaxSize)),m=n.normalizeContractSigningLocationValue(d.modelValue??n.createContractSigningLocationValue(d.contractId),{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions}),h=(0,s.ref)(m),g=(0,s.shallowRef)(n.cloneContractSigningLocationValue(m)),_=(0,s.shallowRef)(m.files[0]?.fileId??``),v=(0,s.shallowRef)(m.files[0]?.pages[0]?.pageIndex??0),y=(0,s.shallowRef)(``),b=(0,s.shallowRef)(!1),x=(0,s.shallowRef)(``),S=(0,s.ref)([]),C=(0,s.ref)({}),w=(0,s.shallowRef)(z(d.zoom)),T=(0,s.ref)(null),E=(0,s.ref)(!1),D=(0,s.ref)(!1),O=0,k=!1,A,j=[],M=0,N=new o.ContractSigningPreviewRequests,P=(0,s.computed)(()=>d.readonly||d.disabled),F=(0,s.computed)(()=>h.value.files.length<=1),le=(0,s.computed)(()=>Ie(d.height)),I=(0,s.computed)(()=>h.value.files.find(e=>e.fileId===_.value)??h.value.files[0]),L=(0,s.computed)(()=>I.value?.pages.find(e=>e.pageIndex===v.value)??I.value?.pages[0]),ue=(0,s.computed)(()=>{let e=I.value;return e?h.value.placements.filter(t=>t.fileId===e.fileId):[]}),R=(0,s.computed)(()=>h.value.placements.find(e=>e.id===y.value)),de=(0,s.computed)(()=>{let e=R.value;return e?n.findContractSigningPage(h.value,e.fileId,e.pageIndex)??L.value:L.value}),fe=(0,s.computed)(()=>S.value.filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),pe=(0,s.computed)(()=>Object.keys(C.value).filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),me=(0,s.computed)(()=>S.value.filter(e=>e.endsWith(`:preview`)).map(e=>e.slice(0,-8))),he=(0,s.computed)(()=>{let e={};return Object.entries(C.value).forEach(([t,n])=>{t.endsWith(`:preview`)&&(e[t.slice(0,-8)]=n)}),e});(0,s.watch)(()=>d.modelValue,e=>{if(!e)return;let t=n.normalizeContractSigningLocationValue(e,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions});$(t)!==$(h.value)&&(Z(),h.value=t,g.value=n.cloneContractSigningLocationValue(t),K(),(0,s.nextTick)(()=>T.value?.scrollToPage(v.value)))},{deep:!0}),(0,s.watch)(p,()=>{$(n.normalizeContractSigningLocationValue(h.value,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions}))!==$(h.value)&&B(h.value)}),(0,s.watch)(()=>d.zoom,e=>{w.value=z(e)}),(0,s.watch)(()=>[d.contractId,d.dataProvider,d.autoLoad],([e,t,n],r)=>{!n||!t||!e||(!r||e!==r[0]||t!==r[1])&&V()},{immediate:!0}),(0,s.onBeforeUnmount)(()=>{k=!0,O+=1,X(),Z()});function z(e){let n=Math.min(d.minZoom,d.maxZoom),r=Math.max(d.minZoom,d.maxZoom);return t.clampContractSigningZoom(e,n,r)}function ge(e){let t=z(e);w.value=t,f(`update:zoom`,t)}function _e(){return T.value?.fitWidth()??w.value}function B(e,t={}){h.value=n.normalizeContractSigningLocationValue(e,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions}),t.clearError!==!1&&(x.value=``),K();let r=n.cloneContractSigningLocationValue(h.value);return f(`update:modelValue`,r),f(`change`,r),r}async function V(){let e=String(d.contractId||h.value.contractId||``).trim();if(!d.dataProvider)return q({code:`CONTRACT_PROVIDER_MISSING`,message:`未配置合同数据提供器,请由宿主传入文件数据`}),!1;if(!e)return q({code:`CONTRACT_ID_MISSING`,message:`缺少用于加载合同的 PaaS contractId`}),!1;let r=++O;Z(),b.value=!0,x.value=``;try{let i=await d.dataProvider.loadContract({contractId:e});if(k||r!==O)return!1;let a=n.normalizeContractSigningProviderValue(i,t.normalizeContractSigningCoordinateScale(d.dataProvider.coordinateScale)),o=n.normalizeContractSigningLocationValue({...a,contractId:e,placements:a.placements.length?a.placements:h.value.contractId===e?h.value.placements:[]},{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions});h.value=o,g.value=n.cloneContractSigningLocationValue(o),y.value=``,K();let c=n.cloneContractSigningLocationValue(o);return f(`update:modelValue`,c),f(`change`,c),f(`ready`,c),ve(),(0,s.nextTick)(()=>T.value?.scrollToPage(v.value)),c}catch(e){return k||r!==O||q(J(e,`CONTRACT_LOAD_FAILED`,`合同加载失败,请检查授权后重试`)),!1}finally{!k&&r===O&&(b.value=!1)}}async function ve(){d.dataProvider?.loadPagePreview&&await Promise.allSettled(h.value.files.map(e=>{let t=n.getContractSigningHomePage(e.pages);return t&&!t.thumbnailUrl?H(e.fileId,t.pageIndex,!0):Promise.resolve()}))}async function H(e,r,i){let a=d.dataProvider?.loadPagePreview,o=n.findContractSigningPage(h.value,e,r),s=Y(e,r,i);if(!a||!o||S.value.includes(s))return;Me(s),S.value=[...S.value,s];let c=N.start(s);try{let o=await a({contractId:h.value.contractId||d.contractId,fileId:e,pageIndex:r,thumbnail:i,signal:c.signal});if(k||!N.isCurrent(s,c)||!n.findContractSigningPage(h.value,e,r))return;let l=n.findContractSigningPage(h.value,e,r),u=n.resolveContractSigningPreviewPageSize(l,o,t.normalizeContractSigningCoordinateScale(d.dataProvider?.coordinateScale),i),ee=h.value.files.map(t=>t.fileId===e?{...t,pages:t.pages.map(e=>e.pageIndex===r?{...e,...u||{},...i?{thumbnailUrl:o.url}:{previewUrl:o.url}}:e)}:t);B({...h.value,files:ee},{clearError:!1})}catch(t){if(!N.isCurrent(s,c)||Ne(t))return;let n=J(t,`CONTRACT_PREVIEW_FAILED`,`合同页面预览加载失败,可切换页面或重试`,{fileId:e,pageIndex:r});f(`error`,n),C.value={...C.value,[s]:n.message}}finally{N.finish(s,c)&&(S.value=S.value.filter(e=>e!==s))}}function U(e){if(e===_.value)return;let t=_.value;X(),t&&(Z(e=>e.startsWith(`${t}:`)&&e.endsWith(`:preview`)),j=j.filter(t=>t.fileId===e)),_.value=e;let r=h.value.files.find(t=>t.fileId===e);v.value=n.getContractSigningHomePage(r?.pages)?.pageIndex??0,y.value=``,f(`file-change`,e),f(`page-change`,e,v.value),(0,s.nextTick)(()=>T.value?.scrollToPage(v.value))}function ye(e){v.value=e}function be(e){v.value!==e&&(v.value=e),f(`page-change`,_.value,e)}function xe(e){X();let t=_.value;A=setTimeout(()=>{A=void 0,_.value===t&&Se(t,e)},150)}function Se(e,t){let n=h.value.files.find(t=>t.fileId===e);!n||e!==_.value||(t.forEach(e=>{let t=n.pages.find(t=>t.pageIndex===e);!t||t.previewUrl||S.value.includes(Y(n.fileId,e,!1))||j.some(t=>t.fileId===n.fileId&&t.pageIndex===e)||j.push({fileId:n.fileId,pageIndex:e})}),Ce())}async function Ce(){let e=_.value;for(j=j.filter(t=>t.fileId===e);M<3&&j.length;){let t=j.shift();if(!t||t.fileId!==e)continue;let r=n.findContractSigningPage(h.value,t.fileId,t.pageIndex);!r||r.previewUrl||S.value.includes(Y(t.fileId,t.pageIndex,!1))||(M+=1,H(t.fileId,t.pageIndex,!1).finally(()=>{M=Math.max(0,M-1),Ce()}))}}function we(e){let t=h.value.placements.find(t=>t.id===e);t&&(t.fileId!==_.value&&U(t.fileId),y.value=e,(0,s.nextTick)(()=>T.value?.scrollToPlacement(e)))}function W(e,t={}){if(P.value)return;let r=t.fileId??I.value?.fileId,i=t.pageIndex??L.value?.pageIndex;if(!r||i===void 0)return;let a=n.findContractSigningPage(h.value,r,i);if(!a||!n.isContractSigningPageUsable(a)){q({code:`CONTRACT_PAGE_SIZE_INVALID`,message:`当前页面缺少有效的原始宽高,暂时不能添加签署位置`,fileId:r,pageIndex:i});return}let o=d.sealTypeOptions.find(e=>String(e.value).trim())?.value;if(e===`seal`&&!o){q({code:`CONTRACT_SEAL_TYPES_MISSING`,message:`当前未配置可用的印章类型,暂时不能添加印章位置`,fileId:r,pageIndex:i});return}let s=n.createContractSigningPlacement(e,r,a,{signLeft:t.signLeft,signTop:t.signTop,sizeProfile:d.sizeProfile,sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions,...e===`seal`?{sealType:[String(o)]}:{}});return B({...h.value,placements:[...h.value.placements,s]}),_.value=r,v.value=i,y.value=s.id,Q(s)}function Te(e,t){P.value||B({...h.value,placements:h.value.placements.map(r=>{if(r.id!==e)return r;let i=t.pageIndex===void 0?r.pageIndex:t.pageIndex,a=n.findContractSigningPage(h.value,r.fileId,i);return n.patchContractSigningPlacement(r,t,a,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions})})})}function Ee(){let e=R.value;if(!e||P.value)return;let r=n.findContractSigningPage(h.value,e.fileId,e.pageIndex);if(!r)return;let i=t.clampContractSigningPlacement({...Q(e),id:Fe(),signLeft:e.signLeft+16,signTop:e.signTop+16},r,{sealSizeLimit:p.value});B({...h.value,placements:[...h.value.placements,i]}),y.value=i.id}function G(e){P.value||(B({...h.value,placements:h.value.placements.filter(t=>t.id!==e)}),y.value===e&&(y.value=``))}function De(){return n.validateContractSigningLocationValue(h.value,{allowedSealTypes:d.sealTypeOptions.map(e=>e.value)})}function Oe(){return n.cloneContractSigningLocationValue(h.value)}function ke(){return n.buildContractSigningLocationOutput(Oe(),{allowedSealTypes:d.sealTypeOptions.map(e=>e.value)})}function Ae(){try{let e=ke();return x.value=``,f(`submit`,e),e}catch(e){return q(e instanceof n.ContractSigningLocationBuildError?{...e.errors[0],cause:e}:J(e,`CONTRACT_SIGNING_LOCATION_INVALID`,`指定签署位置数据不完整`)),!1}}function je(){let e=B(n.cloneContractSigningLocationValue(g.value));return y.value=``,K(!0),(0,s.nextTick)(()=>T.value?.scrollToPage(v.value)),e}function K(e=!1){let t=(e?void 0:h.value.files.find(e=>e.fileId===_.value))??h.value.files[0];_.value=t?.fileId??``,v.value=((e?void 0:t?.pages.find(e=>e.pageIndex===v.value))??t?.pages[0])?.pageIndex??0,h.value.placements.some(e=>e.id===y.value)||(y.value=``)}function q(e){x.value=e.message,f(`error`,e)}function J(e,t,n,r={}){let i=typeof e==`object`&&e&&`status`in e?Number(e.status):void 0;return{code:t,message:i===401||i===403?`授权已失效,请重新获取签署凭证`:e instanceof Error&&e.message?e.message:n,...r,cause:e}}function Y(e,t,n){return`${e}:${t}:${n?`thumbnail`:`preview`}`}function Me(e){if(!(e in C.value))return;let t={...C.value};delete t[e],C.value=t}function X(){A&&=(clearTimeout(A),void 0)}function Z(e){let t=e??(()=>!0),n=new Set(N.abort(t));n.size&&(S.value=S.value.filter(e=>!n.has(e))),e||(j=[])}function Ne(e){return!!(e&&typeof e==`object`&&`cancelled`in e&&e.cancelled)||e instanceof DOMException&&e.name===`AbortError`}function Pe(e){let t=I.value;t&&H(t.fileId,e,!1)}function Q(e){return{...e,sealType:e.sealType?[...e.sealType]:void 0}}function $(e){return JSON.stringify(e)}function Fe(){return typeof crypto<`u`&&`randomUUID`in crypto?`contract-signing-placement-${crypto.randomUUID()}`:`contract-signing-placement-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Ie(e){if(typeof e==`number`&&Number.isFinite(e)&&e>0)return{"--gd-ant-contract-signing-location-height":`${e}px`};if(typeof e==`string`&&e.trim())return{"--gd-ant-contract-signing-location-height":e.trim()}}return se({load:V,validate:De,getValue:Oe,getOutput:ke,submit:Ae,reset:je,addPlacement:W,removePlacement:G,fitWidth:_e}),(t,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`section`,{class:(0,s.normalizeClass)([`gd-ant-contract-signing-location`,{"is-readonly":e.readonly,"is-disabled":e.disabled}]),style:(0,s.normalizeStyle)(le.value)},[(0,s.createElementVNode)(`header`,u,[n[9]||=(0,s.createElementVNode)(`div`,{class:`gd-ant-contract-signing-location__title`},[(0,s.createElementVNode)(`span`,{class:`gd-ant-contract-signing-location__title-bar`,"aria-hidden":`true`}),(0,s.createElementVNode)(`div`,null,[(0,s.createElementVNode)(`strong`,null,`指定合同签署位置`)])],-1),(0,s.createElementVNode)(`div`,ee,[(0,s.createElementVNode)(`span`,te,(0,s.toDisplayString)(h.value.placements.length)+` 个位置`,1),e.dataProvider?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.Button),{key:0,loading:b.value,onClick:V},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(l.ReloadOutlined),{"aria-hidden":`true`}),n[6]||=(0,s.createTextVNode)(` 重新加载 `,-1)]),_:1},8,[`loading`])):(0,s.createCommentVNode)(``,!0),(0,s.createVNode)((0,s.unref)(c.Button),{disabled:P.value,onClick:je},{default:(0,s.withCtx)(()=>[...n[7]||=[(0,s.createTextVNode)(`重置`,-1)]]),_:1},8,[`disabled`]),e.showSubmitButton?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.Button),{key:1,type:`primary`,loading:b.value,disabled:e.disabled,onClick:Ae},{default:(0,s.withCtx)(()=>[...n[8]||=[(0,s.createTextVNode)(`确认并生成规则`,-1)]]),_:1},8,[`loading`,`disabled`])):(0,s.createCommentVNode)(``,!0)])]),x.value?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,ne,[(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(x.value),1),e.dataProvider&&e.contractId?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.Button),{key:0,type:`link`,size:`small`,onClick:V},{default:(0,s.withCtx)(()=>[...n[10]||=[(0,s.createTextVNode)(`重试`,-1)]]),_:1})):(0,s.createCommentVNode)(``,!0)])):(0,s.createCommentVNode)(``,!0),(0,s.createElementVNode)(`div`,{class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__body`,{"is-single-file":F.value}])},[F.value?(0,s.createCommentVNode)(``,!0):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__navigator-wrap`,{"is-collapsed":D.value}])},[(0,s.createVNode)((0,s.unref)(c.Tooltip),{title:D.value?`展开页面栏`:`收起页面栏`},{default:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":D.value?`展开页面栏`:`收起页面栏`,"aria-expanded":!D.value,onClick:n[0]||=e=>D.value=!D.value},[D.value?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(l.RightOutlined),{key:0,"aria-hidden":`true`})):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(l.LeftOutlined),{key:1,"aria-hidden":`true`}))],8,re)]),_:1},8,[`title`]),(0,s.createElementVNode)(`div`,ie,[(0,s.createVNode)(a.default,{files:h.value.files,"active-file-id":_.value,"loading-preview-keys":fe.value,"error-preview-keys":pe.value,onSelect:U},null,8,[`files`,`active-file-id`,`loading-preview-keys`,`error-preview-keys`])])],2)),(0,s.createVNode)(r.default,{ref_key:`canvasRef`,ref:T,file:I.value,pages:I.value?.pages??[],placements:ue.value,"selected-placement-id":y.value,readonly:P.value,resizable:e.resizable,"seal-size-limit":p.value,"seal-type-options":e.sealTypeOptions,zoom:w.value,"preview-loading-keys":me.value,"preview-error-map":he.value,"active-page-index":v.value,"min-zoom":e.minZoom,"max-zoom":e.maxZoom,onSelect:n[1]||=e=>y.value=e,onRetry:Pe,onAdd:n[2]||=(e,t,n,r)=>W(e,{signLeft:t,signTop:n,pageIndex:r}),onUpdate:n[3]||=e=>Te(e.id,e),onRemove:G,onVisiblePages:xe,onViewPage:ye,onPageChange:be,onZoomChange:ge},null,8,[`file`,`pages`,`placements`,`selected-placement-id`,`readonly`,`resizable`,`seal-size-limit`,`seal-type-options`,`zoom`,`preview-loading-keys`,`preview-error-map`,`active-page-index`,`min-zoom`,`max-zoom`]),(0,s.createElementVNode)(`div`,{class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__inspector-wrap`,{"is-collapsed":E.value}])},[(0,s.createVNode)((0,s.unref)(c.Tooltip),{title:E.value?`展开属性栏`:`收起属性栏`},{default:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":E.value?`展开属性栏`:`收起属性栏`,"aria-expanded":!E.value,onClick:n[4]||=e=>E.value=!E.value},[E.value?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(l.LeftOutlined),{key:0,"aria-hidden":`true`})):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(l.RightOutlined),{key:1,"aria-hidden":`true`}))],8,ae)]),_:1},8,[`title`]),(0,s.createElementVNode)(`div`,oe,[(0,s.createVNode)(i.default,{placement:R.value,page:de.value,pages:I.value?.pages??[],placements:ue.value,readonly:P.value,resizable:e.resizable,"seal-size-limit":p.value,"seal-type-options":e.sealTypeOptions,"size-profile":e.sizeProfile,onAdd:W,onUpdate:n[5]||=e=>R.value&&Te(R.value.id,e),onDuplicate:Ee,onRemove:G,onLocate:we},null,8,[`placement`,`page`,`pages`,`placements`,`readonly`,`resizable`,`seal-size-limit`,`seal-type-options`,`size-profile`])])],2)],2)],6))}});exports.default=se;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./constants.cjs`),t=require(`./coordinates.cjs`),n=require(`./template-source.cjs`),r=require(`./location-rules.cjs`),i=require(`./ContractSigningLocationCanvas.cjs`),a=require(`./ContractSigningLocationInspector.cjs`),o=require(`./ContractSigningLocationNavigator.cjs`),s=require(`./preview-requests.cjs`);let c=require(`vue`),l=require(`ant-design-vue`),u=require(`@ant-design/icons-vue`);var ee={class:`gd-ant-contract-signing-location__header`},te={class:`gd-ant-contract-signing-location__title`},ne={class:`gd-ant-contract-signing-location__header-actions`},re={class:`gd-ant-contract-signing-location__placement-count`},ie={key:0,class:`gd-ant-contract-signing-location__error`,role:`alert`},ae=[`aria-label`,`aria-expanded`],oe={class:`gd-ant-contract-signing-location__panel-stack`},se=[`aria-label`,`aria-expanded`],ce={class:`gd-ant-contract-signing-location__panel-stack`},d=(0,c.defineComponent)({name:`ContractSigningLocation`,__name:`ContractSigningLocation`,props:{modelValue:{default:void 0},mode:{default:`placement`},contractId:{default:``},dataProvider:{default:void 0},sealTypeOptions:{default:()=>e.CONTRACT_SIGNING_SEAL_TYPE_OPTIONS.map(e=>({...e}))},sizeProfile:{default:`default`},autoLoad:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},minZoom:{default:.5},maxZoom:{default:1.5},zoom:{default:1},resizable:{type:Boolean,default:!1},sealMinSize:{default:8},sealMaxSize:{default:640},height:{default:void 0},showSubmitButton:{type:Boolean,default:!0},showInspector:{type:Boolean,default:void 0}},emits:[`update:modelValue`,`update:zoom`,`change`,`ready`,`file-change`,`page-change`,`submit`,`error`],setup(e,{expose:d,emit:le}){let f=e,p=le,m=(0,c.computed)(()=>t.resolveContractSigningSealSizeLimit(f.sealMinSize,f.sealMaxSize)),h=r.normalizeContractSigningLocationValue(f.modelValue??r.createContractSigningLocationValue(f.contractId),{sealSizeLimit:m.value,sealTypeOptions:f.sealTypeOptions}),g=(0,c.ref)(h),_=(0,c.shallowRef)(r.cloneContractSigningLocationValue(h)),v=(0,c.shallowRef)(h.files[0]?.fileId??``),y=(0,c.shallowRef)(h.files[0]?.pages[0]?.pageIndex??0),b=(0,c.shallowRef)(``),x=(0,c.shallowRef)(!1),S=(0,c.shallowRef)(``),C=(0,c.ref)([]),w=(0,c.ref)({}),T=(0,c.shallowRef)(B(f.zoom)),E=(0,c.ref)(null),D=(0,c.ref)(!1),O=(0,c.ref)(!1),k=0,A=!1,j,M=[],N=0,P=new s.ContractSigningPreviewRequests,F=(0,c.computed)(()=>f.mode===`preview`),I=(0,c.computed)(()=>F.value||f.readonly||f.disabled),ue=(0,c.computed)(()=>f.showInspector??!F.value),de=(0,c.computed)(()=>!F.value&&f.showSubmitButton),fe=(0,c.computed)(()=>g.value.files.length<=1),pe=(0,c.computed)(()=>Ve(f.height)),L=(0,c.computed)(()=>g.value.files.find(e=>e.fileId===v.value)??g.value.files[0]),R=(0,c.computed)(()=>L.value?.pages.find(e=>e.pageIndex===y.value)??L.value?.pages[0]),me=(0,c.computed)(()=>{let e=L.value;return e?g.value.placements.filter(t=>t.fileId===e.fileId):[]}),z=(0,c.computed)(()=>g.value.placements.find(e=>e.id===b.value)),he=(0,c.computed)(()=>{let e=z.value;return e?r.findContractSigningPage(g.value,e.fileId,e.pageIndex)??R.value:R.value}),ge=(0,c.computed)(()=>C.value.filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),_e=(0,c.computed)(()=>Object.keys(w.value).filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),ve=(0,c.computed)(()=>C.value.filter(e=>e.endsWith(`:preview`)).map(e=>e.slice(0,-8))),ye=(0,c.computed)(()=>{let e={};return Object.entries(w.value).forEach(([t,n])=>{t.endsWith(`:preview`)&&(e[t.slice(0,-8)]=n)}),e});(0,c.watch)(()=>f.modelValue,e=>{if(!e)return;let t=r.normalizeContractSigningLocationValue(e,{sealSizeLimit:m.value,sealTypeOptions:f.sealTypeOptions});$(t)!==$(g.value)&&(Z(),g.value=t,_.value=r.cloneContractSigningLocationValue(t),K(),(0,c.nextTick)(()=>E.value?.scrollToPage(y.value)))},{deep:!0}),(0,c.watch)(m,()=>{$(r.normalizeContractSigningLocationValue(g.value,{sealSizeLimit:m.value,sealTypeOptions:f.sealTypeOptions}))!==$(g.value)&&V(g.value)}),(0,c.watch)(()=>f.zoom,e=>{T.value=B(e)}),(0,c.watch)(()=>[f.contractId,f.dataProvider,f.autoLoad],([e,t,n],r)=>{!n||!t||!e||(!r||e!==r[0]||t!==r[1])&&H()},{immediate:!0}),(0,c.onBeforeUnmount)(()=>{A=!0,k+=1,X(),Z()});function B(e){let n=Math.min(f.minZoom,f.maxZoom),r=Math.max(f.minZoom,f.maxZoom);return t.clampContractSigningZoom(e,n,r)}function be(e){let t=B(e);T.value=t,p(`update:zoom`,t)}function xe(){return E.value?.fitWidth()??T.value}function V(e,t={}){g.value=r.normalizeContractSigningLocationValue(e,{sealSizeLimit:m.value,sealTypeOptions:f.sealTypeOptions}),t.clearError!==!1&&(S.value=``),K();let n=r.cloneContractSigningLocationValue(g.value);return p(`update:modelValue`,n),p(`change`,n),n}async function H(){let e=String(f.contractId||g.value.contractId||``).trim();if(!f.dataProvider)return q({code:`CONTRACT_PROVIDER_MISSING`,message:`未配置合同数据提供器,请由宿主传入文件数据`}),!1;if(!e)return q({code:`CONTRACT_ID_MISSING`,message:`缺少用于加载合同的 PaaS contractId`}),!1;let n=++k;Z(),x.value=!0,S.value=``;try{let i=await f.dataProvider.loadContract({contractId:e});if(A||n!==k)return!1;let a=r.normalizeContractSigningProviderValue(i,t.normalizeContractSigningCoordinateScale(f.dataProvider.coordinateScale)),o=r.normalizeContractSigningLocationValue({...a,contractId:e,placements:a.placements.length?a.placements:g.value.contractId===e?g.value.placements:[]},{sealSizeLimit:m.value,sealTypeOptions:f.sealTypeOptions});g.value=o,_.value=r.cloneContractSigningLocationValue(o),b.value=``,K();let s=r.cloneContractSigningLocationValue(o);return p(`update:modelValue`,s),p(`change`,s),p(`ready`,s),Se(),(0,c.nextTick)(()=>E.value?.scrollToPage(y.value)),s}catch(e){return A||n!==k||q(J(e,`CONTRACT_LOAD_FAILED`,`合同加载失败,请检查授权后重试`)),!1}finally{!A&&n===k&&(x.value=!1)}}async function Se(){f.dataProvider?.loadPagePreview&&await Promise.allSettled(g.value.files.map(e=>{if(n.isContractSigningTemplateFile(e))return Promise.resolve();let t=r.getContractSigningHomePage(e.pages);return t&&!t.thumbnailUrl?U(e.fileId,t.pageIndex,!0):Promise.resolve()}))}async function U(e,i,a){let o=f.dataProvider?.loadPagePreview,s=g.value.files.find(t=>t.fileId===e),c=r.findContractSigningPage(g.value,e,i),l=Y(e,i,a);if(!o||n.isContractSigningTemplateFile(s)||!c||C.value.includes(l))return;Le(l),C.value=[...C.value,l];let u=P.start(l);try{let n=await o({contractId:g.value.contractId||f.contractId,fileId:e,pageIndex:i,thumbnail:a,signal:u.signal});if(A||!P.isCurrent(l,u)||!r.findContractSigningPage(g.value,e,i))return;let s=r.findContractSigningPage(g.value,e,i),c=r.resolveContractSigningPreviewPageSize(s,n,t.normalizeContractSigningCoordinateScale(f.dataProvider?.coordinateScale),a),ee=g.value.files.map(t=>t.fileId===e?{...t,pages:t.pages.map(e=>e.pageIndex===i?{...e,...c||{},...a?{thumbnailUrl:n.url}:{previewUrl:n.url}}:e)}:t);V({...g.value,files:ee},{clearError:!1})}catch(t){if(!P.isCurrent(l,u)||Re(t))return;let n=J(t,`CONTRACT_PREVIEW_FAILED`,`合同页面预览加载失败,可切换页面或重试`,{fileId:e,pageIndex:i});p(`error`,n),w.value={...w.value,[l]:n.message}}finally{P.finish(l,u)&&(C.value=C.value.filter(e=>e!==l))}}function Ce(e){if(e===v.value)return;let t=v.value;X(),t&&(Z(e=>e.startsWith(`${t}:`)&&e.endsWith(`:preview`)),M=M.filter(t=>t.fileId===e)),v.value=e;let n=g.value.files.find(t=>t.fileId===e);y.value=r.getContractSigningHomePage(n?.pages)?.pageIndex??0,b.value=``,p(`file-change`,e),p(`page-change`,e,y.value),(0,c.nextTick)(()=>E.value?.scrollToPage(y.value))}function we(e){y.value=e}function Te(e){y.value!==e&&(y.value=e),p(`page-change`,v.value,e)}function Ee(e){X();let t=v.value;j=setTimeout(()=>{j=void 0,v.value===t&&De(t,e)},150)}function De(e,t){let r=g.value.files.find(t=>t.fileId===e);!r||n.isContractSigningTemplateFile(r)||e!==v.value||(t.forEach(e=>{let t=r.pages.find(t=>t.pageIndex===e);!t||t.previewUrl||C.value.includes(Y(r.fileId,e,!1))||M.some(t=>t.fileId===r.fileId&&t.pageIndex===e)||M.push({fileId:r.fileId,pageIndex:e})}),Oe())}async function Oe(){let e=v.value;for(M=M.filter(t=>t.fileId===e);N<3&&M.length;){let t=M.shift();if(!t||t.fileId!==e)continue;let i=r.findContractSigningPage(g.value,t.fileId,t.pageIndex),a=g.value.files.find(e=>e.fileId===t.fileId);!i||n.isContractSigningTemplateFile(a)||i.previewUrl||C.value.includes(Y(t.fileId,t.pageIndex,!1))||(N+=1,U(t.fileId,t.pageIndex,!1).finally(()=>{N=Math.max(0,N-1),Oe()}))}}function ke(e){let t=g.value.placements.find(t=>t.id===e);t&&(t.fileId!==v.value&&Ce(t.fileId),b.value=e,(0,c.nextTick)(()=>E.value?.scrollToPlacement(e)))}function W(e,t={}){if(I.value)return;let n=t.fileId??L.value?.fileId,i=t.pageIndex??R.value?.pageIndex;if(!n||i===void 0)return;let a=r.findContractSigningPage(g.value,n,i);if(!a||!r.isContractSigningPageUsable(a)){q({code:`CONTRACT_PAGE_SIZE_INVALID`,message:`当前页面缺少有效的原始宽高,暂时不能添加签署位置`,fileId:n,pageIndex:i});return}let o=f.sealTypeOptions.find(e=>String(e.value).trim())?.value;if(e===`seal`&&!o){q({code:`CONTRACT_SEAL_TYPES_MISSING`,message:`当前未配置可用的印章类型,暂时不能添加印章位置`,fileId:n,pageIndex:i});return}let s=r.createContractSigningPlacement(e,n,a,{signLeft:t.signLeft,signTop:t.signTop,sizeProfile:f.sizeProfile,sealSizeLimit:m.value,sealTypeOptions:f.sealTypeOptions,...e===`seal`?{sealType:[String(o)]}:{}});return V({...g.value,placements:[...g.value.placements,s]}),v.value=n,y.value=i,b.value=s.id,Q(s)}function Ae(e,t){I.value||V({...g.value,placements:g.value.placements.map(n=>{if(n.id!==e)return n;let i=t.pageIndex===void 0?n.pageIndex:t.pageIndex,a=r.findContractSigningPage(g.value,n.fileId,i);return r.patchContractSigningPlacement(n,t,a,{sealSizeLimit:m.value,sealTypeOptions:f.sealTypeOptions})})})}function je(){let e=z.value;if(!e||I.value)return;let n=r.findContractSigningPage(g.value,e.fileId,e.pageIndex);if(!n)return;let i=t.clampContractSigningPlacement({...Q(e),id:Be(),signLeft:e.signLeft+16,signTop:e.signTop+16},n,{sealSizeLimit:m.value});V({...g.value,placements:[...g.value.placements,i]}),b.value=i.id}function G(e){I.value||(V({...g.value,placements:g.value.placements.filter(t=>t.id!==e)}),b.value===e&&(b.value=``))}function Me(){return r.validateContractSigningLocationValue(g.value,{allowedSealTypes:f.sealTypeOptions.map(e=>e.value)})}function Ne(){return r.cloneContractSigningLocationValue(g.value)}function Pe(){return r.buildContractSigningLocationOutput(Ne(),{allowedSealTypes:f.sealTypeOptions.map(e=>e.value)})}function Fe(){try{let e=Pe();return S.value=``,p(`submit`,e),e}catch(e){return q(e instanceof r.ContractSigningLocationBuildError?{...e.errors[0],cause:e}:J(e,`CONTRACT_SIGNING_LOCATION_INVALID`,`指定签署位置数据不完整`)),!1}}function Ie(){let e=V(r.cloneContractSigningLocationValue(_.value));return b.value=``,K(!0),(0,c.nextTick)(()=>E.value?.scrollToPage(y.value)),e}function K(e=!1){let t=(e?void 0:g.value.files.find(e=>e.fileId===v.value))??g.value.files[0];v.value=t?.fileId??``,y.value=((e?void 0:t?.pages.find(e=>e.pageIndex===y.value))??t?.pages[0])?.pageIndex??0,g.value.placements.some(e=>e.id===b.value)||(b.value=``)}function q(e){S.value=e.message,p(`error`,e)}function J(e,t,n,r={}){let i=typeof e==`object`&&e&&`status`in e?Number(e.status):void 0;return{code:t,message:i===401||i===403?`授权已失效,请重新获取签署凭证`:e instanceof Error&&e.message?e.message:n,...r,cause:e}}function Y(e,t,n){return`${e}:${t}:${n?`thumbnail`:`preview`}`}function Le(e){if(!(e in w.value))return;let t={...w.value};delete t[e],w.value=t}function X(){j&&=(clearTimeout(j),void 0)}function Z(e){let t=e??(()=>!0),n=new Set(P.abort(t));n.size&&(C.value=C.value.filter(e=>!n.has(e))),e||(M=[])}function Re(e){return!!(e&&typeof e==`object`&&`cancelled`in e&&e.cancelled)||e instanceof DOMException&&e.name===`AbortError`}function ze(e){let t=L.value;t&&U(t.fileId,e,!1)}function Q(e){return{...e,sealType:e.sealType?[...e.sealType]:void 0}}function $(e){return JSON.stringify(e)}function Be(){return typeof crypto<`u`&&`randomUUID`in crypto?`contract-signing-placement-${crypto.randomUUID()}`:`contract-signing-placement-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Ve(e){if(typeof e==`number`&&Number.isFinite(e)&&e>0)return{"--gd-ant-contract-signing-location-height":`${e}px`};if(typeof e==`string`&&e.trim())return{"--gd-ant-contract-signing-location-height":e.trim()}}return d({load:H,validate:Me,getValue:Ne,getOutput:Pe,submit:Fe,reset:Ie,addPlacement:W,removePlacement:G,fitWidth:xe}),(t,n)=>((0,c.openBlock)(),(0,c.createElementBlock)(`section`,{class:(0,c.normalizeClass)([`gd-ant-contract-signing-location`,{"is-readonly":I.value,"is-disabled":e.disabled,"is-preview":F.value}]),style:(0,c.normalizeStyle)(pe.value)},[(0,c.createElementVNode)(`header`,ee,[(0,c.createElementVNode)(`div`,te,[n[6]||=(0,c.createElementVNode)(`span`,{class:`gd-ant-contract-signing-location__title-bar`,"aria-hidden":`true`},null,-1),(0,c.createElementVNode)(`div`,null,[(0,c.createElementVNode)(`strong`,null,(0,c.toDisplayString)(F.value?`合同预览`:`指定合同签署位置`),1)])]),(0,c.createElementVNode)(`div`,ne,[(0,c.createElementVNode)(`span`,re,(0,c.toDisplayString)(g.value.placements.length)+` 个位置`,1),e.dataProvider?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:0,loading:x.value,onClick:H},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(u.ReloadOutlined),{"aria-hidden":`true`}),n[7]||=(0,c.createTextVNode)(` 重新加载 `,-1)]),_:1},8,[`loading`])):(0,c.createCommentVNode)(``,!0),F.value?(0,c.createCommentVNode)(``,!0):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:1,disabled:I.value,onClick:Ie},{default:(0,c.withCtx)(()=>[...n[8]||=[(0,c.createTextVNode)(`重置`,-1)]]),_:1},8,[`disabled`])),de.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:2,type:`primary`,loading:x.value,disabled:e.disabled,onClick:Fe},{default:(0,c.withCtx)(()=>[...n[9]||=[(0,c.createTextVNode)(`确认并生成规则`,-1)]]),_:1},8,[`loading`,`disabled`])):(0,c.createCommentVNode)(``,!0)])]),S.value?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,ie,[(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(S.value),1),e.dataProvider&&e.contractId?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:0,type:`link`,size:`small`,onClick:H},{default:(0,c.withCtx)(()=>[...n[10]||=[(0,c.createTextVNode)(`重试`,-1)]]),_:1})):(0,c.createCommentVNode)(``,!0)])):(0,c.createCommentVNode)(``,!0),(0,c.createElementVNode)(`div`,{class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__body`,{"is-single-file":fe.value,"is-inspector-hidden":!ue.value}])},[fe.value?(0,c.createCommentVNode)(``,!0):((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:0,class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__navigator-wrap`,{"is-collapsed":O.value}])},[(0,c.createVNode)((0,c.unref)(l.Tooltip),{title:O.value?`展开页面栏`:`收起页面栏`},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":O.value?`展开页面栏`:`收起页面栏`,"aria-expanded":!O.value,onClick:n[0]||=e=>O.value=!O.value},[O.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.RightOutlined),{key:0,"aria-hidden":`true`})):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.LeftOutlined),{key:1,"aria-hidden":`true`}))],8,ae)]),_:1},8,[`title`]),(0,c.createElementVNode)(`div`,oe,[(0,c.createVNode)(o.default,{files:g.value.files,"active-file-id":v.value,"loading-preview-keys":ge.value,"error-preview-keys":_e.value,onSelect:Ce},null,8,[`files`,`active-file-id`,`loading-preview-keys`,`error-preview-keys`])])],2)),(0,c.createVNode)(i.default,{ref_key:`canvasRef`,ref:E,file:L.value,pages:L.value?.pages??[],placements:me.value,"selected-placement-id":b.value,readonly:I.value,resizable:e.resizable,"seal-size-limit":m.value,"seal-type-options":e.sealTypeOptions,zoom:T.value,"preview-loading-keys":ve.value,"preview-error-map":ye.value,"active-page-index":y.value,"min-zoom":e.minZoom,"max-zoom":e.maxZoom,onSelect:n[1]||=e=>b.value=e,onRetry:ze,onAdd:n[2]||=(e,t,n,r)=>W(e,{signLeft:t,signTop:n,pageIndex:r}),onUpdate:n[3]||=e=>Ae(e.id,e),onRemove:G,onVisiblePages:Ee,onViewPage:we,onPageChange:Te,onZoomChange:be},null,8,[`file`,`pages`,`placements`,`selected-placement-id`,`readonly`,`resizable`,`seal-size-limit`,`seal-type-options`,`zoom`,`preview-loading-keys`,`preview-error-map`,`active-page-index`,`min-zoom`,`max-zoom`]),ue.value?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:1,class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__inspector-wrap`,{"is-collapsed":D.value}])},[(0,c.createVNode)((0,c.unref)(l.Tooltip),{title:D.value?`展开属性栏`:`收起属性栏`},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":D.value?`展开属性栏`:`收起属性栏`,"aria-expanded":!D.value,onClick:n[4]||=e=>D.value=!D.value},[D.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.LeftOutlined),{key:0,"aria-hidden":`true`})):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.RightOutlined),{key:1,"aria-hidden":`true`}))],8,se)]),_:1},8,[`title`]),(0,c.createElementVNode)(`div`,ce,[(0,c.createVNode)(a.default,{placement:z.value,page:he.value,pages:L.value?.pages??[],placements:me.value,readonly:I.value,resizable:e.resizable,"seal-size-limit":m.value,"seal-type-options":e.sealTypeOptions,"size-profile":e.sizeProfile,onAdd:W,onUpdate:n[5]||=e=>z.value&&Ae(z.value.id,e),onDuplicate:je,onRemove:G,onLocate:ke},null,8,[`placement`,`page`,`pages`,`placements`,`readonly`,`resizable`,`seal-size-limit`,`seal-type-options`,`size-profile`])])],2)):(0,c.createCommentVNode)(``,!0)],2)],6))}});exports.default=d;