@heycys/gallery 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +50 -2
- package/THIRD-PARTY-NOTICES.md +3303 -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 +64 -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 +310 -0
- package/browser/editor/components/details/index.mjs +73 -0
- package/browser/editor/components/details/page.mjs +86 -0
- package/browser/editor/components/dialog/index.mjs +84 -0
- package/browser/editor/components/dialog/page.mjs +201 -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 +42 -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 +53 -0
- package/browser/editor/components/heading/page.mjs +6 -0
- package/browser/editor/components/highlight/index.mjs +63 -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 +48 -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 +179 -0
- package/browser/editor/components/installed/page.mjs +523 -0
- package/browser/editor/components/installed/served.mjs +35 -0
- package/browser/editor/components/kit.mjs +67 -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 +192 -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 +859 -0
- package/browser/editor/components/rows.mjs +16 -0
- package/browser/editor/components/section/index.mjs +42 -0
- package/browser/editor/components/section/page.mjs +141 -0
- package/browser/editor/components/set-apart.mjs +24 -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 +308 -0
- package/browser/editor/components/table/page.mjs +683 -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 +230 -0
- package/browser/editor/page/annotate/card.mjs +102 -0
- package/browser/editor/page/annotate/index.mjs +1656 -0
- package/browser/editor/page/at-menu/index.mjs +317 -0
- package/browser/editor/page/autosave.mjs +1023 -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 +84 -0
- package/browser/editor/page/block-menu/index.mjs +217 -0
- package/browser/editor/page/blocks.mjs +255 -0
- package/browser/editor/page/caret.mjs +682 -0
- package/browser/editor/page/changes/bar.mjs +102 -0
- package/browser/editor/page/changes/ghost.mjs +206 -0
- package/browser/editor/page/changes/gone-words.mjs +94 -0
- package/browser/editor/page/changes/index.mjs +447 -0
- package/browser/editor/page/changes/words.mjs +27 -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 +816 -0
- package/browser/editor/page/clipboard/own/blocks.mjs +211 -0
- package/browser/editor/page/clipboard/own/chart-keys.mjs +58 -0
- package/browser/editor/page/clipboard/own/describe.mjs +124 -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 +315 -0
- package/browser/editor/page/columns/index.mjs +360 -0
- package/browser/editor/page/commit.mjs +1813 -0
- package/browser/editor/page/conflicts.mjs +249 -0
- package/browser/editor/page/convert.mjs +831 -0
- package/browser/editor/page/core.mjs +1693 -0
- package/browser/editor/page/drag/drop.mjs +307 -0
- package/browser/editor/page/drag/index.mjs +351 -0
- package/browser/editor/page/drag/preview.mjs +126 -0
- package/browser/editor/page/edge-scroll.mjs +50 -0
- package/browser/editor/page/editor.mjs +1780 -0
- package/browser/editor/page/emoji-picker/emoji-tab.mjs +287 -0
- package/browser/editor/page/emoji-picker/glyph-html.mjs +26 -0
- package/browser/editor/page/emoji-picker/grid.mjs +81 -0
- package/browser/editor/page/emoji-picker/icon-tab.mjs +217 -0
- package/browser/editor/page/emoji-picker/icons.mjs +31 -0
- package/browser/editor/page/emoji-picker/index.mjs +166 -0
- package/browser/editor/page/emoji-picker/styles.mjs +161 -0
- package/browser/editor/page/emoji-picker/support.mjs +204 -0
- package/browser/editor/page/emoji-picker/upload.mjs +236 -0
- package/browser/editor/page/export-report.mjs +23 -0
- package/browser/editor/page/fills.mjs +62 -0
- package/browser/editor/page/find/index.mjs +107 -0
- package/browser/editor/page/flags.mjs +70 -0
- package/browser/editor/page/fold/index.mjs +348 -0
- package/browser/editor/page/fold/rule.mjs +125 -0
- package/browser/editor/page/folded.mjs +23 -0
- package/browser/editor/page/format-bar/bar.mjs +449 -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 +402 -0
- package/browser/editor/page/gesture.mjs +45 -0
- package/browser/editor/page/handle/index.mjs +650 -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 +256 -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/long-runs.mjs +75 -0
- package/browser/editor/page/look.mjs +77 -0
- package/browser/editor/page/made.mjs +24 -0
- package/browser/editor/page/margin.mjs +373 -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 +544 -0
- package/browser/editor/page/merge.mjs +124 -0
- package/browser/editor/page/notices.mjs +142 -0
- package/browser/editor/page/offered.mjs +32 -0
- package/browser/editor/page/outline/folds.mjs +53 -0
- package/browser/editor/page/outline/index.mjs +783 -0
- package/browser/editor/page/outline/list.mjs +184 -0
- package/browser/editor/page/outline/read.mjs +201 -0
- package/browser/editor/page/outline/strip.mjs +287 -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 +65 -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 +61 -0
- package/browser/editor/page/selection/index.mjs +164 -0
- package/browser/editor/page/selection/marquee.mjs +174 -0
- package/browser/editor/page/session.mjs +168 -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 +141 -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 +990 -0
- package/browser/editor/page/table/lists.mjs +187 -0
- package/browser/editor/page/table/widths.mjs +313 -0
- package/browser/editor/page/tex.mjs +32 -0
- package/browser/editor/page/text-select/index.mjs +671 -0
- package/browser/editor/page/tooltip.mjs +98 -0
- package/browser/editor/page/type-grid.mjs +83 -0
- package/browser/editor/page/typing/code-edges.mjs +274 -0
- package/browser/editor/page/typing/index.mjs +282 -0
- package/browser/editor/page/typing/leave.mjs +68 -0
- package/browser/editor/page/ui.mjs +160 -0
- package/browser/shared/annotations.mjs +569 -0
- package/browser/shared/code-folds.mjs +14 -0
- package/browser/shared/code-languages.mjs +70 -0
- package/browser/shared/code-lines.mjs +30 -0
- package/browser/shared/colors.mjs +30 -0
- package/browser/shared/component-catalog.mjs +573 -0
- package/browser/shared/components/bookmark.mjs +26 -0
- package/browser/shared/components/callout.mjs +9 -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 +396 -0
- package/browser/shared/components/installed.mjs +232 -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 +46 -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/document-look.mjs +178 -0
- package/browser/shared/emoji/custom.mjs +91 -0
- package/browser/shared/emoji/data/LICENSE-lucide.txt +43 -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 +28 -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 +194 -0
- package/browser/shared/emoji/emoji.mjs +38 -0
- package/browser/shared/emoji/glyphs.mjs +134 -0
- package/browser/shared/emoji/icon-value.mjs +91 -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 +59 -0
- package/browser/shared/http.mjs +22 -0
- package/browser/shared/i18n/en.mjs +1223 -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/long-runs.mjs +39 -0
- package/browser/shared/media.mjs +162 -0
- package/browser/shared/new-names.mjs +67 -0
- package/browser/shared/number-reading.mjs +92 -0
- package/browser/shared/old-names.mjs +143 -0
- package/browser/shared/outline.mjs +194 -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 +116 -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 +77 -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-look.mjs +91 -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-342HXE3Q.mjs +2 -0
- package/dist/chunk-3HIRPVLU.mjs +2 -0
- package/dist/chunk-43B75J5T.mjs +2 -0
- package/dist/chunk-4FS7Z7WR.mjs +2 -0
- package/dist/chunk-4K5KC6V2.mjs +2 -0
- package/dist/chunk-5L7RYZCL.mjs +2 -0
- package/dist/chunk-5MHMDLZD.mjs +4 -0
- package/dist/chunk-5ZKJ3H4P.mjs +8 -0
- package/dist/chunk-64K7IPLO.mjs +255 -0
- package/dist/chunk-6QXGZM36.mjs +8 -0
- package/dist/chunk-6RGJOMJP.mjs +16 -0
- package/dist/chunk-742D2WWJ.mjs +19 -0
- package/dist/chunk-7DTINW6U.mjs +48 -0
- package/dist/chunk-A55HN5OK.mjs +2 -0
- package/dist/chunk-AGDILNWB.mjs +2 -0
- package/dist/chunk-AJ73XJF3.mjs +2 -0
- package/dist/chunk-AUZGSZJH.mjs +13 -0
- package/dist/chunk-BFE45AKL.mjs +2 -0
- package/dist/chunk-BGGDRNYQ.mjs +10 -0
- package/dist/chunk-BXO2ZY5P.mjs +2 -0
- package/dist/chunk-C564NU2H.mjs +77 -0
- package/dist/chunk-CEH4MRCC.mjs +2 -0
- package/dist/chunk-CY2FNNAB.mjs +16 -0
- package/dist/chunk-DFUDV4LX.mjs +2 -0
- package/dist/chunk-DKXG4XDG.mjs +2 -0
- package/dist/chunk-E7LWZRXY.mjs +4 -0
- package/dist/chunk-EZQ34M3F.mjs +124 -0
- package/dist/chunk-EZY3WC6Z.mjs +15 -0
- package/dist/chunk-FDLXYYG4.mjs +4 -0
- package/dist/chunk-FUKQNOQS.mjs +9 -0
- package/dist/chunk-GB5SOYQJ.mjs +7 -0
- package/dist/chunk-GRAXKKG4.mjs +2 -0
- package/dist/chunk-HYMEEXKN.mjs +4 -0
- package/dist/chunk-IVDLMMBD.mjs +2 -0
- package/dist/chunk-JPOSLGOC.mjs +6 -0
- package/dist/chunk-JVHHHGEA.mjs +3 -0
- package/dist/chunk-L3QKH4OK.mjs +26 -0
- package/dist/chunk-LAE5NQ4B.mjs +2 -0
- package/dist/chunk-LCTHTZIL.mjs +960 -0
- package/dist/chunk-LEF6DRCK.mjs +59 -0
- package/dist/chunk-LKX55H76.mjs +2 -0
- package/dist/chunk-LS4F7JUM.mjs +2 -0
- package/dist/chunk-MAFIGVXY.mjs +2 -0
- package/dist/chunk-NO5NJCHO.mjs +2 -0
- package/dist/chunk-NQPVAU63.mjs +2 -0
- package/dist/chunk-NSKUTQ5J.mjs +5 -0
- package/dist/chunk-O35FIXRB.mjs +2 -0
- package/dist/chunk-P2CAZPDP.mjs +3 -0
- package/dist/chunk-PL6GHLGD.mjs +15 -0
- package/dist/chunk-QAIHRH3I.mjs +13 -0
- package/dist/chunk-QJIR2BLP.mjs +6 -0
- package/dist/chunk-QR6A54KJ.mjs +3 -0
- package/dist/chunk-QUPLVPB2.mjs +7 -0
- package/dist/chunk-R7BNENLY.mjs +4 -0
- package/dist/chunk-S6O4UHLC.mjs +2 -0
- package/dist/chunk-SGJWQKEI.mjs +2 -0
- package/dist/chunk-SYGN7GLU.mjs +2 -0
- package/dist/chunk-TMYZB6AV.mjs +2 -0
- package/dist/chunk-TX6JH7TR.mjs +2 -0
- package/dist/chunk-TYK6VNAB.mjs +10 -0
- package/dist/chunk-U3SSPL4K.mjs +8 -0
- package/dist/chunk-U6KNPJPR.mjs +2 -0
- package/dist/chunk-UALRNVSE.mjs +4 -0
- package/dist/chunk-UH4SIXTR.mjs +2 -0
- package/dist/chunk-UMHUSOPJ.mjs +2 -0
- package/dist/chunk-V3HXVQEM.mjs +2 -0
- package/dist/chunk-V5JTW2LH.mjs +27 -0
- package/dist/chunk-V5VXUJKG.mjs +2 -0
- package/dist/chunk-V6XZ4VIR.mjs +2 -0
- package/dist/chunk-VBXMADMP.mjs +2 -0
- package/dist/chunk-VNV55RUA.mjs +2 -0
- package/dist/chunk-VPD2PS35.mjs +2 -0
- package/dist/chunk-W3BGBJQW.mjs +2 -0
- package/dist/chunk-W4VKN3GF.mjs +7 -0
- package/dist/chunk-W5BXXPDJ.mjs +3 -0
- package/dist/chunk-W7XHE4CT.mjs +2 -0
- package/dist/chunk-XNROSH2T.mjs +4 -0
- package/dist/chunk-XUNHRCOG.mjs +6 -0
- package/dist/chunk-Y34NR5JL.mjs +2 -0
- package/dist/chunk-Y6RLRPG3.mjs +3 -0
- package/dist/chunk-YEY3RSFQ.mjs +2 -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 +2004 -0
- package/kit/report.css +2932 -0
- package/kit/runtime.js +1782 -0
- package/kit/sheets.js +123 -0
- package/kit/state.js +217 -0
- package/kit/tables.js +1499 -0
- package/kit/tokens.js +29 -0
- package/kit/ui.js +658 -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 +147 -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 +150 -0
- package/skill/agents/openai.yaml +5 -0
- package/skill/references/building-components.md +367 -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 +147 -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-Bh74DfsV.css +1 -0
- package/web/assets/index-UW0RyFFt.js +13 -0
- package/web/index.html +14 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
// Where dragged blocks go (docs/editor.md, "Moving blocks"): a pure function of the tree
|
|
2
|
+
// geometry.mjs measure() reads (no DOM is read here: an empty box's place is its `content` rect), so
|
|
3
|
+
// the rules are tested without a browser (tests/unit/geometry.mjs).
|
|
4
|
+
// Geometry proposes, the page's structure (boxes, units) decides the level, and accepts() decides
|
|
5
|
+
// what may go where (`takes`, from drag/index.mjs); nothing here changes the page. The tree's shape
|
|
6
|
+
// is described in geometry.mjs.
|
|
7
|
+
|
|
8
|
+
import { MAX_COLUMNS } from "../../components/columns/index.mjs";
|
|
9
|
+
import { BLOCK_TYPES, firstBlockOf, isLead } from "../../components/registry.mjs";
|
|
10
|
+
import { ADD, HANDLE } from "../handle-sizes.mjs";
|
|
11
|
+
|
|
12
|
+
const STEP = 12; // past edges that coincide, each step this far out leaves one more container
|
|
13
|
+
const NEAR = 3 * STEP; // how far past its edge a container left behind still counts
|
|
14
|
+
const SAME = 4; // edges this close are one edge
|
|
15
|
+
const NEST = 24; // list items a step right of the item above go under it
|
|
16
|
+
const LEAVE = 20; // and leave a list only past its markers, this far left of where its items start
|
|
17
|
+
// Beside a block (分栏, as Feishu's and Notion's): the right third of a block and right of it (no
|
|
18
|
+
// further than REACH), or left of it, a band as Notion's, REACH out from the block, but starting past
|
|
19
|
+
// all of its handle (OUT: the grip and the "+" column left of it) where Notion's starts at the grip's
|
|
20
|
+
// edge; a framed Sheet panel's blocks, set in from the page by its padding, take that start from the
|
|
21
|
+
// page's left edge, the handle of a page block going by there. In a row of columns: within SIDE of the
|
|
22
|
+
// last column's right edge (Feishu's) and past it, left of the first by the same band, or left of the
|
|
23
|
+
// handle of a column past the first (BETWEEN wide, OUT from that column; the gap, narrower than the
|
|
24
|
+
// handle standing in it, leaves the band only the end of the column before). Over a block's text and
|
|
25
|
+
// down the handles, whichever way a hand drifts on a drag that goes up or down, a drop goes between
|
|
26
|
+
// blocks as ever. Where the band would fall off the window, its start stays in it, as far from where
|
|
27
|
+
// the grip then stands as SLACK (FIRST).
|
|
28
|
+
const REACH = 200; // the farthest from a block a drop still goes beside it (Notion's)
|
|
29
|
+
const OUT = HANDLE.gap + HANDLE.width + ADD.width; // where the band left of a block starts, from its left edge
|
|
30
|
+
const SLACK = 16; // the least between the grip's left edge and that start
|
|
31
|
+
const FIRST = ADD.edge + ADD.width - SLACK; // the same from the window's left edge, the grip kept in from it there (handle/)
|
|
32
|
+
const SIDE = 16; // near a column's edge (Feishu's)
|
|
33
|
+
const BETWEEN = 2 * SIDE; // how wide the band for a new column between two is, as wide as within SIDE of an edge either way
|
|
34
|
+
|
|
35
|
+
// How many of a box's units come before its places: its lead (a highlight block's icon, a flowchart
|
|
36
|
+
// node's) is its own, no block to fall between, so a place before it is the place after it; so is a
|
|
37
|
+
// node's first line, its title (`firstBlock`): nothing lands before it, a place there is the place after it.
|
|
38
|
+
const headOf = (box, units) => {
|
|
39
|
+
const lead = isLead(box.kind, units[0]?.kind) ? 1 : 0;
|
|
40
|
+
const first = firstBlockOf(box.kind);
|
|
41
|
+
return lead + (first && units[lead]?.kind === BLOCK_TYPES[first]?.kind ? 1 : 0);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// Where a list's items start (their text; the markers stand left of it).
|
|
45
|
+
const itemsLeft = (list) => Math.min(list.rect.left + NEST, ...list.children.filter((child) => child.type === "unit").map((item) => item.start));
|
|
46
|
+
|
|
47
|
+
// In a box whose rows wrap (geometry.mjs sideBySide: a flowchart's nodes), a block alone in its row
|
|
48
|
+
// (no other of `rects` at its height: a node holding a picture, a node of a 纵向 flowchart) is one of
|
|
49
|
+
// a column there: the places before and after it are above and below it, by its middle height, the
|
|
50
|
+
// line across it. In a row of several, the places go across, by their middles, as in any row.
|
|
51
|
+
const alone = (box, rects, rect) => box.row === "wrap" && !rects.some((other) => other !== rect && Math.abs(other.top - rect.top) < SAME);
|
|
52
|
+
|
|
53
|
+
const isRow = (node) => node.kind === "columns";
|
|
54
|
+
|
|
55
|
+
// The x a point at (x, y) counts at: over the handle of a column's blocks (OUT left of a column past
|
|
56
|
+
// the first), at that column's left edge, as one left of the page counts at the page's, so that a drag
|
|
57
|
+
// by that handle that goes up or down stays among that column's blocks.
|
|
58
|
+
function overHandle(node, x, y) {
|
|
59
|
+
const next = node.children.find(({ rect }) => x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom);
|
|
60
|
+
if (!next) return x;
|
|
61
|
+
const column = isRow(next) ? next.children.find(({ rect }) => x < rect.left && x >= rect.left - OUT) : null;
|
|
62
|
+
return overHandle(column ?? next, column ? column.rect.left + 1 : x, y);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Where dragged blocks go with the pointer at (x, y) (page coordinates; beside the page counts as
|
|
67
|
+
* the page), or null where nothing takes them (over a Sheet's tab row, anything but its own tabs):
|
|
68
|
+
* { box, slot, nest, same, line, halo }. `box` takes them before its `slot`-th block (dragged ones
|
|
69
|
+
* not counted), or, with `nest`, at the end of that list item's lists; `same`: that is where they
|
|
70
|
+
* are already; `line`: where to show the place, `halo`: the container to tint (none for the page
|
|
71
|
+
* itself), both { left, top, right, bottom } in page coordinates.
|
|
72
|
+
*
|
|
73
|
+
* The box is the innermost one around the point that takes the blocks (`takes(box)`), the place in
|
|
74
|
+
* it between two of its blocks by their middles (in a row: by rows, then across). How deep a drop
|
|
75
|
+
* goes follows each container's own layout. Containers with edges (sections, panels, disclosures,
|
|
76
|
+
* Sheet panels) go by those edges: inside one, its places; past its edge, the container around it.
|
|
77
|
+
* Where edges coincide (the last section of a Sheet panel ends where the panel does), each further
|
|
78
|
+
* STEP past them leaves one more container, so every one of those places can be reached; the
|
|
79
|
+
* innermost one is reached from inside. Lists go by indentation, as their items show it: at a
|
|
80
|
+
* list's end, left of its markers (LEAVE past where its items start) the blocks leave it for the list around it (after the
|
|
81
|
+
* item holding it), and a step right of the item above they go under that item (`items`: every
|
|
82
|
+
* block dragged is a list item). Blocks of other kinds (a paragraph, an image…: notion-lite's children
|
|
83
|
+
* of a list item) go under an item too: among the blocks it holds, below its own line, or a step
|
|
84
|
+
* right of the item above the place (over a list, or right after one: the deepest item so reached),
|
|
85
|
+
* at the end of what it holds. `dragged(unit)`: a unit being dragged (`count` of them), which
|
|
86
|
+
* nothing goes into.
|
|
87
|
+
*
|
|
88
|
+
* With `aside(unit)` (the blocks may go into a column; whether a unit may: asideOf), beside a block they go beside it, the
|
|
89
|
+
* two side by side in a new row of columns, and at a column's edge into a new column there:
|
|
90
|
+
* { aside: { target, side } } or { aside: { row, index, whole } } (`whole`: the dragged blocks are
|
|
91
|
+
* all of one column of that row, which then moves instead). `edge`: the window's left edge, in page
|
|
92
|
+
* coordinates, which the band left of a block keeps some of.
|
|
93
|
+
*/
|
|
94
|
+
export function resolveDrop(tree, x, y, { takes, dragged = () => false, count = 1, items = false, aside = false, edge = -Infinity }) {
|
|
95
|
+
const px = overHandle(tree, Math.min(Math.max(x, tree.rect.left + 1), tree.rect.right - 1), y);
|
|
96
|
+
const holds = (rect, at = px) => at >= rect.left && at <= rect.right && y >= rect.top && y <= rect.bottom;
|
|
97
|
+
const units = (box) => box.children.filter((child) => child.type === "unit" && !dragged(child));
|
|
98
|
+
// An item's box for what it holds ("nest") takes list items through its lists only; other blocks
|
|
99
|
+
// go into it among the blocks it holds, below the item's own line.
|
|
100
|
+
const open = (node) => node.type === "box" && takes(node) && (node.kind !== "nest" || (!items && units(node).length > 0 && y >= units(node)[0].rect.top - SAME));
|
|
101
|
+
const placeIn = (box) => {
|
|
102
|
+
const here = units(box);
|
|
103
|
+
const rects = here.map((unit) => unit.rect);
|
|
104
|
+
const slot = here.findIndex(({ rect }) => (box.row
|
|
105
|
+
? y < rect.top || (y <= rect.bottom && (alone(box, rects, rect) ? y < (rect.top + rect.bottom) / 2 : px < (rect.left + rect.right) / 2))
|
|
106
|
+
: y < (rect.top + rect.bottom) / 2));
|
|
107
|
+
return Math.max(headOf(box, here), slot < 0 ? here.length : slot);
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
// The boxes and units around the point, from the page down, never into a dragged block. `flush`: a
|
|
111
|
+
// point left of the blocks of a detail card or a Sheet panel counts as at their left edge, as one left
|
|
112
|
+
// of the page's does: the padding between leaves them no less at that side.
|
|
113
|
+
const around = (flush) => {
|
|
114
|
+
const nodes = [tree];
|
|
115
|
+
let at = flush ? Math.max(px, tree.content.left + 1) : px;
|
|
116
|
+
for (let node = tree, next; (next = node.children.find((child) => holds(child.rect, at) && !(child.type === "unit" && dragged(child)))); node = next) {
|
|
117
|
+
nodes.push(next);
|
|
118
|
+
if (flush && next.type === "box" && next.role === "root") at = Math.max(at, next.content.left + 1);
|
|
119
|
+
}
|
|
120
|
+
return nodes;
|
|
121
|
+
};
|
|
122
|
+
const path = around(false);
|
|
123
|
+
if (path.some((node) => node.type === "box" && node.role === "tabs" && !takes(node))) return null; // resting there switches Sheets
|
|
124
|
+
if (aside) {
|
|
125
|
+
const beside = asideOf(around(true), x, dragged, count, aside, edge);
|
|
126
|
+
if (beside) return beside;
|
|
127
|
+
}
|
|
128
|
+
let box = path.findLast(open) ?? null;
|
|
129
|
+
let slot = box ? placeIn(box) : 0;
|
|
130
|
+
|
|
131
|
+
// Edges just passed: the containers that take the blocks inside the blocks either side of the
|
|
132
|
+
// place and end (above it) or start (below it) flush with that block, when the point has left
|
|
133
|
+
// that edge by at most NEAR.
|
|
134
|
+
const outer = box ?? path.findLast((node) => node.type === "box");
|
|
135
|
+
const near = units(outer);
|
|
136
|
+
const at = box ? slot : placeIn(outer);
|
|
137
|
+
const passed = [];
|
|
138
|
+
const collect = (unit, side) => {
|
|
139
|
+
const flush = unit && (side === "bottom" ? unit.rect.bottom : unit.rect.top);
|
|
140
|
+
const visit = (node, depth) => {
|
|
141
|
+
for (const inner of node.children) {
|
|
142
|
+
if (inner.type === "unit") {
|
|
143
|
+
if (!dragged(inner)) visit(inner, depth);
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
const edge = side === "bottom" ? inner.rect.bottom : inner.rect.top;
|
|
147
|
+
const past = side === "bottom" ? y - edge : edge - y;
|
|
148
|
+
if (open(inner) && Math.abs(edge - flush) <= SAME && px >= inner.rect.left && px <= inner.rect.right && past > 0 && past <= NEAR) passed.push({ box: inner, edge, side, depth });
|
|
149
|
+
visit(inner, depth + 1);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
if (unit) visit(unit, 0);
|
|
153
|
+
};
|
|
154
|
+
collect(near[at - 1], "bottom");
|
|
155
|
+
collect(near[at], "top");
|
|
156
|
+
if (passed.length > 0) {
|
|
157
|
+
const nearest = passed.reduce((best, entry) => (Math.abs(y - entry.edge) < Math.abs(y - best.edge) ? entry : best));
|
|
158
|
+
const stack = passed.filter((entry) => entry.side === nearest.side && Math.abs(entry.edge - nearest.edge) <= SAME).sort((a, b) => b.depth - a.depth);
|
|
159
|
+
let chosen = null;
|
|
160
|
+
if (stack.every((entry) => entry.box.kind === "list")) {
|
|
161
|
+
// Lists by indentation: the deepest whose markers start left of the pointer, else the outermost.
|
|
162
|
+
chosen = (stack.find((entry) => itemsLeft(entry.box) - LEAVE <= px) ?? stack.at(-1)).box;
|
|
163
|
+
} else {
|
|
164
|
+
const levels = [...stack.slice(1).map((entry) => entry.box), ...(box ? [box] : [])];
|
|
165
|
+
if (levels.length > 0) chosen = levels[Math.min(Math.floor(Math.abs(y - nearest.edge) / STEP), levels.length - 1)];
|
|
166
|
+
}
|
|
167
|
+
if (chosen && chosen !== box) {
|
|
168
|
+
box = chosen;
|
|
169
|
+
slot = nearest.side === "bottom" ? units(box).length : headOf(box, units(box));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (!box) return null;
|
|
173
|
+
|
|
174
|
+
// At a list's end, left of its markers (past where its items start, by LEAVE): the list around it, after the item holding it
|
|
175
|
+
// (on the path: that list, the item, the item's own box for lists, this list). Having left it,
|
|
176
|
+
// they do not go back under that item.
|
|
177
|
+
let left = false;
|
|
178
|
+
for (let index = path.indexOf(box); box.kind === "list" && index >= 4 && slot === units(box).length && px < itemsLeft(box) - LEAVE; index = path.indexOf(box)) {
|
|
179
|
+
const [list, item, lists] = [path[index - 4], path[index - 3], path[index - 2]];
|
|
180
|
+
if (lists.kind !== "nest" || !open(list)) break;
|
|
181
|
+
box = list;
|
|
182
|
+
slot = units(box).indexOf(item) + 1;
|
|
183
|
+
left = true;
|
|
184
|
+
}
|
|
185
|
+
const others = units(box);
|
|
186
|
+
const above = others[slot - 1];
|
|
187
|
+
const nest = items ? (!left && box.kind === "list" && !box.row && above?.nestable && px > above.start + NEST ? above : null) : held(path, box, above);
|
|
188
|
+
|
|
189
|
+
// Where they are already: next to each other in this box, all of them, at this place.
|
|
190
|
+
const all = box.children.filter((child) => child.type === "unit");
|
|
191
|
+
const first = all.findIndex(dragged);
|
|
192
|
+
const run = first < 0 ? 0 : all.slice(first).findIndex((child) => !dragged(child));
|
|
193
|
+
const same = !nest && first >= 0 && (run < 0 ? all.length - first : run) === count && slot === first;
|
|
194
|
+
const line = nest && !items ? { left: nest.start, top: nest.rect.bottom + 2, right: nest.rect.right, bottom: nest.rect.bottom + 5 } : lineOf(box, others, slot, nest, y);
|
|
195
|
+
return { box: box.el, slot, nest: nest?.el ?? null, same, line, halo: nest ? nest.rect : box === tree ? null : box.rect };
|
|
196
|
+
|
|
197
|
+
// The item blocks of other kinds go under (at the end of what it holds), or null: over a list the
|
|
198
|
+
// pointer is in (deeper than `box`), the item above the pointer; else, right after a list, its last
|
|
199
|
+
// item; then, down the last lists they hold, the deepest item whose text starts a step (NEST) left
|
|
200
|
+
// of the pointer. Only an item that takes them (`nestable`, its box taking every kind dragged).
|
|
201
|
+
function held(path, box, above) {
|
|
202
|
+
const list = path.findLast((node) => node.type === "box" && node.kind === "list");
|
|
203
|
+
const inside = list && path.indexOf(list) > path.indexOf(box);
|
|
204
|
+
let item = inside ? units(list)[placeIn(list) - 1] : above?.kind === "list" ? lastItem(above) : null;
|
|
205
|
+
let found = null;
|
|
206
|
+
while (item && px > item.start + NEST) {
|
|
207
|
+
if (item.nestable && takes({ kind: "nest", el: item.el })) found = item;
|
|
208
|
+
const nested = item.children.find((child) => child.type === "box" && child.kind === "nest");
|
|
209
|
+
const last = nested ? units(nested).at(-1) : null;
|
|
210
|
+
item = last?.kind === "list" ? lastItem(last) : null;
|
|
211
|
+
}
|
|
212
|
+
return found;
|
|
213
|
+
}
|
|
214
|
+
function lastItem(listUnit) {
|
|
215
|
+
const box = listUnit.children.find((child) => child.type === "box" && child.kind === "list");
|
|
216
|
+
return box ? units(box).at(-1) ?? null : null;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// Beside a block (the units on `path`, from the page down, at height y): in the innermost row of
|
|
221
|
+
// columns on it, a new column at the row's ends or left of a column's handle; elsewhere the innermost
|
|
222
|
+
// block of a flow that may stand in a column, beside it. The line stands down that side, the block (or
|
|
223
|
+
// the column beside the line) tinted. Null where the drop goes between blocks as ever.
|
|
224
|
+
const FLOW_ROLES = new Set(["root", "flow"]);
|
|
225
|
+
function asideOf(path, x, dragged, count, fits, edge) {
|
|
226
|
+
const down = (rect, at) => ({ left: at - 1.5, top: rect.top - 8, right: at + 1.5, bottom: rect.bottom + 8 });
|
|
227
|
+
const leftOf = (left) => x >= left - REACH && x < Math.max(Math.min(left, path[0].content.left) - OUT, edge + FIRST);
|
|
228
|
+
const row = path.findLast((node) => node.type === "unit" && isRow(node) && !dragged(node));
|
|
229
|
+
if (row) {
|
|
230
|
+
const box = row.children.find((child) => child.type === "box");
|
|
231
|
+
const columns = box?.children.filter((child) => child.type === "unit") ?? [];
|
|
232
|
+
if (columns.length === 0) return null;
|
|
233
|
+
// The column whose blocks are all of those dragged (and only they), which moves instead.
|
|
234
|
+
const own = (column) => column.children.flatMap((inner) => inner.children.filter((child) => child.type === "unit"));
|
|
235
|
+
const whole = columns.find((column) => own(column).length === count && own(column).every(dragged)) ?? null;
|
|
236
|
+
const after = columns.findIndex(({ rect }, at) => {
|
|
237
|
+
const next = columns[at + 1]?.rect;
|
|
238
|
+
return next ? x >= next.left - OUT - BETWEEN && x < next.left - OUT
|
|
239
|
+
: x > rect.left + (2 * (rect.right - rect.left)) / 3 && x > rect.right - SIDE && x < rect.right + REACH;
|
|
240
|
+
});
|
|
241
|
+
const index = leftOf(columns[0].rect.left) ? 0 : after < 0 ? -1 : after + 1;
|
|
242
|
+
if (index < 0) return null;
|
|
243
|
+
const from = whole ? columns.indexOf(whole) : -1;
|
|
244
|
+
const same = from >= 0 && (index === from || index === from + 1);
|
|
245
|
+
if (!whole && columns.length >= MAX_COLUMNS) return null;
|
|
246
|
+
const at = index === 0 ? columns[0].rect.left - 6 : index === columns.length ? columns.at(-1).rect.right + 6 : (columns[index - 1].rect.right + columns[index].rect.left) / 2;
|
|
247
|
+
return { box: box.el, slot: 0, nest: null, same, aside: { row: row.el, index, whole: whole?.el ?? null }, line: down(row.rect, at), halo: columns[Math.max(0, index - 1)].rect };
|
|
248
|
+
}
|
|
249
|
+
// The innermost block of a flow, one that may stand in a column and holds none of those dragged.
|
|
250
|
+
let target = null;
|
|
251
|
+
for (let index = 1; index < path.length; index++) {
|
|
252
|
+
const node = path[index];
|
|
253
|
+
if (node.type !== "unit") continue;
|
|
254
|
+
if (FLOW_ROLES.has(path[index - 1].role)) target = node;
|
|
255
|
+
}
|
|
256
|
+
const holdsDragged = (node) => node.children.some((inner) => inner.children.some((unit) => dragged(unit) || holdsDragged(unit)));
|
|
257
|
+
if (!target || !fits(target) || holdsDragged(target)) return null;
|
|
258
|
+
const { rect } = target;
|
|
259
|
+
const side = x > rect.left + (2 * (rect.right - rect.left)) / 3 && x <= rect.right + REACH ? "right"
|
|
260
|
+
: leftOf(rect.left) ? "left" : null;
|
|
261
|
+
if (!side) return null;
|
|
262
|
+
const box = path[path.indexOf(target) - 1];
|
|
263
|
+
return { box: box.el, slot: 0, nest: null, same: false, aside: { target: target.el, side }, line: down(rect, side === "right" ? rect.right + 6 : rect.left - 6), halo: rect };
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// The line showing a place: across the box between two of its blocks (under an item, from its
|
|
267
|
+
// text, where the markers of a list in it would stand; before the first and after the last, from
|
|
268
|
+
// no further out than the box's edge, which a divider's band may pass), down between two blocks of
|
|
269
|
+
// a row or at the end of the row the pointer is in (across a block alone in its row of a box whose
|
|
270
|
+
// rows wrap, above or below it), or along the bottom of an empty box.
|
|
271
|
+
function lineOf(box, others, slot, nest, y) {
|
|
272
|
+
// A box's lead (a highlight block's icon) is no block to fall between: the line spans the blocks
|
|
273
|
+
// after it, from the icon's right (notion-lite's).
|
|
274
|
+
const head = headOf(box, others);
|
|
275
|
+
slot -= head;
|
|
276
|
+
const rects = others.slice(head).map((unit) => unit.rect);
|
|
277
|
+
if (rects.length === 0) {
|
|
278
|
+
// An empty box: across its content, inside its padding (an empty Sheet panel's 16px).
|
|
279
|
+
const { left, top, right, bottom } = box.content;
|
|
280
|
+
const at = bottom > top ? (top + bottom) / 2 : box.rect.bottom - 6;
|
|
281
|
+
return { left, top: at - 1.5, right, bottom: at + 1.5 };
|
|
282
|
+
}
|
|
283
|
+
if (box.row) {
|
|
284
|
+
const next = rects[slot];
|
|
285
|
+
const previous = rects[slot - 1];
|
|
286
|
+
const sameRow = next && previous && Math.abs(next.top - previous.top) < 4;
|
|
287
|
+
const endOfRow = previous && !sameRow && (!next || (y >= previous.top && y <= previous.bottom));
|
|
288
|
+
const rect = sameRow || !endOfRow ? next ?? previous : previous;
|
|
289
|
+
// Before or after a block alone in its row of a box whose rows wrap (or with the pointer between
|
|
290
|
+
// its row and the next, either of the two alone): across it, between the rows (halfway to the row
|
|
291
|
+
// above or below), or just past it at the box's start or end.
|
|
292
|
+
const between = previous && next && !sameRow && y > previous.bottom && y < next.top;
|
|
293
|
+
const lone = sameRow ? null : [rect, ...(between ? [previous, next] : [])].find((each) => alone(box, rects, each));
|
|
294
|
+
if (lone) {
|
|
295
|
+
const at = lone === previous ? (next ? (previous.bottom + next.top) / 2 : previous.bottom + 6) : previous ? (previous.bottom + next.top) / 2 : next.top - 6;
|
|
296
|
+
return { left: lone.left, top: at - 1.5, right: lone.right, bottom: at + 1.5 };
|
|
297
|
+
}
|
|
298
|
+
const at = sameRow ? (previous.right + next.left) / 2 : endOfRow ? previous.right + 8 : next.left - 8;
|
|
299
|
+
return { left: at - 1.5, top: rect.top, right: at + 1.5, bottom: rect.bottom };
|
|
300
|
+
}
|
|
301
|
+
const left = nest ? nest.start : Math.min(...rects.map((rect) => rect.left));
|
|
302
|
+
const right = Math.max(...rects.map((rect) => rect.right));
|
|
303
|
+
const at = slot === 0 ? Math.max(rects[0].top, box.rect.top) - 6
|
|
304
|
+
: slot === rects.length ? Math.min(rects.at(-1).bottom, box.rect.bottom) + 6
|
|
305
|
+
: (rects[slot - 1].bottom + rects[slot].top) / 2;
|
|
306
|
+
return { left, top: at - 1.5, right, bottom: at + 1.5 };
|
|
307
|
+
}
|