@hwp-editor/react 1.3.0 → 1.4.1
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.
- package/dist/index.cjs +257 -188
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +3 -6
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +13 -6
- package/dist/index.d.ts +13 -6
- package/dist/index.js +136 -67
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.css
CHANGED
|
@@ -417,17 +417,11 @@
|
|
|
417
417
|
outline: 2px solid var(--hwped-accent);
|
|
418
418
|
outline-offset: 3px;
|
|
419
419
|
}
|
|
420
|
-
.hwped-page-svg,
|
|
421
420
|
.hwped-page-img {
|
|
422
421
|
display: block;
|
|
423
422
|
width: 100%;
|
|
424
423
|
height: 100%;
|
|
425
424
|
}
|
|
426
|
-
.hwped-page-svg > svg {
|
|
427
|
-
display: block;
|
|
428
|
-
width: 100%;
|
|
429
|
-
height: auto;
|
|
430
|
-
}
|
|
431
425
|
.hwped-band {
|
|
432
426
|
position: absolute;
|
|
433
427
|
left: 0;
|
|
@@ -611,4 +605,7 @@
|
|
|
611
605
|
box-shadow: inset 0 0 0 1px var(--hwped-fg);
|
|
612
606
|
}
|
|
613
607
|
}
|
|
608
|
+
.hwped-band-approximate {
|
|
609
|
+
border-style: dashed;
|
|
610
|
+
}
|
|
614
611
|
/*# sourceMappingURL=index.css.map */
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme.css","../src/editor.css"],"sourcesContent":["/**\n * Theme contract for @hwp-editor/react. Hosts theme the editor ONLY by\n * overriding these variables on the editor root or any ancestor:\n *\n * --hwped-bg surface background\n * --hwped-fg primary text\n * --hwped-muted secondary text / disabled\n * --hwped-accent primary actions, selection\n * --hwped-border hairline borders\n * --hwped-error destructive / error text and badges\n * --hwped-warning transient warning (timeout badge only)\n * --hwped-success success badge\n * --hwped-radius corner radius\n * --hwped-font font stack (default: Pretendard -> system)\n *\n * Defaults below include a prefers-color-scheme dark fallback.\n */\n\n.hwped {\n --hwped-bg: #ffffff;\n --hwped-fg: #1a1d21;\n --hwped-muted: #6b7280;\n --hwped-accent: #1f5fbf;\n --hwped-border: #d7dbe0;\n --hwped-error: #b91c1c;\n --hwped-warning: #a16207;\n --hwped-success: #15803d;\n --hwped-radius: 6px;\n --hwped-font:\n \"Pretendard\", \"Pretendard Variable\", \"Malgun Gothic\", \"맑은 고딕\",\n -apple-system, \"Segoe UI\", Roboto, \"Noto Sans KR\", sans-serif;\n}\n\n@media (prefers-color-scheme: dark) {\n .hwped {\n --hwped-bg: #17191d;\n --hwped-fg: #e5e7eb;\n --hwped-muted: #9ca3af;\n --hwped-accent: #5b8def;\n --hwped-border: #33373f;\n /* Lifted for >= 4.5:1 against --hwped-bg at 11-13px. */\n --hwped-error: #f87171;\n --hwped-warning: #fbbf24;\n --hwped-success: #4ade80;\n }\n}\n","/**\n * Scoped stylesheet for @hwp-editor/react. Every class carries the `hwped`\n * prefix; the root element gets `.hwped.hwped-root`. No global selectors,\n * no component-kit assumptions.\n *\n * Design notes (HIG-derived, #34): depth comes from tone and shadow rather\n * than extra lines; every control answers on press, not on release; status\n * is tinted by kind; motion is short, and dropped under reduced motion.\n *\n * Every tone below is DERIVED from the public --hwped-* tokens with\n * color-mix, so a host that maps those tokens (light or dark) gets the whole\n * palette. The --_hwped-* names are private and not part of the contract.\n */\n\n.hwped {\n --_hwped-desk: color-mix(in srgb, var(--hwped-fg) 5%, var(--hwped-bg));\n --_hwped-fill: color-mix(in srgb, var(--hwped-fg) 7%, var(--hwped-bg));\n --_hwped-hover: color-mix(in srgb, var(--hwped-accent) 9%, var(--hwped-bg));\n --_hwped-press: color-mix(in srgb, var(--hwped-accent) 16%, var(--hwped-bg));\n --_hwped-hairline: color-mix(in srgb, var(--hwped-border) 75%, transparent);\n --_hwped-ring: 0 0 0 3px color-mix(in srgb, var(--hwped-accent) 35%, transparent);\n --_hwped-quick: 100ms ease-out;\n\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n font-family: var(--hwped-font);\n font-size: 13px;\n line-height: 1.5;\n -webkit-font-smoothing: antialiased;\n}\n\n.hwped *,\n.hwped *::before,\n.hwped *::after {\n box-sizing: border-box;\n}\n\n.hwped-root {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 320px;\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n overflow: hidden;\n}\n\n/* ---- toolbar ---- */\n\n.hwped-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: 44px;\n padding: 6px 12px;\n border-bottom: 1px solid var(--_hwped-hairline);\n background: var(--hwped-bg);\n flex: 0 0 auto;\n position: relative;\n z-index: 1;\n}\n\n.hwped-title {\n font-weight: 600;\n letter-spacing: -0.01em;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 40%;\n}\n\n.hwped-spacer {\n flex: 1 1 auto;\n}\n\n/* The title and this notice are the only toolbar items that may shrink: a\n long engine reason truncates here (the full text stays reachable via the\n element's title attribute) instead of being distributed across the badge,\n count and buttons, which would collapse them to min-content and stack the\n row. That is why every sibling below carries `flex: 0 0 auto` (G-03-1). */\n.hwped-notice {\n color: var(--hwped-muted);\n background: var(--_hwped-fill);\n border-radius: 999px;\n padding: 2px 10px;\n font-size: 12px;\n letter-spacing: 0.01em;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 0 1 auto;\n}\n\n/* Status reads by kind, not by outline: a tinted pill in the kind's color. */\n.hwped-badge {\n border-radius: 999px;\n padding: 2px 10px;\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 0.01em;\n border: 1px solid transparent;\n background: var(--_hwped-fill);\n flex: 0 0 auto;\n}\n\n.hwped-badge-ok {\n color: var(--hwped-success);\n background: color-mix(in srgb, var(--hwped-success) 14%, transparent);\n}\n\n.hwped-badge-err {\n color: var(--hwped-error);\n background: color-mix(in srgb, var(--hwped-error) 14%, transparent);\n}\n\n.hwped-count {\n color: var(--hwped-muted);\n font-size: 12px;\n letter-spacing: 0.01em;\n font-variant-numeric: tabular-nums;\n flex: 0 0 auto;\n}\n\n/* ---- buttons / inputs ---- */\n\n.hwped-btn {\n font: inherit;\n font-weight: 500;\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n min-height: 28px;\n padding: 3px 12px;\n cursor: pointer;\n transition:\n background-color var(--_hwped-quick),\n border-color var(--_hwped-quick),\n transform var(--_hwped-quick);\n}\n\n.hwped-btn:hover:not(:disabled) {\n background: var(--_hwped-hover);\n border-color: color-mix(in srgb, var(--hwped-accent) 55%, var(--hwped-border));\n}\n\n/* Feedback on press, instantly - never only on release. */\n.hwped-btn:active:not(:disabled) {\n background: var(--_hwped-press);\n transform: scale(0.97);\n}\n\n.hwped-btn:disabled {\n color: var(--hwped-muted);\n background: transparent;\n border-color: var(--_hwped-hairline);\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.hwped-btn-primary {\n background: var(--hwped-accent);\n border-color: var(--hwped-accent);\n color: #ffffff;\n font-weight: 600;\n}\n\n.hwped-btn-primary:hover:not(:disabled) {\n background: color-mix(in srgb, var(--hwped-accent) 88%, #000000);\n border-color: color-mix(in srgb, var(--hwped-accent) 88%, #000000);\n}\n\n.hwped-btn-primary:active:not(:disabled) {\n background: color-mix(in srgb, var(--hwped-accent) 78%, #000000);\n}\n\n/* A disabled primary keeps a trace of its accent, but must not read as live. */\n.hwped-btn-primary:disabled {\n color: var(--hwped-muted);\n background: color-mix(in srgb, var(--hwped-accent) 14%, var(--hwped-bg));\n border-color: transparent;\n opacity: 1;\n}\n\n/* Destructive reads as destructive at rest, not only on hover. */\n.hwped-btn-danger {\n color: var(--hwped-error);\n}\n\n.hwped-btn-danger:hover:not(:disabled) {\n border-color: var(--hwped-error);\n color: var(--hwped-error);\n background: color-mix(in srgb, var(--hwped-error) 9%, var(--hwped-bg));\n}\n\n.hwped-btn-link {\n border: none;\n background: none;\n min-height: 0;\n padding: 0;\n color: var(--hwped-accent);\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.hwped-btn-link:hover:not(:disabled) {\n background: none;\n}\n\n/* Scoped to direct toolbar children on purpose: `.hwped-btn` is reused by\n SegmentInspector, TableGrid, FieldsPanel, the compose dialog actions and\n the empty-state button, where non-shrinkable buttons would trade this bug\n for horizontal overflow in those narrow rows. */\n.hwped-toolbar > .hwped-btn {\n flex: 0 0 auto;\n}\n\n.hwped-input,\n.hwped-textarea {\n font: inherit;\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n min-height: 28px;\n padding: 4px 9px;\n width: 100%;\n transition:\n border-color var(--_hwped-quick),\n box-shadow var(--_hwped-quick);\n}\n\n.hwped-input::placeholder,\n.hwped-textarea::placeholder {\n color: var(--hwped-muted);\n opacity: 0.8;\n}\n\n.hwped-input:hover:not(:disabled),\n.hwped-textarea:hover:not(:disabled) {\n border-color: color-mix(in srgb, var(--hwped-fg) 30%, var(--hwped-border));\n}\n\n/* One focus treatment everywhere: accent edge plus a soft ring. */\n.hwped-input:focus,\n.hwped-textarea:focus {\n outline: none;\n border-color: var(--hwped-accent);\n box-shadow: var(--_hwped-ring);\n}\n\n.hwped-btn:focus-visible,\n.hwped-tab:focus-visible,\n.hwped-preset:focus-visible,\n.hwped-cell:focus-visible {\n outline: none;\n box-shadow: var(--_hwped-ring);\n}\n\n.hwped-input-narrow {\n width: 96px;\n flex: 0 0 auto;\n}\n\n.hwped-check {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n}\n\n.hwped-check input {\n accent-color: var(--hwped-accent);\n}\n\n/* ---- layout ---- */\n\n.hwped-pending-list {\n flex: 0 1 auto;\n min-height: 0;\n max-height: 120px;\n overflow: auto;\n overflow-wrap: anywhere;\n}\n\n.hwped-main {\n display: flex;\n flex: 1 1 auto;\n min-height: 0;\n}\n\n/* The desk: a tone below the chrome, so the page reads as a sheet on it. */\n.hwped-canvas {\n flex: 1 1 auto;\n overflow: auto;\n padding: 24px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n background: var(--_hwped-desk);\n}\n\n.hwped-side {\n flex: 0 0 300px;\n border-left: 1px solid var(--_hwped-hairline);\n background: var(--hwped-bg);\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n/* Tabs as a segmented control: a recessed track, the active segment raised. */\n.hwped-tabs {\n display: flex;\n flex-wrap: wrap;\n gap: 2px;\n margin: 10px 12px 2px;\n padding: 3px;\n background: var(--_hwped-fill);\n border-radius: calc(var(--hwped-radius) + 2px);\n flex: 0 0 auto;\n}\n\n.hwped-tab {\n font: inherit;\n font-weight: 500;\n flex: 1 1 78px;\n min-width: 0;\n min-height: 26px;\n padding: 3px 0;\n background: none;\n border: none;\n border-radius: var(--hwped-radius);\n color: var(--hwped-muted);\n cursor: pointer;\n transition:\n background-color var(--_hwped-quick),\n color var(--_hwped-quick),\n transform var(--_hwped-quick);\n}\n\n.hwped-tab:hover:not(.hwped-tab-active) {\n color: var(--hwped-fg);\n}\n\n.hwped-tab:active {\n transform: scale(0.97);\n}\n\n.hwped-tab-active {\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n font-weight: 600;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 0 0 0.5px rgba(0, 0, 0, 0.06);\n}\n\n.hwped-panel {\n padding: 12px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.hwped-field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.hwped-label {\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 0.01em;\n line-height: 1.35;\n color: color-mix(in srgb, var(--hwped-fg) 72%, var(--hwped-bg));\n}\n\n.hwped-row {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n/* A role=\"group\" row of peer actions (alignment) reads as one joined control. */\n.hwped-row[role=\"group\"] {\n gap: 0;\n flex-wrap: nowrap;\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn {\n flex: 1 1 0;\n padding-inline: 6px;\n border-radius: 0;\n margin-left: -1px;\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn:first-child {\n margin-left: 0;\n border-radius: var(--hwped-radius) 0 0 var(--hwped-radius);\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn:last-child {\n border-radius: 0 var(--hwped-radius) var(--hwped-radius) 0;\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn:hover:not(:disabled),\n.hwped-row[role=\"group\"] > .hwped-btn:focus-visible {\n position: relative;\n z-index: 1;\n}\n\n.hwped-quote {\n background: var(--_hwped-fill);\n border-radius: var(--hwped-radius);\n padding: 8px 10px;\n max-height: 120px;\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.hwped-hint,\n.hwped-empty {\n color: var(--hwped-muted);\n}\n\n.hwped-empty {\n margin: auto;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n}\n\n/* An error is a band in the kind's tint with a leading bar, not bare red text. */\n.hwped-error {\n color: var(--hwped-error);\n margin: 0;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--hwped-error) 9%, var(--hwped-bg));\n border-bottom: 1px solid var(--_hwped-hairline);\n box-shadow: inset 3px 0 0 currentColor;\n}\n\n.hwped-error-kind {\n display: inline-block;\n margin-right: 8px;\n padding: 0 8px;\n border-radius: 999px;\n background: color-mix(in srgb, currentColor 14%, transparent);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.02em;\n}\n\n/* timeout is transient (retry may succeed); unavailable/protected are not. */\n.hwped-error-timeout {\n color: var(--hwped-warning);\n background: color-mix(in srgb, var(--hwped-warning) 10%, var(--hwped-bg));\n}\n\n/* ---- page canvas ---- */\n\n/* Paper on the desk: layered shadow, the larger layer giving it thickness. */\n.hwped-page {\n position: relative;\n width: min(100%, 720px);\n border-radius: 3px;\n box-shadow:\n 0 0 0 1px color-mix(in srgb, var(--hwped-fg) 8%, transparent),\n 0 1px 2px rgba(0, 0, 0, 0.08),\n 0 8px 24px rgba(0, 0, 0, 0.12);\n background: #ffffff;\n cursor: text;\n}\n\n.hwped-page:focus-visible {\n outline: 2px solid var(--hwped-accent);\n outline-offset: 3px;\n}\n\n.hwped-page-svg,\n.hwped-page-img {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.hwped-page-svg > svg {\n display: block;\n width: 100%;\n height: auto;\n}\n\n.hwped-band {\n position: absolute;\n left: 0;\n right: 0;\n pointer-events: none;\n transition: background-color var(--_hwped-quick);\n}\n\n/* Mark the selection without covering it: a light wash and an inset rule. */\n.hwped-band-selected {\n background: color-mix(in srgb, var(--hwped-accent) 9%, transparent);\n box-shadow:\n inset 3px 0 0 var(--hwped-accent),\n inset 0 0 0 1px color-mix(in srgb, var(--hwped-accent) 45%, transparent);\n}\n\n.hwped-band-pending {\n background: color-mix(in srgb, var(--hwped-accent) 6%, transparent);\n box-shadow: inset 3px 0 0 color-mix(in srgb, var(--hwped-accent) 45%, transparent);\n}\n\n/* ---- table grid ---- */\n\n.hwped-grid {\n border-collapse: collapse;\n width: 100%;\n}\n\n.hwped-grid td {\n border: 1px solid var(--hwped-border);\n padding: 0;\n}\n\n.hwped-cell {\n font: inherit;\n display: block;\n width: 100%;\n border: none;\n background: none;\n color: var(--hwped-fg);\n padding: 5px 8px;\n text-align: left;\n cursor: pointer;\n min-height: 28px;\n transition: background-color var(--_hwped-quick);\n}\n\n.hwped-cell:hover {\n background: var(--_hwped-hover);\n}\n\n.hwped-cell:active {\n background: var(--_hwped-press);\n}\n\n.hwped-cell-selected {\n outline: 2px solid var(--hwped-accent);\n outline-offset: -2px;\n}\n\n.hwped-cell-anchor {\n background: color-mix(in srgb, var(--hwped-accent) 14%, transparent);\n}\n\n/* ---- fields ---- */\n\n.hwped-fields {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.hwped-field-item {\n border-bottom: 1px solid var(--_hwped-hairline);\n padding-bottom: 10px;\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n/* ---- compose dialog ---- */\n\n/* Dim to focus: a modal task gets a scrim that pushes the editor back. */\n.hwped-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.32);\n backdrop-filter: blur(6px) saturate(120%);\n -webkit-backdrop-filter: blur(6px) saturate(120%);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n animation: hwped-fade-in 160ms ease-out;\n}\n\n.hwped-dialog {\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n border: 1px solid var(--_hwped-hairline);\n border-radius: calc(var(--hwped-radius) * 2);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.12),\n 0 24px 64px rgba(0, 0, 0, 0.28);\n width: min(560px, calc(100vw - 32px));\n max-height: calc(100vh - 64px);\n overflow: auto;\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 14px;\n animation: hwped-materialize 200ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n\n.hwped-dialog-title {\n margin: 0;\n font-size: 17px;\n font-weight: 600;\n line-height: 1.3;\n letter-spacing: -0.015em;\n}\n\n.hwped-presets {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.hwped-preset {\n font: inherit;\n font-weight: 500;\n border: 1px solid var(--hwped-border);\n border-radius: 999px;\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n min-height: 28px;\n padding: 3px 12px;\n cursor: pointer;\n transition:\n background-color var(--_hwped-quick),\n border-color var(--_hwped-quick),\n transform var(--_hwped-quick);\n}\n\n.hwped-preset:hover:not(.hwped-preset-active) {\n background: var(--_hwped-hover);\n}\n\n.hwped-preset:active {\n transform: scale(0.97);\n}\n\n.hwped-preset-active {\n border-color: var(--hwped-accent);\n background: color-mix(in srgb, var(--hwped-accent) 12%, var(--hwped-bg));\n color: var(--hwped-accent);\n font-weight: 600;\n}\n\n.hwped-dialog-actions {\n justify-content: flex-end;\n padding-top: 4px;\n}\n\n@keyframes hwped-fade-in {\n from {\n opacity: 0;\n }\n}\n\n/* Materialize, don't just fade: the surface arrives with a slight scale. */\n@keyframes hwped-materialize {\n from {\n opacity: 0;\n transform: scale(0.98);\n }\n}\n\n/* ---- accessibility preferences ---- */\n\n@media (prefers-reduced-motion: reduce) {\n .hwped *,\n .hwped *::before,\n .hwped *::after {\n transition-duration: 0ms !important;\n }\n\n .hwped-btn:active:not(:disabled),\n .hwped-tab:active,\n .hwped-preset:active {\n transform: none;\n }\n\n .hwped-overlay,\n .hwped-dialog {\n animation: none;\n }\n}\n\n@media (prefers-reduced-transparency: reduce) {\n .hwped-overlay {\n background: rgba(0, 0, 0, 0.55);\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n }\n}\n\n@media (prefers-contrast: more) {\n .hwped {\n --_hwped-hairline: var(--hwped-fg);\n }\n\n .hwped-btn,\n .hwped-input,\n .hwped-textarea,\n .hwped-preset,\n .hwped-grid td {\n border-color: var(--hwped-fg);\n }\n\n .hwped-tabs {\n box-shadow: inset 0 0 0 1px var(--hwped-fg);\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/theme.css","../src/editor.css"],"sourcesContent":["/**\n * Theme contract for @hwp-editor/react. Hosts theme the editor ONLY by\n * overriding these variables on the editor root or any ancestor:\n *\n * --hwped-bg surface background\n * --hwped-fg primary text\n * --hwped-muted secondary text / disabled\n * --hwped-accent primary actions, selection\n * --hwped-border hairline borders\n * --hwped-error destructive / error text and badges\n * --hwped-warning transient warning (timeout badge only)\n * --hwped-success success badge\n * --hwped-radius corner radius\n * --hwped-font font stack (default: Pretendard -> system)\n *\n * Defaults below include a prefers-color-scheme dark fallback.\n */\n\n.hwped {\n --hwped-bg: #ffffff;\n --hwped-fg: #1a1d21;\n --hwped-muted: #6b7280;\n --hwped-accent: #1f5fbf;\n --hwped-border: #d7dbe0;\n --hwped-error: #b91c1c;\n --hwped-warning: #a16207;\n --hwped-success: #15803d;\n --hwped-radius: 6px;\n --hwped-font:\n \"Pretendard\", \"Pretendard Variable\", \"Malgun Gothic\", \"맑은 고딕\",\n -apple-system, \"Segoe UI\", Roboto, \"Noto Sans KR\", sans-serif;\n}\n\n@media (prefers-color-scheme: dark) {\n .hwped {\n --hwped-bg: #17191d;\n --hwped-fg: #e5e7eb;\n --hwped-muted: #9ca3af;\n --hwped-accent: #5b8def;\n --hwped-border: #33373f;\n /* Lifted for >= 4.5:1 against --hwped-bg at 11-13px. */\n --hwped-error: #f87171;\n --hwped-warning: #fbbf24;\n --hwped-success: #4ade80;\n }\n}\n","/**\n * Scoped stylesheet for @hwp-editor/react. Every class carries the `hwped`\n * prefix; the root element gets `.hwped.hwped-root`. No global selectors,\n * no component-kit assumptions.\n *\n * Design notes (HIG-derived, #34): depth comes from tone and shadow rather\n * than extra lines; every control answers on press, not on release; status\n * is tinted by kind; motion is short, and dropped under reduced motion.\n *\n * Every tone below is DERIVED from the public --hwped-* tokens with\n * color-mix, so a host that maps those tokens (light or dark) gets the whole\n * palette. The --_hwped-* names are private and not part of the contract.\n */\n\n.hwped {\n --_hwped-desk: color-mix(in srgb, var(--hwped-fg) 5%, var(--hwped-bg));\n --_hwped-fill: color-mix(in srgb, var(--hwped-fg) 7%, var(--hwped-bg));\n --_hwped-hover: color-mix(in srgb, var(--hwped-accent) 9%, var(--hwped-bg));\n --_hwped-press: color-mix(in srgb, var(--hwped-accent) 16%, var(--hwped-bg));\n --_hwped-hairline: color-mix(in srgb, var(--hwped-border) 75%, transparent);\n --_hwped-ring: 0 0 0 3px color-mix(in srgb, var(--hwped-accent) 35%, transparent);\n --_hwped-quick: 100ms ease-out;\n\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n font-family: var(--hwped-font);\n font-size: 13px;\n line-height: 1.5;\n -webkit-font-smoothing: antialiased;\n}\n\n.hwped *,\n.hwped *::before,\n.hwped *::after {\n box-sizing: border-box;\n}\n\n.hwped-root {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 320px;\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n overflow: hidden;\n}\n\n/* ---- toolbar ---- */\n\n.hwped-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: 44px;\n padding: 6px 12px;\n border-bottom: 1px solid var(--_hwped-hairline);\n background: var(--hwped-bg);\n flex: 0 0 auto;\n position: relative;\n z-index: 1;\n}\n\n.hwped-title {\n font-weight: 600;\n letter-spacing: -0.01em;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 40%;\n}\n\n.hwped-spacer {\n flex: 1 1 auto;\n}\n\n/* The title and this notice are the only toolbar items that may shrink: a\n long engine reason truncates here (the full text stays reachable via the\n element's title attribute) instead of being distributed across the badge,\n count and buttons, which would collapse them to min-content and stack the\n row. That is why every sibling below carries `flex: 0 0 auto` (G-03-1). */\n.hwped-notice {\n color: var(--hwped-muted);\n background: var(--_hwped-fill);\n border-radius: 999px;\n padding: 2px 10px;\n font-size: 12px;\n letter-spacing: 0.01em;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 0 1 auto;\n}\n\n/* Status reads by kind, not by outline: a tinted pill in the kind's color. */\n.hwped-badge {\n border-radius: 999px;\n padding: 2px 10px;\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 0.01em;\n border: 1px solid transparent;\n background: var(--_hwped-fill);\n flex: 0 0 auto;\n}\n\n.hwped-badge-ok {\n color: var(--hwped-success);\n background: color-mix(in srgb, var(--hwped-success) 14%, transparent);\n}\n\n.hwped-badge-err {\n color: var(--hwped-error);\n background: color-mix(in srgb, var(--hwped-error) 14%, transparent);\n}\n\n.hwped-count {\n color: var(--hwped-muted);\n font-size: 12px;\n letter-spacing: 0.01em;\n font-variant-numeric: tabular-nums;\n flex: 0 0 auto;\n}\n\n/* ---- buttons / inputs ---- */\n\n.hwped-btn {\n font: inherit;\n font-weight: 500;\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n min-height: 28px;\n padding: 3px 12px;\n cursor: pointer;\n transition:\n background-color var(--_hwped-quick),\n border-color var(--_hwped-quick),\n transform var(--_hwped-quick);\n}\n\n.hwped-btn:hover:not(:disabled) {\n background: var(--_hwped-hover);\n border-color: color-mix(in srgb, var(--hwped-accent) 55%, var(--hwped-border));\n}\n\n/* Feedback on press, instantly - never only on release. */\n.hwped-btn:active:not(:disabled) {\n background: var(--_hwped-press);\n transform: scale(0.97);\n}\n\n.hwped-btn:disabled {\n color: var(--hwped-muted);\n background: transparent;\n border-color: var(--_hwped-hairline);\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.hwped-btn-primary {\n background: var(--hwped-accent);\n border-color: var(--hwped-accent);\n color: #ffffff;\n font-weight: 600;\n}\n\n.hwped-btn-primary:hover:not(:disabled) {\n background: color-mix(in srgb, var(--hwped-accent) 88%, #000000);\n border-color: color-mix(in srgb, var(--hwped-accent) 88%, #000000);\n}\n\n.hwped-btn-primary:active:not(:disabled) {\n background: color-mix(in srgb, var(--hwped-accent) 78%, #000000);\n}\n\n/* A disabled primary keeps a trace of its accent, but must not read as live. */\n.hwped-btn-primary:disabled {\n color: var(--hwped-muted);\n background: color-mix(in srgb, var(--hwped-accent) 14%, var(--hwped-bg));\n border-color: transparent;\n opacity: 1;\n}\n\n/* Destructive reads as destructive at rest, not only on hover. */\n.hwped-btn-danger {\n color: var(--hwped-error);\n}\n\n.hwped-btn-danger:hover:not(:disabled) {\n border-color: var(--hwped-error);\n color: var(--hwped-error);\n background: color-mix(in srgb, var(--hwped-error) 9%, var(--hwped-bg));\n}\n\n.hwped-btn-link {\n border: none;\n background: none;\n min-height: 0;\n padding: 0;\n color: var(--hwped-accent);\n text-decoration: underline;\n text-underline-offset: 2px;\n}\n\n.hwped-btn-link:hover:not(:disabled) {\n background: none;\n}\n\n/* Scoped to direct toolbar children on purpose: `.hwped-btn` is reused by\n SegmentInspector, TableGrid, FieldsPanel, the compose dialog actions and\n the empty-state button, where non-shrinkable buttons would trade this bug\n for horizontal overflow in those narrow rows. */\n.hwped-toolbar > .hwped-btn {\n flex: 0 0 auto;\n}\n\n.hwped-input,\n.hwped-textarea {\n font: inherit;\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n border: 1px solid var(--hwped-border);\n border-radius: var(--hwped-radius);\n min-height: 28px;\n padding: 4px 9px;\n width: 100%;\n transition:\n border-color var(--_hwped-quick),\n box-shadow var(--_hwped-quick);\n}\n\n.hwped-input::placeholder,\n.hwped-textarea::placeholder {\n color: var(--hwped-muted);\n opacity: 0.8;\n}\n\n.hwped-input:hover:not(:disabled),\n.hwped-textarea:hover:not(:disabled) {\n border-color: color-mix(in srgb, var(--hwped-fg) 30%, var(--hwped-border));\n}\n\n/* One focus treatment everywhere: accent edge plus a soft ring. */\n.hwped-input:focus,\n.hwped-textarea:focus {\n outline: none;\n border-color: var(--hwped-accent);\n box-shadow: var(--_hwped-ring);\n}\n\n.hwped-btn:focus-visible,\n.hwped-tab:focus-visible,\n.hwped-preset:focus-visible,\n.hwped-cell:focus-visible {\n outline: none;\n box-shadow: var(--_hwped-ring);\n}\n\n.hwped-input-narrow {\n width: 96px;\n flex: 0 0 auto;\n}\n\n.hwped-check {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n}\n\n.hwped-check input {\n accent-color: var(--hwped-accent);\n}\n\n/* ---- layout ---- */\n\n.hwped-pending-list {\n flex: 0 1 auto;\n min-height: 0;\n max-height: 120px;\n overflow: auto;\n overflow-wrap: anywhere;\n}\n\n.hwped-main {\n display: flex;\n flex: 1 1 auto;\n min-height: 0;\n}\n\n/* The desk: a tone below the chrome, so the page reads as a sheet on it. */\n.hwped-canvas {\n flex: 1 1 auto;\n overflow: auto;\n padding: 24px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n background: var(--_hwped-desk);\n}\n\n.hwped-side {\n flex: 0 0 300px;\n border-left: 1px solid var(--_hwped-hairline);\n background: var(--hwped-bg);\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n/* Tabs as a segmented control: a recessed track, the active segment raised. */\n.hwped-tabs {\n display: flex;\n flex-wrap: wrap;\n gap: 2px;\n margin: 10px 12px 2px;\n padding: 3px;\n background: var(--_hwped-fill);\n border-radius: calc(var(--hwped-radius) + 2px);\n flex: 0 0 auto;\n}\n\n.hwped-tab {\n font: inherit;\n font-weight: 500;\n flex: 1 1 78px;\n min-width: 0;\n min-height: 26px;\n padding: 3px 0;\n background: none;\n border: none;\n border-radius: var(--hwped-radius);\n color: var(--hwped-muted);\n cursor: pointer;\n transition:\n background-color var(--_hwped-quick),\n color var(--_hwped-quick),\n transform var(--_hwped-quick);\n}\n\n.hwped-tab:hover:not(.hwped-tab-active) {\n color: var(--hwped-fg);\n}\n\n.hwped-tab:active {\n transform: scale(0.97);\n}\n\n.hwped-tab-active {\n color: var(--hwped-fg);\n background: var(--hwped-bg);\n font-weight: 600;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 0 0 0.5px rgba(0, 0, 0, 0.06);\n}\n\n.hwped-panel {\n padding: 12px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.hwped-field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.hwped-label {\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 0.01em;\n line-height: 1.35;\n color: color-mix(in srgb, var(--hwped-fg) 72%, var(--hwped-bg));\n}\n\n.hwped-row {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n/* A role=\"group\" row of peer actions (alignment) reads as one joined control. */\n.hwped-row[role=\"group\"] {\n gap: 0;\n flex-wrap: nowrap;\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn {\n flex: 1 1 0;\n padding-inline: 6px;\n border-radius: 0;\n margin-left: -1px;\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn:first-child {\n margin-left: 0;\n border-radius: var(--hwped-radius) 0 0 var(--hwped-radius);\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn:last-child {\n border-radius: 0 var(--hwped-radius) var(--hwped-radius) 0;\n}\n\n.hwped-row[role=\"group\"] > .hwped-btn:hover:not(:disabled),\n.hwped-row[role=\"group\"] > .hwped-btn:focus-visible {\n position: relative;\n z-index: 1;\n}\n\n.hwped-quote {\n background: var(--_hwped-fill);\n border-radius: var(--hwped-radius);\n padding: 8px 10px;\n max-height: 120px;\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.hwped-hint,\n.hwped-empty {\n color: var(--hwped-muted);\n}\n\n.hwped-empty {\n margin: auto;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n}\n\n/* An error is a band in the kind's tint with a leading bar, not bare red text. */\n.hwped-error {\n color: var(--hwped-error);\n margin: 0;\n padding: 8px 12px;\n background: color-mix(in srgb, var(--hwped-error) 9%, var(--hwped-bg));\n border-bottom: 1px solid var(--_hwped-hairline);\n box-shadow: inset 3px 0 0 currentColor;\n}\n\n.hwped-error-kind {\n display: inline-block;\n margin-right: 8px;\n padding: 0 8px;\n border-radius: 999px;\n background: color-mix(in srgb, currentColor 14%, transparent);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.02em;\n}\n\n/* timeout is transient (retry may succeed); unavailable/protected are not. */\n.hwped-error-timeout {\n color: var(--hwped-warning);\n background: color-mix(in srgb, var(--hwped-warning) 10%, var(--hwped-bg));\n}\n\n/* ---- page canvas ---- */\n\n/* Paper on the desk: layered shadow, the larger layer giving it thickness. */\n.hwped-page {\n position: relative;\n width: min(100%, 720px);\n border-radius: 3px;\n box-shadow:\n 0 0 0 1px color-mix(in srgb, var(--hwped-fg) 8%, transparent),\n 0 1px 2px rgba(0, 0, 0, 0.08),\n 0 8px 24px rgba(0, 0, 0, 0.12);\n background: #ffffff;\n cursor: text;\n}\n\n.hwped-page:focus-visible {\n outline: 2px solid var(--hwped-accent);\n outline-offset: 3px;\n}\n\n.hwped-page-img {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.hwped-band {\n position: absolute;\n left: 0;\n right: 0;\n pointer-events: none;\n transition: background-color var(--_hwped-quick);\n}\n\n/* Mark the selection without covering it: a light wash and an inset rule. */\n.hwped-band-selected {\n background: color-mix(in srgb, var(--hwped-accent) 9%, transparent);\n box-shadow:\n inset 3px 0 0 var(--hwped-accent),\n inset 0 0 0 1px color-mix(in srgb, var(--hwped-accent) 45%, transparent);\n}\n\n.hwped-band-pending {\n background: color-mix(in srgb, var(--hwped-accent) 6%, transparent);\n box-shadow: inset 3px 0 0 color-mix(in srgb, var(--hwped-accent) 45%, transparent);\n}\n\n/* ---- table grid ---- */\n\n.hwped-grid {\n border-collapse: collapse;\n width: 100%;\n}\n\n.hwped-grid td {\n border: 1px solid var(--hwped-border);\n padding: 0;\n}\n\n.hwped-cell {\n font: inherit;\n display: block;\n width: 100%;\n border: none;\n background: none;\n color: var(--hwped-fg);\n padding: 5px 8px;\n text-align: left;\n cursor: pointer;\n min-height: 28px;\n transition: background-color var(--_hwped-quick);\n}\n\n.hwped-cell:hover {\n background: var(--_hwped-hover);\n}\n\n.hwped-cell:active {\n background: var(--_hwped-press);\n}\n\n.hwped-cell-selected {\n outline: 2px solid var(--hwped-accent);\n outline-offset: -2px;\n}\n\n.hwped-cell-anchor {\n background: color-mix(in srgb, var(--hwped-accent) 14%, transparent);\n}\n\n/* ---- fields ---- */\n\n.hwped-fields {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.hwped-field-item {\n border-bottom: 1px solid var(--_hwped-hairline);\n padding-bottom: 10px;\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n/* ---- compose dialog ---- */\n\n/* Dim to focus: a modal task gets a scrim that pushes the editor back. */\n.hwped-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.32);\n backdrop-filter: blur(6px) saturate(120%);\n -webkit-backdrop-filter: blur(6px) saturate(120%);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n animation: hwped-fade-in 160ms ease-out;\n}\n\n.hwped-dialog {\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n border: 1px solid var(--_hwped-hairline);\n border-radius: calc(var(--hwped-radius) * 2);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.12),\n 0 24px 64px rgba(0, 0, 0, 0.28);\n width: min(560px, calc(100vw - 32px));\n max-height: calc(100vh - 64px);\n overflow: auto;\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 14px;\n animation: hwped-materialize 200ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n\n.hwped-dialog-title {\n margin: 0;\n font-size: 17px;\n font-weight: 600;\n line-height: 1.3;\n letter-spacing: -0.015em;\n}\n\n.hwped-presets {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.hwped-preset {\n font: inherit;\n font-weight: 500;\n border: 1px solid var(--hwped-border);\n border-radius: 999px;\n background: var(--hwped-bg);\n color: var(--hwped-fg);\n min-height: 28px;\n padding: 3px 12px;\n cursor: pointer;\n transition:\n background-color var(--_hwped-quick),\n border-color var(--_hwped-quick),\n transform var(--_hwped-quick);\n}\n\n.hwped-preset:hover:not(.hwped-preset-active) {\n background: var(--_hwped-hover);\n}\n\n.hwped-preset:active {\n transform: scale(0.97);\n}\n\n.hwped-preset-active {\n border-color: var(--hwped-accent);\n background: color-mix(in srgb, var(--hwped-accent) 12%, var(--hwped-bg));\n color: var(--hwped-accent);\n font-weight: 600;\n}\n\n.hwped-dialog-actions {\n justify-content: flex-end;\n padding-top: 4px;\n}\n\n@keyframes hwped-fade-in {\n from {\n opacity: 0;\n }\n}\n\n/* Materialize, don't just fade: the surface arrives with a slight scale. */\n@keyframes hwped-materialize {\n from {\n opacity: 0;\n transform: scale(0.98);\n }\n}\n\n/* ---- accessibility preferences ---- */\n\n@media (prefers-reduced-motion: reduce) {\n .hwped *,\n .hwped *::before,\n .hwped *::after {\n transition-duration: 0ms !important;\n }\n\n .hwped-btn:active:not(:disabled),\n .hwped-tab:active,\n .hwped-preset:active {\n transform: none;\n }\n\n .hwped-overlay,\n .hwped-dialog {\n animation: none;\n }\n}\n\n@media (prefers-reduced-transparency: reduce) {\n .hwped-overlay {\n background: rgba(0, 0, 0, 0.55);\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n }\n}\n\n@media (prefers-contrast: more) {\n .hwped {\n --_hwped-hairline: var(--hwped-fg);\n }\n\n .hwped-btn,\n .hwped-input,\n .hwped-textarea,\n .hwped-preset,\n .hwped-grid td {\n border-color: var(--hwped-fg);\n }\n\n .hwped-tabs {\n box-shadow: inset 0 0 0 1px var(--hwped-fg);\n }\n}\n\n/* A band estimated from Markdown length: the host published no row geometry. */\n.hwped-band-approximate {\n border-style: dashed;\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -327,7 +327,7 @@ declare const en: {
|
|
|
327
327
|
"segment.runSelectionParagraphs": (p: {
|
|
328
328
|
count: number;
|
|
329
329
|
}) => string;
|
|
330
|
-
"segment.
|
|
330
|
+
"segment.runSelectionGestures": string;
|
|
331
331
|
"segment.noParagraphSelection": string;
|
|
332
332
|
"segment.cellSelectionRefused": string;
|
|
333
333
|
"segment.tableSelectionRefused": string;
|
|
@@ -336,6 +336,8 @@ declare const en: {
|
|
|
336
336
|
"segment.clickRefusedTable": string;
|
|
337
337
|
"segment.clickRefusedContainer": string;
|
|
338
338
|
"segment.clickRefusedUnaddressable": string;
|
|
339
|
+
"segment.clickRefusedUnaddressableRuns": string;
|
|
340
|
+
"segment.clickRefusedNoRuns": string;
|
|
339
341
|
"segment.selectSimilar": string;
|
|
340
342
|
"segment.similarChar": string;
|
|
341
343
|
"segment.similarPara": string;
|
|
@@ -508,6 +510,7 @@ declare const en: {
|
|
|
508
510
|
"error.staleCompose": string;
|
|
509
511
|
"error.stalePreview": string;
|
|
510
512
|
"error.unmatchedReplace": string;
|
|
513
|
+
"error.unresolvableAddress": string;
|
|
511
514
|
"error.runRangeConflict": string;
|
|
512
515
|
"error.rangeTagRefused": string;
|
|
513
516
|
"error.stoppedWithoutDiagnostic": string;
|
|
@@ -757,7 +760,7 @@ interface HwpEditorHandle {
|
|
|
757
760
|
declare const HwpEditor: react.ForwardRefExoticComponent<HwpEditorProps & react.RefAttributes<HwpEditorHandle>>;
|
|
758
761
|
|
|
759
762
|
/**
|
|
760
|
-
* Multi-page scroll of rendered pages.
|
|
763
|
+
* Multi-page scroll of rendered pages. Every page renders as an image;
|
|
761
764
|
* raster formats fall back to <img>. Clicks resolve to the nearest segment
|
|
762
765
|
* (using layout rows, with a flow-model fallback for older hosts), and selected/pending
|
|
763
766
|
* segments are highlighted with overlay bands.
|
|
@@ -1071,11 +1074,15 @@ declare function componentRefusalText(error: unknown, t: TFunction): string | nu
|
|
|
1071
1074
|
declare function componentFailure(error: unknown, t: TFunction): unknown;
|
|
1072
1075
|
|
|
1073
1076
|
/**
|
|
1074
|
-
* Minimal SVG
|
|
1075
|
-
*
|
|
1076
|
-
* get script/foreignObject/event-handler removal for free.
|
|
1077
|
+
* Minimal SVG cleanup that removes script, foreignObject and event-handler
|
|
1078
|
+
* attributes. Returns "" when the payload does not parse as XML.
|
|
1077
1079
|
*
|
|
1078
|
-
*
|
|
1080
|
+
* @deprecated Not a security boundary: a blocklist cannot make SVG safe to
|
|
1081
|
+
* insert into HTML, and its output must not be inserted into the DOM as
|
|
1082
|
+
* markup (innerHTML, dangerouslySetInnerHTML). Render an SVG page as an image
|
|
1083
|
+
* instead, e.g. `<img src="data:image/svg+xml;base64,...">`, which is what the
|
|
1084
|
+
* editor's page view does. Kept exported for API compatibility only; it is
|
|
1085
|
+
* unused by this package and will be removed in 2.0.
|
|
1079
1086
|
*/
|
|
1080
1087
|
declare function sanitizeSvg(svgText: string): string;
|
|
1081
1088
|
|
package/dist/index.d.ts
CHANGED
|
@@ -327,7 +327,7 @@ declare const en: {
|
|
|
327
327
|
"segment.runSelectionParagraphs": (p: {
|
|
328
328
|
count: number;
|
|
329
329
|
}) => string;
|
|
330
|
-
"segment.
|
|
330
|
+
"segment.runSelectionGestures": string;
|
|
331
331
|
"segment.noParagraphSelection": string;
|
|
332
332
|
"segment.cellSelectionRefused": string;
|
|
333
333
|
"segment.tableSelectionRefused": string;
|
|
@@ -336,6 +336,8 @@ declare const en: {
|
|
|
336
336
|
"segment.clickRefusedTable": string;
|
|
337
337
|
"segment.clickRefusedContainer": string;
|
|
338
338
|
"segment.clickRefusedUnaddressable": string;
|
|
339
|
+
"segment.clickRefusedUnaddressableRuns": string;
|
|
340
|
+
"segment.clickRefusedNoRuns": string;
|
|
339
341
|
"segment.selectSimilar": string;
|
|
340
342
|
"segment.similarChar": string;
|
|
341
343
|
"segment.similarPara": string;
|
|
@@ -508,6 +510,7 @@ declare const en: {
|
|
|
508
510
|
"error.staleCompose": string;
|
|
509
511
|
"error.stalePreview": string;
|
|
510
512
|
"error.unmatchedReplace": string;
|
|
513
|
+
"error.unresolvableAddress": string;
|
|
511
514
|
"error.runRangeConflict": string;
|
|
512
515
|
"error.rangeTagRefused": string;
|
|
513
516
|
"error.stoppedWithoutDiagnostic": string;
|
|
@@ -757,7 +760,7 @@ interface HwpEditorHandle {
|
|
|
757
760
|
declare const HwpEditor: react.ForwardRefExoticComponent<HwpEditorProps & react.RefAttributes<HwpEditorHandle>>;
|
|
758
761
|
|
|
759
762
|
/**
|
|
760
|
-
* Multi-page scroll of rendered pages.
|
|
763
|
+
* Multi-page scroll of rendered pages. Every page renders as an image;
|
|
761
764
|
* raster formats fall back to <img>. Clicks resolve to the nearest segment
|
|
762
765
|
* (using layout rows, with a flow-model fallback for older hosts), and selected/pending
|
|
763
766
|
* segments are highlighted with overlay bands.
|
|
@@ -1071,11 +1074,15 @@ declare function componentRefusalText(error: unknown, t: TFunction): string | nu
|
|
|
1071
1074
|
declare function componentFailure(error: unknown, t: TFunction): unknown;
|
|
1072
1075
|
|
|
1073
1076
|
/**
|
|
1074
|
-
* Minimal SVG
|
|
1075
|
-
*
|
|
1076
|
-
* get script/foreignObject/event-handler removal for free.
|
|
1077
|
+
* Minimal SVG cleanup that removes script, foreignObject and event-handler
|
|
1078
|
+
* attributes. Returns "" when the payload does not parse as XML.
|
|
1077
1079
|
*
|
|
1078
|
-
*
|
|
1080
|
+
* @deprecated Not a security boundary: a blocklist cannot make SVG safe to
|
|
1081
|
+
* insert into HTML, and its output must not be inserted into the DOM as
|
|
1082
|
+
* markup (innerHTML, dangerouslySetInnerHTML). Render an SVG page as an image
|
|
1083
|
+
* instead, e.g. `<img src="data:image/svg+xml;base64,...">`, which is what the
|
|
1084
|
+
* editor's page view does. Kept exported for API compatibility only; it is
|
|
1085
|
+
* unused by this package and will be removed in 2.0.
|
|
1079
1086
|
*/
|
|
1080
1087
|
declare function sanitizeSvg(svgText: string): string;
|
|
1081
1088
|
|