tosijs-ui 1.17.0 → 1.17.2
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/CHANGELOG.md +92 -0
- package/README.md +1 -1
- package/bin/make-icon-data.js +167 -1
- package/dist/affix.d.ts +6 -0
- package/dist/affix.js +19 -0
- package/dist/babylon-3d.js +3 -2
- package/dist/carousel.js +4 -3
- package/dist/data-table.d.ts +3 -4
- package/dist/data-table.js +42 -39
- package/dist/doc-browser.js +16 -25
- package/dist/doc-system/doc-title.d.ts +5 -0
- package/dist/doc-system/doc-title.js +10 -0
- package/dist/doc-system/site/a11y-audit-cli.js +5 -8
- package/dist/doc-system/site/a11y-audit.d.ts +8 -0
- package/dist/doc-system/site/a11y-audit.js +50 -13
- package/dist/doc-system/site/bounded-child.d.ts +10 -0
- package/dist/doc-system/site/bounded-child.js +44 -0
- package/dist/doc-system/site/config-fingerprint.d.ts +21 -0
- package/dist/doc-system/site/config-fingerprint.js +43 -0
- package/dist/doc-system/site/dev-server.js +11 -22
- package/dist/doc-system/site/epub-a11y.d.ts +13 -4
- package/dist/doc-system/site/epub-a11y.js +67 -21
- package/dist/doc-system/site/generate-site.js +1 -8
- package/dist/doc-system/site/make-llms-txt.js +3 -1
- package/dist/doc-system/site/orchestrator.js +38 -8
- package/dist/editable-rect.js +12 -8
- package/dist/filter-builder.js +6 -4
- package/dist/header.js +10 -6
- package/dist/icon-core.d.ts +46 -0
- package/dist/icon-core.js +511 -0
- package/dist/icon-rules.js +1 -1
- package/dist/icon-store.d.ts +10 -0
- package/dist/icon-store.js +44 -0
- package/dist/icon-svg.js +5 -1
- package/dist/icon-types.d.ts +2 -0
- package/dist/icons/activity.d.ts +1 -0
- package/dist/icons/activity.js +4 -0
- package/dist/icons/airplay.d.ts +1 -0
- package/dist/icons/airplay.js +4 -0
- package/dist/icons/alertCircle.d.ts +1 -0
- package/dist/icons/alertCircle.js +4 -0
- package/dist/icons/alertOctagon.d.ts +1 -0
- package/dist/icons/alertOctagon.js +4 -0
- package/dist/icons/alertTriangle.d.ts +1 -0
- package/dist/icons/alertTriangle.js +4 -0
- package/dist/icons/alignCenter.d.ts +1 -0
- package/dist/icons/alignCenter.js +4 -0
- package/dist/icons/alignJustify.d.ts +1 -0
- package/dist/icons/alignJustify.js +4 -0
- package/dist/icons/alignLeft.d.ts +1 -0
- package/dist/icons/alignLeft.js +4 -0
- package/dist/icons/alignRight.d.ts +1 -0
- package/dist/icons/alignRight.js +4 -0
- package/dist/icons/anchor.d.ts +1 -0
- package/dist/icons/anchor.js +4 -0
- package/dist/icons/aperture.d.ts +1 -0
- package/dist/icons/aperture.js +4 -0
- package/dist/icons/archive.d.ts +1 -0
- package/dist/icons/archive.js +4 -0
- package/dist/icons/arrowDown.d.ts +2 -0
- package/dist/icons/arrowDown.js +5 -0
- package/dist/icons/arrowDownCircle.d.ts +2 -0
- package/dist/icons/arrowDownCircle.js +5 -0
- package/dist/icons/arrowDownLeft.d.ts +2 -0
- package/dist/icons/arrowDownLeft.js +5 -0
- package/dist/icons/arrowDownRight.d.ts +2 -0
- package/dist/icons/arrowDownRight.js +5 -0
- package/dist/icons/arrowLeft.d.ts +2 -0
- package/dist/icons/arrowLeft.js +5 -0
- package/dist/icons/arrowLeftCircle.d.ts +2 -0
- package/dist/icons/arrowLeftCircle.js +5 -0
- package/dist/icons/arrowRight.d.ts +1 -0
- package/dist/icons/arrowRight.js +4 -0
- package/dist/icons/arrowRightCircle.d.ts +1 -0
- package/dist/icons/arrowRightCircle.js +4 -0
- package/dist/icons/arrowUp.d.ts +2 -0
- package/dist/icons/arrowUp.js +5 -0
- package/dist/icons/arrowUpCircle.d.ts +2 -0
- package/dist/icons/arrowUpCircle.js +5 -0
- package/dist/icons/arrowUpLeft.d.ts +2 -0
- package/dist/icons/arrowUpLeft.js +5 -0
- package/dist/icons/arrowUpRight.d.ts +1 -0
- package/dist/icons/arrowUpRight.js +4 -0
- package/dist/icons/atSign.d.ts +1 -0
- package/dist/icons/atSign.js +4 -0
- package/dist/icons/award.d.ts +1 -0
- package/dist/icons/award.js +4 -0
- package/dist/icons/barChart.d.ts +1 -0
- package/dist/icons/barChart.js +4 -0
- package/dist/icons/barChart2.d.ts +1 -0
- package/dist/icons/barChart2.js +4 -0
- package/dist/icons/battery.d.ts +1 -0
- package/dist/icons/battery.js +4 -0
- package/dist/icons/batteryCharging.d.ts +1 -0
- package/dist/icons/batteryCharging.js +4 -0
- package/dist/icons/bell.d.ts +1 -0
- package/dist/icons/bell.js +4 -0
- package/dist/icons/bellOff.d.ts +1 -0
- package/dist/icons/bellOff.js +4 -0
- package/dist/icons/blog.d.ts +1 -0
- package/dist/icons/blog.js +4 -0
- package/dist/icons/blueprint.d.ts +1 -0
- package/dist/icons/blueprint.js +4 -0
- package/dist/icons/bluetooth.d.ts +1 -0
- package/dist/icons/bluetooth.js +4 -0
- package/dist/icons/bold.d.ts +1 -0
- package/dist/icons/bold.js +4 -0
- package/dist/icons/book.d.ts +1 -0
- package/dist/icons/book.js +4 -0
- package/dist/icons/bookOpen.d.ts +1 -0
- package/dist/icons/bookOpen.js +4 -0
- package/dist/icons/bookmark.d.ts +1 -0
- package/dist/icons/bookmark.js +4 -0
- package/dist/icons/box.d.ts +1 -0
- package/dist/icons/box.js +4 -0
- package/dist/icons/briefcase.d.ts +1 -0
- package/dist/icons/briefcase.js +4 -0
- package/dist/icons/bug.d.ts +1 -0
- package/dist/icons/bug.js +4 -0
- package/dist/icons/calendar.d.ts +1 -0
- package/dist/icons/calendar.js +4 -0
- package/dist/icons/camera.d.ts +1 -0
- package/dist/icons/camera.js +4 -0
- package/dist/icons/cameraOff.d.ts +1 -0
- package/dist/icons/cameraOff.js +4 -0
- package/dist/icons/cast.d.ts +1 -0
- package/dist/icons/cast.js +4 -0
- package/dist/icons/check.d.ts +1 -0
- package/dist/icons/check.js +4 -0
- package/dist/icons/checkCircle.d.ts +1 -0
- package/dist/icons/checkCircle.js +4 -0
- package/dist/icons/checkSquare.d.ts +1 -0
- package/dist/icons/checkSquare.js +4 -0
- package/dist/icons/chevronDown.d.ts +2 -0
- package/dist/icons/chevronDown.js +5 -0
- package/dist/icons/chevronLeft.d.ts +2 -0
- package/dist/icons/chevronLeft.js +5 -0
- package/dist/icons/chevronRight.d.ts +1 -0
- package/dist/icons/chevronRight.js +4 -0
- package/dist/icons/chevronUp.d.ts +2 -0
- package/dist/icons/chevronUp.js +5 -0
- package/dist/icons/chevronsDown.d.ts +2 -0
- package/dist/icons/chevronsDown.js +5 -0
- package/dist/icons/chevronsLeft.d.ts +2 -0
- package/dist/icons/chevronsLeft.js +5 -0
- package/dist/icons/chevronsRight.d.ts +1 -0
- package/dist/icons/chevronsRight.js +4 -0
- package/dist/icons/chevronsUp.d.ts +2 -0
- package/dist/icons/chevronsUp.js +5 -0
- package/dist/icons/chrome.d.ts +1 -0
- package/dist/icons/chrome.js +4 -0
- package/dist/icons/circle.d.ts +1 -0
- package/dist/icons/circle.js +4 -0
- package/dist/icons/clipboard.d.ts +1 -0
- package/dist/icons/clipboard.js +4 -0
- package/dist/icons/clock.d.ts +1 -0
- package/dist/icons/clock.js +4 -0
- package/dist/icons/cloud.d.ts +1 -0
- package/dist/icons/cloud.js +4 -0
- package/dist/icons/cloudDrizzle.d.ts +1 -0
- package/dist/icons/cloudDrizzle.js +4 -0
- package/dist/icons/cloudLightning.d.ts +1 -0
- package/dist/icons/cloudLightning.js +4 -0
- package/dist/icons/cloudOff.d.ts +1 -0
- package/dist/icons/cloudOff.js +4 -0
- package/dist/icons/cloudRain.d.ts +1 -0
- package/dist/icons/cloudRain.js +4 -0
- package/dist/icons/cloudSnow.d.ts +1 -0
- package/dist/icons/cloudSnow.js +4 -0
- package/dist/icons/cmy.d.ts +1 -0
- package/dist/icons/cmy.js +4 -0
- package/dist/icons/code.d.ts +1 -0
- package/dist/icons/code.js +4 -0
- package/dist/icons/codepen.d.ts +1 -0
- package/dist/icons/codepen.js +4 -0
- package/dist/icons/codesandbox.d.ts +1 -0
- package/dist/icons/codesandbox.js +4 -0
- package/dist/icons/coffee.d.ts +1 -0
- package/dist/icons/coffee.js +4 -0
- package/dist/icons/columns.d.ts +1 -0
- package/dist/icons/columns.js +4 -0
- package/dist/icons/command.d.ts +1 -0
- package/dist/icons/command.js +4 -0
- package/dist/icons/compass.d.ts +1 -0
- package/dist/icons/compass.js +4 -0
- package/dist/icons/copy.d.ts +1 -0
- package/dist/icons/copy.js +4 -0
- package/dist/icons/cornerDownLeft.d.ts +2 -0
- package/dist/icons/cornerDownLeft.js +5 -0
- package/dist/icons/cornerDownRight.d.ts +1 -0
- package/dist/icons/cornerDownRight.js +4 -0
- package/dist/icons/cornerLeftDown.d.ts +2 -0
- package/dist/icons/cornerLeftDown.js +5 -0
- package/dist/icons/cornerLeftUp.d.ts +2 -0
- package/dist/icons/cornerLeftUp.js +5 -0
- package/dist/icons/cornerRightDown.d.ts +1 -0
- package/dist/icons/cornerRightDown.js +4 -0
- package/dist/icons/cornerRightUp.d.ts +1 -0
- package/dist/icons/cornerRightUp.js +4 -0
- package/dist/icons/cornerUpLeft.d.ts +2 -0
- package/dist/icons/cornerUpLeft.js +5 -0
- package/dist/icons/cornerUpRight.d.ts +1 -0
- package/dist/icons/cornerUpRight.js +4 -0
- package/dist/icons/cpu.d.ts +1 -0
- package/dist/icons/cpu.js +4 -0
- package/dist/icons/creditCard.d.ts +1 -0
- package/dist/icons/creditCard.js +4 -0
- package/dist/icons/crop.d.ts +1 -0
- package/dist/icons/crop.js +4 -0
- package/dist/icons/crosshair.d.ts +1 -0
- package/dist/icons/crosshair.js +4 -0
- package/dist/icons/data/arrowDown.d.ts +1 -1
- package/dist/icons/data/arrowDown.js +1 -1
- package/dist/icons/data/arrowDownCircle.d.ts +1 -1
- package/dist/icons/data/arrowDownCircle.js +1 -1
- package/dist/icons/data/arrowDownLeft.d.ts +1 -1
- package/dist/icons/data/arrowDownLeft.js +1 -1
- package/dist/icons/data/arrowDownRight.d.ts +1 -1
- package/dist/icons/data/arrowDownRight.js +1 -1
- package/dist/icons/data/arrowLeft.d.ts +1 -1
- package/dist/icons/data/arrowLeft.js +1 -1
- package/dist/icons/data/arrowLeftCircle.d.ts +1 -1
- package/dist/icons/data/arrowLeftCircle.js +1 -1
- package/dist/icons/data/arrowUp.d.ts +1 -1
- package/dist/icons/data/arrowUp.js +1 -1
- package/dist/icons/data/arrowUpCircle.d.ts +1 -1
- package/dist/icons/data/arrowUpCircle.js +1 -1
- package/dist/icons/data/arrowUpLeft.d.ts +1 -1
- package/dist/icons/data/arrowUpLeft.js +1 -1
- package/dist/icons/data/blog.d.ts +1 -1
- package/dist/icons/data/blog.js +1 -1
- package/dist/icons/data/blueprint.d.ts +1 -1
- package/dist/icons/data/blueprint.js +1 -1
- package/dist/icons/data/bug.d.ts +1 -1
- package/dist/icons/data/bug.js +1 -1
- package/dist/icons/data/chevronDown.d.ts +1 -1
- package/dist/icons/data/chevronDown.js +1 -1
- package/dist/icons/data/chevronLeft.d.ts +1 -1
- package/dist/icons/data/chevronLeft.js +1 -1
- package/dist/icons/data/chevronUp.d.ts +1 -1
- package/dist/icons/data/chevronUp.js +1 -1
- package/dist/icons/data/chevronsDown.d.ts +1 -1
- package/dist/icons/data/chevronsDown.js +1 -1
- package/dist/icons/data/chevronsLeft.d.ts +1 -1
- package/dist/icons/data/chevronsLeft.js +1 -1
- package/dist/icons/data/chevronsUp.d.ts +1 -1
- package/dist/icons/data/chevronsUp.js +1 -1
- package/dist/icons/data/cmy.d.ts +1 -1
- package/dist/icons/data/cmy.js +1 -1
- package/dist/icons/data/cornerDownLeft.d.ts +1 -1
- package/dist/icons/data/cornerDownLeft.js +1 -1
- package/dist/icons/data/cornerLeftDown.d.ts +1 -1
- package/dist/icons/data/cornerLeftDown.js +1 -1
- package/dist/icons/data/cornerLeftUp.d.ts +1 -1
- package/dist/icons/data/cornerLeftUp.js +1 -1
- package/dist/icons/data/cornerUpLeft.d.ts +1 -1
- package/dist/icons/data/cornerUpLeft.js +1 -1
- package/dist/icons/data/delete.js +1 -1
- package/dist/icons/data/discord.d.ts +1 -1
- package/dist/icons/data/discord.js +1 -1
- package/dist/icons/data/earth.d.ts +1 -1
- package/dist/icons/data/earth.js +1 -1
- package/dist/icons/data/facebook.d.ts +1 -1
- package/dist/icons/data/facebook.js +1 -1
- package/dist/icons/data/fatArrowDown.d.ts +1 -0
- package/dist/icons/data/fatArrowDown.js +1 -0
- package/dist/icons/data/fatArrowLeft.d.ts +1 -0
- package/dist/icons/data/fatArrowLeft.js +1 -0
- package/dist/icons/data/fatArrowRight.d.ts +1 -0
- package/dist/icons/data/fatArrowRight.js +1 -0
- package/dist/icons/data/fatArrowUp.d.ts +1 -0
- package/dist/icons/data/fatArrowUp.js +1 -0
- package/dist/icons/data/fontBold.d.ts +1 -1
- package/dist/icons/data/fontBold.js +1 -1
- package/dist/icons/data/fontItalic.d.ts +1 -1
- package/dist/icons/data/fontItalic.js +1 -1
- package/dist/icons/data/fontUnderline.d.ts +1 -1
- package/dist/icons/data/fontUnderline.js +1 -1
- package/dist/icons/data/game.d.ts +1 -1
- package/dist/icons/data/game.js +1 -1
- package/dist/icons/data/google.d.ts +1 -1
- package/dist/icons/data/google.js +1 -1
- package/dist/icons/data/indent.d.ts +1 -1
- package/dist/icons/data/indent.js +1 -1
- package/dist/icons/data/index.d.ts +644 -313
- package/dist/icons/data/index.js +643 -313
- package/dist/icons/data/info.d.ts +1 -1
- package/dist/icons/data/info.js +1 -1
- package/dist/icons/data/listBullet.d.ts +1 -1
- package/dist/icons/data/listBullet.js +1 -1
- package/dist/icons/data/listNumber.d.ts +1 -1
- package/dist/icons/data/listNumber.js +1 -1
- package/dist/icons/data/lock.d.ts +1 -1
- package/dist/icons/data/lock.js +1 -1
- package/dist/icons/data/npm.d.ts +1 -1
- package/dist/icons/data/npm.js +1 -1
- package/dist/icons/data/outdent.d.ts +1 -1
- package/dist/icons/data/outdent.js +1 -1
- package/dist/icons/data/package.js +1 -1
- package/dist/icons/data/pin.d.ts +1 -0
- package/dist/icons/data/pin.js +1 -0
- package/dist/icons/data/refreshCcw.d.ts +1 -1
- package/dist/icons/data/refreshCcw.js +1 -1
- package/dist/icons/data/rgb.d.ts +1 -1
- package/dist/icons/data/rgb.js +1 -1
- package/dist/icons/data/rotateCcw.d.ts +1 -1
- package/dist/icons/data/rotateCcw.js +1 -1
- package/dist/icons/data/settings.d.ts +1 -1
- package/dist/icons/data/settings.js +1 -1
- package/dist/icons/data/shift.d.ts +1 -0
- package/dist/icons/data/shift.js +1 -0
- package/dist/icons/data/skipBack.d.ts +1 -1
- package/dist/icons/data/skipBack.js +1 -1
- package/dist/icons/data/tab.d.ts +1 -0
- package/dist/icons/data/tab.js +1 -0
- package/dist/icons/data/thumbsDown.d.ts +1 -1
- package/dist/icons/data/thumbsDown.js +1 -1
- package/dist/icons/data/toggleLeft.d.ts +1 -1
- package/dist/icons/data/toggleLeft.js +1 -1
- package/dist/icons/data/tosi.d.ts +1 -1
- package/dist/icons/data/tosi.js +1 -1
- package/dist/icons/data/tosiFavicon.d.ts +1 -1
- package/dist/icons/data/tosiFavicon.js +1 -1
- package/dist/icons/data/tosiPlatform.d.ts +1 -1
- package/dist/icons/data/tosiPlatform.js +1 -1
- package/dist/icons/data/tosiUi.d.ts +1 -1
- package/dist/icons/data/tosiUi.js +1 -1
- package/dist/icons/data/tosiXr.d.ts +1 -1
- package/dist/icons/data/tosiXr.js +1 -1
- package/dist/icons/data/xrColor.d.ts +1 -1
- package/dist/icons/data/xrColor.js +1 -1
- package/dist/icons/data/youtube.d.ts +1 -1
- package/dist/icons/data/youtube.js +1 -1
- package/dist/icons/database.d.ts +1 -0
- package/dist/icons/database.js +4 -0
- package/dist/icons/delete.d.ts +1 -0
- package/dist/icons/delete.js +4 -0
- package/dist/icons/disc.d.ts +1 -0
- package/dist/icons/disc.js +4 -0
- package/dist/icons/discord.d.ts +1 -0
- package/dist/icons/discord.js +4 -0
- package/dist/icons/divide.d.ts +1 -0
- package/dist/icons/divide.js +4 -0
- package/dist/icons/divideCircle.d.ts +1 -0
- package/dist/icons/divideCircle.js +4 -0
- package/dist/icons/divideSquare.d.ts +1 -0
- package/dist/icons/divideSquare.js +4 -0
- package/dist/icons/dollarSign.d.ts +1 -0
- package/dist/icons/dollarSign.js +4 -0
- package/dist/icons/download.d.ts +1 -0
- package/dist/icons/download.js +4 -0
- package/dist/icons/downloadCloud.d.ts +1 -0
- package/dist/icons/downloadCloud.js +4 -0
- package/dist/icons/dribbble.d.ts +1 -0
- package/dist/icons/dribbble.js +4 -0
- package/dist/icons/droplet.d.ts +1 -0
- package/dist/icons/droplet.js +4 -0
- package/dist/icons/earth.d.ts +1 -0
- package/dist/icons/earth.js +4 -0
- package/dist/icons/edit.d.ts +1 -0
- package/dist/icons/edit.js +4 -0
- package/dist/icons/edit2.d.ts +1 -0
- package/dist/icons/edit2.js +4 -0
- package/dist/icons/edit3.d.ts +1 -0
- package/dist/icons/edit3.js +4 -0
- package/dist/icons/externalLink.d.ts +1 -0
- package/dist/icons/externalLink.js +4 -0
- package/dist/icons/eye.d.ts +1 -0
- package/dist/icons/eye.js +4 -0
- package/dist/icons/eyeOff.d.ts +1 -0
- package/dist/icons/eyeOff.js +4 -0
- package/dist/icons/facebook.d.ts +1 -0
- package/dist/icons/facebook.js +4 -0
- package/dist/icons/fastForward.d.ts +1 -0
- package/dist/icons/fastForward.js +4 -0
- package/dist/icons/fatArrowDown.d.ts +2 -0
- package/dist/icons/fatArrowDown.js +5 -0
- package/dist/icons/fatArrowLeft.d.ts +2 -0
- package/dist/icons/fatArrowLeft.js +5 -0
- package/dist/icons/fatArrowRight.d.ts +2 -0
- package/dist/icons/fatArrowRight.js +5 -0
- package/dist/icons/fatArrowUp.d.ts +2 -0
- package/dist/icons/fatArrowUp.js +5 -0
- package/dist/icons/feather.d.ts +1 -0
- package/dist/icons/feather.js +4 -0
- package/dist/icons/figma.d.ts +1 -0
- package/dist/icons/figma.js +4 -0
- package/dist/icons/file.d.ts +1 -0
- package/dist/icons/file.js +4 -0
- package/dist/icons/fileMinus.d.ts +1 -0
- package/dist/icons/fileMinus.js +4 -0
- package/dist/icons/filePlus.d.ts +1 -0
- package/dist/icons/filePlus.js +4 -0
- package/dist/icons/fileText.d.ts +1 -0
- package/dist/icons/fileText.js +4 -0
- package/dist/icons/film.d.ts +1 -0
- package/dist/icons/film.js +4 -0
- package/dist/icons/filter.d.ts +1 -0
- package/dist/icons/filter.js +4 -0
- package/dist/icons/flag.d.ts +1 -0
- package/dist/icons/flag.js +4 -0
- package/dist/icons/folder.d.ts +1 -0
- package/dist/icons/folder.js +4 -0
- package/dist/icons/folderMinus.d.ts +1 -0
- package/dist/icons/folderMinus.js +4 -0
- package/dist/icons/folderPlus.d.ts +1 -0
- package/dist/icons/folderPlus.js +4 -0
- package/dist/icons/fontBold.d.ts +1 -0
- package/dist/icons/fontBold.js +4 -0
- package/dist/icons/fontItalic.d.ts +1 -0
- package/dist/icons/fontItalic.js +4 -0
- package/dist/icons/fontUnderline.d.ts +1 -0
- package/dist/icons/fontUnderline.js +4 -0
- package/dist/icons/framer.d.ts +1 -0
- package/dist/icons/framer.js +4 -0
- package/dist/icons/frown.d.ts +1 -0
- package/dist/icons/frown.js +4 -0
- package/dist/icons/game.d.ts +1 -0
- package/dist/icons/game.js +4 -0
- package/dist/icons/gift.d.ts +1 -0
- package/dist/icons/gift.js +4 -0
- package/dist/icons/gitBranch.d.ts +1 -0
- package/dist/icons/gitBranch.js +4 -0
- package/dist/icons/gitCommit.d.ts +1 -0
- package/dist/icons/gitCommit.js +4 -0
- package/dist/icons/gitMerge.d.ts +1 -0
- package/dist/icons/gitMerge.js +4 -0
- package/dist/icons/gitPullRequest.d.ts +1 -0
- package/dist/icons/gitPullRequest.js +4 -0
- package/dist/icons/github.d.ts +1 -0
- package/dist/icons/github.js +4 -0
- package/dist/icons/gitlab.d.ts +1 -0
- package/dist/icons/gitlab.js +4 -0
- package/dist/icons/globe.d.ts +1 -0
- package/dist/icons/globe.js +4 -0
- package/dist/icons/google.d.ts +1 -0
- package/dist/icons/google.js +4 -0
- package/dist/icons/grid.d.ts +1 -0
- package/dist/icons/grid.js +4 -0
- package/dist/icons/hardDrive.d.ts +1 -0
- package/dist/icons/hardDrive.js +4 -0
- package/dist/icons/hash.d.ts +1 -0
- package/dist/icons/hash.js +4 -0
- package/dist/icons/headphones.d.ts +1 -0
- package/dist/icons/headphones.js +4 -0
- package/dist/icons/heart.d.ts +1 -0
- package/dist/icons/heart.js +4 -0
- package/dist/icons/helpCircle.d.ts +1 -0
- package/dist/icons/helpCircle.js +4 -0
- package/dist/icons/hexagon.d.ts +1 -0
- package/dist/icons/hexagon.js +4 -0
- package/dist/icons/home.d.ts +1 -0
- package/dist/icons/home.js +4 -0
- package/dist/icons/image.d.ts +1 -0
- package/dist/icons/image.js +4 -0
- package/dist/icons/inbox.d.ts +1 -0
- package/dist/icons/inbox.js +4 -0
- package/dist/icons/indent.d.ts +1 -0
- package/dist/icons/indent.js +4 -0
- package/dist/icons/info.d.ts +1 -0
- package/dist/icons/info.js +4 -0
- package/dist/icons/instagram.d.ts +1 -0
- package/dist/icons/instagram.js +4 -0
- package/dist/icons/italic.d.ts +1 -0
- package/dist/icons/italic.js +4 -0
- package/dist/icons/key.d.ts +1 -0
- package/dist/icons/key.js +4 -0
- package/dist/icons/layers.d.ts +1 -0
- package/dist/icons/layers.js +4 -0
- package/dist/icons/layout.d.ts +1 -0
- package/dist/icons/layout.js +4 -0
- package/dist/icons/lifeBuoy.d.ts +1 -0
- package/dist/icons/lifeBuoy.js +4 -0
- package/dist/icons/link.d.ts +1 -0
- package/dist/icons/link.js +4 -0
- package/dist/icons/link2.d.ts +1 -0
- package/dist/icons/link2.js +4 -0
- package/dist/icons/linkedin.d.ts +1 -0
- package/dist/icons/linkedin.js +4 -0
- package/dist/icons/list.d.ts +1 -0
- package/dist/icons/list.js +4 -0
- package/dist/icons/listBullet.d.ts +1 -0
- package/dist/icons/listBullet.js +4 -0
- package/dist/icons/listNumber.d.ts +1 -0
- package/dist/icons/listNumber.js +4 -0
- package/dist/icons/loader.d.ts +1 -0
- package/dist/icons/loader.js +4 -0
- package/dist/icons/lock.d.ts +1 -0
- package/dist/icons/lock.js +4 -0
- package/dist/icons/logIn.d.ts +1 -0
- package/dist/icons/logIn.js +4 -0
- package/dist/icons/logOut.d.ts +1 -0
- package/dist/icons/logOut.js +4 -0
- package/dist/icons/mail.d.ts +1 -0
- package/dist/icons/mail.js +4 -0
- package/dist/icons/map.d.ts +1 -0
- package/dist/icons/map.js +4 -0
- package/dist/icons/mapPin.d.ts +1 -0
- package/dist/icons/mapPin.js +4 -0
- package/dist/icons/maximize.d.ts +1 -0
- package/dist/icons/maximize.js +4 -0
- package/dist/icons/maximize2.d.ts +1 -0
- package/dist/icons/maximize2.js +4 -0
- package/dist/icons/meh.d.ts +1 -0
- package/dist/icons/meh.js +4 -0
- package/dist/icons/menu.d.ts +1 -0
- package/dist/icons/menu.js +4 -0
- package/dist/icons/messageCircle.d.ts +1 -0
- package/dist/icons/messageCircle.js +4 -0
- package/dist/icons/messageSquare.d.ts +1 -0
- package/dist/icons/messageSquare.js +4 -0
- package/dist/icons/mic.d.ts +1 -0
- package/dist/icons/mic.js +4 -0
- package/dist/icons/micOff.d.ts +1 -0
- package/dist/icons/micOff.js +4 -0
- package/dist/icons/minimize.d.ts +1 -0
- package/dist/icons/minimize.js +4 -0
- package/dist/icons/minimize2.d.ts +1 -0
- package/dist/icons/minimize2.js +4 -0
- package/dist/icons/minus.d.ts +1 -0
- package/dist/icons/minus.js +4 -0
- package/dist/icons/minusCircle.d.ts +1 -0
- package/dist/icons/minusCircle.js +4 -0
- package/dist/icons/minusSquare.d.ts +1 -0
- package/dist/icons/minusSquare.js +4 -0
- package/dist/icons/monitor.d.ts +1 -0
- package/dist/icons/monitor.js +4 -0
- package/dist/icons/moon.d.ts +1 -0
- package/dist/icons/moon.js +4 -0
- package/dist/icons/moreHorizontal.d.ts +1 -0
- package/dist/icons/moreHorizontal.js +4 -0
- package/dist/icons/moreVertical.d.ts +1 -0
- package/dist/icons/moreVertical.js +4 -0
- package/dist/icons/mousePointer.d.ts +1 -0
- package/dist/icons/mousePointer.js +4 -0
- package/dist/icons/move.d.ts +1 -0
- package/dist/icons/move.js +4 -0
- package/dist/icons/music.d.ts +1 -0
- package/dist/icons/music.js +4 -0
- package/dist/icons/navigation.d.ts +1 -0
- package/dist/icons/navigation.js +4 -0
- package/dist/icons/navigation2.d.ts +1 -0
- package/dist/icons/navigation2.js +4 -0
- package/dist/icons/npm.d.ts +1 -0
- package/dist/icons/npm.js +4 -0
- package/dist/icons/octagon.d.ts +1 -0
- package/dist/icons/octagon.js +4 -0
- package/dist/icons/outdent.d.ts +1 -0
- package/dist/icons/outdent.js +4 -0
- package/dist/icons/package.d.ts +1 -0
- package/dist/icons/package.js +4 -0
- package/dist/icons/paperclip.d.ts +1 -0
- package/dist/icons/paperclip.js +4 -0
- package/dist/icons/pause.d.ts +1 -0
- package/dist/icons/pause.js +4 -0
- package/dist/icons/pauseCircle.d.ts +1 -0
- package/dist/icons/pauseCircle.js +4 -0
- package/dist/icons/penTool.d.ts +1 -0
- package/dist/icons/penTool.js +4 -0
- package/dist/icons/percent.d.ts +1 -0
- package/dist/icons/percent.js +4 -0
- package/dist/icons/phone.d.ts +1 -0
- package/dist/icons/phone.js +4 -0
- package/dist/icons/phoneCall.d.ts +1 -0
- package/dist/icons/phoneCall.js +4 -0
- package/dist/icons/phoneForwarded.d.ts +1 -0
- package/dist/icons/phoneForwarded.js +4 -0
- package/dist/icons/phoneIncoming.d.ts +1 -0
- package/dist/icons/phoneIncoming.js +4 -0
- package/dist/icons/phoneMissed.d.ts +1 -0
- package/dist/icons/phoneMissed.js +4 -0
- package/dist/icons/phoneOff.d.ts +1 -0
- package/dist/icons/phoneOff.js +4 -0
- package/dist/icons/phoneOutgoing.d.ts +1 -0
- package/dist/icons/phoneOutgoing.js +4 -0
- package/dist/icons/pieChart.d.ts +1 -0
- package/dist/icons/pieChart.js +4 -0
- package/dist/icons/pin.d.ts +1 -0
- package/dist/icons/pin.js +4 -0
- package/dist/icons/play.d.ts +1 -0
- package/dist/icons/play.js +4 -0
- package/dist/icons/playCircle.d.ts +1 -0
- package/dist/icons/playCircle.js +4 -0
- package/dist/icons/plus.d.ts +1 -0
- package/dist/icons/plus.js +4 -0
- package/dist/icons/plusCircle.d.ts +1 -0
- package/dist/icons/plusCircle.js +4 -0
- package/dist/icons/plusSquare.d.ts +1 -0
- package/dist/icons/plusSquare.js +4 -0
- package/dist/icons/pocket.d.ts +1 -0
- package/dist/icons/pocket.js +4 -0
- package/dist/icons/power.d.ts +1 -0
- package/dist/icons/power.js +4 -0
- package/dist/icons/printer.d.ts +1 -0
- package/dist/icons/printer.js +4 -0
- package/dist/icons/radio.d.ts +1 -0
- package/dist/icons/radio.js +4 -0
- package/dist/icons/refreshCcw.d.ts +2 -0
- package/dist/icons/refreshCcw.js +5 -0
- package/dist/icons/refreshCw.d.ts +1 -0
- package/dist/icons/refreshCw.js +4 -0
- package/dist/icons/repeat.d.ts +1 -0
- package/dist/icons/repeat.js +4 -0
- package/dist/icons/resize.d.ts +1 -0
- package/dist/icons/resize.js +4 -0
- package/dist/icons/rewind.d.ts +1 -0
- package/dist/icons/rewind.js +4 -0
- package/dist/icons/rgb.d.ts +1 -0
- package/dist/icons/rgb.js +4 -0
- package/dist/icons/rotateCcw.d.ts +2 -0
- package/dist/icons/rotateCcw.js +5 -0
- package/dist/icons/rotateCw.d.ts +1 -0
- package/dist/icons/rotateCw.js +4 -0
- package/dist/icons/rss.d.ts +1 -0
- package/dist/icons/rss.js +4 -0
- package/dist/icons/save.d.ts +1 -0
- package/dist/icons/save.js +4 -0
- package/dist/icons/scissors.d.ts +1 -0
- package/dist/icons/scissors.js +4 -0
- package/dist/icons/search.d.ts +1 -0
- package/dist/icons/search.js +4 -0
- package/dist/icons/send.d.ts +1 -0
- package/dist/icons/send.js +4 -0
- package/dist/icons/server.d.ts +1 -0
- package/dist/icons/server.js +4 -0
- package/dist/icons/settings.d.ts +1 -0
- package/dist/icons/settings.js +4 -0
- package/dist/icons/share.d.ts +1 -0
- package/dist/icons/share.js +4 -0
- package/dist/icons/share2.d.ts +1 -0
- package/dist/icons/share2.js +4 -0
- package/dist/icons/shield.d.ts +1 -0
- package/dist/icons/shield.js +4 -0
- package/dist/icons/shieldOff.d.ts +1 -0
- package/dist/icons/shieldOff.js +4 -0
- package/dist/icons/shift.d.ts +1 -0
- package/dist/icons/shift.js +4 -0
- package/dist/icons/shoppingBag.d.ts +1 -0
- package/dist/icons/shoppingBag.js +4 -0
- package/dist/icons/shoppingCart.d.ts +1 -0
- package/dist/icons/shoppingCart.js +4 -0
- package/dist/icons/shuffle.d.ts +1 -0
- package/dist/icons/shuffle.js +4 -0
- package/dist/icons/sidebar.d.ts +1 -0
- package/dist/icons/sidebar.js +4 -0
- package/dist/icons/skipBack.d.ts +2 -0
- package/dist/icons/skipBack.js +5 -0
- package/dist/icons/skipForward.d.ts +1 -0
- package/dist/icons/skipForward.js +4 -0
- package/dist/icons/slack.d.ts +1 -0
- package/dist/icons/slack.js +4 -0
- package/dist/icons/slash.d.ts +1 -0
- package/dist/icons/slash.js +4 -0
- package/dist/icons/sliders.d.ts +1 -0
- package/dist/icons/sliders.js +4 -0
- package/dist/icons/smartphone.d.ts +1 -0
- package/dist/icons/smartphone.js +4 -0
- package/dist/icons/smile.d.ts +1 -0
- package/dist/icons/smile.js +4 -0
- package/dist/icons/sortAscending.d.ts +1 -0
- package/dist/icons/sortAscending.js +4 -0
- package/dist/icons/sortDescending.d.ts +1 -0
- package/dist/icons/sortDescending.js +4 -0
- package/dist/icons/speaker.d.ts +1 -0
- package/dist/icons/speaker.js +4 -0
- package/dist/icons/square.d.ts +1 -0
- package/dist/icons/square.js +4 -0
- package/dist/icons/star.d.ts +1 -0
- package/dist/icons/star.js +4 -0
- package/dist/icons/stopCircle.d.ts +1 -0
- package/dist/icons/stopCircle.js +4 -0
- package/dist/icons/sun.d.ts +1 -0
- package/dist/icons/sun.js +4 -0
- package/dist/icons/sunrise.d.ts +1 -0
- package/dist/icons/sunrise.js +4 -0
- package/dist/icons/sunset.d.ts +1 -0
- package/dist/icons/sunset.js +4 -0
- package/dist/icons/tab.d.ts +1 -0
- package/dist/icons/tab.js +4 -0
- package/dist/icons/table.d.ts +1 -0
- package/dist/icons/table.js +4 -0
- package/dist/icons/tablet.d.ts +1 -0
- package/dist/icons/tablet.js +4 -0
- package/dist/icons/tag.d.ts +1 -0
- package/dist/icons/tag.js +4 -0
- package/dist/icons/target.d.ts +1 -0
- package/dist/icons/target.js +4 -0
- package/dist/icons/terminal.d.ts +1 -0
- package/dist/icons/terminal.js +4 -0
- package/dist/icons/thermometer.d.ts +1 -0
- package/dist/icons/thermometer.js +4 -0
- package/dist/icons/thumbsDown.d.ts +2 -0
- package/dist/icons/thumbsDown.js +5 -0
- package/dist/icons/thumbsUp.d.ts +1 -0
- package/dist/icons/thumbsUp.js +4 -0
- package/dist/icons/toggleLeft.d.ts +2 -0
- package/dist/icons/toggleLeft.js +5 -0
- package/dist/icons/toggleRight.d.ts +1 -0
- package/dist/icons/toggleRight.js +4 -0
- package/dist/icons/tool.d.ts +1 -0
- package/dist/icons/tool.js +4 -0
- package/dist/icons/tosi.d.ts +1 -0
- package/dist/icons/tosi.js +4 -0
- package/dist/icons/tosiFavicon.d.ts +1 -0
- package/dist/icons/tosiFavicon.js +4 -0
- package/dist/icons/tosiPlatform.d.ts +1 -0
- package/dist/icons/tosiPlatform.js +4 -0
- package/dist/icons/tosiUi.d.ts +1 -0
- package/dist/icons/tosiUi.js +4 -0
- package/dist/icons/tosiXr.d.ts +1 -0
- package/dist/icons/tosiXr.js +4 -0
- package/dist/icons/trash.d.ts +1 -0
- package/dist/icons/trash.js +4 -0
- package/dist/icons/trash2.d.ts +1 -0
- package/dist/icons/trash2.js +4 -0
- package/dist/icons/trello.d.ts +1 -0
- package/dist/icons/trello.js +4 -0
- package/dist/icons/trendingDown.d.ts +1 -0
- package/dist/icons/trendingDown.js +4 -0
- package/dist/icons/trendingUp.d.ts +1 -0
- package/dist/icons/trendingUp.js +4 -0
- package/dist/icons/triangle.d.ts +1 -0
- package/dist/icons/triangle.js +4 -0
- package/dist/icons/truck.d.ts +1 -0
- package/dist/icons/truck.js +4 -0
- package/dist/icons/tv.d.ts +1 -0
- package/dist/icons/tv.js +4 -0
- package/dist/icons/twitch.d.ts +1 -0
- package/dist/icons/twitch.js +4 -0
- package/dist/icons/twitter.d.ts +1 -0
- package/dist/icons/twitter.js +4 -0
- package/dist/icons/type.d.ts +1 -0
- package/dist/icons/type.js +4 -0
- package/dist/icons/umbrella.d.ts +1 -0
- package/dist/icons/umbrella.js +4 -0
- package/dist/icons/underline.d.ts +1 -0
- package/dist/icons/underline.js +4 -0
- package/dist/icons/unlock.d.ts +1 -0
- package/dist/icons/unlock.js +4 -0
- package/dist/icons/upload.d.ts +1 -0
- package/dist/icons/upload.js +4 -0
- package/dist/icons/uploadCloud.d.ts +1 -0
- package/dist/icons/uploadCloud.js +4 -0
- package/dist/icons/user.d.ts +1 -0
- package/dist/icons/user.js +4 -0
- package/dist/icons/userCheck.d.ts +1 -0
- package/dist/icons/userCheck.js +4 -0
- package/dist/icons/userMinus.d.ts +1 -0
- package/dist/icons/userMinus.js +4 -0
- package/dist/icons/userPlus.d.ts +1 -0
- package/dist/icons/userPlus.js +4 -0
- package/dist/icons/userX.d.ts +1 -0
- package/dist/icons/userX.js +4 -0
- package/dist/icons/users.d.ts +1 -0
- package/dist/icons/users.js +4 -0
- package/dist/icons/video.d.ts +1 -0
- package/dist/icons/video.js +4 -0
- package/dist/icons/videoOff.d.ts +1 -0
- package/dist/icons/videoOff.js +4 -0
- package/dist/icons/voicemail.d.ts +1 -0
- package/dist/icons/voicemail.js +4 -0
- package/dist/icons/volume.d.ts +1 -0
- package/dist/icons/volume.js +4 -0
- package/dist/icons/volume1.d.ts +1 -0
- package/dist/icons/volume1.js +4 -0
- package/dist/icons/volume2.d.ts +1 -0
- package/dist/icons/volume2.js +4 -0
- package/dist/icons/volumeX.d.ts +1 -0
- package/dist/icons/volumeX.js +4 -0
- package/dist/icons/watch.d.ts +1 -0
- package/dist/icons/watch.js +4 -0
- package/dist/icons/wifi.d.ts +1 -0
- package/dist/icons/wifi.js +4 -0
- package/dist/icons/wifiOff.d.ts +1 -0
- package/dist/icons/wifiOff.js +4 -0
- package/dist/icons/wind.d.ts +1 -0
- package/dist/icons/wind.js +4 -0
- package/dist/icons/x.d.ts +1 -0
- package/dist/icons/x.js +4 -0
- package/dist/icons/xCircle.d.ts +1 -0
- package/dist/icons/xCircle.js +4 -0
- package/dist/icons/xOctagon.d.ts +1 -0
- package/dist/icons/xOctagon.js +4 -0
- package/dist/icons/xSquare.d.ts +1 -0
- package/dist/icons/xSquare.js +4 -0
- package/dist/icons/xrColor.d.ts +1 -0
- package/dist/icons/xrColor.js +4 -0
- package/dist/icons/youtube.d.ts +1 -0
- package/dist/icons/youtube.js +4 -0
- package/dist/icons/zap.d.ts +1 -0
- package/dist/icons/zap.js +4 -0
- package/dist/icons/zapOff.d.ts +1 -0
- package/dist/icons/zapOff.js +4 -0
- package/dist/icons/zoomIn.d.ts +1 -0
- package/dist/icons/zoomIn.js +4 -0
- package/dist/icons/zoomOut.d.ts +1 -0
- package/dist/icons/zoomOut.js +4 -0
- package/dist/icons.d.ts +1 -45
- package/dist/icons.js +33 -483
- package/dist/iife.js +150 -150
- package/dist/iife.js.map +392 -32
- package/dist/menu.d.ts +1 -1
- package/dist/menu.js +3 -2
- package/dist/month.js +6 -4
- package/dist/notifications.js +5 -3
- package/dist/palette.js +7 -4
- package/dist/pocket-bar.d.ts +3 -1
- package/dist/pocket-bar.js +4 -1
- package/dist/rating.d.ts +1 -0
- package/dist/rating.js +3 -1
- package/dist/rich-text.js +20 -11
- package/dist/search-field.js +2 -2
- package/dist/segmented.js +1 -1
- package/dist/select.js +4 -3
- package/dist/sizer.js +2 -2
- package/dist/tab-selector.js +2 -2
- package/dist/tag-list.js +2 -2
- package/dist/tag.js +2 -2
- package/dist/value-renderer.d.ts +2 -0
- package/dist/value-renderer.js +4 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/llms.txt +32 -32
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,97 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.17.2
|
|
4
|
+
|
|
5
|
+
> Components carry only the icons they draw, and `<tosi-affix>` centres a caption on its
|
|
6
|
+
> content. Nothing to change on upgrade. An app that imports components one at a time ships
|
|
7
|
+
> about 20 kB gzip less per component; **`dist/iife.js` grows 1.8 kB** (508.0 kB gzip),
|
|
8
|
+
> because the whole set is now assembled from per-icon modules.
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- `tosijs-ui/icons/<name>` exports one icon as a function, the same one `icons.name` gives:
|
|
13
|
+
`import { chevronDown } from 'tosijs-ui/icons/chevronDown'`. Each module registers its icon
|
|
14
|
+
once however many modules import it, and imports any icon it is drawn from (`chevronDown`
|
|
15
|
+
brings `chevronRight`), so a bundler keeps only the icons something imports. `delete` and
|
|
16
|
+
`package` export `deleteIcon` and `packageIcon`.
|
|
17
|
+
- `tosijs-make-icons` gains `--modules <dir>` (one string module per icon, plus an index whose
|
|
18
|
+
default is the whole set), `--creators <dir>` (one creator module per icon) and
|
|
19
|
+
`--core <specifier>` (where creators import `iconCreator` from; default
|
|
20
|
+
`tosijs-ui/icon-core`).
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Components import only the icons they draw, not all 320. Measured gzip, each imported alone:
|
|
25
|
+
`tosiTag` 4.4 kB, `tosiCarousel` 6.2 kB (was 23.8), menu 13.9 kB (was 34.2), select 13.7
|
|
26
|
+
(34.0), tabs 15.1 (35.4), month 15.9 (36.1), table 29.1 (48.9), rating 5.0 (25.5). Importing
|
|
27
|
+
`tosijs-ui` itself still brings the whole set, so nothing changes for an app that does.
|
|
28
|
+
- An icon a caller names (a menu item's `icon: 'folder'`, a select option's, a rating's) still
|
|
29
|
+
draws. On a page that has not loaded the whole set it appears a moment late, like a web font,
|
|
30
|
+
while the set loads. Import the icon's module, pass the icon itself where an element is
|
|
31
|
+
accepted (`icon: folder()`), or import `tosijs-ui/icons` up front, to draw it at once.
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
|
|
35
|
+
- `<tosi-affix>`: a centred caption is centred on its content, not on the content's cell. A
|
|
36
|
+
fixture wider than fixed-width content (the doc page's own "a caption, centred below")
|
|
37
|
+
widened the content's column, and the content sat at its start; the same happened in any
|
|
38
|
+
affix wider than its content, where an `ne` or `e` fixture also stood off the content's edge.
|
|
39
|
+
The content now takes the fixture's alignment with auto margins, which leave content that
|
|
40
|
+
fills its cell untouched.
|
|
41
|
+
- `tosijs-ui/icons/data/<name>` shipped stale icons: the per-icon modules were written once in
|
|
42
|
+
1.4.1 and never regenerated, so 54 of 313 differed from the icons actually drawn (including
|
|
43
|
+
1.17.0's open-path fix) and six (`fatArrowDown/Left/Right/Up`, `pin`, `shift`) had no module.
|
|
44
|
+
The build now writes them from the same data, and a test fails if they drift.
|
|
45
|
+
|
|
46
|
+
## 1.17.1
|
|
47
|
+
|
|
48
|
+
> Fixes from the 1.17.0 review, plus elastic table columns that can be dragged narrower. Nothing
|
|
49
|
+
> to change on upgrade. **`dist/iife.js` is unchanged in size** (506.2 kB gzip).
|
|
50
|
+
|
|
51
|
+
### Security
|
|
52
|
+
|
|
53
|
+
Both affect sites that turn on the accessibility mode in **1.17.0 and its betas**; no advisory is
|
|
54
|
+
filed, because each needs the build running and the reach is local. Upgrade if you build with
|
|
55
|
+
the accessibility mode on a shared machine or network.
|
|
56
|
+
|
|
57
|
+
- The accessibility audit's temporary server bound every interface, and its root check was a bare
|
|
58
|
+
prefix, so for the length of the audit a request like `/..%2fdocs-private/key.txt` was served a
|
|
59
|
+
sibling directory whose name starts with the output directory's. It now listens on localhost
|
|
60
|
+
only and contains paths with root + separator.
|
|
61
|
+
- The audit's payload and the altText corpus, which can hold hidden pages, were written to
|
|
62
|
+
predictable names in the shared temp directory and never removed. They now go in private
|
|
63
|
+
temporary directories removed when the build ends.
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
|
|
67
|
+
- With a `dist-sizes.json` in the project root (`bun run sizes` writes one in this repo), the site
|
|
68
|
+
build prints the bundle's gzip size change since that baseline and the version it was recorded
|
|
69
|
+
at.
|
|
70
|
+
|
|
71
|
+
### Fixed
|
|
72
|
+
|
|
73
|
+
- `<tosi-table>`: an elastic column can now be dragged narrower than the width it is drawn at.
|
|
74
|
+
The last elastic column's edge is the table's edge, so dragging it moved nothing and quietly
|
|
75
|
+
shrank its `width` to the minimum, and a middle one fought the columns beside it. A drag now
|
|
76
|
+
fixes the dragged column, and the elastic columns to its left, at the width they are drawn at
|
|
77
|
+
(it sets `width` and `elastic: false`), so the edge follows the pointer exactly. Elastic
|
|
78
|
+
columns to its right absorb the difference; with none, the space it gives up is left beside
|
|
79
|
+
the columns, painted with `--tosi-table-fill`.
|
|
80
|
+
- Under path or query routing, clicking a `/slug/#heading` link in a doc puts the hash in the URL
|
|
81
|
+
and scrolls to the heading. It pushed the page's URL without the hash and landed at the top.
|
|
82
|
+
- The accessibility mode's axe audit and DAISY Ace run with a time limit (the audit's worst case
|
|
83
|
+
plus a minute; Ace ten minutes). One that hangs is stopped and reported as not having run,
|
|
84
|
+
instead of hanging the build, and a build stopped with Ctrl-C or SIGTERM stops them too,
|
|
85
|
+
instead of leaving them and their browser running.
|
|
86
|
+
- The ePub accessibility check accepted any program named `ace` on PATH as DAISY Ace, so an
|
|
87
|
+
unrelated tool could decide whether a book claims WCAG conformance. It now accepts only an
|
|
88
|
+
`ace` inside a `@daisy/ace` package; another is skipped and named in the reason the check did
|
|
89
|
+
not run, and a real Ace later on PATH is still found.
|
|
90
|
+
- `llms.txt` link titles no longer carry the project suffix ("Menus — tosijs-ui" on every line).
|
|
91
|
+
- When a delegated build is refused because the dev server has a different site config, the
|
|
92
|
+
message now says that a refusal on every build means the config computes a value per process
|
|
93
|
+
(`Date.now()`, a random id, an environment variable one process lacks), and how to fix that.
|
|
94
|
+
|
|
3
95
|
## 1.17.0
|
|
4
96
|
|
|
5
97
|
> Accessibility and SEO for doc sites, and the components themselves passing WCAG 2.2 AA. A doc
|
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ The `tosijs-ui` iife build bundles `tosijs`, `tosijs-ui`, `marked` and — as of
|
|
|
53
53
|
**CodeMirror** into a single minified javascript source file. You can access `xinjs` and
|
|
54
54
|
`xinjsui` as globals which contain all the things exported by `tosijs` and `tosijs-ui`.
|
|
55
55
|
|
|
56
|
-
> **Size (1.
|
|
56
|
+
> **Size (1.17.0):** ~506KB gzip, up from ~120KB in 1.6. Two things dominate it, and
|
|
57
57
|
> `bun build --format iife` cannot
|
|
58
58
|
> code-split, so `<tosi-code>`'s lazy CodeMirror import is flattened into this bundle
|
|
59
59
|
> whether or not the page uses an editor. **If you don't need `<tosi-code>`, use the ESM
|
package/bin/make-icon-data.js
CHANGED
|
@@ -16,6 +16,15 @@ Ingests SVG files from icon directories and generates an icon-data module
|
|
|
16
16
|
- `--input <dir1,dir2,...>` — directories to scan (default: `./icons`)
|
|
17
17
|
- `--output <path>` — output file (default: `./src/icon-data.ts`)
|
|
18
18
|
- `--optimize <true|false>` — round coordinates based on viewBox size (default: true)
|
|
19
|
+
- `--modules <dir>` — also write one module per icon into `dir` (`export const name = '…'`),
|
|
20
|
+
plus an `index`, so code can import just the icons it draws. tosijs-ui's own build writes
|
|
21
|
+
`src/icons/data/` this way; files there that are no longer icons are removed.
|
|
22
|
+
- `--creators <dir>` — with `--modules`, also write one module per icon that exports it as a
|
|
23
|
+
function, `export const chevronDown = iconCreator(…)`, registering it once when it loads.
|
|
24
|
+
A redirect's module imports the icon it redirects to. tosijs-ui's own build writes
|
|
25
|
+
`src/icons/` this way, published as `tosijs-ui/icons/<name>`.
|
|
26
|
+
- `--core <specifier>` — where `--creators` modules import `iconCreator` from (default
|
|
27
|
+
`tosijs-ui/icon-core`)
|
|
19
28
|
|
|
20
29
|
### Examples
|
|
21
30
|
|
|
@@ -99,6 +108,9 @@ const defaultOptions = {
|
|
|
99
108
|
input: './icons',
|
|
100
109
|
output: './src/icon-data.ts',
|
|
101
110
|
optimize: true, // Optimize coordinate precision based on viewBox size
|
|
111
|
+
modules: '', // A directory to also write one module per icon into
|
|
112
|
+
creators: '', // A directory to also write one creator module per icon into
|
|
113
|
+
core: 'tosijs-ui/icon-core', // Where creator modules import iconCreator from
|
|
102
114
|
}
|
|
103
115
|
const flags = Object.keys(defaultOptions)
|
|
104
116
|
|
|
@@ -128,7 +140,14 @@ for (const flag of flags) {
|
|
|
128
140
|
}
|
|
129
141
|
|
|
130
142
|
// Destructure options for easier use
|
|
131
|
-
const {
|
|
143
|
+
const {
|
|
144
|
+
input: iconDirectories,
|
|
145
|
+
output: outputFilePath,
|
|
146
|
+
optimize,
|
|
147
|
+
modules: modulesDir,
|
|
148
|
+
creators: creatorsDir,
|
|
149
|
+
core: coreSpecifier,
|
|
150
|
+
} = options
|
|
132
151
|
const isTypescript = outputFilePath.endsWith('.ts')
|
|
133
152
|
const shouldOptimize = optimize === true || optimize === 'true'
|
|
134
153
|
|
|
@@ -484,4 +503,151 @@ try {
|
|
|
484
503
|
|
|
485
504
|
fs.writeFileSync(outputFilePath, source, 'utf8')
|
|
486
505
|
|
|
506
|
+
/*
|
|
507
|
+
One module per icon, so a component can import the handful it draws instead of all of them
|
|
508
|
+
(tosijs-ui#3885). They are written from the same data in the same run, so they cannot drift
|
|
509
|
+
from the combined module: the 1.4.1 copies were written once, by hand, and by 1.17 a sixth of
|
|
510
|
+
them were wrong. A redirect's module holds the redirect, not its target; whoever registers
|
|
511
|
+
it registers the target too.
|
|
512
|
+
|
|
513
|
+
Files in the directory that are not icons any more are removed, but only ones this generator
|
|
514
|
+
writes (a module that starts `export const` or an index of `export {` lines), so a stray file
|
|
515
|
+
of someone else's survives.
|
|
516
|
+
*/
|
|
517
|
+
if (typeof modulesDir === 'string' && modulesDir !== '') {
|
|
518
|
+
const ext = isTypescript ? '.ts' : '.js'
|
|
519
|
+
fs.mkdirSync(modulesDir, { recursive: true })
|
|
520
|
+
/*
|
|
521
|
+
The export is the icon's name, unless that is not a name a module can bind: `delete` and (in
|
|
522
|
+
a module) `package` look like identifiers and are reserved, so they export `deleteIcon` and
|
|
523
|
+
`packageIcon` from `delete` and `package`, as the 1.4.1 modules did. Ask the parser, not a
|
|
524
|
+
pattern.
|
|
525
|
+
*/
|
|
526
|
+
const bindable = (name) => {
|
|
527
|
+
try {
|
|
528
|
+
new Function(`"use strict"; let ${name}`)
|
|
529
|
+
return true
|
|
530
|
+
} catch {
|
|
531
|
+
return false
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
const valid = (name) => /^[A-Za-z_$][\w$]*$/.test(name)
|
|
535
|
+
const names = Object.keys(iconData).filter(valid)
|
|
536
|
+
const exportName = (name) => (bindable(name) ? name : name + 'Icon')
|
|
537
|
+
const skipped = Object.keys(iconData).filter((name) => !valid(name))
|
|
538
|
+
if (skipped.length > 0) {
|
|
539
|
+
console.warn(
|
|
540
|
+
`make-icon-data: no module for ${skipped.join(', ')} (not an identifier)`
|
|
541
|
+
)
|
|
542
|
+
}
|
|
543
|
+
const wanted = new Set([...names.map((n) => n + ext), 'index' + ext])
|
|
544
|
+
for (const file of fs.readdirSync(modulesDir)) {
|
|
545
|
+
if (wanted.has(file) || !file.endsWith(ext)) continue
|
|
546
|
+
const full = path.join(modulesDir, file)
|
|
547
|
+
const head = fs.readFileSync(full, 'utf8').slice(0, 13)
|
|
548
|
+
if (head.startsWith('export const') || head.startsWith('export {')) {
|
|
549
|
+
fs.rmSync(full)
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
for (const name of names) {
|
|
553
|
+
const file = path.join(modulesDir, name + ext)
|
|
554
|
+
const text = `export const ${exportName(name)} = ${JSON.stringify(
|
|
555
|
+
iconData[name]
|
|
556
|
+
)}\n`
|
|
557
|
+
if (!fs.existsSync(file) || fs.readFileSync(file, 'utf8') !== text) {
|
|
558
|
+
fs.writeFileSync(file, text, 'utf8')
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
/*
|
|
562
|
+
The index re-exports every icon by name and, as its default, the whole set keyed by icon
|
|
563
|
+
name (so `delete`, not `deleteIcon`). Code that needs every icon imports the default, which
|
|
564
|
+
is built from the same modules a component imports one at a time: one copy of each string in
|
|
565
|
+
a bundle that has both, not two.
|
|
566
|
+
*/
|
|
567
|
+
const key = (n) => (/^[A-Za-z_$][\w$]*$/.test(n) ? n : quote(n))
|
|
568
|
+
fs.writeFileSync(
|
|
569
|
+
path.join(modulesDir, 'index' + ext),
|
|
570
|
+
names
|
|
571
|
+
.map((n) => `import { ${exportName(n)} } from './${n}.js'\n`)
|
|
572
|
+
.join('') +
|
|
573
|
+
`\nexport {\n${names.map((n) => ` ${exportName(n)},\n`).join('')}}\n` +
|
|
574
|
+
`\nexport default {\n${names
|
|
575
|
+
.map((n) =>
|
|
576
|
+
exportName(n) === n ? ` ${n},\n` : ` ${key(n)}: ${exportName(n)},\n`
|
|
577
|
+
)
|
|
578
|
+
.join('')}}\n`,
|
|
579
|
+
'utf8'
|
|
580
|
+
)
|
|
581
|
+
if (typeof creatorsDir === 'string' && creatorsDir !== '') {
|
|
582
|
+
writeCreators(creatorsDir, names, exportName, ext)
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
|
|
487
586
|
console.log(`Successfully generated icon data to: ${outputFilePath}`)
|
|
587
|
+
|
|
588
|
+
/*
|
|
589
|
+
A redirect draws another icon (`chevronDown` is `chevronRight90r`), so its creator module
|
|
590
|
+
imports that icon's, and registering one registers what it needs. The icon a redirect draws
|
|
591
|
+
is the longest icon name its value starts with, per `$`-stacked layer; a value that names no
|
|
592
|
+
icon (a composition rule's) imports nothing and resolves the way any unregistered name does.
|
|
593
|
+
*/
|
|
594
|
+
function redirectTargets(name) {
|
|
595
|
+
const spec = iconData[name]
|
|
596
|
+
if (spec.startsWith('<')) return []
|
|
597
|
+
const targets = new Set()
|
|
598
|
+
for (const layer of spec.split('$')) {
|
|
599
|
+
let best = ''
|
|
600
|
+
for (const other of Object.keys(iconData)) {
|
|
601
|
+
if (
|
|
602
|
+
other !== name &&
|
|
603
|
+
layer.startsWith(other) &&
|
|
604
|
+
other.length > best.length
|
|
605
|
+
)
|
|
606
|
+
best = other
|
|
607
|
+
}
|
|
608
|
+
if (best) targets.add(best)
|
|
609
|
+
}
|
|
610
|
+
return [...targets]
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
function writeCreators(dir, names, exportName, ext) {
|
|
614
|
+
if (typeof modulesDir !== 'string' || modulesDir === '') {
|
|
615
|
+
throw new Error('make-icon-data: --creators needs --modules')
|
|
616
|
+
}
|
|
617
|
+
fs.mkdirSync(dir, { recursive: true })
|
|
618
|
+
let dataPath = path.relative(dir, modulesDir).split(path.sep).join('/')
|
|
619
|
+
if (!dataPath.startsWith('.')) dataPath = './' + dataPath
|
|
620
|
+
const named = new Set(names)
|
|
621
|
+
for (const name of names) {
|
|
622
|
+
const exported = exportName(name)
|
|
623
|
+
const lines = [
|
|
624
|
+
'// Generated by make-icon-data. One icon, registered when this module loads.',
|
|
625
|
+
`import { iconCreator } from ${quote(coreSpecifier)}`,
|
|
626
|
+
...redirectTargets(name)
|
|
627
|
+
.filter((t) => named.has(t))
|
|
628
|
+
.map((t) => `import './${t}.js'`),
|
|
629
|
+
`import { ${exported} as spec } from '${dataPath}/${name}.js'`,
|
|
630
|
+
'',
|
|
631
|
+
`export const ${exported} = iconCreator(${quote(name)}, spec)`,
|
|
632
|
+
'',
|
|
633
|
+
]
|
|
634
|
+
const file = path.join(dir, name + ext)
|
|
635
|
+
const text = lines.join('\n')
|
|
636
|
+
if (!fs.existsSync(file) || fs.readFileSync(file, 'utf8') !== text) {
|
|
637
|
+
fs.writeFileSync(file, text, 'utf8')
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
const wanted = new Set(names.map((n) => n + ext))
|
|
641
|
+
for (const file of fs.readdirSync(dir)) {
|
|
642
|
+
if (wanted.has(file) || !file.endsWith(ext)) continue
|
|
643
|
+
const full = path.join(dir, file)
|
|
644
|
+
if (!fs.statSync(full).isFile()) continue
|
|
645
|
+
if (
|
|
646
|
+
fs
|
|
647
|
+
.readFileSync(full, 'utf8')
|
|
648
|
+
.startsWith('// Generated by make-icon-data.')
|
|
649
|
+
) {
|
|
650
|
+
fs.rmSync(full)
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
}
|
package/dist/affix.d.ts
CHANGED
|
@@ -50,6 +50,12 @@ export declare class TosiAffix extends Component<AffixParts> {
|
|
|
50
50
|
minHeight: string;
|
|
51
51
|
position: string;
|
|
52
52
|
};
|
|
53
|
+
':host > [part="content"][data-align="center"]::slotted(*)': {
|
|
54
|
+
marginInline: string;
|
|
55
|
+
};
|
|
56
|
+
':host > [part="content"][data-align="end"]::slotted(*)': {
|
|
57
|
+
marginInlineStart: string;
|
|
58
|
+
};
|
|
53
59
|
':host > [part="fixture"]': {
|
|
54
60
|
display: string;
|
|
55
61
|
flexDirection: string;
|
package/dist/affix.js
CHANGED
|
@@ -259,6 +259,17 @@ export class TosiAffix extends Component {
|
|
|
259
259
|
// a positioned child of the content is placed against the content, not the fixture
|
|
260
260
|
position: 'relative',
|
|
261
261
|
},
|
|
262
|
+
/*
|
|
263
|
+
Content narrower than its cell — a fixed width in a wider affix, or under a fixture wider
|
|
264
|
+
than it — follows the fixture, so a centred caption is centred on the content and not on
|
|
265
|
+
the cell. Auto margins do nothing to content that fills its cell.
|
|
266
|
+
*/
|
|
267
|
+
':host > [part="content"][data-align="center"]::slotted(*)': {
|
|
268
|
+
marginInline: 'auto',
|
|
269
|
+
},
|
|
270
|
+
':host > [part="content"][data-align="end"]::slotted(*)': {
|
|
271
|
+
marginInlineStart: 'auto',
|
|
272
|
+
},
|
|
262
273
|
':host > [part="fixture"]': {
|
|
263
274
|
display: 'flex',
|
|
264
275
|
flexDirection: 'var(--tosi-affix-direction)',
|
|
@@ -436,6 +447,14 @@ export class TosiAffix extends Component {
|
|
|
436
447
|
borderRadius: outerCorners(cell.edge, placement.inside, 'var(--tosi-affix-radius, var(--tosi-border-radius, 4px))'),
|
|
437
448
|
});
|
|
438
449
|
this.style.setProperty('--tosi-affix-direction', cell.direction);
|
|
450
|
+
// beside the content, it hugs the edge it is on; above, below or inside, it lines up with it
|
|
451
|
+
const side = cell.edge === 'e' || cell.edge === 'w';
|
|
452
|
+
this.parts.content.dataset.align =
|
|
453
|
+
side && !placement.inside
|
|
454
|
+
? cell.edge === 'e'
|
|
455
|
+
? 'end'
|
|
456
|
+
: 'start'
|
|
457
|
+
: cell.justifySelf;
|
|
439
458
|
}
|
|
440
459
|
render() {
|
|
441
460
|
super.render();
|
package/dist/babylon-3d.js
CHANGED
|
@@ -223,7 +223,8 @@ be used to load `.glb` files. Setting `src` calls this for you on connect.
|
|
|
223
223
|
/*{ "parent": "Components", "headTitle": "<tosi-3d> Babylon.js wrapper (deprecated) — tosijs-ui", "description": "Deprecated: <tosi-3d> is a thin Babylon.js wrapper kept for compatibility. New 3D work should use the tosijs-3d package." }*/
|
|
224
224
|
import { elements, withAttributes } from 'tosijs';
|
|
225
225
|
import { scriptTag } from './via-tag.js';
|
|
226
|
-
import {
|
|
226
|
+
import { svg2DataUrl } from './icon-core.js';
|
|
227
|
+
import { xrColor as xrColorIcon } from './icons/xrColor.js';
|
|
227
228
|
const noop = () => {
|
|
228
229
|
/* do not care */
|
|
229
230
|
};
|
|
@@ -310,7 +311,7 @@ export class B3d extends withAttributes({
|
|
|
310
311
|
width: 80,
|
|
311
312
|
backgroundColor: 'transparent',
|
|
312
313
|
filter: 'drop-shadow(0 0 4px #000c)',
|
|
313
|
-
backgroundImage: svg2DataUrl(
|
|
314
|
+
backgroundImage: svg2DataUrl(xrColorIcon()),
|
|
314
315
|
backgroundPosition: 'center',
|
|
315
316
|
backgroundRepeat: 'no-repeat',
|
|
316
317
|
border: 'none',
|
package/dist/carousel.js
CHANGED
|
@@ -72,7 +72,8 @@ This is a minimalist carousel component that supports the usual stuff.
|
|
|
72
72
|
*/
|
|
73
73
|
/*{ "parent": "Components", "description": "A minimal carousel with optional arrows and dots, several items per page, looping, and auto-advance that holds still while someone is looking." }*/
|
|
74
74
|
import { elements, vars, withAttributes } from 'tosijs';
|
|
75
|
-
import {
|
|
75
|
+
import { chevronLeft as chevronLeftIcon } from './icons/chevronLeft.js';
|
|
76
|
+
import { chevronRight as chevronRightIcon } from './icons/chevronRight.js';
|
|
76
77
|
import { prefersReducedMotion } from './reduced-motion.js';
|
|
77
78
|
const { button, slot, div } = elements;
|
|
78
79
|
export class TosiCarousel extends withAttributes({
|
|
@@ -382,12 +383,12 @@ export class TosiCarousel extends withAttributes({
|
|
|
382
383
|
}
|
|
383
384
|
}
|
|
384
385
|
content = () => [
|
|
385
|
-
div({ part: 'pager' }, button({ title: 'previous slide', part: 'back' },
|
|
386
|
+
div({ part: 'pager' }, button({ title: 'previous slide', part: 'back' }, chevronLeftIcon()), div(
|
|
386
387
|
/*
|
|
387
388
|
Focusable, so the strip can be scrolled from the keyboard (#3573); ← and → page it,
|
|
388
389
|
like the arrow buttons.
|
|
389
390
|
*/
|
|
390
|
-
{ title: 'slides', role: 'group', part: 'scroller', tabindex: 0 }, div({ part: 'grid' }, slot())), button({ title: 'next slide', part: 'forward' },
|
|
391
|
+
{ title: 'slides', role: 'group', part: 'scroller', tabindex: 0 }, div({ part: 'grid' }, slot())), button({ title: 'next slide', part: 'forward' }, chevronRightIcon())),
|
|
391
392
|
div({ title: 'choose slide to display', role: 'group', part: 'progress' }),
|
|
392
393
|
];
|
|
393
394
|
connectedCallback() {
|
package/dist/data-table.d.ts
CHANGED
|
@@ -15,7 +15,8 @@ export interface ColumnOptions {
|
|
|
15
15
|
* Whether this column takes a share of the space left over when the columns add up to
|
|
16
16
|
* less than the table's width. Elastic columns grow in proportion to their `width`, and
|
|
17
17
|
* never shrink below it. Defaults to the table's `elastic`. A pinned column is never
|
|
18
|
-
* elastic: its sticky offset is its width.
|
|
18
|
+
* elastic: its sticky offset is its width. Resizing a column by dragging sets this to
|
|
19
|
+
* `false` on it and on the elastic columns to its left, at the widths they were drawn at.
|
|
19
20
|
*/
|
|
20
21
|
elastic?: boolean;
|
|
21
22
|
sort?: false | 'ascending' | 'descending';
|
|
@@ -502,9 +503,7 @@ export declare class TosiTable extends TosiTable_base {
|
|
|
502
503
|
private focusCell;
|
|
503
504
|
private handleKeyNav;
|
|
504
505
|
connectedCallback(): void;
|
|
505
|
-
|
|
506
|
-
private drawnEdge;
|
|
507
|
-
private widthForEdge;
|
|
506
|
+
private pinElasticThrough;
|
|
508
507
|
private isElastic;
|
|
509
508
|
private layoutColumns;
|
|
510
509
|
setColumnWidths(): void;
|
package/dist/data-table.js
CHANGED
|
@@ -1000,8 +1000,11 @@ creator) and every column is elastic unless it says `elastic: false`, which is t
|
|
|
1000
1000
|
get it for columns inferred from the data. Pinned columns are never elastic. Elastic
|
|
1001
1001
|
columns take precedence over `full-width-header`.
|
|
1002
1002
|
|
|
1003
|
-
Dragging
|
|
1004
|
-
columns
|
|
1003
|
+
Dragging a column's edge resizes it to exactly where you drop it, narrower than its share
|
|
1004
|
+
included. The drag fixes that column, and any elastic columns to its left, at the width
|
|
1005
|
+
they were drawn at (it sets their `width` and `elastic: false`, as a resize always sets
|
|
1006
|
+
`width`): elastic columns to its right take up or give back the difference, and with none
|
|
1007
|
+
to its right, the space it gives up is left beside the columns.
|
|
1005
1008
|
|
|
1006
1009
|
### Filling the space beside the columns
|
|
1007
1010
|
|
|
@@ -1310,7 +1313,10 @@ import { elements, vars, varDefault, tosiValue, getListItem, getListBinding, tos
|
|
|
1310
1313
|
import { trackDrag } from './track-drag.js';
|
|
1311
1314
|
import { naturalSorter } from './natural-compare.js';
|
|
1312
1315
|
import { resolveRowGroupId, withForcedGroups, clusterByGroup, groupRenderMeta, groupCounts, } from './row-grouping.js';
|
|
1313
|
-
import {
|
|
1316
|
+
import { chevronRight as chevronRightIcon } from './icons/chevronRight.js';
|
|
1317
|
+
import { sortAscending as sortAscendingIcon } from './icons/sortAscending.js';
|
|
1318
|
+
import { sortDescending as sortDescendingIcon } from './icons/sortDescending.js';
|
|
1319
|
+
import { moreVertical as moreVerticalIcon } from './icons/moreVertical.js';
|
|
1314
1320
|
import { valueRenderer, } from './value-renderer.js';
|
|
1315
1321
|
import { fieldForProperty, collectErrors, coerceToSchema, fieldEditable, } from './schema-form/fields.js';
|
|
1316
1322
|
import { getSchemaValidator, warnNoValidator } from './schema-form/validator.js';
|
|
@@ -2824,7 +2830,7 @@ export class TosiTable extends withAttributes({
|
|
|
2824
2830
|
if (item != null)
|
|
2825
2831
|
this.toggleRowDetail(item);
|
|
2826
2832
|
},
|
|
2827
|
-
},
|
|
2833
|
+
}, chevronRightIcon()));
|
|
2828
2834
|
return cell;
|
|
2829
2835
|
}
|
|
2830
2836
|
if (this.columnEditable(col)) {
|
|
@@ -2946,12 +2952,12 @@ export class TosiTable extends withAttributes({
|
|
|
2946
2952
|
let sortIcon;
|
|
2947
2953
|
switch (col.sort) {
|
|
2948
2954
|
case 'ascending':
|
|
2949
|
-
sortIcon =
|
|
2955
|
+
sortIcon = sortAscendingIcon();
|
|
2950
2956
|
ariaSort = 'descending';
|
|
2951
2957
|
break;
|
|
2952
2958
|
case 'descending':
|
|
2953
2959
|
ariaSort = 'ascending';
|
|
2954
|
-
sortIcon =
|
|
2960
|
+
sortIcon = sortDescendingIcon();
|
|
2955
2961
|
break;
|
|
2956
2962
|
}
|
|
2957
2963
|
// An expander column has nothing to sort by and should not be hidden by accident.
|
|
@@ -2963,7 +2969,7 @@ export class TosiTable extends withAttributes({
|
|
|
2963
2969
|
popColumnMenu(event.target, col);
|
|
2964
2970
|
event.stopPropagation();
|
|
2965
2971
|
},
|
|
2966
|
-
}, sortIcon ||
|
|
2972
|
+
}, sortIcon || moreVerticalIcon())
|
|
2967
2973
|
: {};
|
|
2968
2974
|
const cell = col.headerCell !== undefined
|
|
2969
2975
|
? col.headerCell(col)
|
|
@@ -3091,9 +3097,8 @@ export class TosiTable extends withAttributes({
|
|
|
3091
3097
|
first drag on a fresh page into a text selection. See track-drag.ts, and #107.)
|
|
3092
3098
|
*/
|
|
3093
3099
|
const prop = grabbed.prop;
|
|
3094
|
-
let anchor
|
|
3095
|
-
let anchorWidth =
|
|
3096
|
-
let anchorEdge = this.drawnEdge(grabbed);
|
|
3100
|
+
let anchor;
|
|
3101
|
+
let anchorWidth = 0;
|
|
3097
3102
|
let anchorDx = 0;
|
|
3098
3103
|
const isTouchEvent = event.touches !== undefined;
|
|
3099
3104
|
const touchIdentifier = isTouchEvent
|
|
@@ -3109,15 +3114,18 @@ export class TosiTable extends withAttributes({
|
|
|
3109
3114
|
const live = this.columns.find((c) => c.prop === prop);
|
|
3110
3115
|
if (!live)
|
|
3111
3116
|
return true;
|
|
3117
|
+
// A click on the edge changes nothing: pin the columns on the first movement.
|
|
3118
|
+
if (anchor === undefined && dx === 0) {
|
|
3119
|
+
return event.type === 'mouseup' || undefined;
|
|
3120
|
+
}
|
|
3112
3121
|
if (live !== anchor) {
|
|
3122
|
+
this.pinElasticThrough(live);
|
|
3123
|
+
// The drag measures from where it started; a replaced column rebases on this step.
|
|
3124
|
+
anchorDx = anchor === undefined ? 0 : dx;
|
|
3113
3125
|
anchor = live;
|
|
3114
3126
|
anchorWidth = Number(live.width);
|
|
3115
|
-
anchorEdge = this.drawnEdge(live);
|
|
3116
|
-
anchorDx = dx;
|
|
3117
3127
|
}
|
|
3118
|
-
const width =
|
|
3119
|
-
? this.widthForEdge(live, anchorEdge + (dx - anchorDx))
|
|
3120
|
-
: anchorWidth + (dx - anchorDx);
|
|
3128
|
+
const width = anchorWidth + (dx - anchorDx);
|
|
3121
3129
|
live.width = width > this.minColumnWidth ? width : this.minColumnWidth;
|
|
3122
3130
|
this.setColumnWidths();
|
|
3123
3131
|
if (event.type === 'mouseup') {
|
|
@@ -3656,33 +3664,28 @@ export class TosiTable extends withAttributes({
|
|
|
3656
3664
|
this.addEventListener('touchend', this.updateSelection);
|
|
3657
3665
|
this.addEventListener('keydown', this.handleKeyNav);
|
|
3658
3666
|
}
|
|
3659
|
-
/** Where `col`'s right edge is drawn, from the left of the columns. */
|
|
3660
|
-
drawnEdge(col) {
|
|
3661
|
-
const cols = this.visibleColumns;
|
|
3662
|
-
const { drawn } = this.layoutColumns(cols);
|
|
3663
|
-
const index = cols.indexOf(col);
|
|
3664
|
-
return drawn.slice(0, index + 1).reduce((sum, w) => sum + w, 0);
|
|
3665
|
-
}
|
|
3666
3667
|
/*
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
the
|
|
3670
|
-
|
|
3668
|
+
Before a drag resizes `col`, fix it and every elastic column to its left at the width they are
|
|
3669
|
+
drawn at. An elastic column's drawn width is not its width: the table's leftover space is shared
|
|
3670
|
+
out over the elastic columns, so the last one's right edge is the table's right edge whatever
|
|
3671
|
+
its width says, and dragging it narrower moved nothing (its width shrank to the minimum while
|
|
3672
|
+
it stayed drawn wide). Once they are fixed, the dragged edge is the sum of fixed widths and
|
|
3673
|
+
follows the pointer exactly; elastic columns to its right still share the leftover, and with
|
|
3674
|
+
none, the leftover is the space beside the columns. Nothing moves when the drag starts: the
|
|
3675
|
+
columns to the right are drawn at the same widths as before.
|
|
3671
3676
|
*/
|
|
3672
|
-
|
|
3673
|
-
const
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
if (this.
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
|
|
3677
|
+
pinElasticThrough(col) {
|
|
3678
|
+
const cols = this.visibleColumns;
|
|
3679
|
+
const index = cols.indexOf(col);
|
|
3680
|
+
if (index === -1)
|
|
3681
|
+
return;
|
|
3682
|
+
const { drawn } = this.layoutColumns(cols);
|
|
3683
|
+
for (let i = 0; i <= index; i++) {
|
|
3684
|
+
if (!this.isElastic(cols[i]))
|
|
3685
|
+
continue;
|
|
3686
|
+
cols[i].width = Math.round(drawn[i]);
|
|
3687
|
+
cols[i].elastic = false;
|
|
3683
3688
|
}
|
|
3684
|
-
col.width = original;
|
|
3685
|
-
return Math.round(hi);
|
|
3686
3689
|
}
|
|
3687
3690
|
isElastic(col) {
|
|
3688
3691
|
return !col.pinned && (col.elastic ?? this.elastic);
|
package/dist/doc-browser.js
CHANGED
|
@@ -1011,7 +1011,14 @@ export function createDocBrowser(options) {
|
|
|
1011
1011
|
const scrollToHashExample = () => {
|
|
1012
1012
|
if (memoryRouting)
|
|
1013
1013
|
return;
|
|
1014
|
-
|
|
1014
|
+
scrollToTarget(location.hash);
|
|
1015
|
+
};
|
|
1016
|
+
/*
|
|
1017
|
+
Scroll to the element a `#hash` names in the content: the URL's hash on arrival (path and
|
|
1018
|
+
query routing), or a clicked link's (memory routing, which never touches the URL).
|
|
1019
|
+
*/
|
|
1020
|
+
const scrollToTarget = (rawHash) => {
|
|
1021
|
+
let hash = rawHash.replace(/^#/, '');
|
|
1015
1022
|
if (!hash)
|
|
1016
1023
|
return;
|
|
1017
1024
|
try {
|
|
@@ -1173,7 +1180,7 @@ export function createDocBrowser(options) {
|
|
|
1173
1180
|
// User-initiated navigation: record the new location (history for path/query,
|
|
1174
1181
|
// the onRouteChange callback for memory) and then render the doc. Every nav
|
|
1175
1182
|
// click funnels through here so memory mode never touches window.history.
|
|
1176
|
-
const go = (filename) => {
|
|
1183
|
+
const go = (filename, hash = '') => {
|
|
1177
1184
|
// If the source editor is open with unsaved changes, confirm before leaving;
|
|
1178
1185
|
// on confirm it discards + closes, otherwise navigation is aborted (false).
|
|
1179
1186
|
if (!confirmLeaveEditor())
|
|
@@ -1182,7 +1189,8 @@ export function createDocBrowser(options) {
|
|
|
1182
1189
|
onRouteChange?.(slugFor(filename));
|
|
1183
1190
|
}
|
|
1184
1191
|
else {
|
|
1185
|
-
|
|
1192
|
+
// The link's `#heading` goes into the URL, where showDoc's scrollToHashExample finds it.
|
|
1193
|
+
const href = hrefFor(filename) + hash;
|
|
1186
1194
|
/*
|
|
1187
1195
|
A link to the document already showing REPLACES the entry rather than pushing one, as a
|
|
1188
1196
|
native same-URL navigation does. Pushing left a duplicate the reader had to Back
|
|
@@ -1194,10 +1202,13 @@ export function createDocBrowser(options) {
|
|
|
1194
1202
|
may want to come Back from.
|
|
1195
1203
|
*/
|
|
1196
1204
|
const same = filename === String(app.currentDoc.filename) &&
|
|
1197
|
-
document.location.hash === ''
|
|
1205
|
+
document.location.hash === '' &&
|
|
1206
|
+
hash === '';
|
|
1198
1207
|
window.history[same ? 'replaceState' : 'pushState']({ href }, '', href);
|
|
1199
1208
|
}
|
|
1200
1209
|
navigateTo(filename);
|
|
1210
|
+
if (memoryRouting)
|
|
1211
|
+
scrollToTarget(hash);
|
|
1201
1212
|
return true;
|
|
1202
1213
|
};
|
|
1203
1214
|
// Intercept clicks on internal doc links anywhere in the rendered content so
|
|
@@ -1222,27 +1233,7 @@ export function createDocBrowser(options) {
|
|
|
1222
1233
|
if (filename === null)
|
|
1223
1234
|
return;
|
|
1224
1235
|
event.preventDefault();
|
|
1225
|
-
|
|
1226
|
-
return;
|
|
1227
|
-
/*
|
|
1228
|
-
`/slug/#heading`: path routing gets the scroll from the URL (scrollToHashExample); memory
|
|
1229
|
-
routing never touches the URL, so it goes to the heading itself, once the doc has drawn.
|
|
1230
|
-
*/
|
|
1231
|
-
const hash = new URL(anchor.href, document.location.href).hash.slice(1);
|
|
1232
|
-
if (memoryRouting && hash) {
|
|
1233
|
-
requestAnimationFrame(() => requestAnimationFrame(() => {
|
|
1234
|
-
let id = hash;
|
|
1235
|
-
try {
|
|
1236
|
-
id = decodeURIComponent(hash);
|
|
1237
|
-
}
|
|
1238
|
-
catch {
|
|
1239
|
-
// a stray % — look it up as written
|
|
1240
|
-
}
|
|
1241
|
-
docContent
|
|
1242
|
-
.querySelector(`#${CSS.escape(id)}`)
|
|
1243
|
-
?.scrollIntoView({ block: 'start' });
|
|
1244
|
-
}));
|
|
1245
|
-
}
|
|
1236
|
+
go(filename, new URL(anchor.href, document.location.href).hash);
|
|
1246
1237
|
});
|
|
1247
1238
|
// ── Edit page source (Foundation B / #4) ──────────────────────────────────
|
|
1248
1239
|
// The "view source" affordance opens a menu: edit the whole source file in a
|
|
@@ -17,3 +17,8 @@ export interface TitledDoc {
|
|
|
17
17
|
* more specific label, so use it alone.
|
|
18
18
|
*/
|
|
19
19
|
export declare function pageTitle(doc: TitledDoc, projectName?: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* "Menus — tosijs-ui" → "Menus": a `headTitle` often carries the suffix a headline or an index
|
|
22
|
+
* entry must not (the structured data's headline; llms.txt's link titles, #3867).
|
|
23
|
+
*/
|
|
24
|
+
export declare function withoutProjectSuffix(title: string, projectName: string | undefined): string;
|