@openpresentation/opf 0.14.0 → 0.15.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/README.md +24 -38
- package/dist/catalog-refs-BSfGELpt.d.ts +128 -0
- package/dist/catalog-schemas-CinPh5WA.d.ts +12 -0
- package/dist/catalog.d.ts +91 -0
- package/dist/{chunk-XOZ4KMSR.js → catalog.js} +16514 -8800
- package/dist/{chart-data-B_3z9VTb.d.ts → chart-data-BnNqgnC-.d.ts} +1 -1
- package/dist/{chunk-LS2FMPI5.js → chunk-2CJPC4HI.js} +760 -851
- package/dist/{chunk-4VJDTF55.js → chunk-374R35TJ.js} +1 -1
- package/dist/{chunk-UPQQD7MA.js → chunk-3JG4YXWF.js} +7 -5
- package/dist/{chunk-4LDGKLUC.js → chunk-3RKB4RDJ.js} +1 -1
- package/dist/{chunk-BFLVSVA7.js → chunk-5FTUIDUH.js} +1 -1
- package/dist/{chunk-D3TY4TT6.js → chunk-HXHOZ7AH.js} +1407 -154
- package/dist/{chunk-6OXY2CP3.js → chunk-O744SXXA.js} +319 -162
- package/dist/{chunk-JDJBDYSR.js → chunk-QDI75P2M.js} +194 -846
- package/dist/chunk-SPFV27O5.js +210 -0
- package/dist/chunk-TRDXRRQK.js +17 -0
- package/dist/{chunk-Z65B2B77.js → chunk-TWQJLI6E.js} +2 -2
- package/dist/{chunk-Q2TCMN56.js → chunk-U4J75TRG.js} +1 -1
- package/dist/{chunk-XIZUK2XM.js → chunk-UBFJ2QHH.js} +5 -3
- package/dist/{chunk-CSQHPVGL.js → chunk-VGAOJEY7.js} +1 -1
- package/dist/{chunk-5ZU6JAPP.js → chunk-ZPU46TFA.js} +1 -1
- package/dist/{composition-_WEwBe2a.d.ts → composition-D2tghM82.d.ts} +233 -108
- package/dist/composition.d.ts +3 -2
- package/dist/composition.js +2 -2
- package/dist/convert.d.ts +14 -17
- package/dist/convert.js +36 -39
- package/dist/data.d.ts +1 -1
- package/dist/data.js +3 -3
- package/dist/diff.d.ts +1 -1
- package/dist/diff.js +7 -7
- package/dist/docs.js +29 -29
- package/dist/examples.d.ts +1 -1
- package/dist/examples.js +48431 -3697
- package/dist/{finding-C_por275.d.ts → finding-CT_f_vbD.d.ts} +2 -2
- package/dist/format.js +2 -2
- package/dist/index.d.ts +225 -76
- package/dist/index.js +341 -258
- package/dist/json-BFSdESOE.d.ts +19 -0
- package/dist/markdown.d.ts +19 -7
- package/dist/markdown.js +9 -9
- package/dist/{pagination-BZpXLvFL.d.ts → pagination-wedbe7eq.d.ts} +31 -31
- package/dist/pagination.d.ts +4 -5
- package/dist/pagination.js +6 -6
- package/dist/patch.d.ts +1 -1
- package/dist/patch.js +6 -6
- package/dist/{presentation-C5eHkevA.d.ts → presentation-CDKQVkyI.d.ts} +382 -550
- package/dist/repo-readme.js +1 -1
- package/dist/schemas.d.ts +284 -1
- package/dist/schemas.js +1 -1
- package/dist/spec/README.md +1 -1
- package/dist/spec/catalogs/font-schemes/angsana-new.json +1 -1
- package/dist/spec/catalogs/font-schemes/aparajita.json +2 -2
- package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +1 -1
- package/dist/spec/catalogs/font-schemes/batang.json +1 -1
- package/dist/spec/catalogs/font-schemes/daunpenh.json +1 -1
- package/dist/spec/catalogs/font-schemes/david.json +1 -1
- package/dist/spec/catalogs/font-schemes/dilleniaupc.json +1 -1
- package/dist/spec/catalogs/font-schemes/fangsong.json +1 -1
- package/dist/spec/catalogs/font-schemes/gautami.json +1 -1
- package/dist/spec/catalogs/font-schemes/gisha.json +2 -2
- package/dist/spec/catalogs/font-schemes/gungsuh.json +1 -1
- package/dist/spec/catalogs/font-schemes/index.json +1 -1
- package/dist/spec/catalogs/font-schemes/kalinga.json +1 -1
- package/dist/spec/catalogs/font-schemes/kartika.json +1 -1
- package/dist/spec/catalogs/font-schemes/khmer-ui.json +1 -1
- package/dist/spec/catalogs/font-schemes/latha.json +1 -1
- package/dist/spec/catalogs/font-schemes/malgun-gothic.json +1 -1
- package/dist/spec/catalogs/font-schemes/mangal.json +3 -3
- package/dist/spec/catalogs/font-schemes/meiryo.json +1 -1
- package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +1 -1
- package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +4 -4
- package/dist/spec/catalogs/font-schemes/mingliu.json +1 -1
- package/dist/spec/catalogs/font-schemes/miriam.json +1 -1
- package/dist/spec/catalogs/font-schemes/ms-mincho.json +1 -1
- package/dist/spec/catalogs/font-schemes/nirmala-ui.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +2 -2
- package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +3 -3
- package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +2 -2
- package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +2 -2
- package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +4 -4
- package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +1 -1
- package/dist/spec/catalogs/font-schemes/noto-sans.json +4 -4
- package/dist/spec/catalogs/font-schemes/nyala.json +1 -1
- package/dist/spec/catalogs/font-schemes/pmingliu.json +1 -1
- package/dist/spec/catalogs/font-schemes/raavi.json +1 -1
- package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +3 -3
- package/dist/spec/catalogs/font-schemes/shonar-bangla.json +2 -2
- package/dist/spec/catalogs/font-schemes/shruti.json +1 -1
- package/dist/spec/catalogs/font-schemes/simsun.json +1 -1
- package/dist/spec/catalogs/font-schemes/sylfaen.json +2 -2
- package/dist/spec/catalogs/font-schemes/traditional-arabic.json +3 -3
- package/dist/spec/catalogs/font-schemes/tunga.json +1 -1
- package/dist/spec/catalogs/font-schemes/vrinda.json +1 -1
- package/dist/spec/catalogs/font-schemes/yu-gothic.json +1 -1
- package/dist/spec/catalogs/layouts/capability-map.json +1 -4
- package/dist/spec/catalogs/layouts/chart-1x-title-center.json +30 -0
- package/dist/spec/catalogs/layouts/chart-2x-title-center.json +36 -0
- package/dist/spec/catalogs/layouts/chart-2x-vertical-title-left.json +37 -0
- package/dist/spec/catalogs/layouts/chart-3x-bottom-vertical-title-left.json +46 -0
- package/dist/spec/catalogs/layouts/chart-3x-left-title-center.json +45 -0
- package/dist/spec/catalogs/layouts/chart-3x-left.json +40 -0
- package/dist/spec/catalogs/layouts/chart-3x-right-title-center.json +45 -0
- package/dist/spec/catalogs/layouts/chart-3x-right.json +40 -0
- package/dist/spec/catalogs/layouts/chart-3x-title-center.json +39 -0
- package/dist/spec/catalogs/layouts/chart-3x-top-vertical-title-left.json +46 -0
- package/dist/spec/catalogs/layouts/competitive-landscape.json +1 -4
- package/dist/spec/catalogs/layouts/customer-journey.json +1 -4
- package/dist/spec/catalogs/layouts/decision-tree.json +1 -4
- package/dist/spec/catalogs/layouts/ecosystem-map.json +1 -4
- package/dist/spec/catalogs/layouts/extract/canonical.json +0 -9
- package/dist/spec/catalogs/layouts/geographic-map.json +1 -4
- package/dist/spec/catalogs/layouts/icon-grid.json +1 -4
- package/dist/spec/catalogs/layouts/image-1x-crop-title-center.json +32 -0
- package/dist/spec/catalogs/layouts/image-1x-crop-title-left.json +32 -0
- package/dist/spec/catalogs/layouts/image-1x-crop.json +27 -0
- package/dist/spec/catalogs/layouts/image-1x-fit-title-center.json +32 -0
- package/dist/spec/catalogs/layouts/image-1x.json +3 -0
- package/dist/spec/catalogs/layouts/image-2x-crop-title-center.json +38 -0
- package/dist/spec/catalogs/layouts/image-2x-crop-vertical-title-left.json +39 -0
- package/dist/spec/catalogs/layouts/image-2x-crop-vertical.json +34 -0
- package/dist/spec/catalogs/layouts/image-2x-crop.json +33 -0
- package/dist/spec/catalogs/layouts/image-2x-fit-title-center.json +38 -0
- package/dist/spec/catalogs/layouts/image-2x-fit-vertical-title-left.json +39 -0
- package/dist/spec/catalogs/layouts/image-2x-fit-vertical.json +34 -0
- package/dist/spec/catalogs/layouts/image-2x.json +3 -0
- package/dist/spec/catalogs/layouts/image-3x-crop-title-center.json +41 -0
- package/dist/spec/catalogs/layouts/image-3x-crop-vertical-title-left.json +42 -0
- package/dist/spec/catalogs/layouts/image-3x-crop-vertical.json +37 -0
- package/dist/spec/catalogs/layouts/image-3x-crop.json +36 -0
- package/dist/spec/catalogs/layouts/image-3x-fit-title-center.json +41 -0
- package/dist/spec/catalogs/layouts/image-3x-fit-vertical-title-left.json +42 -0
- package/dist/spec/catalogs/layouts/image-3x-fit-vertical.json +37 -0
- package/dist/spec/catalogs/layouts/image-3x-fit.json +36 -0
- package/dist/spec/catalogs/layouts/image-3x.json +3 -0
- package/dist/spec/catalogs/layouts/image-focus.json +3 -6
- package/dist/spec/catalogs/layouts/image-only-1x-crop-title-center.json +31 -0
- package/dist/spec/catalogs/layouts/image-only-1x-fit-title-center.json +31 -0
- package/dist/spec/catalogs/layouts/image-only-2x-crop-title-center.json +37 -0
- package/dist/spec/catalogs/layouts/image-only-2x-crop-vertical-title-left.json +38 -0
- package/dist/spec/catalogs/layouts/image-only-2x-crop-vertical.json +33 -0
- package/dist/spec/catalogs/layouts/image-only-2x-fit-title-center.json +37 -0
- package/dist/spec/catalogs/layouts/image-only-2x-fit-vertical-title-left.json +38 -0
- package/dist/spec/catalogs/layouts/image-only-2x-fit-vertical.json +33 -0
- package/dist/spec/catalogs/layouts/image-only-3x-crop-title-center.json +40 -0
- package/dist/spec/catalogs/layouts/image-only-3x-crop-vertical-title-left.json +41 -0
- package/dist/spec/catalogs/layouts/image-only-3x-crop-vertical.json +36 -0
- package/dist/spec/catalogs/layouts/image-only-3x-crop.json +35 -0
- package/dist/spec/catalogs/layouts/image-only-3x-fit-title-center.json +40 -0
- package/dist/spec/catalogs/layouts/image-only-3x-fit-vertical-title-left.json +41 -0
- package/dist/spec/catalogs/layouts/image-only-3x-fit-vertical.json +36 -0
- package/dist/spec/catalogs/layouts/image-only-3x-fit.json +35 -0
- package/dist/spec/catalogs/layouts/index.json +1041 -151
- package/dist/spec/catalogs/layouts/list-1x-box-title-center.json +32 -0
- package/dist/spec/catalogs/layouts/list-1x-box-vertical-title-center.json +33 -0
- package/dist/spec/catalogs/layouts/list-1x-box-vertical-title-left.json +33 -0
- package/dist/spec/catalogs/layouts/list-1x-box-vertical.json +28 -0
- package/dist/spec/catalogs/layouts/list-1x-box.json +27 -0
- package/dist/spec/catalogs/layouts/list-1x-itemimage-title-center.json +32 -0
- package/dist/spec/catalogs/layouts/list-1x-itemimage-vertical-title-center.json +33 -0
- package/dist/spec/catalogs/layouts/list-1x-title-center.json +31 -0
- package/dist/spec/catalogs/layouts/list-1x-vertical-title-center.json +32 -0
- package/dist/spec/catalogs/layouts/list-2x-box-title-center.json +38 -0
- package/dist/spec/catalogs/layouts/list-2x-box-vertical-title-center.json +39 -0
- package/dist/spec/catalogs/layouts/list-2x-box-vertical-title-left.json +39 -0
- package/dist/spec/catalogs/layouts/list-2x-box-vertical.json +34 -0
- package/dist/spec/catalogs/layouts/list-2x-box.json +33 -0
- package/dist/spec/catalogs/layouts/list-2x-itemimage-title-center.json +38 -0
- package/dist/spec/catalogs/layouts/list-2x-itemimage-vertical-title-center.json +39 -0
- package/dist/spec/catalogs/layouts/list-2x-itemimage-vertical-title-left.json +39 -0
- package/dist/spec/catalogs/layouts/list-2x-itemimage-vertical.json +34 -0
- package/dist/spec/catalogs/layouts/list-2x-title-center.json +37 -0
- package/dist/spec/catalogs/layouts/list-2x-vertical-title-center.json +38 -0
- package/dist/spec/catalogs/layouts/list-2x-vertical-title-left.json +38 -0
- package/dist/spec/catalogs/layouts/list-2x-vertical.json +33 -0
- package/dist/spec/catalogs/layouts/list-3x-box-title-center.json +41 -0
- package/dist/spec/catalogs/layouts/list-3x-box-vertical-title-center.json +42 -0
- package/dist/spec/catalogs/layouts/list-3x-box-vertical-title-left.json +42 -0
- package/dist/spec/catalogs/layouts/list-3x-box-vertical.json +37 -0
- package/dist/spec/catalogs/layouts/list-3x-box.json +36 -0
- package/dist/spec/catalogs/layouts/list-3x-itemimage-title-center.json +41 -0
- package/dist/spec/catalogs/layouts/list-3x-itemimage-vertical-title-center.json +42 -0
- package/dist/spec/catalogs/layouts/list-3x-itemimage-vertical-title-left.json +42 -0
- package/dist/spec/catalogs/layouts/list-3x-itemimage-vertical.json +37 -0
- package/dist/spec/catalogs/layouts/list-3x-itemimage.json +36 -0
- package/dist/spec/catalogs/layouts/list-3x-title-center.json +40 -0
- package/dist/spec/catalogs/layouts/list-3x-vertical-title-center.json +41 -0
- package/dist/spec/catalogs/layouts/list-3x-vertical-title-left.json +41 -0
- package/dist/spec/catalogs/layouts/list-3x-vertical.json +36 -0
- package/dist/spec/catalogs/layouts/list-4x-box-title-center.json +45 -0
- package/dist/spec/catalogs/layouts/list-4x-box-vertical-title-center.json +45 -0
- package/dist/spec/catalogs/layouts/list-4x-box-vertical-title-left.json +45 -0
- package/dist/spec/catalogs/layouts/list-4x-box-vertical.json +40 -0
- package/dist/spec/catalogs/layouts/list-4x-box.json +40 -0
- package/dist/spec/catalogs/layouts/list-4x-itemimage-title-center.json +45 -0
- package/dist/spec/catalogs/layouts/list-4x-itemimage-vertical-title-center.json +45 -0
- package/dist/spec/catalogs/layouts/list-4x-itemimage-vertical-title-left.json +45 -0
- package/dist/spec/catalogs/layouts/list-4x-itemimage-vertical.json +40 -0
- package/dist/spec/catalogs/layouts/list-4x-title-center.json +44 -0
- package/dist/spec/catalogs/layouts/list-4x-vertical-title-center.json +44 -0
- package/dist/spec/catalogs/layouts/list-4x-vertical-title-left.json +44 -0
- package/dist/spec/catalogs/layouts/list-4x-vertical.json +39 -0
- package/dist/spec/catalogs/layouts/list-5x-box-title-center.json +48 -0
- package/dist/spec/catalogs/layouts/list-5x-box-vertical-title-center.json +50 -0
- package/dist/spec/catalogs/layouts/list-5x-box-vertical-title-left.json +50 -0
- package/dist/spec/catalogs/layouts/list-5x-box-vertical.json +45 -0
- package/dist/spec/catalogs/layouts/list-5x-box.json +43 -0
- package/dist/spec/catalogs/layouts/list-5x-itemimage-title-center.json +48 -0
- package/dist/spec/catalogs/layouts/list-5x-itemimage-vertical-title-center.json +48 -0
- package/dist/spec/catalogs/layouts/list-5x-itemimage-vertical-title-left.json +48 -0
- package/dist/spec/catalogs/layouts/list-5x-itemimage-vertical.json +43 -0
- package/dist/spec/catalogs/layouts/list-5x-title-center.json +47 -0
- package/dist/spec/catalogs/layouts/list-5x-vertical-title-center.json +47 -0
- package/dist/spec/catalogs/layouts/list-5x-vertical-title-left.json +47 -0
- package/dist/spec/catalogs/layouts/list-5x-vertical.json +42 -0
- package/dist/spec/catalogs/layouts/list-6x-box-title-center.json +51 -0
- package/dist/spec/catalogs/layouts/list-6x-box-vertical-title-center.json +53 -0
- package/dist/spec/catalogs/layouts/list-6x-box-vertical-title-left.json +53 -0
- package/dist/spec/catalogs/layouts/list-6x-box-vertical.json +48 -0
- package/dist/spec/catalogs/layouts/list-6x-box.json +46 -0
- package/dist/spec/catalogs/layouts/list-6x-itemimage-title-center.json +51 -0
- package/dist/spec/catalogs/layouts/list-6x-itemimage-vertical-title-center.json +51 -0
- package/dist/spec/catalogs/layouts/list-6x-itemimage-vertical-title-left.json +51 -0
- package/dist/spec/catalogs/layouts/list-6x-itemimage-vertical.json +46 -0
- package/dist/spec/catalogs/layouts/list-6x-title-center.json +50 -0
- package/dist/spec/catalogs/layouts/list-6x-vertical-title-center.json +50 -0
- package/dist/spec/catalogs/layouts/list-6x-vertical-title-left.json +50 -0
- package/dist/spec/catalogs/layouts/list-6x-vertical.json +45 -0
- package/dist/spec/catalogs/layouts/network-dependency-map.json +1 -4
- package/dist/spec/catalogs/layouts/number-1x-box-title-center.json +30 -0
- package/dist/spec/catalogs/layouts/number-1x-box.json +25 -0
- package/dist/spec/catalogs/layouts/number-1x-title-center.json +29 -0
- package/dist/spec/catalogs/layouts/number-2x-box-title-center.json +36 -0
- package/dist/spec/catalogs/layouts/number-2x-box.json +31 -0
- package/dist/spec/catalogs/layouts/number-2x-title-center.json +35 -0
- package/dist/spec/catalogs/layouts/number-3x-box-title-center.json +39 -0
- package/dist/spec/catalogs/layouts/number-3x-box.json +34 -0
- package/dist/spec/catalogs/layouts/number-3x-title-center.json +38 -0
- package/dist/spec/catalogs/layouts/number-4x-box-title-center.json +43 -0
- package/dist/spec/catalogs/layouts/number-4x-box.json +38 -0
- package/dist/spec/catalogs/layouts/number-4x-title-center.json +42 -0
- package/dist/spec/catalogs/layouts/number-5x-box-title-center.json +46 -0
- package/dist/spec/catalogs/layouts/number-5x-box.json +41 -0
- package/dist/spec/catalogs/layouts/number-5x-title-center.json +45 -0
- package/dist/spec/catalogs/layouts/number-6x-box-title-center.json +49 -0
- package/dist/spec/catalogs/layouts/number-6x-box.json +44 -0
- package/dist/spec/catalogs/layouts/number-6x-title-center.json +48 -0
- package/dist/spec/catalogs/layouts/persona-grid.json +1 -4
- package/dist/spec/catalogs/layouts/photo-grid.json +1 -4
- package/dist/spec/catalogs/layouts/product-feature.json +1 -4
- package/dist/spec/catalogs/layouts/screenshot-walkthrough.json +1 -4
- package/dist/spec/catalogs/layouts/swimlane-process.json +1 -4
- package/dist/spec/catalogs/layouts/team-bio.json +1 -4
- package/dist/spec/catalogs/layouts/text-1x-box-title-center.json +31 -0
- package/dist/spec/catalogs/layouts/text-1x-box-title-left.json +31 -0
- package/dist/spec/catalogs/layouts/text-1x-center-box-title-center.json +31 -0
- package/dist/spec/catalogs/layouts/text-1x-center-box-title-left.json +31 -0
- package/dist/spec/catalogs/layouts/text-1x-center-box.json +26 -0
- package/dist/spec/catalogs/layouts/text-1x-center-title-center.json +30 -0
- package/dist/spec/catalogs/layouts/text-1x-center-title-left.json +30 -0
- package/dist/spec/catalogs/layouts/text-1x-center.json +25 -0
- package/dist/spec/catalogs/layouts/text-1x-left-box.json +26 -0
- package/dist/spec/catalogs/layouts/text-1x-title-center.json +30 -0
- package/dist/spec/catalogs/layouts/text-2x-box-title-center.json +37 -0
- package/dist/spec/catalogs/layouts/text-2x-box-vertical-title-left.json +37 -0
- package/dist/spec/catalogs/layouts/text-2x-center-box-title-center.json +37 -0
- package/dist/spec/catalogs/layouts/text-2x-center-box-vertical-title-left.json +37 -0
- package/dist/spec/catalogs/layouts/text-2x-center-box.json +32 -0
- package/dist/spec/catalogs/layouts/text-2x-center-title-center.json +36 -0
- package/dist/spec/catalogs/layouts/text-2x-center-vertical-title-left.json +36 -0
- package/dist/spec/catalogs/layouts/text-2x-center.json +31 -0
- package/dist/spec/catalogs/layouts/text-2x-left-box.json +32 -0
- package/dist/spec/catalogs/layouts/text-2x-title-center.json +36 -0
- package/dist/spec/catalogs/layouts/text-2x-vertical-title-left.json +36 -0
- package/dist/spec/catalogs/layouts/text-3x-box-title-center.json +40 -0
- package/dist/spec/catalogs/layouts/text-3x-box-vertical-title-left.json +41 -0
- package/dist/spec/catalogs/layouts/text-3x-center-box-title-center.json +40 -0
- package/dist/spec/catalogs/layouts/text-3x-center-box-vertical-title-left.json +41 -0
- package/dist/spec/catalogs/layouts/text-3x-center-box.json +35 -0
- package/dist/spec/catalogs/layouts/text-3x-center-title-center.json +39 -0
- package/dist/spec/catalogs/layouts/text-3x-center-vertical-title-left.json +40 -0
- package/dist/spec/catalogs/layouts/text-3x-center.json +34 -0
- package/dist/spec/catalogs/layouts/text-3x-left-box.json +35 -0
- package/dist/spec/catalogs/layouts/text-3x-left.json +34 -0
- package/dist/spec/catalogs/layouts/text-3x-title-center.json +39 -0
- package/dist/spec/catalogs/layouts/text-3x-vertical-title-left.json +40 -0
- package/dist/spec/catalogs/layouts/title-center-box.json +27 -0
- package/dist/spec/catalogs/layouts/title-center-image-bottom.json +34 -0
- package/dist/spec/catalogs/layouts/title-center-image-top.json +34 -0
- package/dist/spec/catalogs/layouts/title-center.json +26 -0
- package/dist/spec/catalogs/layouts/title-left-image-bottom.json +34 -0
- package/dist/spec/catalogs/layouts/title-left-image-left.json +34 -0
- package/dist/spec/catalogs/layouts/title-left-image-right.json +34 -0
- package/dist/spec/catalogs/layouts/title-left-image-top.json +34 -0
- package/dist/spec/catalogs/manifest.json +18 -18
- package/dist/spec/catalogs/narratives/heros-journey.json +1 -1
- package/dist/spec/catalogs/narratives/index.json +1 -1
- package/dist/spec/openapi.yaml +3 -3
- package/dist/spec/reference/engine-defaults.json +22 -30
- package/dist/spec/reference/engine-vocabularies.json +1577 -0
- package/dist/spec/schemas/audience.schema.json +5 -26
- package/dist/spec/schemas/catalog-manifest.schema.json +3 -3
- package/dist/spec/schemas/chart-type.schema.json +2 -35
- package/dist/spec/schemas/color-scheme.schema.json +3 -24
- package/dist/spec/schemas/finding.schema.json +1 -1
- package/dist/spec/schemas/font-scheme.schema.json +6 -37
- package/dist/spec/schemas/language.schema.json +7 -28
- package/dist/spec/schemas/layout.schema.json +56 -51
- package/dist/spec/schemas/narrative.schema.json +4 -24
- package/dist/spec/schemas/opf.schema.json +399 -368
- package/dist/spec/schemas/purpose.schema.json +5 -26
- package/dist/spec/schemas/social-platform.schema.json +2 -23
- package/dist/spec/schemas/theme.schema.json +9 -37
- package/dist/spec/schemas/tone.schema.json +4 -25
- package/dist/spec-files.d.ts +1 -1
- package/dist/spec-files.js +1 -1
- package/dist/types.d.ts +1125 -4
- package/dist/{validation-types-zh03LeZy.d.ts → validation-types-BOcY9GTs.d.ts} +7 -7
- package/dist/validator.d.ts +15 -12
- package/dist/validator.js +5 -5
- package/dist/yaml.d.ts +22 -7
- package/dist/yaml.js +10 -9
- package/package.json +5 -9
- package/dist/catalogs-D-yyQWCQ.d.ts +0 -1343
- package/dist/catalogs.d.ts +0 -2
- package/dist/catalogs.js +0 -2
- package/dist/chunk-PIQXLBBJ.js +0 -445
- package/dist/chunk-S5W34SIJ.js +0 -1
- package/dist/previews.d.ts +0 -40
- package/dist/previews.js +0 -1
- package/dist/schemas-DDpqAgyS.d.ts +0 -284
- package/dist/spec/catalogs/layouts/image-bleed.json +0 -20
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { checkCatalogsOption, resolveReference, unresolvedReference, provenanceOf } from './chunk-SPFV27O5.js';
|
|
2
2
|
|
|
3
3
|
// src/table.ts
|
|
4
4
|
var record = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
@@ -245,7 +245,6 @@ function isRecord(value) {
|
|
|
245
245
|
function pathFor(parentPath, key) {
|
|
246
246
|
return parentPath === "/" ? `/${key}` : `${parentPath}/${key.replaceAll("~", "~0").replaceAll("/", "~1")}`;
|
|
247
247
|
}
|
|
248
|
-
var bareIdPattern = /^[a-z0-9][a-z0-9-]*$/;
|
|
249
248
|
var promotedRegionKeys = [
|
|
250
249
|
"left",
|
|
251
250
|
"center",
|
|
@@ -1718,7 +1717,7 @@ function intrinsicImageAspect(value, assets) {
|
|
|
1718
1717
|
}
|
|
1719
1718
|
|
|
1720
1719
|
// src/design-hints.ts
|
|
1721
|
-
var DESIGN_HINT_KEYS = ["titleAlignment", "contentAlignment", "contentBox", "contentDirection", "chartPrimary", "
|
|
1720
|
+
var DESIGN_HINT_KEYS = ["titleAlignment", "contentAlignment", "contentBox", "contentDirection", "chartPrimary", "imageFit", "listBullet"];
|
|
1722
1721
|
var ALIGNMENTS = ["left", "center", "right"];
|
|
1723
1722
|
var VALUES = {
|
|
1724
1723
|
titleAlignment: ALIGNMENTS,
|
|
@@ -1726,7 +1725,7 @@ var VALUES = {
|
|
|
1726
1725
|
contentBox: "boolean",
|
|
1727
1726
|
contentDirection: ["horizontal", "vertical"],
|
|
1728
1727
|
chartPrimary: ["none", "top", "bottom", "left", "right"],
|
|
1729
|
-
|
|
1728
|
+
imageFit: ["cover", "contain", "stretch"],
|
|
1730
1729
|
listBullet: ["character", "image"]
|
|
1731
1730
|
};
|
|
1732
1731
|
var accepts = (key, value) => VALUES[key] === "boolean" ? typeof value === "boolean" : VALUES[key].includes(value);
|
|
@@ -1812,6 +1811,99 @@ function paragraphDirectionAt(text2, deckDirection) {
|
|
|
1812
1811
|
};
|
|
1813
1812
|
}
|
|
1814
1813
|
|
|
1814
|
+
// src/generated/engine-data.ts
|
|
1815
|
+
var engineDefaultsSource = {
|
|
1816
|
+
"theme": {
|
|
1817
|
+
"background": {
|
|
1818
|
+
"type": "theme",
|
|
1819
|
+
"slot": "dark2"
|
|
1820
|
+
},
|
|
1821
|
+
"dimensions": "widescreen"
|
|
1822
|
+
},
|
|
1823
|
+
"colorScheme": {
|
|
1824
|
+
"accent1": "#2874A6",
|
|
1825
|
+
"accent2": "#1B4F72",
|
|
1826
|
+
"accent3": "#5499C7",
|
|
1827
|
+
"accent4": "#7BDBB2",
|
|
1828
|
+
"accent5": "#3AC67A",
|
|
1829
|
+
"accent6": "#24A89E",
|
|
1830
|
+
"dark1": "#000000",
|
|
1831
|
+
"dark2": "#011842",
|
|
1832
|
+
"light1": "#FFFFFF",
|
|
1833
|
+
"light2": "#F0F0F0",
|
|
1834
|
+
"hyperlink": "#0000EE",
|
|
1835
|
+
"followedHyperlink": "#551A8B"
|
|
1836
|
+
},
|
|
1837
|
+
"fontScheme": {
|
|
1838
|
+
"major": "Aptos Display",
|
|
1839
|
+
"minor": "Aptos",
|
|
1840
|
+
"languageFamily": "latin"
|
|
1841
|
+
},
|
|
1842
|
+
"chartTypes": [
|
|
1843
|
+
"stacked-column",
|
|
1844
|
+
"stacked-area",
|
|
1845
|
+
"line-with-markers"
|
|
1846
|
+
]
|
|
1847
|
+
};
|
|
1848
|
+
var engineVocabulariesSource = { "chartTypes": ["100pct-stacked-area", "100pct-stacked-bar", "100pct-stacked-column", "area", "bar", "box-and-whisker", "column", "combo", "doughnut", "filled-radar", "funnel", "histogram", "line", "line-with-markers", "pareto", "pie", "radar", "radar-with-markers", "scatter", "stacked-area", "stacked-bar", "stacked-column", "stacked-line", "stacked-line-with-markers", "treemap", "waterfall", "world"], "socialPlatforms": { "linkedin": { "baseUrl": "https://linkedin.com", "profileUrlPattern": "https://linkedin.com/in/{handle}", "companyUrlPattern": "https://linkedin.com/company/{handle}", "handlePrefix": "" }, "x": { "baseUrl": "https://x.com", "profileUrlPattern": "https://x.com/{handle}", "handlePrefix": "@" }, "github": { "baseUrl": "https://github.com", "profileUrlPattern": "https://github.com/{handle}", "companyUrlPattern": "https://github.com/{handle}", "handlePrefix": "" }, "youtube": { "baseUrl": "https://youtube.com", "profileUrlPattern": "https://youtube.com/@{handle}", "handlePrefix": "@" }, "instagram": { "baseUrl": "https://instagram.com", "profileUrlPattern": "https://instagram.com/{handle}", "handlePrefix": "@" }, "facebook": { "baseUrl": "https://facebook.com", "profileUrlPattern": "https://facebook.com/{handle}", "companyUrlPattern": "https://facebook.com/{handle}", "handlePrefix": "" }, "tiktok": { "baseUrl": "https://tiktok.com", "profileUrlPattern": "https://tiktok.com/@{handle}", "handlePrefix": "@" }, "threads": { "baseUrl": "https://threads.net", "profileUrlPattern": "https://threads.net/@{handle}", "handlePrefix": "@" }, "mastodon": { "baseUrl": "https://mastodon.social", "profileUrlPattern": "https://mastodon.social/@{handle}", "handlePrefix": "@" }, "bluesky": { "baseUrl": "https://bsky.app", "profileUrlPattern": "https://bsky.app/profile/{handle}", "handlePrefix": "" } }, "languages": [{ "tag": "af", "script": "Latn", "direction": "ltr", "ooxmlLang": "af-ZA", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "sq", "script": "Latn", "direction": "ltr", "ooxmlLang": "sq-AL", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "am", "script": "Ethi", "direction": "ltr", "ooxmlLang": "am-ET", "fonts": { "powerpoint": { "major": "Nyala", "minor": "Nyala" }, "google": { "major": "Noto Sans Ethiopic", "minor": "Noto Sans Ethiopic" } } }, { "tag": "ar", "script": "Arab", "direction": "rtl", "ooxmlLang": "ar-SA", "fonts": { "powerpoint": { "major": "Arabic Typesetting", "minor": "Arabic Typesetting" }, "google": { "major": "Noto Naskh Arabic", "minor": "Noto Naskh Arabic" } } }, { "tag": "hy", "script": "Armn", "direction": "ltr", "ooxmlLang": "hy-AM", "fonts": { "powerpoint": { "major": "Sylfaen", "minor": "Sylfaen" }, "google": { "major": "Noto Sans Armenian", "minor": "Noto Sans Armenian" } } }, { "tag": "ay", "script": "Latn", "direction": "ltr", "ooxmlLang": "ay-BO", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "az", "script": "Latn", "direction": "ltr", "ooxmlLang": "az-Latn-AZ", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "bn", "script": "Beng", "direction": "ltr", "ooxmlLang": "bn-BD", "fonts": { "powerpoint": { "major": "Shonar Bangla", "minor": "Shonar Bangla" }, "google": { "major": "Noto Sans Bengali", "minor": "Noto Sans Bengali" } } }, { "tag": "ber-Latn", "script": "Latn", "direction": "ltr", "ooxmlLang": "tzm-Latn-DZ", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "bs-Latn", "script": "Latn", "direction": "ltr", "ooxmlLang": "bs-Latn-BA", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "bg", "script": "Cyrl", "direction": "ltr", "ooxmlLang": "bg-BG", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Noto Sans", "minor": "Noto Sans" } } }, { "tag": "ca", "script": "Latn", "direction": "ltr", "ooxmlLang": "ca-ES", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "ceb", "script": "Latn", "direction": "ltr", "ooxmlLang": "ceb-PH", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "zh-Hans", "script": "Hans", "direction": "ltr", "ooxmlLang": "zh-CN", "fonts": { "powerpoint": { "major": "Microsoft YaHei", "minor": "Microsoft YaHei" }, "google": { "major": "Noto Sans SC", "minor": "Noto Sans SC" } } }, { "tag": "zh-Hant", "script": "Hant", "direction": "ltr", "ooxmlLang": "zh-TW", "fonts": { "powerpoint": { "major": "Microsoft JhengHei", "minor": "Microsoft JhengHei" }, "google": { "major": "Noto Sans TC", "minor": "Noto Sans TC" } } }, { "tag": "ctg", "script": "Beng", "direction": "ltr", "ooxmlLang": "bn-BD", "fonts": { "powerpoint": { "major": "Vrinda", "minor": "Vrinda" }, "google": { "major": "Noto Sans Bengali", "minor": "Noto Sans Bengali" } } }, { "tag": "hr", "script": "Latn", "direction": "ltr", "ooxmlLang": "hr-HR", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "cs", "script": "Latn", "direction": "ltr", "ooxmlLang": "cs-CZ", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "da", "script": "Latn", "direction": "ltr", "ooxmlLang": "da-DK", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "nl", "script": "Latn", "direction": "ltr", "ooxmlLang": "nl-NL", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "en", "script": "Latn", "direction": "ltr", "ooxmlLang": "en-US", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "en-AU", "script": "Latn", "direction": "ltr", "ooxmlLang": "en-AU", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "en-CA", "script": "Latn", "direction": "ltr", "ooxmlLang": "en-CA", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "en-GB", "script": "Latn", "direction": "ltr", "ooxmlLang": "en-GB", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "en-IN", "script": "Latn", "direction": "ltr", "ooxmlLang": "en-IN", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "en-US", "script": "Latn", "direction": "ltr", "ooxmlLang": "en-US", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "et", "script": "Latn", "direction": "ltr", "ooxmlLang": "et-EE", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "fil", "script": "Latn", "direction": "ltr", "ooxmlLang": "fil-PH", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "fi", "script": "Latn", "direction": "ltr", "ooxmlLang": "fi-FI", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "fr", "script": "Latn", "direction": "ltr", "ooxmlLang": "fr-FR", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "ff", "script": "Latn", "direction": "ltr", "ooxmlLang": "ff-Latn-SN", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "gl", "script": "Latn", "direction": "ltr", "ooxmlLang": "gl-ES", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "ka", "script": "Geor", "direction": "ltr", "ooxmlLang": "ka-GE", "fonts": { "powerpoint": { "major": "Sylfaen", "minor": "Sylfaen" }, "google": { "major": "Noto Sans Georgian", "minor": "Noto Sans Georgian" } } }, { "tag": "de", "script": "Latn", "direction": "ltr", "ooxmlLang": "de-DE", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "el", "script": "Grek", "direction": "ltr", "ooxmlLang": "el-GR", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Noto Sans", "minor": "Noto Sans" } } }, { "tag": "gu", "script": "Gujr", "direction": "ltr", "ooxmlLang": "gu-IN", "fonts": { "powerpoint": { "major": "Shruti", "minor": "Shruti" }, "google": { "major": "Noto Sans Gujarati", "minor": "Noto Sans Gujarati" } } }, { "tag": "ha", "script": "Latn", "direction": "ltr", "ooxmlLang": "ha-Latn-NG", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "he", "script": "Hebr", "direction": "rtl", "ooxmlLang": "he-IL", "fonts": { "powerpoint": { "major": "David", "minor": "David" }, "google": { "major": "Noto Sans Hebrew", "minor": "Noto Sans Hebrew" } } }, { "tag": "hi", "script": "Deva", "direction": "ltr", "ooxmlLang": "hi-IN", "fonts": { "powerpoint": { "major": "Mangal", "minor": "Mangal" }, "google": { "major": "Noto Sans Devanagari", "minor": "Noto Sans Devanagari" } } }, { "tag": "hu", "script": "Latn", "direction": "ltr", "ooxmlLang": "hu-HU", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "ig", "script": "Latn", "direction": "ltr", "ooxmlLang": "ig-NG", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "id", "script": "Latn", "direction": "ltr", "ooxmlLang": "id-ID", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "it", "script": "Latn", "direction": "ltr", "ooxmlLang": "it-IT", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "ja", "script": "Jpan", "direction": "ltr", "ooxmlLang": "ja-JP", "fonts": { "powerpoint": { "major": "Meiryo", "minor": "Meiryo" }, "google": { "major": "Noto Sans JP", "minor": "Noto Sans JP" } } }, { "tag": "kn", "script": "Knda", "direction": "ltr", "ooxmlLang": "kn-IN", "fonts": { "powerpoint": { "major": "Tunga", "minor": "Tunga" }, "google": { "major": "Noto Sans Kannada", "minor": "Noto Sans Kannada" } } }, { "tag": "kk", "script": "Cyrl", "direction": "ltr", "ooxmlLang": "kk-KZ", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Noto Sans", "minor": "Noto Sans" } } }, { "tag": "km", "script": "Khmr", "direction": "ltr", "ooxmlLang": "km-KH", "fonts": { "powerpoint": { "major": "DaunPenh", "minor": "DaunPenh" }, "google": { "major": "Noto Sans Khmer", "minor": "Noto Sans Khmer" } } }, { "tag": "rw", "script": "Latn", "direction": "ltr", "ooxmlLang": "rw-RW", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "ko", "script": "Kore", "direction": "ltr", "ooxmlLang": "ko-KR", "fonts": { "powerpoint": { "major": "Malgun Gothic", "minor": "Malgun Gothic" }, "google": { "major": "Noto Sans KR", "minor": "Noto Sans KR" } } }, { "tag": "kmr", "script": "Latn", "direction": "ltr", "ooxmlLang": "kmr-TR", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "lv", "script": "Latn", "direction": "ltr", "ooxmlLang": "lv-LV", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "lt", "script": "Latn", "direction": "ltr", "ooxmlLang": "lt-LT", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "mk", "script": "Cyrl", "direction": "ltr", "ooxmlLang": "mk-MK", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Noto Sans", "minor": "Noto Sans" } } }, { "tag": "mg", "script": "Latn", "direction": "ltr", "ooxmlLang": "mg-MG", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "zsm", "script": "Latn", "direction": "ltr", "ooxmlLang": "ms-MY", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "ml", "script": "Mlym", "direction": "ltr", "ooxmlLang": "ml-IN", "fonts": { "powerpoint": { "major": "Kartika", "minor": "Kartika" }, "google": { "major": "Noto Sans Malayalam", "minor": "Noto Sans Malayalam" } } }, { "tag": "mi", "script": "Latn", "direction": "ltr", "ooxmlLang": "mi-NZ", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "mr", "script": "Deva", "direction": "ltr", "ooxmlLang": "mr-IN", "fonts": { "powerpoint": { "major": "Mangal", "minor": "Mangal" }, "google": { "major": "Noto Sans Devanagari", "minor": "Noto Sans Devanagari" } } }, { "tag": "mn", "script": "Cyrl", "direction": "ltr", "ooxmlLang": "mn-MN", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Noto Sans Mongolian", "minor": "Noto Sans Mongolian" } } }, { "tag": "ne", "script": "Deva", "direction": "ltr", "ooxmlLang": "ne-NP", "fonts": { "powerpoint": { "major": "Mangal", "minor": "Mangal" }, "google": { "major": "Noto Sans Devanagari", "minor": "Noto Sans Devanagari" } } }, { "tag": "no", "script": "Latn", "direction": "ltr", "ooxmlLang": "nb-NO", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "or", "script": "Orya", "direction": "ltr", "ooxmlLang": "or-IN", "fonts": { "powerpoint": { "major": "Kalinga", "minor": "Kalinga" }, "google": { "major": "Noto Sans Oriya", "minor": "Noto Sans Oriya" } } }, { "tag": "om", "script": "Latn", "direction": "ltr", "ooxmlLang": "om-ET", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "ps", "script": "Arab", "direction": "rtl", "ooxmlLang": "ps-AF", "fonts": { "powerpoint": { "major": "Arial Black", "minor": "Arial" }, "google": { "major": "Noto Naskh Arabic", "minor": "Noto Naskh Arabic" } } }, { "tag": "fa", "script": "Arab", "direction": "rtl", "ooxmlLang": "fa-IR", "fonts": { "powerpoint": { "major": "Arabic Typesetting", "minor": "Arabic Typesetting" }, "google": { "major": "Noto Naskh Arabic", "minor": "Noto Naskh Arabic" } } }, { "tag": "pl", "script": "Latn", "direction": "ltr", "ooxmlLang": "pl-PL", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "pt", "script": "Latn", "direction": "ltr", "ooxmlLang": "pt-BR", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "pa-Guru", "script": "Guru", "direction": "ltr", "ooxmlLang": "pa-IN", "fonts": { "powerpoint": { "major": "Raavi", "minor": "Raavi" }, "google": { "major": "Noto Sans Gurmukhi", "minor": "Noto Sans Gurmukhi" } } }, { "tag": "pa-Arab", "script": "Arab", "direction": "rtl", "ooxmlLang": "pa-Arab-PK", "fonts": { "powerpoint": { "major": "Arial Black", "minor": "Arial" }, "google": { "major": "Noto Nastaliq Urdu", "minor": "Noto Nastaliq Urdu" } } }, { "tag": "ro", "script": "Latn", "direction": "ltr", "ooxmlLang": "ro-RO", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "ru", "script": "Cyrl", "direction": "ltr", "ooxmlLang": "ru-RU", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Noto Sans", "minor": "Noto Sans" } } }, { "tag": "sr-Cyrl", "script": "Cyrl", "direction": "ltr", "ooxmlLang": "sr-Cyrl-RS", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Noto Sans", "minor": "Noto Sans" } } }, { "tag": "sr-Latn", "script": "Latn", "direction": "ltr", "ooxmlLang": "sr-Latn-RS", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "sn", "script": "Latn", "direction": "ltr", "ooxmlLang": "sn-Latn-ZW", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "sk", "script": "Latn", "direction": "ltr", "ooxmlLang": "sk-SK", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "sl", "script": "Latn", "direction": "ltr", "ooxmlLang": "sl-SI", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "so", "script": "Latn", "direction": "ltr", "ooxmlLang": "so-SO", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "es", "script": "Latn", "direction": "ltr", "ooxmlLang": "es-ES", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "sw", "script": "Latn", "direction": "ltr", "ooxmlLang": "sw-KE", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "sv", "script": "Latn", "direction": "ltr", "ooxmlLang": "sv-SE", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "tl", "script": "Latn", "direction": "ltr", "ooxmlLang": "fil-PH", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "tg", "script": "Cyrl", "direction": "ltr", "ooxmlLang": "tg-Cyrl-TJ", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Noto Sans", "minor": "Noto Sans" } } }, { "tag": "ta", "script": "Taml", "direction": "ltr", "ooxmlLang": "ta-IN", "fonts": { "powerpoint": { "major": "Latha", "minor": "Latha" }, "google": { "major": "Noto Sans Tamil", "minor": "Noto Sans Tamil" } } }, { "tag": "te", "script": "Telu", "direction": "ltr", "ooxmlLang": "te-IN", "fonts": { "powerpoint": { "major": "Gautami", "minor": "Gautami" }, "google": { "major": "Noto Sans Telugu", "minor": "Noto Sans Telugu" } } }, { "tag": "th", "script": "Thai", "direction": "ltr", "ooxmlLang": "th-TH", "fonts": { "powerpoint": { "major": "Angsana New", "minor": "Angsana New" }, "google": { "major": "Noto Sans Thai", "minor": "Noto Sans Thai" } } }, { "tag": "tr", "script": "Latn", "direction": "ltr", "ooxmlLang": "tr-TR", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "uk", "script": "Cyrl", "direction": "ltr", "ooxmlLang": "uk-UA", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Noto Sans", "minor": "Noto Sans" } } }, { "tag": "ur", "script": "Arab", "direction": "rtl", "ooxmlLang": "ur-PK", "fonts": { "powerpoint": { "major": "Arabic Typesetting", "minor": "Arabic Typesetting" }, "google": { "major": "Noto Nastaliq Urdu", "minor": "Noto Nastaliq Urdu" } } }, { "tag": "uz-Latn", "script": "Latn", "direction": "ltr", "ooxmlLang": "uz-Latn-UZ", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "vi-Latn", "script": "Latn", "direction": "ltr", "ooxmlLang": "vi-VN", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "xh", "script": "Latn", "direction": "ltr", "ooxmlLang": "xh-ZA", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "yo", "script": "Latn", "direction": "ltr", "ooxmlLang": "yo-NG", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }, { "tag": "zu", "script": "Latn", "direction": "ltr", "ooxmlLang": "zu-ZA", "fonts": { "powerpoint": { "major": "Aptos Display", "minor": "Aptos" }, "google": { "major": "Roboto", "minor": "Roboto" } } }] };
|
|
1849
|
+
|
|
1850
|
+
// src/engine-vocabularies.ts
|
|
1851
|
+
var ENGINE_DEFAULT_THEME = engineDefaultsSource.theme;
|
|
1852
|
+
var ENGINE_DEFAULT_COLOR_SCHEME = engineDefaultsSource.colorScheme;
|
|
1853
|
+
var ENGINE_DEFAULT_FONT_SCHEME = engineDefaultsSource.fontScheme;
|
|
1854
|
+
var ENGINE_DEFAULT_CHART_TYPES = engineDefaultsSource.chartTypes;
|
|
1855
|
+
var CHART_TYPES = engineVocabulariesSource.chartTypes;
|
|
1856
|
+
var SOCIAL_PLATFORMS = engineVocabulariesSource.socialPlatforms;
|
|
1857
|
+
var LANGUAGES = engineVocabulariesSource.languages;
|
|
1858
|
+
|
|
1859
|
+
// src/design-records.ts
|
|
1860
|
+
var isRec = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1861
|
+
var rec = (value) => isRec(value) ? value : {};
|
|
1862
|
+
function resolveRecordReference(document, kind2, reference, path, fallback, options, diagnostics) {
|
|
1863
|
+
const object2 = isRec(reference) ? reference : void 0;
|
|
1864
|
+
const id = typeof reference === "string" ? reference : typeof object2?.id === "string" ? object2.id : void 0;
|
|
1865
|
+
if (id === void 0) return { record: { ...fallback, ...object2 } };
|
|
1866
|
+
const found = resolveReference(document, kind2, id, options);
|
|
1867
|
+
if (!found) diagnostics.push(unresolvedReference(document, kind2, id, object2 ? `${path}.id` : path, options));
|
|
1868
|
+
return { record: { ...found ? found.record : fallback, ...object2 }, ...found ? { provenance: provenanceOf(found) } : {} };
|
|
1869
|
+
}
|
|
1870
|
+
function resolveDesignRecords(document, slideIndex, options = {}) {
|
|
1871
|
+
checkCatalogsOption(options.catalogs, "resolveDesignRecords");
|
|
1872
|
+
const deck = rec(document);
|
|
1873
|
+
const slides = Array.isArray(deck.slides) ? deck.slides : [];
|
|
1874
|
+
const own2 = slideIndex === void 0 ? {} : rec(rec(slides[slideIndex]).design);
|
|
1875
|
+
const shared = rec(deck.design);
|
|
1876
|
+
const design = { ...shared, ...own2 };
|
|
1877
|
+
const slidePath = `slides.${slideIndex}.design`;
|
|
1878
|
+
const diagnostics = [];
|
|
1879
|
+
const themePath = own2.theme !== void 0 ? `${slidePath}.theme` : "design.theme";
|
|
1880
|
+
const themeFound = typeof design.theme === "string" ? resolveReference(document, "themes", design.theme, options) : void 0;
|
|
1881
|
+
if (typeof design.theme === "string" && !themeFound) diagnostics.push(unresolvedReference(document, "themes", design.theme, themePath, options));
|
|
1882
|
+
const theme = themeFound ? { ...themeFound.record } : { ...ENGINE_DEFAULT_THEME };
|
|
1883
|
+
const inTheme = { ...options, ...themeFound ? { group: themeFound.group } : {} };
|
|
1884
|
+
const inThemePath = (key) => themeFound?.origin === "document" ? `catalogs.${themeFound.group}.themes.${themeFound.id}.${key}` : themePath;
|
|
1885
|
+
const colorFromDesign = design.colorScheme !== void 0;
|
|
1886
|
+
const colorSchemePath = own2.colorScheme !== void 0 ? `${slidePath}.colorScheme` : shared.colorScheme !== void 0 ? "design.colorScheme" : inThemePath("colorScheme");
|
|
1887
|
+
const color = resolveRecordReference(document, "colorSchemes", colorFromDesign ? design.colorScheme : theme.colorScheme, colorFromDesign ? colorSchemePath : inThemePath("colorScheme"), ENGINE_DEFAULT_COLOR_SCHEME, colorFromDesign ? options : inTheme, diagnostics);
|
|
1888
|
+
const fontFromDesign = design.fontScheme !== void 0;
|
|
1889
|
+
const fontSchemePath = own2.fontScheme !== void 0 ? `${slidePath}.fontScheme` : shared.fontScheme !== void 0 ? "design.fontScheme" : inThemePath("fontScheme");
|
|
1890
|
+
const font = resolveRecordReference(document, "fontSchemes", fontFromDesign ? design.fontScheme : theme.fontScheme, fontSchemePath, ENGINE_DEFAULT_FONT_SCHEME, fontFromDesign ? options : inTheme, diagnostics);
|
|
1891
|
+
const fontReference = fontFromDesign ? design.fontScheme : theme.fontScheme;
|
|
1892
|
+
const fontSchemeReference = typeof fontReference === "string" ? fontReference : isRec(fontReference) && typeof fontReference.id === "string" ? fontReference.id : void 0;
|
|
1893
|
+
const provenance = {
|
|
1894
|
+
...themeFound ? { theme: provenanceOf(themeFound) } : {},
|
|
1895
|
+
...color.provenance ? { colorScheme: color.provenance } : {},
|
|
1896
|
+
...font.provenance ? { fontScheme: font.provenance } : {}
|
|
1897
|
+
};
|
|
1898
|
+
return { theme, colorScheme: color.record, fontScheme: font.record, themePath, colorSchemePath, fontSchemePath, ...fontSchemeReference !== void 0 ? { fontSchemeReference } : {}, provenance, diagnostics };
|
|
1899
|
+
}
|
|
1900
|
+
function resolveFontScheme(document, reference, path, options = {}) {
|
|
1901
|
+
checkCatalogsOption(options.catalogs, "resolveFontScheme");
|
|
1902
|
+
const diagnostics = [];
|
|
1903
|
+
const { record: scheme } = resolveRecordReference(document, "fontSchemes", reference, path, ENGINE_DEFAULT_FONT_SCHEME, options, diagnostics);
|
|
1904
|
+
return { scheme, diagnostics };
|
|
1905
|
+
}
|
|
1906
|
+
|
|
1815
1907
|
// src/script-fonts.ts
|
|
1816
1908
|
function normalizeLanguageFamily(value) {
|
|
1817
1909
|
if (value === "latin") return "latin";
|
|
@@ -1868,7 +1960,6 @@ var likelyScripts = {
|
|
|
1868
1960
|
mn: { script: "Cyrl", regions: { CN: "Mong" } },
|
|
1869
1961
|
ms: { script: "Latn" }
|
|
1870
1962
|
};
|
|
1871
|
-
var bareLanguageId = /^[a-z][a-z0-9-]*$/;
|
|
1872
1963
|
function scriptFontRole(script) {
|
|
1873
1964
|
const code = normalizeScript(script);
|
|
1874
1965
|
if (code && eastAsianScripts.has(code)) return "eastAsian";
|
|
@@ -1927,56 +2018,36 @@ function inferScript(tag) {
|
|
|
1927
2018
|
return void 0;
|
|
1928
2019
|
}
|
|
1929
2020
|
}
|
|
1930
|
-
function
|
|
1931
|
-
const kinds = isRecord(document.catalogs) ? document.catalogs : {};
|
|
1932
|
-
const entry = kinds[kind2];
|
|
1933
|
-
return isRecord(entry) && Array.isArray(entry.records) ? entry.records.filter(isRecord) : [];
|
|
1934
|
-
}
|
|
1935
|
-
function allRecords(document, kind2) {
|
|
1936
|
-
return [...inlineRecords(document, kind2), ...catalogs[kind2]];
|
|
1937
|
-
}
|
|
1938
|
-
function resolveReference(lookup, kind2, reference) {
|
|
1939
|
-
if (typeof reference === "string") return lookup(kind2, reference);
|
|
1940
|
-
if (!isRecord(reference)) return void 0;
|
|
1941
|
-
const base = typeof reference.id === "string" ? lookup(kind2, reference.id) : void 0;
|
|
1942
|
-
return { ...base, ...reference };
|
|
1943
|
-
}
|
|
1944
|
-
function matchLanguageTag(document, tag) {
|
|
2021
|
+
function matchLanguageTag(tag) {
|
|
1945
2022
|
const wanted = splitTag(tag);
|
|
1946
2023
|
if (!wanted) return void 0;
|
|
1947
|
-
const records = allRecords(document, "languages").filter((record6) => typeof record6.bcp47 === "string");
|
|
1948
2024
|
const key = canonicalTag(tag).toLowerCase();
|
|
1949
|
-
const exact =
|
|
2025
|
+
const exact = LANGUAGES.find((entry) => canonicalTag(entry.tag).toLowerCase() === key);
|
|
1950
2026
|
if (exact) return exact;
|
|
1951
2027
|
const language = matchingLanguages[wanted.language] ?? wanted.language;
|
|
1952
2028
|
const script = wanted.script ?? vendoredScript(language, wanted.region);
|
|
1953
|
-
const candidates =
|
|
1954
|
-
const parts = splitTag(
|
|
2029
|
+
const candidates = LANGUAGES.flatMap((entry) => {
|
|
2030
|
+
const parts = splitTag(entry.tag);
|
|
1955
2031
|
if (!parts || (matchingLanguages[parts.language] ?? parts.language) !== language) return [];
|
|
1956
|
-
const
|
|
1957
|
-
if (script &&
|
|
1958
|
-
return [{
|
|
2032
|
+
const entryScript = normalizeScript(entry.script) ?? parts.script ?? vendoredScript(language, parts.region);
|
|
2033
|
+
if (script && entryScript && script !== entryScript) return [];
|
|
2034
|
+
return [{ entry, region: parts.region }];
|
|
1959
2035
|
});
|
|
1960
|
-
return candidates.find((candidate) => wanted.region && candidate.region === wanted.region)?.
|
|
2036
|
+
return candidates.find((candidate) => wanted.region && candidate.region === wanted.region)?.entry ?? candidates.find((candidate) => !candidate.region)?.entry ?? candidates[0]?.entry;
|
|
1961
2037
|
}
|
|
1962
|
-
function resolveLanguage(
|
|
2038
|
+
function resolveLanguage(reference) {
|
|
1963
2039
|
if (typeof reference === "string") {
|
|
1964
2040
|
const value = reference.trim();
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
if (
|
|
1968
|
-
|
|
1969
|
-
if (matched) return { record: matched, authoredTag: value, languageId: text(matched.id) };
|
|
1970
|
-
return inferScript(value) ? { record: {}, authoredTag: value } : void 0;
|
|
2041
|
+
if (!splitTag(value)) return void 0;
|
|
2042
|
+
const known2 = matchLanguageTag(value);
|
|
2043
|
+
if (!known2 && !inferScript(value)) return void 0;
|
|
2044
|
+
return { tag: value, ...known2 ? { known: known2 } : {}, overrides: {} };
|
|
1971
2045
|
}
|
|
1972
2046
|
if (!isRecord(reference)) return void 0;
|
|
1973
|
-
const
|
|
1974
|
-
if (authoredTag !== void 0 && !splitTag(authoredTag)) return void 0;
|
|
1975
|
-
const base = typeof reference.id === "string" ? lookup("languages", reference.id) : authoredTag ? matchLanguageTag(document, authoredTag) : void 0;
|
|
1976
|
-
const record6 = { ...base, ...reference };
|
|
1977
|
-
const tag = text(record6.bcp47);
|
|
2047
|
+
const tag = text(reference.bcp47);
|
|
1978
2048
|
if (!tag || !splitTag(tag)) return void 0;
|
|
1979
|
-
|
|
2049
|
+
const known = matchLanguageTag(tag);
|
|
2050
|
+
return { tag, ...known ? { known } : {}, overrides: reference };
|
|
1980
2051
|
}
|
|
1981
2052
|
function pairFamilies(value) {
|
|
1982
2053
|
if (!isRecord(value)) return void 0;
|
|
@@ -1986,48 +2057,51 @@ function pairFamilies(value) {
|
|
|
1986
2057
|
const body = minor ?? major;
|
|
1987
2058
|
return heading && body ? { heading, body } : void 0;
|
|
1988
2059
|
}
|
|
1989
|
-
function schemeServesLanguage(scheme,
|
|
2060
|
+
function schemeServesLanguage(scheme, tag, script) {
|
|
1990
2061
|
const entries = Array.isArray(scheme.languages) ? scheme.languages.filter((entry) => typeof entry === "string") : [];
|
|
1991
2062
|
if (entries.length === 0) return true;
|
|
1992
|
-
const
|
|
1993
|
-
|
|
2063
|
+
const wanted = splitTag(tag);
|
|
2064
|
+
if (!wanted) return false;
|
|
2065
|
+
const language = matchingLanguages[wanted.language] ?? wanted.language;
|
|
2066
|
+
return entries.some((entry) => {
|
|
2067
|
+
const parts = splitTag(entry);
|
|
2068
|
+
if (!parts || (matchingLanguages[parts.language] ?? parts.language) !== language) return false;
|
|
2069
|
+
const entryScript = parts.script ?? vendoredScript(language, parts.region);
|
|
2070
|
+
return !entryScript || entryScript === script;
|
|
2071
|
+
});
|
|
1994
2072
|
}
|
|
1995
2073
|
function resolveScriptFonts(input, options = {}) {
|
|
1996
2074
|
const document = isRecord(input) ? input : {};
|
|
1997
|
-
const lookup = (kind2, id) => inlineRecords(document, kind2).find((record7) => record7.id === id) ?? catalogs[kind2].find((record7) => record7.id === id);
|
|
1998
|
-
let design = isRecord(document.design) ? document.design : {};
|
|
1999
2075
|
if (options.slideIndex !== void 0) {
|
|
2000
2076
|
const slides = Array.isArray(document.slides) ? document.slides : [];
|
|
2001
2077
|
if (!Number.isInteger(options.slideIndex) || options.slideIndex < 0 || options.slideIndex >= slides.length) {
|
|
2002
2078
|
throw new RangeError(`slideIndex must be an integer between 0 and ${slides.length - 1}.`);
|
|
2003
2079
|
}
|
|
2004
|
-
const slide = slides[options.slideIndex];
|
|
2005
|
-
if (isRecord(slide) && isRecord(slide.design)) design = { ...design, ...slide.design };
|
|
2006
2080
|
}
|
|
2007
|
-
const
|
|
2008
|
-
const scheme =
|
|
2081
|
+
const catalogs = { catalogs: checkCatalogsOption(options.catalogs, "resolveScriptFonts") };
|
|
2082
|
+
const scheme = resolveDesignRecords(document, options.slideIndex, catalogs).fontScheme;
|
|
2009
2083
|
const latin = resolveFontFamilies(scheme);
|
|
2010
|
-
const fromOption = options.language !== void 0 ? resolveLanguage(
|
|
2011
|
-
const fromDocument = fromOption ? void 0 : resolveLanguage(document
|
|
2084
|
+
const fromOption = options.language !== void 0 ? resolveLanguage(options.language) : void 0;
|
|
2085
|
+
const fromDocument = fromOption ? void 0 : resolveLanguage(document.language);
|
|
2012
2086
|
const requestedDefault = text(options.defaultLanguage);
|
|
2013
2087
|
const fallbackTag = requestedDefault && splitTag(requestedDefault) ? requestedDefault : "en-US";
|
|
2014
|
-
const language = fromOption ?? fromDocument ?? resolveLanguage(
|
|
2088
|
+
const language = fromOption ?? fromDocument ?? resolveLanguage(fallbackTag) ?? { tag: fallbackTag, overrides: {} };
|
|
2015
2089
|
const languageSource = fromOption ? "option" : fromDocument ? "document" : "default";
|
|
2016
|
-
const
|
|
2017
|
-
const
|
|
2018
|
-
const
|
|
2019
|
-
const
|
|
2090
|
+
const overrides = language.overrides;
|
|
2091
|
+
const known = language.known;
|
|
2092
|
+
const bcp47 = canonicalTag(language.tag);
|
|
2093
|
+
const authoredOoxml = text(overrides.ooxmlLang);
|
|
2094
|
+
const lang = authoredOoxml ? canonicalTag(authoredOoxml) : splitTag(language.tag)?.region ? bcp47 : known ? canonicalTag(known.ooxmlLang) : bcp47;
|
|
2020
2095
|
const parts = splitTag(bcp47);
|
|
2021
|
-
const script = normalizeScript(
|
|
2096
|
+
const script = normalizeScript(overrides.script) ?? (known ? normalizeScript(known.script) ?? parts?.script ?? (parts ? vendoredScript(matchingLanguages[parts.language] ?? parts.language, parts.region) : void 0) : inferScript(bcp47)) ?? "Zzzz";
|
|
2022
2097
|
const scriptRole = scriptFontRole(script);
|
|
2023
|
-
const declaredDirection =
|
|
2098
|
+
const declaredDirection = overrides.direction ?? known?.direction;
|
|
2024
2099
|
const direction = declaredDirection === "rtl" || declaredDirection === "ltr" ? declaredDirection : rtlScripts.has(script) ? "rtl" : "ltr";
|
|
2025
2100
|
const app = options.app ?? "powerpoint";
|
|
2026
|
-
const
|
|
2027
|
-
const
|
|
2028
|
-
const languageScheme = resolveReference(lookup, "fontSchemes", preferred) ?? resolveReference(lookup, "fontSchemes", alternate);
|
|
2101
|
+
const named = (key) => typeof overrides[key] === "string" ? resolveReference(document, "fontSchemes", overrides[key], catalogs)?.record : void 0;
|
|
2102
|
+
const languageScheme = app === "google-slides" ? named("googleFontScheme") ?? known?.fonts.google ?? named("fontScheme") : named("fontScheme") ?? known?.fonts.powerpoint ?? named("googleFontScheme");
|
|
2029
2103
|
const languageFamilies = pairFamilies(languageScheme);
|
|
2030
|
-
const schemeAdmitsLanguage = schemeServesLanguage(scheme,
|
|
2104
|
+
const schemeAdmitsLanguage = schemeServesLanguage(scheme, bcp47, script);
|
|
2031
2105
|
const slot = (role, family) => {
|
|
2032
2106
|
const explicit = pairFamilies(scheme[role]);
|
|
2033
2107
|
if (explicit) return { ...explicit, source: "fontScheme" };
|
|
@@ -2049,7 +2123,6 @@ function resolveScriptFonts(input, options = {}) {
|
|
|
2049
2123
|
...body,
|
|
2050
2124
|
lang,
|
|
2051
2125
|
bcp47,
|
|
2052
|
-
...language.languageId ? { languageId: language.languageId } : {},
|
|
2053
2126
|
languageSource,
|
|
2054
2127
|
script,
|
|
2055
2128
|
scriptRole,
|
|
@@ -2539,7 +2612,7 @@ var set = (words) => new Set((words ?? "").split(/\s+/).filter(Boolean));
|
|
|
2539
2612
|
var JS_KEYWORDS = "break case catch class const continue debugger default delete do else enum export extends finally for from function if import in instanceof let new of return static super switch this throw try typeof var void while with yield async await as get set declare namespace module abstract implements interface private protected public readonly override keyof satisfies type is infer";
|
|
2540
2613
|
var JS = { line: ["//"], block: [["/*", "*/"]], strings: "'\"`", keywords: JS_KEYWORDS, literals: "true false null undefined NaN Infinity", types: "string number boolean object symbol bigint never unknown any void", defs: { function: "function", class: "type", interface: "type", enum: "type", type: "type" }, capsTypes: true, calls: true, decorators: true };
|
|
2541
2614
|
var C_LIKE_KEYWORDS = "auto break case catch char class const constexpr continue default delete do double else enum explicit extern false final float for friend goto if inline int long mutable namespace new noexcept nullptr operator override private protected public register return short signed sizeof static struct switch template this throw true try typedef typename union unsigned using virtual void volatile while";
|
|
2542
|
-
var
|
|
2615
|
+
var LANGUAGES2 = {
|
|
2543
2616
|
javascript: JS,
|
|
2544
2617
|
typescript: JS,
|
|
2545
2618
|
python: { line: ["#"], strings: `'"`, triple: ['"""', "'''"], keywords: "and as assert async await break class continue def del elif else except finally for from global if import in is lambda nonlocal not or pass raise return try while with yield match case self cls", literals: "True False None", types: "int float str bool bytes list dict set tuple object type", defs: { def: "function", class: "type" }, capsTypes: true, calls: true, decorators: true },
|
|
@@ -2645,7 +2718,7 @@ var ALIASES = {
|
|
|
2645
2718
|
dockerfile: "dockerfile",
|
|
2646
2719
|
docker: "dockerfile"
|
|
2647
2720
|
};
|
|
2648
|
-
var CODE_HIGHLIGHT_LANGUAGES = Object.freeze(Object.keys(
|
|
2721
|
+
var CODE_HIGHLIGHT_LANGUAGES = Object.freeze(Object.keys(LANGUAGES2));
|
|
2649
2722
|
function resolveCodeLanguage(language) {
|
|
2650
2723
|
if (typeof language !== "string") return void 0;
|
|
2651
2724
|
const key = language.trim().toLowerCase().replace(/^(?:language|lang)[-:]/, "").replace(/^\./, "");
|
|
@@ -2752,7 +2825,7 @@ function scanGeneric(source, def) {
|
|
|
2752
2825
|
continue;
|
|
2753
2826
|
}
|
|
2754
2827
|
if (strings.includes(character)) {
|
|
2755
|
-
if (def ===
|
|
2828
|
+
if (def === LANGUAGES2.rust && character === "'" && !/^'(?:\\.[^']*|[^\\'])'/.test(source.slice(index, index + 12))) {
|
|
2756
2829
|
const match = /'[\p{L}_][\p{L}\p{N}_]*/uy;
|
|
2757
2830
|
match.lastIndex = index;
|
|
2758
2831
|
const found = match.exec(source);
|
|
@@ -2802,7 +2875,7 @@ function scanGeneric(source, def) {
|
|
|
2802
2875
|
continue;
|
|
2803
2876
|
}
|
|
2804
2877
|
}
|
|
2805
|
-
if (def ===
|
|
2878
|
+
if (def === LANGUAGES2.python && /[rRbBfFuU]/.test(character) && /^[rRbBfFuU]{1,2}['"]/.test(source.slice(index, index + 3)) && !isIdentChar(source[index - 1])) {
|
|
2806
2879
|
const prefix = /^[rRbBfFuU]{1,2}/.exec(source.slice(index, index + 3))[0].length;
|
|
2807
2880
|
const quote = source[index + prefix];
|
|
2808
2881
|
const triple2 = source.startsWith(quote.repeat(3), index + prefix);
|
|
@@ -3139,7 +3212,7 @@ function scanCss(source) {
|
|
|
3139
3212
|
function tokenizeCode(source, language) {
|
|
3140
3213
|
const id = resolveCodeLanguage(language);
|
|
3141
3214
|
if (id === void 0 || typeof source !== "string" || source.length === 0 || source.length > CODE_HIGHLIGHT_MAX_LENGTH) return [];
|
|
3142
|
-
const def =
|
|
3215
|
+
const def = LANGUAGES2[id];
|
|
3143
3216
|
let tokens;
|
|
3144
3217
|
switch (def.kind) {
|
|
3145
3218
|
case "yaml":
|
|
@@ -3765,17 +3838,7 @@ function layoutContent(record6) {
|
|
|
3765
3838
|
// src/composition.ts
|
|
3766
3839
|
var MAX_COMPOSITION_DEPTH = 32;
|
|
3767
3840
|
var FALLBACK_CODE_FAMILY = "Roboto Mono";
|
|
3768
|
-
var
|
|
3769
|
-
var DEFAULT_FONT_FAMILIES = { heading: "Aptos Display", body: "Aptos" };
|
|
3770
|
-
function resolveFontSchemeReference(reference, lookup, path = "design.fontScheme") {
|
|
3771
|
-
const overrides = typeof reference === "object" && reference !== null && !Array.isArray(reference) ? reference : void 0;
|
|
3772
|
-
const id = typeof reference === "string" ? reference : typeof overrides?.id === "string" ? overrides.id : void 0;
|
|
3773
|
-
const found = id === void 0 ? void 0 : lookup(id);
|
|
3774
|
-
const base = record5(found ?? lookup(DEFAULT_FONT_SCHEME));
|
|
3775
|
-
const scheme = overrides ? { ...base, ...overrides } : { ...base };
|
|
3776
|
-
if (id === void 0 || found !== void 0) return { scheme };
|
|
3777
|
-
return { scheme, diagnostic: { code: "unresolved-font-scheme", path, id, fallback: DEFAULT_FONT_SCHEME, message: `Font scheme '${id}' is not in the inline or bundled catalogs; using the default font scheme '${DEFAULT_FONT_SCHEME}'.` } };
|
|
3778
|
-
}
|
|
3841
|
+
var DEFAULT_FONT_FAMILIES = { heading: String(ENGINE_DEFAULT_FONT_SCHEME.major), body: String(ENGINE_DEFAULT_FONT_SCHEME.minor) };
|
|
3779
3842
|
function resolveFontFamilies(input) {
|
|
3780
3843
|
const scheme = record5(input);
|
|
3781
3844
|
const family = (value) => typeof value === "string" && value ? value : void 0;
|
|
@@ -3861,19 +3924,32 @@ var OPFCompositionError = class extends Error {
|
|
|
3861
3924
|
};
|
|
3862
3925
|
var fields = ["text", "items", "bullets", "image", "video", "chart", "table", "code", "metric", "quote", "timeline"];
|
|
3863
3926
|
var headings = /* @__PURE__ */ new Set(["title", "subtitle", "tag"]);
|
|
3864
|
-
var COVER_LAYOUT_IDS = /* @__PURE__ */ new Set(["title", "title-subtitle"]);
|
|
3865
3927
|
var rows2 = ["top", "middle", "bottom"];
|
|
3866
3928
|
var columns = ["left", "center", "right"];
|
|
3867
3929
|
var record5 = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
3868
3930
|
var kind = (field) => field === "items" ? "list" : field === "bullets" ? "text" : field;
|
|
3869
3931
|
var round2 = (value) => Math.round(value * 1e6) / 1e6 || value;
|
|
3870
|
-
var
|
|
3871
|
-
var
|
|
3932
|
+
var PLACEMENT_BAND = 0.5;
|
|
3933
|
+
var IMAGE_EDGES = ["left", "right", "top", "bottom"];
|
|
3934
|
+
var IMAGE_FITS = ["cover", "contain", "stretch"];
|
|
3935
|
+
var BACKGROUND_FITS = ["cover", "contain", "stretch", "tile"];
|
|
3936
|
+
var IMAGE_SOURCE = /^(asset:|https:\/\/|data:|\.\/|\.\.\/)/;
|
|
3937
|
+
var IMAGE_OPTION_KEYS = ["fit", "focus", "aspectRatio", "shape", "cornerRadius", "border", "opacity", "recolor", "overlay", "placement"];
|
|
3938
|
+
var imagePayload = (host) => {
|
|
3939
|
+
const payload = { type: host.type ?? "image", image: host.image };
|
|
3940
|
+
for (const key of IMAGE_OPTION_KEYS) if (host[key] !== void 0) payload[key] = host[key];
|
|
3941
|
+
return payload;
|
|
3942
|
+
};
|
|
3872
3943
|
var assetSource = (value) => typeof value === "string" ? value : record5(value).src;
|
|
3873
3944
|
var finite = (value, min, max) => typeof value === "number" && Number.isFinite(value) && value >= min && value <= max ? value : void 0;
|
|
3874
3945
|
var pathNumber = (value) => String(round2(value));
|
|
3875
|
-
var
|
|
3876
|
-
|
|
3946
|
+
var IMAGE_SHAPES = { rectangle: "rect", rounded: "roundRect", circle: "ellipse", hexagon: "hexagon" };
|
|
3947
|
+
var roundBox = (box) => ({ x: round2(box.x), y: round2(box.y), width: round2(box.width), height: round2(box.height) });
|
|
3948
|
+
var imageFocus = (value) => {
|
|
3949
|
+
const focus = record5(value), x = finite(focus.x, 0, 1), y = finite(focus.y, 0, 1);
|
|
3950
|
+
return x !== void 0 && y !== void 0 ? { x, y } : { x: 0.5, y: 0.5 };
|
|
3951
|
+
};
|
|
3952
|
+
function imageShape(kind2, box, cornerRadius = 1 / 6) {
|
|
3877
3953
|
const { x, y, width: w, height: h } = box, r = x + w, b = y + h, ss = Math.min(w, h), n = pathNumber;
|
|
3878
3954
|
const rect = `M${n(x)} ${n(y)}H${n(r)}V${n(b)}H${n(x)}Z`;
|
|
3879
3955
|
if (kind2 === "rounded") {
|
|
@@ -3892,66 +3968,96 @@ function slideImageShape(kind2, box, cornerRadius = 1 / 6) {
|
|
|
3892
3968
|
}
|
|
3893
3969
|
return { kind: "rectangle", preset: "rect", adjust: {}, path: rect };
|
|
3894
3970
|
}
|
|
3895
|
-
function
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
const
|
|
3899
|
-
|
|
3900
|
-
const
|
|
3901
|
-
const
|
|
3902
|
-
const
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
const
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
const
|
|
3915
|
-
|
|
3916
|
-
const
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3971
|
+
function fitImage(frame, fit, aspect, focus = { x: 0.5, y: 0.5 }) {
|
|
3972
|
+
if (![frame.x, frame.y, frame.width, frame.height].every(Number.isFinite) || frame.width <= 0 || frame.height <= 0) throw new RangeError("An image frame needs finite coordinates and a positive size.");
|
|
3973
|
+
if (fit === "stretch" || !Number.isFinite(aspect) || aspect <= 0) return { image: roundBox(frame), crop: { left: 0, top: 0, right: 0, bottom: 0 } };
|
|
3974
|
+
const wide = aspect > frame.width / frame.height, cover = fit === "cover";
|
|
3975
|
+
const width = wide === cover ? frame.height * aspect : frame.width, height = wide === cover ? frame.height : frame.width / aspect;
|
|
3976
|
+
const point = imageFocus(focus);
|
|
3977
|
+
const place = (start, span, size, at3) => cover ? Math.min(start, Math.max(start + span - size, start + span / 2 - at3 * size)) : start + (span - size) / 2;
|
|
3978
|
+
const image = { x: place(frame.x, frame.width, width, point.x), y: place(frame.y, frame.height, height, point.y), width, height };
|
|
3979
|
+
const crop = {
|
|
3980
|
+
left: round2((frame.x - image.x) / width),
|
|
3981
|
+
top: round2((frame.y - image.y) / height),
|
|
3982
|
+
right: round2((image.x + width - frame.x - frame.width) / width),
|
|
3983
|
+
bottom: round2((image.y + height - frame.y - frame.height) / height)
|
|
3984
|
+
};
|
|
3985
|
+
for (const key of ["left", "top", "right", "bottom"]) if (Object.is(crop[key], -0)) crop[key] = 0;
|
|
3986
|
+
return { image: roundBox(image), crop };
|
|
3987
|
+
}
|
|
3988
|
+
function imageBackground(value) {
|
|
3989
|
+
if (typeof value === "string") return IMAGE_SOURCE.test(value) ? { src: value, fit: "cover", focus: { x: 0.5, y: 0.5 } } : void 0;
|
|
3990
|
+
const background = record5(value);
|
|
3991
|
+
if (background.type !== "image" || typeof background.src !== "string" || !background.src) return void 0;
|
|
3992
|
+
const opacity = finite(background.opacity, 0, 1);
|
|
3993
|
+
return {
|
|
3994
|
+
src: background.src,
|
|
3995
|
+
...typeof background.alt === "string" ? { alt: background.alt } : {},
|
|
3996
|
+
fit: BACKGROUND_FITS.includes(background.fit) ? background.fit : "cover",
|
|
3997
|
+
focus: imageFocus(background.focus),
|
|
3998
|
+
...opacity !== void 0 ? { opacity } : {},
|
|
3999
|
+
...background.recolor !== void 0 ? { recolor: background.recolor } : {},
|
|
4000
|
+
...background.overlay !== void 0 ? { overlay: background.overlay } : {}
|
|
4001
|
+
};
|
|
4002
|
+
}
|
|
4003
|
+
function composeRecolor(value) {
|
|
4004
|
+
if (value === "grayscale") return { type: "grayscale" };
|
|
4005
|
+
const duotone = record5(value);
|
|
4006
|
+
return duotone.dark !== void 0 && duotone.light !== void 0 ? { type: "duotone", dark: duotone.dark, light: duotone.light } : void 0;
|
|
4007
|
+
}
|
|
4008
|
+
function composeOverlay(value, frame, shape, path, mirrorSide, diagnostics) {
|
|
4009
|
+
const overlay = record5(value), opacity = finite(overlay.opacity, 0, 1);
|
|
4010
|
+
if (overlay.color === void 0 || opacity === void 0) return void 0;
|
|
4011
|
+
const edge = IMAGE_EDGES.includes(overlay.edge) ? mirrorSide(overlay.edge) : void 0;
|
|
4012
|
+
if (edge && shape.kind !== "rectangle") {
|
|
4013
|
+
diagnostics.push({ code: "unsupported-image-treatment", path: `${path}.edge`, message: "An edge overlay needs a rectangle frame; a band cannot follow a rounded, circular or hexagonal mask as one native shape. Remove edge or use shape rectangle." });
|
|
4014
|
+
return void 0;
|
|
4015
|
+
}
|
|
4016
|
+
const part = finite(overlay.size, 0.05, 1) ?? 0.3;
|
|
4017
|
+
const box = !edge ? frame : edge === "top" ? { ...frame, height: round2(frame.height * part) } : edge === "bottom" ? { ...frame, y: round2(frame.y + frame.height * (1 - part)), height: round2(frame.height * part) } : edge === "left" ? { ...frame, width: round2(frame.width * part) } : { ...frame, x: round2(frame.x + frame.width * (1 - part)), width: round2(frame.width * part) };
|
|
4018
|
+
return { path, color: overlay.color, opacity, ...edge ? { edge } : {}, box, shape: edge ? imageShape("rectangle", box) : shape };
|
|
4019
|
+
}
|
|
4020
|
+
function composeImage(host, hostPath, region, frameArea, context) {
|
|
4021
|
+
const kindName = Object.hasOwn(IMAGE_SHAPES, host.shape) ? host.shape : "rectangle";
|
|
4022
|
+
const { scale } = context;
|
|
4023
|
+
let box = { ...frameArea };
|
|
4024
|
+
const aspect = kindName === "circle" ? 1 : finite(host.aspectRatio, Number.MIN_VALUE, 10);
|
|
3922
4025
|
if (aspect) {
|
|
3923
4026
|
const frameWidth = Math.min(box.width, box.height * aspect), frameHeight = frameWidth / aspect;
|
|
3924
4027
|
box = { x: box.x + (box.width - frameWidth) / 2, y: box.y + (box.height - frameHeight) / 2, width: frameWidth, height: frameHeight };
|
|
3925
4028
|
}
|
|
3926
|
-
box =
|
|
3927
|
-
const
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
|
|
3931
|
-
|
|
3932
|
-
fill,
|
|
3933
|
-
region,
|
|
3934
|
-
box,
|
|
3935
|
-
replacesContent,
|
|
3936
|
-
shape: slideImageShape(kind2, box, finite(t.cornerRadius, 0, 0.5))
|
|
3937
|
-
};
|
|
3938
|
-
if (typeof t.alt === "string") result.alt = t.alt;
|
|
3939
|
-
const border = record5(t.border), borderWidth = finite(border.width, 0, 64);
|
|
4029
|
+
box = roundBox(box);
|
|
4030
|
+
const fit = IMAGE_FITS.includes(host.fit) ? host.fit : context.fit ?? "cover";
|
|
4031
|
+
const focus = imageFocus(host.focus);
|
|
4032
|
+
const shape = imageShape(kindName, box, finite(host.cornerRadius, 0, 0.5));
|
|
4033
|
+
const result = { region: roundBox(region), box, fit, focus, shape };
|
|
4034
|
+
const border = record5(host.border), borderWidth = finite(border.width, 0, 64);
|
|
3940
4035
|
if (border.color !== void 0 && borderWidth) result.border = { color: border.color, width: round2(borderWidth * scale) };
|
|
3941
|
-
const opacity = finite(
|
|
4036
|
+
const opacity = finite(host.opacity, 0, 1);
|
|
3942
4037
|
if (opacity !== void 0 && opacity < 1) result.opacity = opacity;
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
const overlay =
|
|
3946
|
-
if (overlay.
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
}
|
|
4038
|
+
const recolor = composeRecolor(host.recolor);
|
|
4039
|
+
if (recolor) result.recolor = recolor;
|
|
4040
|
+
const overlay = composeOverlay(host.overlay, box, shape, `${hostPath}.overlay`, context.mirrorSide, context.diagnostics);
|
|
4041
|
+
if (overlay) result.overlay = overlay;
|
|
4042
|
+
if (context.placement) result.placement = context.placement;
|
|
4043
|
+
const pictureAspect = intrinsicImageAspect(host.image, context.assets);
|
|
4044
|
+
if (pictureAspect) result.picture = fitImage(box, fit, pictureAspect, focus);
|
|
4045
|
+
return result;
|
|
4046
|
+
}
|
|
4047
|
+
function resolveBackgroundImage(slide, presentation, themeBackground, width, height, path, mirrorSide, diagnostics) {
|
|
4048
|
+
const own2 = record5(slide.design), deck = record5(record5(presentation).design);
|
|
4049
|
+
const [value, at3] = own2.background !== void 0 ? [own2.background, `${path}.design.background`] : deck.background !== void 0 ? [deck.background, "design.background"] : [themeBackground, "theme"];
|
|
4050
|
+
const background = imageBackground(value);
|
|
4051
|
+
if (!background) return void 0;
|
|
4052
|
+
const box = { x: 0, y: 0, width, height };
|
|
4053
|
+
const result = { path: at3, src: background.src, ...background.alt !== void 0 ? { alt: background.alt } : {}, fit: background.fit, focus: background.focus, box };
|
|
4054
|
+
if (background.opacity !== void 0 && background.opacity < 1) result.opacity = background.opacity;
|
|
4055
|
+
const recolor = composeRecolor(background.recolor);
|
|
4056
|
+
if (recolor) result.recolor = recolor;
|
|
4057
|
+
const overlay = composeOverlay(background.overlay, box, imageShape("rectangle", box), `${at3}.overlay`, mirrorSide, diagnostics);
|
|
4058
|
+
if (overlay) result.overlay = overlay;
|
|
4059
|
+
const aspect = background.fit === "tile" ? void 0 : intrinsicImageAspect(background.src, record5(presentation).assets);
|
|
4060
|
+
if (aspect) result.picture = fitImage(box, background.fit, aspect, background.focus);
|
|
3955
4061
|
return result;
|
|
3956
4062
|
}
|
|
3957
4063
|
var LOGO_LOCKUP_CHAINS = {
|
|
@@ -3994,11 +4100,11 @@ function resolveLogo(presentation, slide, options = {}) {
|
|
|
3994
4100
|
return pick(record5(organizations[index]).logo, Array.isArray(deck.organization) ? `organization.${index}.logo` : "organization.logo");
|
|
3995
4101
|
}
|
|
3996
4102
|
var webUrl = /^https?:\/\/\S+$/i;
|
|
3997
|
-
function resolveSocialProfile(platform, value,
|
|
4103
|
+
function resolveSocialProfile(platform, value, owner = "organization") {
|
|
3998
4104
|
const raw = String(value).trim().replace(/\s+/gu, " ");
|
|
3999
4105
|
const display = (url2) => url2.replace(/^https:\/\//i, "");
|
|
4000
4106
|
if (webUrl.test(raw)) return { text: display(raw), href: raw, resolved: false };
|
|
4001
|
-
const platformRecord =
|
|
4107
|
+
const platformRecord = Object.hasOwn(SOCIAL_PLATFORMS, platform) ? SOCIAL_PLATFORMS[platform] : void 0;
|
|
4002
4108
|
const base = typeof platformRecord?.baseUrl === "string" && webUrl.test(platformRecord.baseUrl) ? `${platformRecord.baseUrl.replace(/\/+$/u, "")}/{handle}` : void 0;
|
|
4003
4109
|
const pattern = (owner === "organization" ? platformRecord?.companyUrlPattern : void 0) ?? platformRecord?.profileUrlPattern ?? base;
|
|
4004
4110
|
const prefix = platformRecord?.handlePrefix ?? "";
|
|
@@ -4025,7 +4131,6 @@ function layoutFurniture(input, options = {}) {
|
|
|
4025
4131
|
const primaryIndex = organizations.findIndex((item) => record5(item).role === "primary"), organizationIndex = primaryIndex >= 0 ? primaryIndex : organizations.findIndex(Boolean);
|
|
4026
4132
|
const organization = record5(organizations[organizationIndex]), organizationRoot = Array.isArray(options.presentation?.organization) ? `organization.${organizationIndex}` : "organization", organizationPath = `${organizationRoot}.name`;
|
|
4027
4133
|
const speakers = Array.isArray(options.presentation?.speaker) ? options.presentation.speaker : [options.presentation?.speaker], speaker = record5(speakers[0]), speakerRoot = Array.isArray(options.presentation?.speaker) ? "speaker.0" : "speaker";
|
|
4028
|
-
const inlinePlatforms = record5(record5(options.presentation?.catalogs).socialPlatforms).records, platformRecords = [...Array.isArray(inlinePlatforms) ? inlinePlatforms : [], ...options.socialPlatforms ?? []];
|
|
4029
4134
|
const fontFamily = options.fontFamilies?.body ?? "sans-serif";
|
|
4030
4135
|
let headerBottom = 0, footerTop = height, configured = false;
|
|
4031
4136
|
const error = (path, message, code = "text-overflow") => diagnostics.push({ code, path, message });
|
|
@@ -4101,7 +4206,7 @@ function layoutFurniture(input, options = {}) {
|
|
|
4101
4206
|
else error(`${path}.speaker`, "Generated speaker needs a named speaker in the presentation.", "unresolved-content");
|
|
4102
4207
|
}
|
|
4103
4208
|
if (content.socials === true) {
|
|
4104
|
-
const links = Object.entries(record5(organization.socials)).filter(([, value2]) => typeof value2 === "string" && value2.trim()).map(([platform, value2]) => ({ platform, sourcePath: `${organizationRoot}.socials.${platform}`, ...resolveSocialProfile(platform, value2,
|
|
4209
|
+
const links = Object.entries(record5(organization.socials)).filter(([, value2]) => typeof value2 === "string" && value2.trim()).map(([platform, value2]) => ({ platform, sourcePath: `${organizationRoot}.socials.${platform}`, ...resolveSocialProfile(platform, value2, "organization") }));
|
|
4105
4210
|
if (links.length) add("socials", links.map((link) => link.text).join("\n"), true, `${organizationRoot}.socials`, { links });
|
|
4106
4211
|
else error(`${path}.socials`, "Generated social profiles need a primary organization with socials.", "unresolved-content");
|
|
4107
4212
|
}
|
|
@@ -4306,7 +4411,7 @@ function layoutQuote(value, box, options = {}) {
|
|
|
4306
4411
|
attribution.box = selected.textBox ?? selected.footerBox;
|
|
4307
4412
|
attribution.fit = selected.footerFit;
|
|
4308
4413
|
}
|
|
4309
|
-
if (selected.photoBox) photo = { path: photoPath, value: photoValue, box: selected.photoBox, shape:
|
|
4414
|
+
if (selected.photoBox) photo = { path: photoPath, value: photoValue, box: selected.photoBox, shape: imageShape("circle", selected.photoBox) };
|
|
4310
4415
|
photoFits = selected.photoFits;
|
|
4311
4416
|
}
|
|
4312
4417
|
}
|
|
@@ -5236,13 +5341,37 @@ function composeSlide(input, options = {}) {
|
|
|
5236
5341
|
const path = `slides.${options.slideIndex ?? 0}`;
|
|
5237
5342
|
const annotationFit = (value, box, requestedSize, minFontSize, fitPath, alignment) => fitPlacedText("text", value, annotationText(value), box, requestedSize, minFontSize, fitPath, alignment);
|
|
5238
5343
|
const annotationOptions = { scale, minFontSize: minSize, fit: annotationFit, textStyle: (fitPath) => styleFor("text", fitPath) };
|
|
5239
|
-
const
|
|
5240
|
-
const
|
|
5344
|
+
const imageDiagnostics = [];
|
|
5345
|
+
const mirrorSide = (side) => !rtl ? side : side === "left" ? "right" : side === "right" ? "left" : side;
|
|
5346
|
+
const backgroundImage = resolveBackgroundImage(slide, options.presentation, options.themeBackground, width, height, path, mirrorSide, imageDiagnostics);
|
|
5347
|
+
const regions = Object.keys(slide).filter((key) => regionParts(key)).sort();
|
|
5348
|
+
const assets = record5(options.presentation).assets;
|
|
5349
|
+
const imageContext = (placement) => ({ fit: hints.imageFit, scale, mirrorSide, diagnostics: imageDiagnostics, assets, ...placement ? { placement } : {} });
|
|
5241
5350
|
const area = { left: 0, top: 0, right: width, bottom: height };
|
|
5242
|
-
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5351
|
+
const imagePlaceholders = (Array.isArray(layout.placeholders) ? layout.placeholders : []).flatMap((placeholder, index) => record5(placeholder).type === "image" ? [{ placeholder: record5(placeholder), index }] : []);
|
|
5352
|
+
const topImages = regions.length ? [] : Array.isArray(slide.blocks) ? slide.blocks.flatMap((block, index) => !Array.isArray(record5(block).blocks) && record5(block).image !== void 0 ? [{ host: record5(block), hostPath: `${path}.blocks.${index}`, block: index }] : []) : slide.image !== void 0 ? [{ host: { type: "image", image: slide.image }, hostPath: path }] : [];
|
|
5353
|
+
const placed = [], usedEdges = /* @__PURE__ */ new Set();
|
|
5354
|
+
topImages.forEach((node, order) => {
|
|
5355
|
+
const slot = imagePlaceholders[order];
|
|
5356
|
+
const own2 = node.block !== void 0 && node.host.placement !== void 0 ? record5(node.host.placement) : void 0;
|
|
5357
|
+
const value = own2 ?? (slot?.placeholder.placement !== void 0 ? record5(slot.placeholder.placement) : void 0);
|
|
5358
|
+
if (!value || !IMAGE_EDGES.includes(value.edge)) return;
|
|
5359
|
+
const edge = mirrorSide(value.edge);
|
|
5360
|
+
if (usedEdges.has(edge)) return;
|
|
5361
|
+
usedEdges.add(edge);
|
|
5362
|
+
const size = finite(value.size, 0.1, 0.9) ?? PLACEMENT_BAND;
|
|
5363
|
+
const across = edge === "left" || edge === "right" ? area.right - area.left : area.bottom - area.top;
|
|
5364
|
+
const band = Math.max(0, Math.min(across, round2((edge === "left" || edge === "right" ? width : height) * size)));
|
|
5365
|
+
const region = edge === "left" ? { x: area.left, y: area.top, width: band, height: area.bottom - area.top } : edge === "right" ? { x: round2(area.right - band), y: area.top, width: band, height: area.bottom - area.top } : edge === "top" ? { x: area.left, y: area.top, width: area.right - area.left, height: band } : { x: area.left, y: round2(area.bottom - band), width: area.right - area.left, height: band };
|
|
5366
|
+
if (edge === "left") area.left += band;
|
|
5367
|
+
else if (edge === "right") area.right = region.x;
|
|
5368
|
+
else if (edge === "top") area.top += band;
|
|
5369
|
+
else area.bottom = region.y;
|
|
5370
|
+
const placement = { edge, size, inset: value.inset === true, path: own2 ? `${node.hostPath}.placement` : `layout.placeholders.${slot.index}.placement` };
|
|
5371
|
+
placed.push({ ...node, placement, region, slot: order });
|
|
5372
|
+
});
|
|
5373
|
+
const placedBlocks = new Set(placed.flatMap((entry) => entry.block !== void 0 ? [entry.block] : []));
|
|
5374
|
+
const placedRoot = placed.some((entry) => entry.block === void 0);
|
|
5246
5375
|
const items = [], diagnostics = [];
|
|
5247
5376
|
const measuredFurniture = layoutFurniture(slide, options);
|
|
5248
5377
|
const furniture = measuredFurniture.configured || measuredFurniture.diagnostics.length ? measuredFurniture : void 0;
|
|
@@ -5256,12 +5385,13 @@ function composeSlide(input, options = {}) {
|
|
|
5256
5385
|
bodyBottom = footnotes.box.y - gap * 0.5;
|
|
5257
5386
|
}
|
|
5258
5387
|
const layoutPlaceholders = Array.isArray(layout.placeholders) ? layout.placeholders : [];
|
|
5259
|
-
const
|
|
5260
|
-
const
|
|
5388
|
+
const hasLayoutRecord = options.layout !== void 0 && options.layout !== null && typeof options.layout === "object";
|
|
5389
|
+
const headingOnlyLayout = layoutPlaceholders.length > 0 && layoutPlaceholders.every((placeholder) => headings.has(placeholder.type ?? "") || placeholder.type === "image" && typeof placeholder.placement === "object" && placeholder.placement !== null);
|
|
5261
5390
|
const emptyPayload = (value) => value === void 0 || value === null || value === "" || Array.isArray(value) && value.length === 0;
|
|
5262
5391
|
const emptyHost = (host) => emptyPayload(host.blocks) && fields.every((field) => emptyPayload(host[field]));
|
|
5263
|
-
const
|
|
5264
|
-
const
|
|
5392
|
+
const flowBlocks = Array.isArray(slide.blocks) ? slide.blocks.filter((_, index) => !placedBlocks.has(index)) : slide.blocks;
|
|
5393
|
+
const hasBodyPayload = regions.some((key) => !emptyHost(record5(slide[key]))) || !emptyPayload(flowBlocks) || fields.some((field) => !(placedRoot && field === "image") && !emptyPayload(slide[field]));
|
|
5394
|
+
const isCover = !hasBodyPayload && (headingOnlyLayout || !hasLayoutRecord);
|
|
5265
5395
|
coverGroup = isCover;
|
|
5266
5396
|
let logo;
|
|
5267
5397
|
if (isCover) {
|
|
@@ -5299,6 +5429,30 @@ function composeSlide(input, options = {}) {
|
|
|
5299
5429
|
y = last.box.y + last.box.height + gap;
|
|
5300
5430
|
} else y += gap * 0.5;
|
|
5301
5431
|
}
|
|
5432
|
+
for (const entry of placed) {
|
|
5433
|
+
const { host, hostPath, region, placement } = entry;
|
|
5434
|
+
let frameArea = placement.inset ? { x: region.x + padding, y: region.y + padding, width: Math.max(scale, region.width - 2 * padding), height: Math.max(scale, region.height - 2 * padding) } : { ...region };
|
|
5435
|
+
const caption = host.caption !== void 0 && entry.block !== void 0 ? layoutCaption(host.caption, roundBox(frameArea), `${hostPath}.caption`, annotationOptions) : void 0;
|
|
5436
|
+
if (caption) {
|
|
5437
|
+
frameArea = caption.mediaBox;
|
|
5438
|
+
diagnostics.push(...caption.diagnostics);
|
|
5439
|
+
}
|
|
5440
|
+
const image = composeImage(host, hostPath, region, frameArea, imageContext(placement));
|
|
5441
|
+
const type = host.type ?? "image";
|
|
5442
|
+
items.push({
|
|
5443
|
+
path: `${hostPath}.image`,
|
|
5444
|
+
field: "image",
|
|
5445
|
+
type,
|
|
5446
|
+
value: host.image,
|
|
5447
|
+
payload: imagePayload(host),
|
|
5448
|
+
box: { ...region },
|
|
5449
|
+
image,
|
|
5450
|
+
textStyle: styleFor("image", `${hostPath}.image`),
|
|
5451
|
+
composition,
|
|
5452
|
+
alignment: alignmentFor("image"),
|
|
5453
|
+
...caption ? { caption } : {}
|
|
5454
|
+
});
|
|
5455
|
+
}
|
|
5302
5456
|
const contentBox = { x: area.left + padding, y, width: area.right - area.left - padding * 2, height: Math.max(scale, bodyBottom - y) };
|
|
5303
5457
|
const collect = (host, basePath, depth = 0, ancestors = []) => {
|
|
5304
5458
|
if (Array.isArray(host.blocks)) {
|
|
@@ -5322,12 +5476,13 @@ function composeSlide(input, options = {}) {
|
|
|
5322
5476
|
type: host.type ?? kind(field),
|
|
5323
5477
|
value: fieldValue(field),
|
|
5324
5478
|
path: `${basePath}.${field}`,
|
|
5325
|
-
payload: { type: host.type ?? kind(field), [field]: fieldValue(field), ...host.numbering !== void 0 && (field === "items" || field === "bullets") ? { numbering: host.numbering } : {} },
|
|
5479
|
+
payload: field === "image" ? imagePayload(host) : { type: host.type ?? kind(field), [field]: fieldValue(field), ...host.numbering !== void 0 && (field === "items" || field === "bullets") ? { numbering: host.numbering } : {} },
|
|
5480
|
+
...field === "image" ? { host, hostPath: basePath } : {},
|
|
5326
5481
|
...captioned.length === 1 && captioned[0] === field ? { caption: host.caption, captionPath: `${basePath}.caption` } : {}
|
|
5327
5482
|
}));
|
|
5328
5483
|
};
|
|
5329
5484
|
const regionsInReadingOrder = visualReadingOrder(regions.map((key) => ({ key, box: regionBox(regionParts(key), contentBox, gap) }))).map((entry) => entry.key);
|
|
5330
|
-
const pending = regions.length ? regionsInReadingOrder.flatMap((key) => collect(record5(slide[key]), `${path}.${key}`).map((item) => ({ ...item, region: regionParts(key) }))) : Array.isArray(slide.blocks) ? slide.blocks.flatMap((block, index) => collect(record5(block), `${path}.blocks.${index}`)) : collect(
|
|
5485
|
+
const pending = regions.length ? regionsInReadingOrder.flatMap((key) => collect(record5(slide[key]), `${path}.${key}`).map((item) => ({ ...item, region: regionParts(key) }))) : Array.isArray(slide.blocks) ? slide.blocks.flatMap((block, index) => placedBlocks.has(index) ? [] : collect(record5(block), `${path}.blocks.${index}`)) : collect(placedRoot ? { ...slide, image: void 0 } : slide, path);
|
|
5331
5486
|
const groups = [], flows = [];
|
|
5332
5487
|
const decisions = options.explain ? [] : void 0;
|
|
5333
5488
|
const inheritedSettings = (parent, own2 = {}) => ({
|
|
@@ -5484,6 +5639,7 @@ function composeSlide(input, options = {}) {
|
|
|
5484
5639
|
const timelineLayout = node.field === "timeline" ? measureTimeline(node, box, settings) : void 0;
|
|
5485
5640
|
const internal = quoteLayout ?? codeLayout ?? metricLayout ?? timelineLayout, body = internal?.parts.find((part) => part.role === "body" || part.role === "value");
|
|
5486
5641
|
const text2 = internal ? body?.fit : textValue !== void 0 ? fitContent(node.field, node.value, textValue, box, 25 * scale, snapFontSizeUp((settings.minFontSize ?? 16) * scale), node.path, node.payload.numbering) : void 0;
|
|
5642
|
+
const image = node.field === "image" ? composeImage(node.host ?? {}, node.hostPath ?? node.path, box, box, imageContext()) : void 0;
|
|
5487
5643
|
items.push({
|
|
5488
5644
|
path: node.path,
|
|
5489
5645
|
field: node.field,
|
|
@@ -5491,6 +5647,7 @@ function composeSlide(input, options = {}) {
|
|
|
5491
5647
|
value: node.value,
|
|
5492
5648
|
payload: node.payload,
|
|
5493
5649
|
box: internal ? acceptedBox(box) : box,
|
|
5650
|
+
...image ? { image } : {},
|
|
5494
5651
|
...frameBox ? { frameBox } : {},
|
|
5495
5652
|
text: text2,
|
|
5496
5653
|
textStyle: body?.style ?? styleFor(node.field, node.path),
|
|
@@ -5508,9 +5665,9 @@ function composeSlide(input, options = {}) {
|
|
|
5508
5665
|
});
|
|
5509
5666
|
};
|
|
5510
5667
|
const placeholders = Array.isArray(layout.placeholders) ? layout.placeholders.filter((p) => !headings.has(p.type)) : [];
|
|
5511
|
-
|
|
5512
|
-
|
|
5513
|
-
|
|
5668
|
+
const placedSlots = new Set(placed.flatMap((entry) => imagePlaceholders[entry.slot] ? [imagePlaceholders[entry.slot].placeholder] : []));
|
|
5669
|
+
if (placedSlots.size) {
|
|
5670
|
+
for (let index = placeholders.length - 1; index >= 0; index--) if (placedSlots.has(placeholders[index])) placeholders.splice(index, 1);
|
|
5514
5671
|
}
|
|
5515
5672
|
const ownMode = record5(slide.composition).mode;
|
|
5516
5673
|
const direction = hints.contentDirection;
|
|
@@ -5563,8 +5720,8 @@ function composeSlide(input, options = {}) {
|
|
|
5563
5720
|
unmeasuredPayloads: items.filter((item) => !headings.has(item.field) && !item.quoteLayout && !item.codeLayout && !item.metricLayout && !item.timelineLayout && !["text", "items", "bullets", "table"].includes(item.field)).map((item) => item.path)
|
|
5564
5721
|
} : void 0;
|
|
5565
5722
|
if (failures.length) throw new OPFCompositionError(failures, explanation);
|
|
5566
|
-
diagnostics.push(...
|
|
5567
|
-
return { width, height, contentBox, items, groups, flows, diagnostics, composition, design: hints, ...furniture ? { furniture } : {}, ...
|
|
5723
|
+
diagnostics.push(...imageDiagnostics, ...numberingDiagnostics);
|
|
5724
|
+
return { width, height, contentBox, items, groups, flows, diagnostics, composition, design: hints, ...furniture ? { furniture } : {}, ...backgroundImage ? { backgroundImage } : {}, ...logo ? { logo } : {}, ...rtl ? { direction: "rtl" } : {}, ...footnotes ? { footnotes } : {}, ...explanation ? { explanation } : {} };
|
|
5568
5725
|
}
|
|
5569
5726
|
function resolveCanvasDimensions(input) {
|
|
5570
5727
|
const presets = {
|
|
@@ -5587,4 +5744,4 @@ function resolveCanvasDimensions(input) {
|
|
|
5587
5744
|
return { width, height };
|
|
5588
5745
|
}
|
|
5589
5746
|
|
|
5590
|
-
export { CAPTIONABLE_FIELDS, CAPTION_FONT_RATIO, CAPTION_MAX_RATIO, CHART_HIGHLIGHT_MUTED_MIN_CONTRAST, CHART_HIGHLIGHT_MUTED_MIX, CHART_SERIES_MIN_DIFFERENCE, CHART_SERIES_MIN_LIGHTNESS_STEP, CITATION_MARKER_RAISE, CITATION_MARKER_SCALE, CODE_HIGHLIGHT_LANGUAGES, CODE_HIGHLIGHT_MAX_LENGTH, CODE_PANEL_BACKGROUND, CODE_PANEL_FOREGROUND, CODE_SYNTAX_MIN_CONTRAST, DARK_BACKGROUND_LUMINANCE, DEFAULT_CHART_LABEL_SEPARATOR,
|
|
5747
|
+
export { CAPTIONABLE_FIELDS, CAPTION_FONT_RATIO, CAPTION_MAX_RATIO, CHART_HIGHLIGHT_MUTED_MIN_CONTRAST, CHART_HIGHLIGHT_MUTED_MIX, CHART_SERIES_MIN_DIFFERENCE, CHART_SERIES_MIN_LIGHTNESS_STEP, CHART_TYPES, CITATION_MARKER_RAISE, CITATION_MARKER_SCALE, CODE_HIGHLIGHT_LANGUAGES, CODE_HIGHLIGHT_MAX_LENGTH, CODE_PANEL_BACKGROUND, CODE_PANEL_FOREGROUND, CODE_SYNTAX_MIN_CONTRAST, DARK_BACKGROUND_LUMINANCE, DEFAULT_CHART_LABEL_SEPARATOR, DEFAULT_FURNITURE_DATE_FORMAT, DEFAULT_SLIDE_NUMBER_FORMAT, DEFAULT_VARIABLE_DATE_FORMAT, DESIGN_HINT_KEYS, ENGINE_DEFAULT_CHART_TYPES, ENGINE_DEFAULT_COLOR_SCHEME, ENGINE_DEFAULT_FONT_SCHEME, ENGINE_DEFAULT_THEME, FONT_SIZE_GRID_PER_PX, FOOTNOTE_MAX_RATIO, LANGUAGES, LAYOUT_BODY_KINDS, MAX_COMPOSITION_DEPTH, MAX_NUMBERING_LEVELS, MAX_NUMBERING_VALUE, MAX_ROMAN_VALUE, METRIC_TREND_MIN_CONTRAST, METRIC_TREND_SHAPES, NUMBERING_STYLES, NUMBERING_SUFFIXES, OPFCompositionError, OPFVariableError, PATTERN_PRESETS, PATTERN_PRESET_ALIASES, PATTERN_TILE_SIZE, PICTURE_BULLET_SCALE, SOCIAL_PLATFORMS, SURFACE_ALT_MIN_CONTRAST, SURFACE_ALT_MIX, TIMELINE_OUTLINE_MIN_CONTRAST, TIMELINE_STATUSES, TIMELINE_TEXT_MIN_CONTRAST, VARIABLE_KINDS, annotationText, captionSettings, chartColorForFill, chartHighlightColors, chartHighlightMarks, chartLabelText, chartNumber, chartNumberFixesByCell, chartOptionSupport, chartOptionTarget, chartPaletteForFill, citationMarkerText, codeHighlightBands, codeHighlightColors, codeHighlightLines, codeHighlightSlice, codeLineNumbers, codeLineRuns, codeSyntaxPalette, codeSyntaxPaletteForScheme, coerceVariableValue, collectCitations, colorContrast, composeSlide, datasetDiagnostics, defaultSlideBackground, fitImage, fitList, fitRichText, fitText, formatChartLabelNumber, formatChartLabelPercent, formatDataNumber, formatFurnitureDate, formatListNumber, formatSlideNumber, formatVariableNumber, fromExcelNumberFormat, hasContentVariables, imageBackground, imageShape, inlineChartData, inlineDatasets, inlineTableData, instantiateForValidation, intrinsicImageAspect, intrinsicImageSize, isDarkColor, isDatasetRef, isRecord, isTemplate, isXYChartType, layoutCaption, layoutCode, layoutContent, layoutFootnotes, layoutFurniture, layoutMetric, layoutQuote, layoutTable, layoutTimeline, layoutWatermark, listBuiltinVariables, listNumbers, listVariables, measureText, measureTextOutline, metricTrendColor, metricTrendMark, metricTrendPoints, normalizeHexColor, normalizeLanguageFamily, numberFormatError, numberingAtLevel, numberingFindings, numberingStyleDraws, paragraphDirection, paragraphDirectionAt, pathFor, patternBitmap, patternRuns, physicalAlignment, placeTextLines, promotedRegionKeys, readingRows, referencesSlide, resolveCanvasDimensions, resolveChartData, resolveChartOptions, resolveCodeLanguage, resolveColorRef, resolveColorRoles, resolveDesignHints, resolveDesignRecords, resolveFontFamilies, resolveFontScheme, resolveLogo, resolveNumbering, resolvePatternPreset, resolveScriptFonts, resolveSlideDirection, resolveSocialProfile, resolveTableData, resolveTextStyle, resolveVariables, scriptFontRole, sliceNumberedItems, slideCitations, snapFontSizeDown, snapFontSizeUp, suggestChartNumberFix, surfaceAltColor, tableCellDisplayValue, tableGrid, tableRowBoundaries, textColorForFill, textWidthMeasurer, timelineMarkerShapes, timelineTextColor, toExcelNumberFormat, tokenizeCode, unusedDatasets, variableDeclarations, visitContentPayloads, visualReadingOrder, walkCitationRuns, wrapText };
|