@bambamboole/pdf-ua-template-builder 0.1.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/LICENSE +21 -0
- package/README.md +100 -0
- package/dist/api/pdfUaApi.d.ts +10 -0
- package/dist/builder/TemplateBuilder.d.ts +29 -0
- package/dist/builder/blocks/BlockPalette.d.ts +5 -0
- package/dist/builder/blocks/blockChrome.d.ts +7 -0
- package/dist/builder/canvas/BlockCardPreview.d.ts +6 -0
- package/dist/builder/canvas/BuilderCanvas.d.ts +17 -0
- package/dist/builder/canvas/ColumnResizer.d.ts +9 -0
- package/dist/builder/canvas/PageSheet.d.ts +8 -0
- package/dist/builder/canvas/SortableBlock.d.ts +14 -0
- package/dist/builder/canvas/columns.d.ts +4 -0
- package/dist/builder/forms/InlineBlockForm.d.ts +9 -0
- package/dist/builder/lib/displayScale.d.ts +1 -0
- package/dist/builder/lib/pageSizes.d.ts +3 -0
- package/dist/builder/pdf/PdfPane.d.ts +8 -0
- package/dist/builder/schema/invoiceExample.d.ts +8 -0
- package/dist/builder/schema/schemaAdapter.d.ts +13 -0
- package/dist/builder/state/editorModel.d.ts +36 -0
- package/dist/builder/topbar/BuilderTopbar.d.ts +17 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +5272 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +1 -0
- package/dist/types/template.d.ts +33 -0
- package/package.json +89 -0
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--bg: #fafaf9;--surface: #ffffff;--surface-2: #f4f4f3;--surface-sunk: #eeeeec;--border: #eaeaea;--border-strong: #d4d4d2;--border-focus: #4f46e5;--ink: #1a1a1a;--ink-muted: #6b6b6b;--ink-subtle: #9a9a98;--accent: #2e2e2e;--accent-ink: #ffffff;--accent-hover: #0a0a0a;--indigo: #4f46e5;--indigo-soft: #eef0ff;--danger: #b42318;--danger-soft: #fff4f2;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs: 11px;--text-sm: 12px;--text-base: 14px;--text-md: 15px;--text-lg: 17px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-sm: 4px;--radius: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-page: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 24px -12px rgba(0, 0, 0, .1);--shadow-drag: 0 12px 24px -8px rgba(0, 0, 0, .18);--shadow-pop: 0 4px 12px -4px rgba(0, 0, 0, .12);--ease: cubic-bezier(.2, .8, .2, 1);--dur-fast: .12s;--dur: .2s;--dur-slow: .28s;color:var(--ink);background:var(--bg);font-family:var(--font-sans);font-size:var(--text-base);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--indigo);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.template-builder-page{display:grid;min-height:100vh;grid-template-columns:minmax(40rem,1.55fr) minmax(28rem,.95fr);background:var(--bg);color:var(--ink)}.template-builder-page__authoring{display:grid;min-width:0;min-height:100vh;grid-template-columns:220px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);border-right:1px solid var(--border);background:var(--bg)}.builder-topbar{display:flex;grid-column:1 / -1;min-width:0;align-items:center;gap:var(--space-3);height:56px;border-bottom:1px solid var(--border);background:var(--surface);padding:0 var(--space-4)}.builder-topbar__brand{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:600;color:var(--ink);letter-spacing:-.01em;white-space:nowrap}.builder-topbar__brand-mark{display:inline-grid;width:22px;height:22px;place-items:center;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:600;letter-spacing:0}.builder-topbar__brand-sub{color:var(--ink-muted);font-size:var(--text-md);font-weight:500}.builder-topbar__spacer{flex:1 1 auto}.builder-topbar__group{display:flex;align-items:center;gap:var(--space-2)}.builder-topbar__settings{position:relative}.builder-topbar__settings-panel{position:absolute;top:calc(100% + var(--space-2));right:0;display:grid;width:320px;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-pop);padding:var(--space-3);z-index:10}.builder-topbar__settings-panel label{display:grid;gap:var(--space-1);color:var(--ink-muted);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.builder-input,.builder-select{height:32px;min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink);padding:0 var(--space-3);transition:border-color var(--dur-fast) var(--ease)}.builder-input:hover,.builder-select:hover{border-color:var(--border-strong)}.builder-input:focus-visible,.builder-select:focus-visible{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #4f46e52e}.builder-select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-muted) 50%),linear-gradient(135deg,var(--ink-muted) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:26px}.builder-button{display:inline-flex;height:32px;align-items:center;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer;font-weight:500;padding:0 var(--space-3);white-space:nowrap;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.builder-button:hover{background:var(--surface-2);border-color:var(--border-strong)}.builder-button:disabled{color:var(--ink-subtle);background:var(--surface);cursor:not-allowed}.builder-button--primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:600}.builder-button--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.builder-button--primary:disabled{border-color:var(--border-strong);background:var(--surface-2);color:var(--ink-subtle)}.builder-button--ghost{border-color:transparent;background:transparent}.builder-button--ghost:hover{background:var(--surface-2);border-color:var(--border)}.builder-button--icon{width:32px;padding:0;justify-content:center}.builder-button--danger{color:var(--danger)}.builder-button--danger:hover{background:var(--danger-soft);border-color:var(--danger)}.builder-palette{grid-column:1;grid-row:2;display:flex;min-width:0;min-height:0;flex-direction:column;gap:var(--space-5);overflow:auto;border-right:1px solid var(--border);background:var(--surface);padding:var(--space-4)}.builder-palette__section-title{margin:0 0 var(--space-2);color:var(--ink-subtle);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.builder-palette__list{display:grid;gap:var(--space-1)}.builder-palette__item{display:flex;width:100%;align-items:center;gap:var(--space-3);border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--ink);cursor:grab;font-size:var(--text-sm);font-weight:500;padding:var(--space-2) var(--space-2);text-align:left;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.builder-palette__item:hover{background:var(--surface-2);border-color:var(--border)}.builder-palette__item:active{cursor:grabbing;background:var(--surface-2);transform:scale(.98)}.builder-palette__settings{display:grid;gap:var(--space-3)}.builder-palette__field{display:grid;gap:var(--space-1);color:var(--ink-muted);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.builder-chip{display:inline-grid;width:22px;height:22px;flex:0 0 22px;place-items:center;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;font-weight:600}.builder-canvas{grid-column:2;grid-row:2;min-width:0;min-height:0;overflow:auto;background:var(--surface-sunk);padding:var(--space-5) var(--space-4) var(--space-6)}.builder-canvas__empty{display:grid;height:100%;place-items:center;color:var(--ink-muted);font-size:var(--text-sm)}.builder-page-sheet{display:grid;width:100%;max-width:var(--page-width, 794px);margin:0 auto;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-page);padding:var(--space-5);transition:max-width var(--dur) var(--ease)}.builder-canvas__area{display:grid;gap:var(--space-3)}.builder-footer-section{display:grid;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px dashed var(--border)}.builder-footer-section__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.builder-footer-section__title{margin:0;color:var(--ink-subtle);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.builder-footer-section__hint{margin:2px 0 0;color:var(--ink-subtle);font-size:var(--text-xs)}.builder-footer-section__repeat{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:var(--text-sm);font-weight:500}.builder-footer-section__repeat input{width:14px;height:14px;accent-color:var(--indigo)}.builder-footer-section__page-numbers{display:flex;justify-content:center;margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px dashed var(--border)}.builder-footer-section__page-numbers label{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--ink-muted);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.builder-footer-section__page-numbers select{text-transform:none;font-size:var(--text-sm);font-weight:400;letter-spacing:0}.builder-page-sheet__meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);color:var(--ink-subtle);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em}.builder-row{display:grid;min-width:0;gap:var(--space-2);border-radius:var(--radius-md);transition:background var(--dur-fast) var(--ease)}.builder-row.is-dragging{opacity:.5}.builder-row__header{display:flex;align-items:center;gap:var(--space-2);height:22px;margin-bottom:-2px;opacity:0;transition:opacity var(--dur-fast) var(--ease)}.builder-row:hover .builder-row__header,.builder-row__header:focus-within{opacity:1}.builder-row__handle{display:inline-flex;align-items:center;height:22px;border:0;background:transparent;color:var(--ink-subtle);cursor:grab;font-family:var(--font-mono);font-size:var(--text-xs);padding:0 var(--space-2)}.builder-row__handle:hover{color:var(--ink)}.builder-row__grid{position:relative;display:grid;min-width:0;align-items:stretch;gap:var(--space-2)}.builder-card{display:grid;min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.builder-card:hover{border-color:var(--border-strong)}.builder-card.is-dragging{opacity:.45;border-style:dashed}.builder-card.is-expanded{border-color:var(--ink-subtle)}.builder-card.is-landing{box-shadow:0 0 0 2px var(--indigo-soft);animation:builder-card-land var(--dur-slow) var(--ease)}@keyframes builder-card-land{0%{box-shadow:0 0 #4f46e500}40%{box-shadow:0 0 0 4px #4f46e540}to{box-shadow:0 0 #4f46e500}}.builder-card__header{display:flex;align-items:center;gap:var(--space-2);min-height:40px;background:var(--surface);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-1);cursor:pointer}.builder-card__handle{display:inline-grid;width:20px;height:28px;flex:0 0 20px;place-items:center;border:0;background:transparent;color:var(--ink-subtle);cursor:grab;font-family:var(--font-mono);font-size:12px;opacity:0;padding:0;transition:opacity var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.builder-card:hover .builder-card__handle,.builder-card__handle:focus-visible,.builder-card.is-dragging .builder-card__handle{opacity:1}.builder-card__handle:hover{color:var(--ink)}.builder-card__handle:active{cursor:grabbing}.builder-card__title{display:flex;min-width:0;flex:1 1 auto;align-items:baseline;gap:var(--space-2)}.builder-card__label{color:var(--ink);font-size:var(--text-sm);font-weight:500;white-space:nowrap}.builder-card__summary{color:var(--ink-muted);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.builder-card__actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--space-1);opacity:0;transition:opacity var(--dur-fast) var(--ease)}.builder-card:hover .builder-card__actions,.builder-card__actions:focus-within{opacity:1}.builder-card.is-expanded .builder-card__actions{opacity:1}.builder-card__icon-button{display:inline-grid;width:24px;height:24px;place-items:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);cursor:pointer;font-size:14px;padding:0;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.builder-card__icon-button:hover{background:var(--surface-2);color:var(--ink)}.builder-card__icon-button--danger:hover{background:var(--danger-soft);color:var(--danger)}.builder-card__form{border-top:1px solid var(--border);background:var(--surface);padding:var(--space-4);animation:builder-card-fade-in var(--dur-fast) var(--ease)}.builder-card__warning{margin:0;color:var(--ink-muted);font-size:var(--text-sm)}.builder-card__warning code{background:var(--surface-2);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);padding:1px 6px}@keyframes builder-card-fade-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.builder-new-row{display:grid;min-height:40px;place-items:center;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:transparent;color:var(--ink-subtle);font-size:var(--text-sm);padding:var(--space-3);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.builder-new-row.is-over{border-color:var(--indigo);background:var(--indigo-soft);color:var(--indigo)}.builder-drop-line{height:2px;margin:-1px 0;border-radius:999px;background:var(--indigo);box-shadow:0 0 0 4px #4f46e51f}.column-resizer,.builder-column-resizer{width:6px;min-height:100%;align-self:stretch;border:0;border-radius:999px;background:transparent;cursor:col-resize;padding:0;transition:background var(--dur-fast) var(--ease)}.column-resizer:before,.builder-column-resizer:before{display:block;width:2px;height:100%;margin:0 auto;border-radius:999px;background:var(--border-strong);content:"";transition:background var(--dur-fast) var(--ease)}.column-resizer:hover:before,.builder-column-resizer:hover:before{background:var(--indigo)}.inline-block-form{display:grid;gap:var(--space-3)}.inline-block-form label{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:var(--space-3);color:var(--ink-muted);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.inline-block-form>label>input,.inline-block-form>label>select,.inline-block-form>label>textarea{width:100%;min-width:0;min-height:32px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:var(--text-base);font-weight:400;letter-spacing:0;text-transform:none;padding:var(--space-2) var(--space-3);transition:border-color var(--dur-fast) var(--ease)}.inline-block-form>label>textarea{min-height:96px;font-family:var(--font-mono);font-size:var(--text-sm)}.inline-block-form>label>input:hover,.inline-block-form>label>select:hover,.inline-block-form>label>textarea:hover{border-color:var(--border-strong)}.inline-block-form>label>input:focus-visible,.inline-block-form>label>select:focus-visible,.inline-block-form>label>textarea:focus-visible{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #4f46e52e}.inline-block-form>label>select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-muted) 50%),linear-gradient(135deg,var(--ink-muted) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}.inline-block-form .builder-field--checkbox{grid-template-columns:110px max-content;gap:var(--space-2)}.builder-array-field{display:grid;grid-column:1 / -1;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:var(--space-3)}.builder-array-field>legend{padding:0 var(--space-2);color:var(--ink-muted);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.builder-array-field__item{display:grid;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:var(--space-3)}.builder-array-field__item button{width:fit-content;height:28px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink-muted);cursor:pointer;font-size:var(--text-xs);padding:0 var(--space-3)}.builder-array-field__add{width:fit-content;height:28px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:transparent;color:var(--ink-muted);cursor:pointer;font-size:var(--text-xs);padding:0 var(--space-3)}.builder-array-field__add:hover{border-color:var(--indigo);color:var(--indigo)}.pdf-pane{display:grid;min-width:0;min-height:100vh;grid-template-rows:56px auto minmax(0,1fr) auto;background:var(--surface-sunk)}.pdf-pane__header{grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border-bottom:1px solid var(--border);background:var(--surface);padding:0 var(--space-4)}.pdf-pane__header h2{margin:0;color:var(--ink);font-size:var(--text-md);font-weight:600;letter-spacing:-.01em}.pdf-pane__status-pill{display:inline-flex;align-items:center;gap:var(--space-2);border-radius:999px;background:var(--surface-2);color:var(--ink-muted);font-size:var(--text-xs);font-weight:500;padding:4px var(--space-3)}.pdf-pane__status-pill:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor;opacity:.6}.pdf-pane__status-pill[data-status=ready]{color:#1f7a3a;background:#e6f4ec}.pdf-pane__status-pill[data-status=rendering]{color:var(--indigo);background:var(--indigo-soft)}.pdf-pane__body{grid-row:3;display:grid;min-height:0;padding:var(--space-4)}.pdf-pane__object{width:100%;height:100%;min-height:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-page)}.pdf-pane__empty{display:grid;height:100%;place-items:center;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-muted);font-size:var(--text-sm);padding:var(--space-5);text-align:center}.pdf-pane__error{grid-row:2;margin:var(--space-3) var(--space-4) 0;border-left:3px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:var(--text-sm);padding:var(--space-3) var(--space-3)}.pdf-pane__footer{grid-row:4;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border-top:1px solid var(--border);background:var(--surface);padding:var(--space-3) var(--space-4)}.builder-drag-overlay{cursor:grabbing;filter:drop-shadow(0 12px 24px rgba(0,0,0,.18));transform:rotate(1.5deg) scale(1.02);transform-origin:0 0;pointer-events:none}.builder-drag-overlay__card{display:inline-flex;min-width:180px;max-width:360px;align-items:center;gap:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm);font-weight:500;padding:var(--space-2) var(--space-3)}@media(max-width:1080px){.template-builder-page{grid-template-columns:1fr}.template-builder-page__authoring,.pdf-pane{min-height:auto}.pdf-pane__object,.pdf-pane__empty{height:34rem}}@media(max-width:760px){.template-builder-page__authoring{grid-template-columns:1fr}.builder-palette{grid-column:1;grid-row:auto;border-right:0;border-bottom:1px solid var(--border)}.builder-canvas{grid-column:1;grid-row:auto}.builder-palette__list{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.inline-block-form label{grid-template-columns:1fr;gap:var(--space-1)}}@media(max-width:480px){.builder-row__grid{grid-template-columns:1fr!important}.column-resizer,.builder-column-resizer{display:none}}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type { Template } from './generated/template';
|
|
2
|
+
export type JsonObject = Record<string, unknown>;
|
|
3
|
+
export type TemplateData = Record<string, unknown>;
|
|
4
|
+
export interface RenderOptions {
|
|
5
|
+
title?: string;
|
|
6
|
+
baseUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface TemplatePageFormat {
|
|
9
|
+
name: string;
|
|
10
|
+
widthMm: number;
|
|
11
|
+
heightMm: number;
|
|
12
|
+
}
|
|
13
|
+
export interface TemplateSchemaMetadata {
|
|
14
|
+
kind: "template";
|
|
15
|
+
templateVersion: number;
|
|
16
|
+
renderEndpoint: string;
|
|
17
|
+
templateFields: string[];
|
|
18
|
+
attachmentFields: string[];
|
|
19
|
+
externalFontFields: string[];
|
|
20
|
+
bundledFonts: string[];
|
|
21
|
+
blockOrder: string[];
|
|
22
|
+
pageFormats: TemplatePageFormat[];
|
|
23
|
+
}
|
|
24
|
+
export interface TemplateSchemaResponse {
|
|
25
|
+
$schema?: string;
|
|
26
|
+
$id?: string;
|
|
27
|
+
title?: string;
|
|
28
|
+
type?: string;
|
|
29
|
+
properties?: JsonObject;
|
|
30
|
+
$defs?: JsonObject;
|
|
31
|
+
"x-pdfUa": TemplateSchemaMetadata;
|
|
32
|
+
}
|
|
33
|
+
export declare function getTemplateSchemaMetadata(schema: TemplateSchemaResponse): TemplateSchemaMetadata;
|
package/package.json
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bambamboole/pdf-ua-template-builder",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Embeddable React template builder for the pdf-ua-api PDF/UA renderer.",
|
|
6
|
+
"author": "Manuel Christlieb",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"sideEffects": [
|
|
10
|
+
"**/*.css"
|
|
11
|
+
],
|
|
12
|
+
"main": "./dist/index.js",
|
|
13
|
+
"module": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"import": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./style.css": "./dist/style.css"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"README.md",
|
|
25
|
+
"LICENSE"
|
|
26
|
+
],
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "git+https://github.com/bambamboole/pdf-ua-template-builder.git"
|
|
30
|
+
},
|
|
31
|
+
"homepage": "https://github.com/bambamboole/pdf-ua-template-builder#readme",
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/bambamboole/pdf-ua-template-builder/issues"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"pdf",
|
|
37
|
+
"pdf-ua",
|
|
38
|
+
"pdfua",
|
|
39
|
+
"accessibility",
|
|
40
|
+
"template",
|
|
41
|
+
"builder",
|
|
42
|
+
"react",
|
|
43
|
+
"drag-and-drop",
|
|
44
|
+
"wysiwyg"
|
|
45
|
+
],
|
|
46
|
+
"scripts": {
|
|
47
|
+
"dev": "vite",
|
|
48
|
+
"build": "tsc --noEmit && vite build --mode lib",
|
|
49
|
+
"build:app": "tsc --noEmit && vite build",
|
|
50
|
+
"preview": "vite preview",
|
|
51
|
+
"sync:schema": "curl -fsS ${PDF_UA_SCHEMA_URL:-http://localhost:8080/schema} -o schemas/template.schema.json",
|
|
52
|
+
"generate:types": "json2ts --input schemas/template.schema.json --output src/types/generated/template.d.ts --unreachableDefinitions",
|
|
53
|
+
"typecheck": "tsc --noEmit",
|
|
54
|
+
"lint": "oxlint",
|
|
55
|
+
"lint:fix": "oxlint --fix",
|
|
56
|
+
"lint:github": "oxlint --format=github",
|
|
57
|
+
"fmt": "oxfmt",
|
|
58
|
+
"fmt:check": "oxfmt --check",
|
|
59
|
+
"test": "vitest run",
|
|
60
|
+
"prepublishOnly": "npm run build"
|
|
61
|
+
},
|
|
62
|
+
"peerDependencies": {
|
|
63
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
64
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
65
|
+
},
|
|
66
|
+
"dependencies": {
|
|
67
|
+
"@dnd-kit/core": "^6.3.1",
|
|
68
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
69
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
70
|
+
"@rjsf/core": "^6.5.3",
|
|
71
|
+
"@rjsf/utils": "^6.5.3",
|
|
72
|
+
"@rjsf/validator-ajv8": "^6.5.3",
|
|
73
|
+
"ajv": "^8.20.0"
|
|
74
|
+
},
|
|
75
|
+
"devDependencies": {
|
|
76
|
+
"@types/react": "^19.2.15",
|
|
77
|
+
"@types/react-dom": "^19.2.3",
|
|
78
|
+
"@vitejs/plugin-react": "^5.0.0",
|
|
79
|
+
"json-schema-to-typescript": "^15.0.4",
|
|
80
|
+
"oxfmt": "^0.51.0",
|
|
81
|
+
"oxlint": "^1.66.0",
|
|
82
|
+
"react": "^19.0.0",
|
|
83
|
+
"react-dom": "^19.0.0",
|
|
84
|
+
"typescript": "^5.9.3",
|
|
85
|
+
"vite": "^7.0.0",
|
|
86
|
+
"vite-plugin-dts": "^5.0.1",
|
|
87
|
+
"vitest": "^4.1.7"
|
|
88
|
+
}
|
|
89
|
+
}
|