@heycys/gallery 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +50 -2
- package/THIRD-PARTY-NOTICES.md +3253 -0
- package/assets/writing-preferences.md +107 -0
- package/bin/gallery.mjs +10 -0
- package/browser/editor/components/bookmark/icons.mjs +6 -0
- package/browser/editor/components/bookmark/index.mjs +80 -0
- package/browser/editor/components/bookmark/page.mjs +147 -0
- package/browser/editor/components/builders.mjs +19 -0
- package/browser/editor/components/callout/index.mjs +39 -0
- package/browser/editor/components/callout/page.mjs +13 -0
- package/browser/editor/components/code/index.mjs +327 -0
- package/browser/editor/components/code/page.mjs +561 -0
- package/browser/editor/components/colors.mjs +50 -0
- package/browser/editor/components/columns/index.mjs +104 -0
- package/browser/editor/components/columns/page.mjs +297 -0
- package/browser/editor/components/details/index.mjs +72 -0
- package/browser/editor/components/details/page.mjs +86 -0
- package/browser/editor/components/dialog/index.mjs +83 -0
- package/browser/editor/components/dialog/page.mjs +219 -0
- package/browser/editor/components/divider/index.mjs +48 -0
- package/browser/editor/components/embed/icons.mjs +11 -0
- package/browser/editor/components/embed/index.mjs +123 -0
- package/browser/editor/components/embed/page.mjs +309 -0
- package/browser/editor/components/figure/index.mjs +87 -0
- package/browser/editor/components/figure/page.mjs +33 -0
- package/browser/editor/components/file/icons.mjs +14 -0
- package/browser/editor/components/file/index.mjs +77 -0
- package/browser/editor/components/file/page.mjs +114 -0
- package/browser/editor/components/flowchart/add.mjs +123 -0
- package/browser/editor/components/flowchart/index.mjs +246 -0
- package/browser/editor/components/flowchart/page.mjs +453 -0
- package/browser/editor/components/heading/index.mjs +51 -0
- package/browser/editor/components/highlight/index.mjs +79 -0
- package/browser/editor/components/icon/index.mjs +57 -0
- package/browser/editor/components/icon/page.mjs +286 -0
- package/browser/editor/components/icons.mjs +45 -0
- package/browser/editor/components/image/crop.mjs +189 -0
- package/browser/editor/components/image/index.mjs +104 -0
- package/browser/editor/components/image/page.mjs +385 -0
- package/browser/editor/components/image/viewer.mjs +213 -0
- package/browser/editor/components/installed/index.mjs +133 -0
- package/browser/editor/components/installed/page.mjs +422 -0
- package/browser/editor/components/installed/served.mjs +35 -0
- package/browser/editor/components/kit.mjs +64 -0
- package/browser/editor/components/list/index.mjs +194 -0
- package/browser/editor/components/list/join.mjs +68 -0
- package/browser/editor/components/list/numbers.mjs +107 -0
- package/browser/editor/components/list/page.mjs +632 -0
- package/browser/editor/components/math/index.mjs +88 -0
- package/browser/editor/components/math/page.mjs +236 -0
- package/browser/editor/components/math/tex-logo.mjs +6 -0
- package/browser/editor/components/media/icons.mjs +19 -0
- package/browser/editor/components/media/page.mjs +162 -0
- package/browser/editor/components/media/parts.mjs +60 -0
- package/browser/editor/components/media/size.mjs +20 -0
- package/browser/editor/components/media/toolbar.mjs +37 -0
- package/browser/editor/components/media/write.mjs +7 -0
- package/browser/editor/components/pages.mjs +46 -0
- package/browser/editor/components/paragraph/index.mjs +43 -0
- package/browser/editor/components/paragraph/page.mjs +52 -0
- package/browser/editor/components/placeholder-bar.mjs +17 -0
- package/browser/editor/components/placeholder.mjs +128 -0
- package/browser/editor/components/quote/index.mjs +33 -0
- package/browser/editor/components/registry.mjs +833 -0
- package/browser/editor/components/rows.mjs +16 -0
- package/browser/editor/components/section/index.mjs +41 -0
- package/browser/editor/components/section/page.mjs +141 -0
- package/browser/editor/components/sheets/index.mjs +137 -0
- package/browser/editor/components/sheets/page.mjs +227 -0
- package/browser/editor/components/sheets/pills.mjs +226 -0
- package/browser/editor/components/table/grid.mjs +73 -0
- package/browser/editor/components/table/index.mjs +306 -0
- package/browser/editor/components/table/page.mjs +672 -0
- package/browser/editor/components/table/slots.mjs +41 -0
- package/browser/editor/components/widget/index.mjs +50 -0
- package/browser/editor/page/annotate/anchors.mjs +229 -0
- package/browser/editor/page/annotate/card.mjs +102 -0
- package/browser/editor/page/annotate/index.mjs +1629 -0
- package/browser/editor/page/at-menu/index.mjs +317 -0
- package/browser/editor/page/autosave.mjs +977 -0
- package/browser/editor/page/beside.mjs +21 -0
- package/browser/editor/page/block-info.mjs +63 -0
- package/browser/editor/page/block-menu/colors.mjs +82 -0
- package/browser/editor/page/block-menu/index.mjs +215 -0
- package/browser/editor/page/blocks.mjs +246 -0
- package/browser/editor/page/caret.mjs +679 -0
- package/browser/editor/page/chip-fills.mjs +126 -0
- package/browser/editor/page/clipboard/import/colors.mjs +192 -0
- package/browser/editor/page/clipboard/import/html.mjs +792 -0
- package/browser/editor/page/clipboard/import/inline.mjs +232 -0
- package/browser/editor/page/clipboard/import/languages.mjs +42 -0
- package/browser/editor/page/clipboard/import/markdown.mjs +760 -0
- package/browser/editor/page/clipboard/import/math.mjs +100 -0
- package/browser/editor/page/clipboard/import/office.mjs +245 -0
- package/browser/editor/page/clipboard/import/read.mjs +120 -0
- package/browser/editor/page/clipboard/import/rich.mjs +29 -0
- package/browser/editor/page/clipboard/import/to-blocks.mjs +290 -0
- package/browser/editor/page/clipboard/index.mjs +797 -0
- package/browser/editor/page/clipboard/own/blocks.mjs +202 -0
- package/browser/editor/page/clipboard/own/chart-keys.mjs +58 -0
- package/browser/editor/page/clipboard/own/describe.mjs +115 -0
- package/browser/editor/page/clipboard/own/export.mjs +167 -0
- package/browser/editor/page/clipboard/own/ids.mjs +39 -0
- package/browser/editor/page/clipboard/own/index.mjs +13 -0
- package/browser/editor/page/clipboard/own/rules.mjs +44 -0
- package/browser/editor/page/clipboard/own/selection.mjs +159 -0
- package/browser/editor/page/clipboard/own/writers.mjs +326 -0
- package/browser/editor/page/columns/index.mjs +360 -0
- package/browser/editor/page/commit.mjs +1798 -0
- package/browser/editor/page/conflicts.mjs +269 -0
- package/browser/editor/page/convert.mjs +830 -0
- package/browser/editor/page/core.mjs +1655 -0
- package/browser/editor/page/drag/drop.mjs +307 -0
- package/browser/editor/page/drag/index.mjs +335 -0
- package/browser/editor/page/drag/preview.mjs +121 -0
- package/browser/editor/page/edge-scroll.mjs +50 -0
- package/browser/editor/page/editor.mjs +1725 -0
- package/browser/editor/page/emoji-picker/emoji-tab.mjs +278 -0
- package/browser/editor/page/emoji-picker/glyph-html.mjs +26 -0
- package/browser/editor/page/emoji-picker/grid.mjs +79 -0
- package/browser/editor/page/emoji-picker/icon-tab.mjs +217 -0
- package/browser/editor/page/emoji-picker/icons.mjs +32 -0
- package/browser/editor/page/emoji-picker/index.mjs +164 -0
- package/browser/editor/page/emoji-picker/styles.mjs +2 -0
- package/browser/editor/page/emoji-picker/support.mjs +202 -0
- package/browser/editor/page/emoji-picker/upload.mjs +235 -0
- package/browser/editor/page/export-report.mjs +23 -0
- package/browser/editor/page/fills.mjs +60 -0
- package/browser/editor/page/find/index.mjs +107 -0
- package/browser/editor/page/flags.mjs +70 -0
- package/browser/editor/page/format-bar/bar.mjs +448 -0
- package/browser/editor/page/format-bar/brush.mjs +77 -0
- package/browser/editor/page/format-bar/colors.mjs +46 -0
- package/browser/editor/page/format-bar/index.mjs +404 -0
- package/browser/editor/page/formula/index.mjs +236 -0
- package/browser/editor/page/formula/panel.mjs +336 -0
- package/browser/editor/page/formula/symbols.mjs +156 -0
- package/browser/editor/page/frame.mjs +74 -0
- package/browser/editor/page/frames.mjs +196 -0
- package/browser/editor/page/geometry.mjs +400 -0
- package/browser/editor/page/gesture.mjs +45 -0
- package/browser/editor/page/handle/index.mjs +639 -0
- package/browser/editor/page/handle-sizes.mjs +14 -0
- package/browser/editor/page/hints/index.mjs +84 -0
- package/browser/editor/page/history.mjs +401 -0
- package/browser/editor/page/insert/index.mjs +243 -0
- package/browser/editor/page/kept.mjs +38 -0
- package/browser/editor/page/links/address.mjs +40 -0
- package/browser/editor/page/links/index.mjs +866 -0
- package/browser/editor/page/links/pages.mjs +131 -0
- package/browser/editor/page/links/views.mjs +369 -0
- package/browser/editor/page/look.mjs +65 -0
- package/browser/editor/page/made.mjs +24 -0
- package/browser/editor/page/margin.mjs +352 -0
- package/browser/editor/page/markdown/index.mjs +88 -0
- package/browser/editor/page/markdown/rules.mjs +33 -0
- package/browser/editor/page/marks.mjs +377 -0
- package/browser/editor/page/media-menu/index.mjs +158 -0
- package/browser/editor/page/menu.mjs +500 -0
- package/browser/editor/page/merge.mjs +100 -0
- package/browser/editor/page/notices.mjs +142 -0
- package/browser/editor/page/offered.mjs +32 -0
- package/browser/editor/page/outline/folds.mjs +52 -0
- package/browser/editor/page/outline/index.mjs +697 -0
- package/browser/editor/page/outline/list.mjs +172 -0
- package/browser/editor/page/outline/read.mjs +201 -0
- package/browser/editor/page/outline/strip.mjs +281 -0
- package/browser/editor/page/outline/tree.mjs +248 -0
- package/browser/editor/page/overlay-layer.mjs +227 -0
- package/browser/editor/page/overlays.mjs +205 -0
- package/browser/editor/page/own.mjs +28 -0
- package/browser/editor/page/pads.mjs +71 -0
- package/browser/editor/page/page-objects.mjs +105 -0
- package/browser/editor/page/panel.mjs +64 -0
- package/browser/editor/page/placement.mjs +58 -0
- package/browser/editor/page/post.mjs +41 -0
- package/browser/editor/page/present-links.mjs +50 -0
- package/browser/editor/page/quiet.mjs +48 -0
- package/browser/editor/page/resize/index.mjs +327 -0
- package/browser/editor/page/select-all/index.mjs +262 -0
- package/browser/editor/page/selection/delete.mjs +59 -0
- package/browser/editor/page/selection/index.mjs +157 -0
- package/browser/editor/page/selection/marquee.mjs +174 -0
- package/browser/editor/page/session.mjs +117 -0
- package/browser/editor/page/slash-menu/index.mjs +291 -0
- package/browser/editor/page/storage.mjs +48 -0
- package/browser/editor/page/sync-state.mjs +267 -0
- package/browser/editor/page/table/aligns.mjs +29 -0
- package/browser/editor/page/table/cell-bar.mjs +138 -0
- package/browser/editor/page/table/cells.mjs +527 -0
- package/browser/editor/page/table/icons.mjs +40 -0
- package/browser/editor/page/table/index.mjs +985 -0
- package/browser/editor/page/table/lists.mjs +187 -0
- package/browser/editor/page/table/widths.mjs +308 -0
- package/browser/editor/page/tex.mjs +32 -0
- package/browser/editor/page/text-select/index.mjs +656 -0
- package/browser/editor/page/tooltip.mjs +98 -0
- package/browser/editor/page/type-grid.mjs +82 -0
- package/browser/editor/page/typing/code-edges.mjs +228 -0
- package/browser/editor/page/typing/index.mjs +276 -0
- package/browser/editor/page/typing/leave.mjs +68 -0
- package/browser/editor/page/ui.mjs +160 -0
- package/browser/shared/annotations.mjs +571 -0
- package/browser/shared/code-folds.mjs +10 -0
- package/browser/shared/code-languages.mjs +70 -0
- package/browser/shared/code-lines.mjs +30 -0
- package/browser/shared/colors.mjs +28 -0
- package/browser/shared/component-catalog.mjs +559 -0
- package/browser/shared/components/bookmark.mjs +26 -0
- package/browser/shared/components/callout.mjs +7 -0
- package/browser/shared/components/chart.mjs +20 -0
- package/browser/shared/components/code.mjs +37 -0
- package/browser/shared/components/columns.mjs +16 -0
- package/browser/shared/components/details.mjs +15 -0
- package/browser/shared/components/dialog.mjs +28 -0
- package/browser/shared/components/diff.mjs +18 -0
- package/browser/shared/components/divider.mjs +6 -0
- package/browser/shared/components/embed.mjs +25 -0
- package/browser/shared/components/figure.mjs +14 -0
- package/browser/shared/components/file.mjs +23 -0
- package/browser/shared/components/heading.mjs +6 -0
- package/browser/shared/components/highlight.mjs +9 -0
- package/browser/shared/components/icon.mjs +18 -0
- package/browser/shared/components/image.mjs +39 -0
- package/browser/shared/components/index.mjs +342 -0
- package/browser/shared/components/installed.mjs +162 -0
- package/browser/shared/components/list.mjs +146 -0
- package/browser/shared/components/math.mjs +49 -0
- package/browser/shared/components/mention.mjs +33 -0
- package/browser/shared/components/page.mjs +37 -0
- package/browser/shared/components/paragraph.mjs +9 -0
- package/browser/shared/components/quote.mjs +6 -0
- package/browser/shared/components/section.mjs +8 -0
- package/browser/shared/components/sheets.mjs +80 -0
- package/browser/shared/components/state.mjs +20 -0
- package/browser/shared/components/table.mjs +49 -0
- package/browser/shared/components/text.mjs +14 -0
- package/browser/shared/components/widget.mjs +10 -0
- package/browser/shared/copy-ids.mjs +72 -0
- package/browser/shared/css-references.mjs +110 -0
- package/browser/shared/emoji/custom.mjs +91 -0
- package/browser/shared/emoji/data/LICENSE-mingcute.txt +202 -0
- package/browser/shared/emoji/data/LICENSE-tabler.txt +21 -0
- package/browser/shared/emoji/data/README.md +26 -0
- package/browser/shared/emoji/data/categories.json +1 -0
- package/browser/shared/emoji/data/icons.json +1 -0
- package/browser/shared/emoji/data/keywords-en.json +1 -0
- package/browser/shared/emoji/data/keywords-zh.json +1 -0
- package/browser/shared/emoji/data/names.json +1 -0
- package/browser/shared/emoji/data/positions.json +1 -0
- package/browser/shared/emoji/data/twemoji-index.json +1 -0
- package/browser/shared/emoji/data/twemoji-svg.bin +0 -0
- package/browser/shared/emoji/data.mjs +196 -0
- package/browser/shared/emoji/emoji.mjs +37 -0
- package/browser/shared/emoji/glyphs.mjs +134 -0
- package/browser/shared/emoji/icon-value.mjs +90 -0
- package/browser/shared/escape.mjs +20 -0
- package/browser/shared/export-wrap.mjs +89 -0
- package/browser/shared/files.mjs +33 -0
- package/browser/shared/html-tree.mjs +53 -0
- package/browser/shared/http.mjs +22 -0
- package/browser/shared/i18n/en.mjs +1164 -0
- package/browser/shared/i18n/index.mjs +132 -0
- package/browser/shared/ids.mjs +24 -0
- package/browser/shared/import-types.mjs +23 -0
- package/browser/shared/inline-spacing.mjs +97 -0
- package/browser/shared/layers.mjs +42 -0
- package/browser/shared/media.mjs +162 -0
- package/browser/shared/new-names.mjs +64 -0
- package/browser/shared/number-reading.mjs +92 -0
- package/browser/shared/old-names.mjs +143 -0
- package/browser/shared/page-address.mjs +140 -0
- package/browser/shared/page-links.mjs +86 -0
- package/browser/shared/paths.mjs +73 -0
- package/browser/shared/preferences.mjs +110 -0
- package/browser/shared/preview-server.mjs +247 -0
- package/browser/shared/qa-levels.mjs +93 -0
- package/browser/shared/reading-place.mjs +91 -0
- package/browser/shared/renamed-storage.mjs +220 -0
- package/browser/shared/reports.mjs +46 -0
- package/browser/shared/search.mjs +85 -0
- package/browser/shared/session.mjs +76 -0
- package/browser/shared/table-chart.mjs +113 -0
- package/browser/shared/table-hides.mjs +120 -0
- package/browser/shared/table-slots.mjs +75 -0
- package/browser/shared/words.mjs +23 -0
- package/browser/shared/workspace.mjs +535 -0
- package/browser/shared/writing-preferences.mjs +68 -0
- package/browser/shared/zoom.mjs +57 -0
- package/dist/chunk-2B5E4CDJ.mjs +2 -0
- package/dist/chunk-2PBALTR3.mjs +57 -0
- package/dist/chunk-342HXE3Q.mjs +2 -0
- package/dist/chunk-3LA3EMDE.mjs +15 -0
- package/dist/chunk-43B75J5T.mjs +2 -0
- package/dist/chunk-4K5KC6V2.mjs +2 -0
- package/dist/chunk-5FRMCDPY.mjs +16 -0
- package/dist/chunk-5L7RYZCL.mjs +2 -0
- package/dist/chunk-5LEK2CBS.mjs +2 -0
- package/dist/chunk-5OFN5AHC.mjs +2 -0
- package/dist/chunk-5SIYS5HN.mjs +2 -0
- package/dist/chunk-5TEK3RAD.mjs +2 -0
- package/dist/chunk-6CYG3Z4V.mjs +2 -0
- package/dist/chunk-6U2SLSDN.mjs +3 -0
- package/dist/chunk-742D2WWJ.mjs +19 -0
- package/dist/chunk-7GHT2UCA.mjs +15 -0
- package/dist/chunk-7QQBR7PB.mjs +2 -0
- package/dist/chunk-A55HN5OK.mjs +2 -0
- package/dist/chunk-ACOPDCNB.mjs +2 -0
- package/dist/chunk-AGDILNWB.mjs +2 -0
- package/dist/chunk-ATCJYAR4.mjs +2 -0
- package/dist/chunk-B3VTYBYR.mjs +960 -0
- package/dist/chunk-C564NU2H.mjs +77 -0
- package/dist/chunk-C7HWOBIF.mjs +2 -0
- package/dist/chunk-DB4WKGYF.mjs +7 -0
- package/dist/chunk-E7VYDG2X.mjs +2 -0
- package/dist/chunk-EUX7IC5J.mjs +48 -0
- package/dist/chunk-EVJ3BX3M.mjs +2 -0
- package/dist/chunk-EZY3WC6Z.mjs +15 -0
- package/dist/chunk-FQGQH4KM.mjs +2 -0
- package/dist/chunk-G7TOXONE.mjs +6 -0
- package/dist/chunk-GPF4YWWB.mjs +9 -0
- package/dist/chunk-GRAXKKG4.mjs +2 -0
- package/dist/chunk-GYQV7Y4J.mjs +120 -0
- package/dist/chunk-HMHK3EQ6.mjs +2 -0
- package/dist/chunk-HQQMJCQJ.mjs +10 -0
- package/dist/chunk-HYMEEXKN.mjs +4 -0
- package/dist/chunk-IERUOGC3.mjs +6 -0
- package/dist/chunk-ITNLYXXV.mjs +3 -0
- package/dist/chunk-L4DVONOG.mjs +2 -0
- package/dist/chunk-LAE5NQ4B.mjs +2 -0
- package/dist/chunk-LC7YNQFG.mjs +2 -0
- package/dist/chunk-LHTFLRB6.mjs +4 -0
- package/dist/chunk-LKX55H76.mjs +2 -0
- package/dist/chunk-MAFIGVXY.mjs +2 -0
- package/dist/chunk-NFIBI4IP.mjs +26 -0
- package/dist/chunk-NSKUTQ5J.mjs +5 -0
- package/dist/chunk-O52JMOCZ.mjs +2 -0
- package/dist/chunk-P2CAZPDP.mjs +3 -0
- package/dist/chunk-QAIHRH3I.mjs +13 -0
- package/dist/chunk-QMQUXTU4.mjs +12 -0
- package/dist/chunk-QR6A54KJ.mjs +3 -0
- package/dist/chunk-QVWVFC5K.mjs +6 -0
- package/dist/chunk-QYKCJ7FG.mjs +8 -0
- package/dist/chunk-QZY6Q64C.mjs +2 -0
- package/dist/chunk-TDQP3DKQ.mjs +10 -0
- package/dist/chunk-TMYZB6AV.mjs +2 -0
- package/dist/chunk-TX6JH7TR.mjs +2 -0
- package/dist/chunk-U3SSPL4K.mjs +8 -0
- package/dist/chunk-UH4SIXTR.mjs +2 -0
- package/dist/chunk-UNUEWH4S.mjs +2 -0
- package/dist/chunk-UXUK4PMC.mjs +27 -0
- package/dist/chunk-V4CPWKMZ.mjs +2 -0
- package/dist/chunk-V6XZ4VIR.mjs +2 -0
- package/dist/chunk-VACRB2NE.mjs +3 -0
- package/dist/chunk-W63L7367.mjs +7 -0
- package/dist/chunk-W7CXPCRV.mjs +6 -0
- package/dist/chunk-W7XHE4CT.mjs +2 -0
- package/dist/chunk-XINNG4F2.mjs +4 -0
- package/dist/chunk-Y34NR5JL.mjs +2 -0
- package/dist/chunk-YEY3RSFQ.mjs +2 -0
- package/dist/chunk-YL2DPWVS.mjs +4 -0
- package/dist/chunk-YXAUQPVK.mjs +8 -0
- package/dist/chunk-YZ5Z6H4W.mjs +4 -0
- package/dist/chunk-Z52HTUW7.mjs +4 -0
- package/dist/chunk-ZBIM6ARY.mjs +216 -0
- package/dist/cli.mjs +2 -0
- package/dist/server.mjs +2 -0
- package/dist/worker.mjs +5 -0
- package/kit/charts.js +355 -0
- package/kit/code.js +164 -0
- package/kit/dialogs.js +157 -0
- package/kit/math.js +1988 -0
- package/kit/report.css +2821 -0
- package/kit/runtime.js +1707 -0
- package/kit/sheets.js +123 -0
- package/kit/state.js +217 -0
- package/kit/tables.js +1449 -0
- package/kit/tokens.js +29 -0
- package/kit/ui.js +561 -0
- package/package.json +41 -4
- package/release.json +25 -0
- package/sdk/column-widths.d.ts +56 -0
- package/sdk/doc-charts.d.ts +82 -0
- package/sdk/doc-code.d.ts +28 -0
- package/sdk/doc-dialogs.d.ts +4 -0
- package/sdk/doc-kit.d.ts +141 -0
- package/sdk/doc-math.d.ts +3 -0
- package/sdk/doc-sheets.d.ts +15 -0
- package/sdk/doc-state.d.ts +41 -0
- package/sdk/doc-tables.d.ts +24 -0
- package/sdk/doc-tokens.d.ts +22 -0
- package/sdk/index.d.ts +30 -0
- package/skill/SKILL.md +138 -0
- package/skill/agents/openai.yaml +5 -0
- package/skill/references/building-components.md +327 -0
- package/skill/references/example-report.html +356 -0
- package/skill/references/writing-html.md +187 -0
- package/skill/sdk/column-widths.d.ts +56 -0
- package/skill/sdk/doc-charts.d.ts +82 -0
- package/skill/sdk/doc-code.d.ts +28 -0
- package/skill/sdk/doc-dialogs.d.ts +4 -0
- package/skill/sdk/doc-kit.d.ts +141 -0
- package/skill/sdk/doc-math.d.ts +3 -0
- package/skill/sdk/doc-sheets.d.ts +15 -0
- package/skill/sdk/doc-state.d.ts +41 -0
- package/skill/sdk/doc-tables.d.ts +24 -0
- package/skill/sdk/doc-tokens.d.ts +22 -0
- package/skill/sdk/index.d.ts +30 -0
- package/starter/doc.html +21 -0
- package/starter/doc.json +5 -0
- package/vendor/d3.v7.9.0.min.js +2 -0
- package/vendor/katex/auto-render.min.js +1 -0
- package/vendor/katex/contrib/mhchem.min.js +1 -0
- package/vendor/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/vendor/katex/katex.min.css +1 -0
- package/vendor/katex/katex.min.js +1 -0
- package/vendor/pdfjs/LICENSE +177 -0
- package/vendor/pdfjs/cmaps/78-EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/78-EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/78-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/78-RKSJ-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/78-RKSJ-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/78-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/78ms-RKSJ-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/78ms-RKSJ-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/83pv-RKSJ-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/90ms-RKSJ-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/90ms-RKSJ-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/90msp-RKSJ-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/90msp-RKSJ-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/90pv-RKSJ-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/90pv-RKSJ-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Add-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Add-RKSJ-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Add-RKSJ-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Add-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-CNS1-0.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-CNS1-1.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-CNS1-2.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-CNS1-3.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-CNS1-4.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-CNS1-5.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-CNS1-6.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-GB1-0.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-GB1-1.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-GB1-2.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-GB1-3.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-GB1-4.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-GB1-5.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Japan1-0.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Japan1-1.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Japan1-2.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Japan1-3.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Japan1-4.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Japan1-5.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Japan1-6.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Korea1-0.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Korea1-1.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Korea1-2.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
- package/vendor/pdfjs/cmaps/B5-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/B5-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/B5pc-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/B5pc-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/CNS-EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/CNS-EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/CNS1-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/CNS1-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/CNS2-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/CNS2-V.bcmap +3 -0
- package/vendor/pdfjs/cmaps/ETHK-B5-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/ETHK-B5-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/ETen-B5-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/ETen-B5-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/ETenms-B5-H.bcmap +3 -0
- package/vendor/pdfjs/cmaps/ETenms-B5-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Ext-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Ext-RKSJ-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Ext-RKSJ-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Ext-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GB-EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GB-EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GB-H.bcmap +4 -0
- package/vendor/pdfjs/cmaps/GB-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBK-EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBK-EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBK2K-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBK2K-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBKp-EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBKp-EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBT-EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBT-EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBT-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBT-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBTpc-EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBTpc-EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBpc-EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/GBpc-EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKdla-B5-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKdla-B5-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKdlb-B5-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKdlb-B5-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKgccs-B5-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKgccs-B5-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKm314-B5-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKm314-B5-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKm471-B5-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKm471-B5-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKscs-B5-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/HKscs-B5-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Hankaku.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Hiragana.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSC-EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSC-EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSC-Johab-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSC-Johab-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSCms-UHC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSCms-UHC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSCpc-EUC-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/KSCpc-EUC-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Katakana.bcmap +0 -0
- package/vendor/pdfjs/cmaps/LICENSE +36 -0
- package/vendor/pdfjs/cmaps/NWP-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/NWP-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/RKSJ-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/RKSJ-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/Roman.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniCNS-UCS2-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniCNS-UCS2-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniCNS-UTF16-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniCNS-UTF16-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniCNS-UTF32-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniCNS-UTF32-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniCNS-UTF8-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniCNS-UTF8-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniGB-UCS2-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniGB-UCS2-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniGB-UTF16-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniGB-UTF16-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniGB-UTF32-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniGB-UTF32-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniGB-UTF8-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniGB-UTF8-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS-UCS2-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS-UCS2-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS-UTF16-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS-UTF16-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS-UTF32-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS-UTF32-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS-UTF8-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS-UTF8-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniKS-UCS2-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniKS-UCS2-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniKS-UTF16-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniKS-UTF16-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniKS-UTF32-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniKS-UTF32-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniKS-UTF8-H.bcmap +0 -0
- package/vendor/pdfjs/cmaps/UniKS-UTF8-V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/V.bcmap +0 -0
- package/vendor/pdfjs/cmaps/WP-Symbol.bcmap +0 -0
- package/vendor/pdfjs/legacy/build/pdf.min.mjs +27 -0
- package/vendor/pdfjs/legacy/build/pdf.worker.min.mjs +27 -0
- package/vendor/pdfjs/standard_fonts/FoxitDingbats.pfb +0 -0
- package/vendor/pdfjs/standard_fonts/FoxitFixed.pfb +0 -0
- package/vendor/pdfjs/standard_fonts/FoxitFixedBold.pfb +0 -0
- package/vendor/pdfjs/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
- package/vendor/pdfjs/standard_fonts/FoxitFixedItalic.pfb +0 -0
- package/vendor/pdfjs/standard_fonts/FoxitSerif.pfb +0 -0
- package/vendor/pdfjs/standard_fonts/FoxitSerifBold.pfb +0 -0
- package/vendor/pdfjs/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
- package/vendor/pdfjs/standard_fonts/FoxitSerifItalic.pfb +0 -0
- package/vendor/pdfjs/standard_fonts/FoxitSymbol.pfb +0 -0
- package/vendor/pdfjs/standard_fonts/LICENSE_FOXIT +27 -0
- package/vendor/pdfjs/standard_fonts/LICENSE_LIBERATION +363 -0
- package/vendor/pdfjs/standard_fonts/LiberationSans-Bold.ttf +0 -0
- package/vendor/pdfjs/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
- package/vendor/pdfjs/standard_fonts/LiberationSans-Italic.ttf +0 -0
- package/vendor/pdfjs/standard_fonts/LiberationSans-Regular.ttf +0 -0
- package/vendor/types/@types/d3/LICENSE +21 -0
- package/vendor/types/@types/d3/index.d.ts +39 -0
- package/vendor/types/@types/d3/package.json +81 -0
- package/vendor/types/@types/d3-array/LICENSE +21 -0
- package/vendor/types/@types/d3-array/index.d.ts +1118 -0
- package/vendor/types/@types/d3-array/package.json +56 -0
- package/vendor/types/@types/d3-axis/LICENSE +21 -0
- package/vendor/types/@types/d3-axis/index.d.ts +293 -0
- package/vendor/types/@types/d3-axis/package.json +47 -0
- package/vendor/types/@types/d3-brush/LICENSE +21 -0
- package/vendor/types/@types/d3-brush/index.d.ts +255 -0
- package/vendor/types/@types/d3-brush/package.json +42 -0
- package/vendor/types/@types/d3-chord/LICENSE +21 -0
- package/vendor/types/@types/d3-chord/index.d.ts +471 -0
- package/vendor/types/@types/d3-chord/package.json +40 -0
- package/vendor/types/@types/d3-color/LICENSE +21 -0
- package/vendor/types/@types/d3-color/index.d.ts +669 -0
- package/vendor/types/@types/d3-color/package.json +55 -0
- package/vendor/types/@types/d3-contour/LICENSE +21 -0
- package/vendor/types/@types/d3-contour/index.d.ts +222 -0
- package/vendor/types/@types/d3-contour/package.json +38 -0
- package/vendor/types/@types/d3-delaunay/LICENSE +21 -0
- package/vendor/types/@types/d3-delaunay/index.d.ts +316 -0
- package/vendor/types/@types/d3-delaunay/package.json +30 -0
- package/vendor/types/@types/d3-dispatch/LICENSE +21 -0
- package/vendor/types/@types/d3-dispatch/index.d.ts +96 -0
- package/vendor/types/@types/d3-dispatch/package.json +51 -0
- package/vendor/types/@types/d3-drag/LICENSE +21 -0
- package/vendor/types/@types/d3-drag/index.d.ts +395 -0
- package/vendor/types/@types/d3-drag/package.json +42 -0
- package/vendor/types/@types/d3-dsv/LICENSE +21 -0
- package/vendor/types/@types/d3-dsv/index.d.ts +482 -0
- package/vendor/types/@types/d3-dsv/package.json +45 -0
- package/vendor/types/@types/d3-ease/LICENSE +21 -0
- package/vendor/types/@types/d3-ease/index.d.ts +316 -0
- package/vendor/types/@types/d3-ease/package.json +40 -0
- package/vendor/types/@types/d3-fetch/LICENSE +21 -0
- package/vendor/types/@types/d3-fetch/index.d.ts +282 -0
- package/vendor/types/@types/d3-fetch/package.json +37 -0
- package/vendor/types/@types/d3-force/LICENSE +21 -0
- package/vendor/types/@types/d3-force/index.d.ts +899 -0
- package/vendor/types/@types/d3-force/package.json +45 -0
- package/vendor/types/@types/d3-format/LICENSE +21 -0
- package/vendor/types/@types/d3-format/index.d.ts +337 -0
- package/vendor/types/@types/d3-format/package.json +45 -0
- package/vendor/types/@types/d3-geo/LICENSE +21 -0
- package/vendor/types/@types/d3-geo/index.d.ts +1371 -0
- package/vendor/types/@types/d3-geo/package.json +48 -0
- package/vendor/types/@types/d3-hierarchy/LICENSE +21 -0
- package/vendor/types/@types/d3-hierarchy/index.d.ts +928 -0
- package/vendor/types/@types/d3-hierarchy/package.json +50 -0
- package/vendor/types/@types/d3-interpolate/LICENSE +21 -0
- package/vendor/types/@types/d3-interpolate/index.d.ts +387 -0
- package/vendor/types/@types/d3-interpolate/package.json +47 -0
- package/vendor/types/@types/d3-path/LICENSE +21 -0
- package/vendor/types/@types/d3-path/index.d.ts +108 -0
- package/vendor/types/@types/d3-path/package.json +41 -0
- package/vendor/types/@types/d3-polygon/LICENSE +21 -0
- package/vendor/types/@types/d3-polygon/index.d.ts +41 -0
- package/vendor/types/@types/d3-polygon/package.json +40 -0
- package/vendor/types/@types/d3-quadtree/LICENSE +21 -0
- package/vendor/types/@types/d3-quadtree/index.d.ts +204 -0
- package/vendor/types/@types/d3-quadtree/package.json +45 -0
- package/vendor/types/@types/d3-random/LICENSE +21 -0
- package/vendor/types/@types/d3-random/index.d.ts +313 -0
- package/vendor/types/@types/d3-random/package.json +41 -0
- package/vendor/types/@types/d3-scale/LICENSE +21 -0
- package/vendor/types/@types/d3-scale/index.d.ts +2669 -0
- package/vendor/types/@types/d3-scale/package.json +53 -0
- package/vendor/types/@types/d3-scale-chromatic/LICENSE +21 -0
- package/vendor/types/@types/d3-scale-chromatic/index.d.ts +520 -0
- package/vendor/types/@types/d3-scale-chromatic/package.json +46 -0
- package/vendor/types/@types/d3-selection/LICENSE +21 -0
- package/vendor/types/@types/d3-selection/index.d.ts +1210 -0
- package/vendor/types/@types/d3-selection/package.json +56 -0
- package/vendor/types/@types/d3-shape/LICENSE +21 -0
- package/vendor/types/@types/d3-shape/index.d.ts +2792 -0
- package/vendor/types/@types/d3-shape/package.json +53 -0
- package/vendor/types/@types/d3-time/LICENSE +21 -0
- package/vendor/types/@types/d3-time/index.d.ts +697 -0
- package/vendor/types/@types/d3-time/package.json +46 -0
- package/vendor/types/@types/d3-time-format/LICENSE +21 -0
- package/vendor/types/@types/d3-time-format/index.d.ts +202 -0
- package/vendor/types/@types/d3-time-format/package.json +40 -0
- package/vendor/types/@types/d3-timer/LICENSE +21 -0
- package/vendor/types/@types/d3-timer/index.d.ts +68 -0
- package/vendor/types/@types/d3-timer/package.json +45 -0
- package/vendor/types/@types/d3-transition/LICENSE +21 -0
- package/vendor/types/@types/d3-transition/index.d.ts +664 -0
- package/vendor/types/@types/d3-transition/package.json +47 -0
- package/vendor/types/@types/d3-zoom/LICENSE +21 -0
- package/vendor/types/@types/d3-zoom/index.d.ts +611 -0
- package/vendor/types/@types/d3-zoom/package.json +48 -0
- package/vendor/types/@types/geojson/LICENSE +21 -0
- package/vendor/types/@types/geojson/index.d.ts +202 -0
- package/vendor/types/@types/geojson/package.json +46 -0
- package/vendor/typescript/LICENSE.txt +55 -0
- package/vendor/typescript/lib.decorators.d.ts +384 -0
- package/vendor/typescript/lib.decorators.legacy.d.ts +22 -0
- package/vendor/typescript/lib.dom.d.ts +39429 -0
- package/vendor/typescript/lib.dom.iterable.d.ts +571 -0
- package/vendor/typescript/lib.es2015.collection.d.ts +147 -0
- package/vendor/typescript/lib.es2015.core.d.ts +597 -0
- package/vendor/typescript/lib.es2015.d.ts +28 -0
- package/vendor/typescript/lib.es2015.generator.d.ts +77 -0
- package/vendor/typescript/lib.es2015.iterable.d.ts +605 -0
- package/vendor/typescript/lib.es2015.promise.d.ts +81 -0
- package/vendor/typescript/lib.es2015.proxy.d.ts +128 -0
- package/vendor/typescript/lib.es2015.reflect.d.ts +144 -0
- package/vendor/typescript/lib.es2015.symbol.d.ts +46 -0
- package/vendor/typescript/lib.es2015.symbol.wellknown.d.ts +326 -0
- package/vendor/typescript/lib.es2016.array.include.d.ts +116 -0
- package/vendor/typescript/lib.es2016.d.ts +21 -0
- package/vendor/typescript/lib.es2016.intl.d.ts +31 -0
- package/vendor/typescript/lib.es2017.arraybuffer.d.ts +21 -0
- package/vendor/typescript/lib.es2017.d.ts +26 -0
- package/vendor/typescript/lib.es2017.date.d.ts +31 -0
- package/vendor/typescript/lib.es2017.intl.d.ts +44 -0
- package/vendor/typescript/lib.es2017.object.d.ts +49 -0
- package/vendor/typescript/lib.es2017.sharedmemory.d.ts +135 -0
- package/vendor/typescript/lib.es2017.string.d.ts +45 -0
- package/vendor/typescript/lib.es2017.typedarrays.d.ts +53 -0
- package/vendor/typescript/lib.es2018.asyncgenerator.d.ts +77 -0
- package/vendor/typescript/lib.es2018.asynciterable.d.ts +53 -0
- package/vendor/typescript/lib.es2018.d.ts +24 -0
- package/vendor/typescript/lib.es2018.intl.d.ts +83 -0
- package/vendor/typescript/lib.es2018.promise.d.ts +30 -0
- package/vendor/typescript/lib.es2018.regexp.d.ts +37 -0
- package/vendor/typescript/lib.es2019.array.d.ts +79 -0
- package/vendor/typescript/lib.es2019.d.ts +24 -0
- package/vendor/typescript/lib.es2019.intl.d.ts +23 -0
- package/vendor/typescript/lib.es2019.object.d.ts +33 -0
- package/vendor/typescript/lib.es2019.string.d.ts +37 -0
- package/vendor/typescript/lib.es2019.symbol.d.ts +24 -0
- package/vendor/typescript/lib.es2020.bigint.d.ts +765 -0
- package/vendor/typescript/lib.es2020.d.ts +27 -0
- package/vendor/typescript/lib.es2020.date.d.ts +42 -0
- package/vendor/typescript/lib.es2020.intl.d.ts +474 -0
- package/vendor/typescript/lib.es2020.number.d.ts +28 -0
- package/vendor/typescript/lib.es2020.promise.d.ts +47 -0
- package/vendor/typescript/lib.es2020.sharedmemory.d.ts +99 -0
- package/vendor/typescript/lib.es2020.string.d.ts +44 -0
- package/vendor/typescript/lib.es2020.symbol.wellknown.d.ts +41 -0
- package/vendor/typescript/lib.es2021.d.ts +23 -0
- package/vendor/typescript/lib.es2021.intl.d.ts +166 -0
- package/vendor/typescript/lib.es2021.promise.d.ts +48 -0
- package/vendor/typescript/lib.es2021.string.d.ts +33 -0
- package/vendor/typescript/lib.es2021.weakref.d.ts +78 -0
- package/vendor/typescript/lib.es2022.array.d.ts +121 -0
- package/vendor/typescript/lib.es2022.d.ts +25 -0
- package/vendor/typescript/lib.es2022.error.d.ts +75 -0
- package/vendor/typescript/lib.es2022.intl.d.ts +145 -0
- package/vendor/typescript/lib.es2022.object.d.ts +26 -0
- package/vendor/typescript/lib.es2022.regexp.d.ts +39 -0
- package/vendor/typescript/lib.es2022.string.d.ts +25 -0
- package/vendor/typescript/lib.es5.d.ts +4601 -0
- package/vendor/typescript/package.json +4 -0
- package/vendor/typescript/typescript.js +446 -0
- package/web/assets/index-B6Ai3wsa.js +13 -0
- package/web/assets/index-SYPC3EZy.css +1 -0
- package/web/index.html +14 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { can, firstHost, newHost } from "../../page/core.mjs";
|
|
2
|
+
import { caretAt, editable } from "../../page/caret.mjs";
|
|
3
|
+
import { padCaret } from "../../page/pads.mjs";
|
|
4
|
+
import { addStyle } from "../../page/ui.mjs";
|
|
5
|
+
import { DIALOG } from "../kit.mjs";
|
|
6
|
+
import { linkAround } from "../../page/links/index.mjs";
|
|
7
|
+
import { DIALOG_TRIGGER, dialogContent, entryOf } from "./index.mjs";
|
|
8
|
+
import { t } from "../../../shared/i18n/index.mjs";
|
|
9
|
+
|
|
10
|
+
// 详情卡片 on the page. The format bar makes the selected text the entry of a new detail card (a
|
|
11
|
+
// link to it, as the kit writes one in text): the card goes at the end of the report and opens, a
|
|
12
|
+
// heading of that text first in it and the caret in the empty paragraph under it. One undo step
|
|
13
|
+
// takes both away again, and redo brings the card back open; a new card whose link was removed is
|
|
14
|
+
// not saved (core.mjs nodeOf), and a card of the file stays in it, with nothing left to open it.
|
|
15
|
+
//
|
|
16
|
+
// However a card closes (Esc, a press outside it, the workbench's bars) nothing stands where it was:
|
|
17
|
+
// what stood over its text goes, and a caret left in it comes out at its entry. What lands in a card
|
|
18
|
+
// no one sees (an undo step, a word 搜索文档 found) opens it (show). A page shown again has the
|
|
19
|
+
// cards it had, the same one on top (kept, reopen).
|
|
20
|
+
|
|
21
|
+
// While the page is edited the page's gutters are the room the handle takes beside a block
|
|
22
|
+
// (--ge-edge-room, handle/). The card keeps its width and its text the page's (dialog.css): at a
|
|
23
|
+
// window narrower than it, what is left of those gutters stands outside the card, where a press
|
|
24
|
+
// closes it.
|
|
25
|
+
const STYLE = `
|
|
26
|
+
:root[data-ge-editing] { --doc-dialog-edge: calc(var(--ge-edge-room) - var(--doc-dialog-side)); }
|
|
27
|
+
@media screen {
|
|
28
|
+
/* Where the page keeps room for the outline (margin.mjs), a card stands on the column, its text on the page's: the column and the room at each side of its text, as far left. */
|
|
29
|
+
:root[data-ge-margin] .doc-dialog {
|
|
30
|
+
width: calc(var(--ge-margin-column) + 2 * var(--doc-dialog-side));
|
|
31
|
+
margin-left: calc(max(var(--ge-margin-side), calc((100% - var(--ge-outline-room, 0px) - var(--ge-margin-column)) / 2)) - var(--doc-dialog-side));
|
|
32
|
+
margin-right: 0;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* A new detail card (dialog.doc-dialog) with this id, the kit's markup: a content region (a box)
|
|
39
|
+
* holding a heading of `title` (text), the size a detail card's opens with, and an empty paragraph.
|
|
40
|
+
*/
|
|
41
|
+
export function newDialog(doc, id, title = "") {
|
|
42
|
+
const dialog = doc.createElement("dialog");
|
|
43
|
+
dialog.className = "doc-dialog";
|
|
44
|
+
dialog.id = id;
|
|
45
|
+
for (const [name, value] of [["data-ge-new", ""], ["data-ge-type", "dialog"], ["data-ge-unit-kind", "dialog"]]) dialog.setAttribute(name, value);
|
|
46
|
+
const panel = doc.createElement("div");
|
|
47
|
+
panel.className = "doc-dialog-panel";
|
|
48
|
+
const content = doc.createElement("div");
|
|
49
|
+
content.className = "doc-dialog-content";
|
|
50
|
+
for (const [name, value] of [["data-ge-box", ""], ["data-ge-box-kind", "dialog"], ["data-ge-pure", ""]]) content.setAttribute(name, value);
|
|
51
|
+
const heading = newHost(doc, "heading3");
|
|
52
|
+
heading.textContent = title;
|
|
53
|
+
content.append(heading, newHost(doc, "paragraph"));
|
|
54
|
+
panel.append(content);
|
|
55
|
+
dialog.append(panel);
|
|
56
|
+
return dialog;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** An id no element of the page has yet, for a new detail card: dialog-1, dialog-2… */
|
|
60
|
+
export function freshDialogId(doc) {
|
|
61
|
+
let number = 1;
|
|
62
|
+
while (doc.getElementById(`dialog-${number}`)) number++;
|
|
63
|
+
return `dialog-${number}`;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** A link opening a detail card, as the kit writes it in text. */
|
|
67
|
+
export function dialogLink(doc, id) {
|
|
68
|
+
const link = doc.createElement("a");
|
|
69
|
+
link.className = DIALOG_TRIGGER;
|
|
70
|
+
link.setAttribute("href", `#${id}`);
|
|
71
|
+
return link;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// A card opened as the kit opens one, which goes back to `opener` once it closes.
|
|
75
|
+
function openCard(card, opener) {
|
|
76
|
+
if (globalThis.DocDialogs?.open) globalThis.DocDialogs.open(card, opener);
|
|
77
|
+
else card.showModal?.();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* The detail cards open now, in the order they opened (the last one on top: a card opened from a
|
|
82
|
+
* link in another), followed as their `open` attribute comes and goes; each `listener` of them
|
|
83
|
+
* hears of that, and of the kit's page lock (the root's doc-dialog-open, dialogs.js) changing.
|
|
84
|
+
*/
|
|
85
|
+
function followCards() {
|
|
86
|
+
const listeners = new Set();
|
|
87
|
+
const told = () => listeners.forEach((listener) => listener());
|
|
88
|
+
let order = [...document.querySelectorAll(DIALOG.open)];
|
|
89
|
+
new MutationObserver((records) => {
|
|
90
|
+
for (const { target } of records) {
|
|
91
|
+
if (!(target instanceof HTMLDialogElement) || !target.matches(DIALOG.match)) continue;
|
|
92
|
+
order = order.filter((card) => card !== target);
|
|
93
|
+
if (target.open) order.push(target);
|
|
94
|
+
}
|
|
95
|
+
told();
|
|
96
|
+
}).observe(document.documentElement, { subtree: true, attributes: true, attributeFilter: ["open"] });
|
|
97
|
+
new MutationObserver(told).observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
|
|
98
|
+
return {
|
|
99
|
+
listen: (listener) => listeners.add(listener),
|
|
100
|
+
/** The cards open, the one on top last (one the page put back open, unheard, after those heard). */
|
|
101
|
+
open() {
|
|
102
|
+
const now = [...document.querySelectorAll(DIALOG.open)];
|
|
103
|
+
order = order.filter((card) => now.includes(card));
|
|
104
|
+
return [...order, ...now.filter((card) => !order.includes(card))];
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Detail cards, with what the editor gives it: struct (a structural undo step), say, limitText,
|
|
111
|
+
* selectionContext (the selection inside one text block), hideFormatBar, closeTools (what opens over
|
|
112
|
+
* the page), blocks (the block tools) and isEditing.
|
|
113
|
+
*/
|
|
114
|
+
export function create({ struct, say, limitText, selectionContext, hideFormatBar, closeTools, blocks, isEditing }) {
|
|
115
|
+
addStyle(STYLE);
|
|
116
|
+
const cards = followCards();
|
|
117
|
+
|
|
118
|
+
// A card closed: it leaves nothing behind. The caret goes to its entry, outside it, when that is in
|
|
119
|
+
// what shows now (the page, or the card on top); else to the first text of the card on top, or
|
|
120
|
+
// nowhere. The focus went back as the card closed, which put it at the start of the block that
|
|
121
|
+
// takes it.
|
|
122
|
+
function closed(card) {
|
|
123
|
+
closeTools();
|
|
124
|
+
if (blocks().picked.some((block) => card.contains(block))) blocks().clear();
|
|
125
|
+
const top = cards.open().at(-1);
|
|
126
|
+
const entry = entryOf(card);
|
|
127
|
+
const host = entry && (!top || top.contains(entry)) ? editable(entry) : null;
|
|
128
|
+
if (host) {
|
|
129
|
+
host.focus({ preventScroll: true });
|
|
130
|
+
padCaret(entry, "after");
|
|
131
|
+
} else if (top) caretAt(firstHost(dialogContent(top)), "start");
|
|
132
|
+
else if (card.contains(getSelection().anchorNode)) getSelection().removeAllRanges();
|
|
133
|
+
}
|
|
134
|
+
// Heard after the kit's, which gives the focus back (`close` does not bubble: on its way down).
|
|
135
|
+
document.addEventListener("close", (event) => {
|
|
136
|
+
if (isEditing() && event.target.matches?.(DIALOG.match)) closed(event.target);
|
|
137
|
+
}, true);
|
|
138
|
+
|
|
139
|
+
// The card on top closes as a press on its backdrop closes it (the kit's dialogs.js); one under it
|
|
140
|
+
// stays. Returns whether one was open.
|
|
141
|
+
function closeTop() {
|
|
142
|
+
const card = cards.open().at(-1);
|
|
143
|
+
if (!card) return false;
|
|
144
|
+
if (globalThis.DocDialogs?.close) globalThis.DocDialogs.close(card, "outside");
|
|
145
|
+
else card.close();
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
// The browser's own Esc takes together the cards opened with no key or press between them, as a
|
|
149
|
+
// page shown again opens them; what the page's Esc takes first it has prevented by now.
|
|
150
|
+
document.addEventListener("keydown", (event) => {
|
|
151
|
+
if (event.key !== "Escape" || event.defaultPrevented || event.isComposing || cards.open().length < 2) return;
|
|
152
|
+
event.preventDefault();
|
|
153
|
+
closeTop();
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
// The format bar's card button (`fromSelection`): the selected text opens a new detail card.
|
|
157
|
+
function fromSelection() {
|
|
158
|
+
const context = selectionContext();
|
|
159
|
+
if (!context) return say(t("先选中点开详情卡片的文字。"));
|
|
160
|
+
const { host, range } = context;
|
|
161
|
+
if (!can(host, "links")) return say(limitText(host, "links"));
|
|
162
|
+
if (linkAround(host, range) || range.cloneContents().querySelector("a")) return say(t("选中的文字里已经有链接,先移除链接(Ctrl+K)再做详情卡片的入口。"));
|
|
163
|
+
const title = range.toString().replace(/\s+/g, " ").trim();
|
|
164
|
+
const main = document.querySelector("main[data-ge-box]");
|
|
165
|
+
if (!title || !main) return say(title ? t("这里不能新建详情卡片。") : t("先选中点开详情卡片的文字。"));
|
|
166
|
+
const id = freshDialogId(document);
|
|
167
|
+
const dialog = newDialog(document, id, title);
|
|
168
|
+
hideFormatBar();
|
|
169
|
+
struct([main], [host], () => {
|
|
170
|
+
const link = dialogLink(document, id);
|
|
171
|
+
link.append(range.extractContents());
|
|
172
|
+
range.insertNode(link);
|
|
173
|
+
main.append(dialog);
|
|
174
|
+
return { touched: [host], focus: dialogContent(dialog).lastElementChild };
|
|
175
|
+
});
|
|
176
|
+
openCard(dialog);
|
|
177
|
+
caretAt(dialogContent(dialog).lastElementChild, "start");
|
|
178
|
+
say(t("已新建详情卡片:标题取自选中的文字,接着写卡片里的内容 · Esc 关闭 · Ctrl+Z 撤销"));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Esc in what stands in an open card is the card's (it closes it, as for a reader): no block selected.
|
|
182
|
+
const escape = ({ host }) => Boolean(host.closest("dialog[open]"));
|
|
183
|
+
|
|
184
|
+
return {
|
|
185
|
+
fromSelection,
|
|
186
|
+
keys: { around: { escape } },
|
|
187
|
+
modalOps: {
|
|
188
|
+
/** The cards open, the one on top last; `listen(listener)`: told when that may have changed. */
|
|
189
|
+
open: () => cards.open(),
|
|
190
|
+
listen: cards.listen,
|
|
191
|
+
closeTop,
|
|
192
|
+
/**
|
|
193
|
+
* The card holding `node` shown, for what lands in it: closed, it opens over the others; put back
|
|
194
|
+
* open by an undo step, as no modal, it opens as one. Returns its content region, or null for a
|
|
195
|
+
* node in no card.
|
|
196
|
+
*/
|
|
197
|
+
show(node) {
|
|
198
|
+
const card = (node?.nodeType === 1 ? node : node?.parentElement)?.closest(DIALOG.match);
|
|
199
|
+
if (!card) return null;
|
|
200
|
+
if (!card.matches(":modal")) {
|
|
201
|
+
card.removeAttribute("open");
|
|
202
|
+
openCard(card, entryOf(card) ?? undefined);
|
|
203
|
+
}
|
|
204
|
+
return dialogContent(card);
|
|
205
|
+
},
|
|
206
|
+
/** The cards open, for a page shown again: their ids, the one on top last, and how far each is scrolled. */
|
|
207
|
+
kept: () => cards.open().map((card) => ({ id: card.id, top: dialogContent(card)?.scrollTop ?? 0 })),
|
|
208
|
+
/** The cards of `kept` the page still has, open again. */
|
|
209
|
+
reopen(kept) {
|
|
210
|
+
for (const { id, top } of kept) {
|
|
211
|
+
const card = document.getElementById(id);
|
|
212
|
+
if (!card?.matches(DIALOG.match)) continue;
|
|
213
|
+
openCard(card, entryOf(card) ?? undefined);
|
|
214
|
+
dialogContent(card).scrollTop = top;
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { svg } from "../icons.mjs";
|
|
2
|
+
import { t } from "../../../shared/i18n/index.mjs";
|
|
3
|
+
|
|
4
|
+
// 分割线: an <hr>, a block like any other (a line above a section is one at its top). Made only
|
|
5
|
+
// from an empty block ("---", the "/" menu, the block menu), followed by an empty paragraph to write
|
|
6
|
+
// in; turned into another type it becomes an empty block of that type. A press on its line selects it.
|
|
7
|
+
//
|
|
8
|
+
// Where the engines reach it (src/editor/page/ unless named): convert.mjs (`create`; turned into
|
|
9
|
+
// another type: `turnsEmpty`), markdown/ ("---": `markdown`), handle/ (a press on its line selects it:
|
|
10
|
+
// lineAt), geometry.mjs (its band ±12px: extentOf), core.mjs (its frame's corners), clipboard/own/ (`clipboard`),
|
|
11
|
+
// ../source/ (a void element), src/transfer/ (a line of Markdown).
|
|
12
|
+
// Its look: the kit's styles/flow.css (src/render/kit/).
|
|
13
|
+
|
|
14
|
+
/** A new divider line. */
|
|
15
|
+
export function newDivider(doc) {
|
|
16
|
+
const rule = doc.createElement("hr");
|
|
17
|
+
for (const [name, value] of [["data-ge-new", ""], ["data-ge-type", "divider"], ["data-ge-unit-kind", "rule"], ["data-ge-frame", ""], ["data-ge-round", "text"]]) rule.setAttribute(name, value);
|
|
18
|
+
return rule;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default {
|
|
22
|
+
name: "divider",
|
|
23
|
+
listed: () => t("分割线"),
|
|
24
|
+
units: {
|
|
25
|
+
rule: { name: t("分割线"), match: [{ rank: 230, tag: "hr" }], boxed: true, turnsEmpty: true },
|
|
26
|
+
},
|
|
27
|
+
types: {
|
|
28
|
+
divider: {
|
|
29
|
+
menu: ["basic", 15], fresh: 1, // no type a block turns into: made by "/" or 在下方新建
|
|
30
|
+
tag: "hr", kind: "rule", bare: true,
|
|
31
|
+
clipboard: {
|
|
32
|
+
kind: "hr",
|
|
33
|
+
describe: (node) => (node.localName === "hr" ? { type: "divider" } : undefined),
|
|
34
|
+
check: () => true,
|
|
35
|
+
build: ({ doc }) => newDivider(doc),
|
|
36
|
+
text: () => [],
|
|
37
|
+
},
|
|
38
|
+
// It replaces an empty block; the empty paragraph after it is where the caret goes.
|
|
39
|
+
create({ doc, put, paragraph }) {
|
|
40
|
+
put(newDivider(doc));
|
|
41
|
+
return put(paragraph());
|
|
42
|
+
},
|
|
43
|
+
label: t("分割线"), icon: svg('<path d="M3 10h14"/><path d="M5.5 6h9M5.5 14h9" stroke-opacity=".35"/>'),
|
|
44
|
+
hint: "---", markdown: [{ match: /^---$/, alone: true }], words: "分割线 分隔线 横线 fengexian fgx hr divider line rule",
|
|
45
|
+
glance: { row: 5, name: "分割线", write: "`<hr>` first in a section", rule: "The page" },
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { svg } from "../icons.mjs";
|
|
2
|
+
|
|
3
|
+
// The embed block's icons: the editor's own line drawings (components/icons.mjs svg), no size or color
|
|
4
|
+
// of their own: the bar, the toolbar and the menus set them.
|
|
5
|
+
|
|
6
|
+
export const EMBED_ICONS = {
|
|
7
|
+
// An eye in the four corners of a frame: a page taken in.
|
|
8
|
+
linkCaptureEye: svg('<path d="M3.5 7V5.5a2 2 0 0 1 2-2H7M13 3.5h1.5a2 2 0 0 1 2 2V7M3.5 13v1.5a2 2 0 0 0 2 2H7M13 16.5h1.5a2 2 0 0 0 2-2V13"/><path d="M6.25 10S7.7 7.5 10 7.5s3.75 2.5 3.75 2.5-1.45 2.5-3.75 2.5S6.25 10 6.25 10z"/><circle cx="10" cy="10" r=".9" fill="currentColor" stroke="none"/>'),
|
|
9
|
+
// An arrow leaving a corner: the toolbar's 在新标签页中打开 and the menu's 查看原始内容.
|
|
10
|
+
open: svg('<path d="M5.5 14.5 14.5 5.5"/><path d="M7 5.5h7.5V13"/>'),
|
|
11
|
+
};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { EMBED_ICONS } from "./icons.mjs";
|
|
2
|
+
import { SPAN, SPAN_SIZE } from "../../../shared/media.mjs";
|
|
3
|
+
import { captionWords, fileOf, mediaReadOnly, newMediaFigure } from "../media/parts.mjs";
|
|
4
|
+
import { barMarkup } from "../placeholder-bar.mjs";
|
|
5
|
+
import { t } from "../../../shared/i18n/index.mjs";
|
|
6
|
+
|
|
7
|
+
// 嵌入 (Notion's embed block): the kit's figure.doc-embed, a web page in a sandboxed frame (it stays
|
|
8
|
+
// on the web), or an HTML or PDF file of the report's folder (assets/<file>: an HTML file sandboxed
|
|
9
|
+
// with no origin of its own, a PDF in the browser's viewer), and its caption, a <figcaption> always
|
|
10
|
+
// written (a media block's, components/media/). A card: one block, moved, deleted, captioned as a
|
|
11
|
+
// whole; its height a size (--doc-embed-height). Made from an empty block (the "/" menu: 嵌入): a
|
|
12
|
+
// placeholder until a page is given (one that refuses frames becomes a bookmark, as Notion's) or a
|
|
13
|
+
// file chosen (editor/media-store.mjs, kind "embed"), written once it has one. page.mjs: the
|
|
14
|
+
// menu, the corner handles, the toolbar, the block menu's rows; file.mjs: a new one
|
|
15
|
+
// in report.html.
|
|
16
|
+
//
|
|
17
|
+
// Where the engines reach it (src/editor/page/ unless named): convert.mjs (made from an empty block:
|
|
18
|
+
// `create`), editor.mjs (the menu opens on a new one: page.mjs `onCreated`), clipboard/ (an embed
|
|
19
|
+
// pasted: `clipboard`), src/transfer/markdown.mjs (`read`), ../source/ (its caption: blocks.mjs).
|
|
20
|
+
// Its look: the kit's styles/embed.css (src/render/kit/); its file where the preview shows it and
|
|
21
|
+
// embedded in an export: src/render/embeds.mjs (a PDF shown through a blob: address by the runtime).
|
|
22
|
+
export const EMBED_ICON = EMBED_ICONS.linkCaptureEye;
|
|
23
|
+
export const HEIGHT = "--doc-embed-height";
|
|
24
|
+
/** The frame's height as a size: the least and the most (px) it may be given. */
|
|
25
|
+
export const HEIGHT_SIZE = { min: 96, max: 2000, px: true };
|
|
26
|
+
|
|
27
|
+
/** The sandbox of a web page's frame (Notion's), and of an HTML file's (no origin of its own). */
|
|
28
|
+
export const WEB_SANDBOX = "allow-scripts allow-popups allow-top-navigation-by-user-activation allow-forms allow-same-origin allow-storage-access-by-user-activation allow-popups-to-escape-sandbox";
|
|
29
|
+
export const FILE_SANDBOX = "allow-scripts allow-popups allow-forms allow-modals";
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* An embed's placeholder bar, as markup: in a new one, and in one the file keeps empty from the first paint (the server
|
|
33
|
+
* puts it there: components/placeholder.mjs showEmpty).
|
|
34
|
+
*/
|
|
35
|
+
const placeholder = () => barMarkup("doc-embed", EMBED_ICON, t("嵌入网页,或上传 HTML、PDF 文件")); // its words in the language t() says them in now (placeholder.mjs showEmpty)
|
|
36
|
+
|
|
37
|
+
export default {
|
|
38
|
+
name: "embed",
|
|
39
|
+
listed: () => t("嵌入"),
|
|
40
|
+
readOnly: [mediaReadOnly("embed")],
|
|
41
|
+
units: {
|
|
42
|
+
embed: {
|
|
43
|
+
name: t("嵌入"),
|
|
44
|
+
match: [{ rank: 42, tag: "figure", class: "doc-embed" }],
|
|
45
|
+
boxed: true,
|
|
46
|
+
sizes: { [HEIGHT]: HEIGHT_SIZE, [SPAN]: SPAN_SIZE },
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
types: {
|
|
50
|
+
embed: {
|
|
51
|
+
menu: ["advanced", 20], fresh: 5,
|
|
52
|
+
tag: "figure", className: "doc-embed", kind: "embed", bare: true,
|
|
53
|
+
create: ({ doc, put }) => put(newEmbed(doc)), // its placeholder stands for the empty block; what it holds is chosen next
|
|
54
|
+
// Copied as itself, a card. It comes as this from another program: its address, filled once on
|
|
55
|
+
// the page. Written out its caption is its link's words, and no paragraph of its own.
|
|
56
|
+
clipboard: {
|
|
57
|
+
kind: "media",
|
|
58
|
+
read(unit, { plain }) {
|
|
59
|
+
const src = unit.querySelector(":scope > iframe")?.getAttribute("src");
|
|
60
|
+
if (!src) return null;
|
|
61
|
+
const local = !/^https?:/i.test(src);
|
|
62
|
+
const name = src.split("/").pop();
|
|
63
|
+
return { label: plain(unit.querySelector(":scope > figcaption")) || (local ? name : src), src, name, file: local };
|
|
64
|
+
},
|
|
65
|
+
check: (block, { webPage }) => webPage(block.src),
|
|
66
|
+
build: ({ doc, block, pending }) => pending(newEmbed(doc), block.src),
|
|
67
|
+
text: () => [],
|
|
68
|
+
},
|
|
69
|
+
// What a new one is written with (core.mjs nodeOf): its page or file, height and caption; an
|
|
70
|
+
// empty figure while it has neither (its placeholder, kept: file.mjs).
|
|
71
|
+
extras: (element) => embedNode(element),
|
|
72
|
+
part: ".doc-embed",
|
|
73
|
+
bar: placeholder,
|
|
74
|
+
label: t("嵌入"), icon: EMBED_ICON,
|
|
75
|
+
words: "嵌入 网页 网站 iframe html pdf qianru qr embed website page",
|
|
76
|
+
glance: { row: 17, name: "嵌入", write: "`figure.doc-embed`", rule: "Kit blocks" },
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/** An embed block's frame, once it shows something. */
|
|
82
|
+
export const frameOf = (figure) => figure.querySelector(":scope > iframe.doc-embed-frame");
|
|
83
|
+
|
|
84
|
+
// What a new embed is written with: its page (or its file, not where the preview shows it), its
|
|
85
|
+
// height and its caption.
|
|
86
|
+
function embedNode(figure) {
|
|
87
|
+
const frame = frameOf(figure);
|
|
88
|
+
const height = figure.style.getPropertyValue(HEIGHT).trim();
|
|
89
|
+
return {
|
|
90
|
+
src: fileOf(frame, "src") ?? "",
|
|
91
|
+
...(height ? { height } : {}),
|
|
92
|
+
caption: captionWords(figure),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/** A new embed (the "/" menu's 嵌入): its placeholder, until a page is given or a file chosen (page.mjs). */
|
|
97
|
+
export const newEmbed = (doc) => newMediaFigure(doc, "embed", placeholder());
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Where a web page shows in a frame (Notion's 939438): a YouTube video's player, a Google document's
|
|
101
|
+
* preview; any other page as it is.
|
|
102
|
+
*/
|
|
103
|
+
export function frameAddress(src) {
|
|
104
|
+
let url;
|
|
105
|
+
try {
|
|
106
|
+
url = new URL(src);
|
|
107
|
+
} catch {
|
|
108
|
+
return src;
|
|
109
|
+
}
|
|
110
|
+
const host = url.hostname.replace(/^www\.|^m\./, "");
|
|
111
|
+
if (host === "youtu.be") return `https://www.youtube.com/embed/${url.pathname.slice(1)}`;
|
|
112
|
+
if (host === "youtube.com") {
|
|
113
|
+
const video = url.searchParams.get("v");
|
|
114
|
+
const path = /^\/(shorts|live)\/([\w-]+)/.exec(url.pathname);
|
|
115
|
+
if (video) return `https://www.youtube.com/embed/${video}`;
|
|
116
|
+
if (path) return `https://www.youtube.com/embed/${path[2]}`;
|
|
117
|
+
}
|
|
118
|
+
if (host === "docs.google.com" && /\/edit$/.test(url.pathname)) {
|
|
119
|
+
url.pathname = url.pathname.replace(/\/edit$/, "/preview");
|
|
120
|
+
return url.href;
|
|
121
|
+
}
|
|
122
|
+
return url.href;
|
|
123
|
+
}
|