Code Monkey home page Code Monkey logo

blockprotocol's Introduction

github_banner

discord github_star

Block Protocol

Public monorepo for the Block Protocol.

gh-what-is-the-bp   What is the Block Protocol?

The Block Protocol is an open standard for building, using and embedding data-driven blocks. Blocks developed in accordance with the protocol allow you to make websites and applications that are both more useful to and readable by humans and machines. Neither blocks nor the applications that embed them require any knowledge of each other's existence. Both need only conform to the protocol.

a   Getting Started

Please refer to the Block Protocol documentation for complete instructions on using the Block Protocol, including:

a   Examples

  • Environments
    • HASH is an embedding application that supports the Block Protocol, enabling its users to insert arbitrary blocks from the Þ Hub at runtime.
    • WordPress supports the embedding of Þ blocks, through the Block Protocol for WordPress plugin.
    • Additional environments will be listed here as they become generally available.
    • You can also integrate the Block Protocol into your own app and contact us to have it listed here.
  • Blocks
    • Please view the Þ Hub.
    • We'll also be adding star examples to the Awesome Blocks repo. Feel free to open a PR to suggest an addition there.

For more examples, please refer to the Block Protocol documentation or browse the complete Þ Hub.

a   Roadmap

Learn more on our Roadmap page in the docs.

a   Repository overview

Finding things within a monorepo isn't always straight forward, in particular if you're an external contributor looking at a repository for the first time. We've tried to logically separate our repo into executable applications or tools (apps), developer libraries including packages and crates (libs), and a collection of Block Protocol maintained blocks (blocks). As an open-source community project, we welcome contributions.

For block and application developers

As a block developer, you probably care most about our utility libraries. All of the below are contained within the libs folder and are available via yarn add <package_name> or npm install <package_name>. Individual README files within each directory provide more details.

You might also find the Þ feature showcase block helpful, for an all-in-one reference demonstrating the implementation of different Block Protocol methods.

For spec and site contributors

  1. apps/site: the code for blockprotocol.org, including:

  2. rfcs: contains RFCs (Requests For Comments); this folder is intended to maintain a consistent and controlled process for new features to enter the project

  3. libs/@blockprotocol/type-system: Rust crate which auto-generates a WebAssembly-based npm package, providing a single source of truth for type system definitions

a   Contributing

The Block Protocol is an open-source standard, and community contributions are what make open-source such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

Please consider starring the project and watching it on GitHub, to be kept abreast of future developments and show your appreciation.

If you’ve got an idea for a new block, would like to make a suggestion that improves the protocol itself, or want to contribute to a better developer experience for users of the protocol, then please either open an RFC, or open an issue with the tag “enhancement”. If you're unsure as to which is more appropriate, read the "When to follow this process" section of our RFC README.

Please feel free to fork the repo in order to create a pull request:

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a pull request targeting this repo

If you’re looking for inspiration regarding new blocks to build, or contributions you could make, please check the open issues. See CONTRIBUTING for more information.

a   License

The vast majority of this repository is dual-licensed under the Apache 2.0 and MIT licenses, at your option. See the LICENSE file for more information.

a   Security

Please see SECURITY for instructions around reporting issues, and details of which package versions we actively support.

a   Contact

Find us on Twitter at @blockprotocol or email [email protected]

You can also join our Discord community for quick help and support.

Project permalink: https://github.com/blockprotocol/blockprotocol

a   Acknowledgments

blockprotocol's People

Contributors

akash-joshi avatar alfred-mountfield avatar benwerner01 avatar ciaranmn avatar dependabot[bot] avatar espretto avatar gbezyuk avatar github-actions[bot] avatar gitstart-blockprotocol avatar hashdotai avatar idisposable avatar indietyp avatar jmackie80 avatar jtewright avatar julrich avatar kachkaev avatar leoloso avatar luisbettencourt avatar maggieappleton avatar nathggns avatar renovate[bot] avatar shinypb avatar stvad avatar teenoh avatar thehabbos007 avatar timdiekmann avatar vilkinsons avatar webpro avatar yusufkinatas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blockprotocol's Issues

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: .github/renovate.json
Error type: The renovate configuration file contains some invalid settings
Message: Invalid schedule: 'Invalid schedule: Failed to parse "monday before 5am"'

[BP-8] Display RFCs on the Þ site alongside `spec` and `docs`

Context

We currently store a number of RFCs in the root of our blockprotocol/blockprotocol repository on GitHub, under a top-level rfcs directory. We want to leave this where it currently resides.

However, we want to ensure that the accepted RFCs within it (all of those RFC documents available here) are directly browsable on the Þ website, as standalone pages.

Functional Requirements

These standalone pages should:

  • be hosted at URLs such as:
    • EITHER blockprotocol.org/docs/spec/roadmap/0352-graph-type-system (in the case of this example RFC);
    • OR if this PR follows completion of #1186, then at blockprotocol.org/roadmap/0352-graph-type-system instead (as roadmap will no longer be found nestled within docs/spec/roadmap, but at the top-level)
  • appear in the left-hand navigation sidebar on blockprotocol.org docs and spec pages (e.g. here), nestled beneath the parent page "Roadmap > Proposed Changes > RFCs".

Links to these standalone pages should auto-appear in ascending RFC number order, under the "RFCs" section of the roadmap page, replacing the current "Browse here" link.

Prior work

This work builds on the changes introduced in #1183 ✅ and #1108 ✅ - these are now merged.

BP-8

[RFB] Org charts

Request For Block (RFB)

Creating org charts or plotting any other kind of linked parent/child relationship is not widely supported within existing block-based editors, but such functionality is useful in the context of a linked data graph.

We'd like the ability to create, edit and view parent-child diagrams such as org-charts inline with a block.

🎨 Existing tools and prior art

[BP-3] Fix entity type table display on mobile

Users can create types, and the detail of those types is shown in two tables (one for properties on the type, and one for links from the type) – for example at https://blockprotocol.org/@hash/types/entity-type/address-block/v/2

This view is currently broken on mobile, because the tables are too wide for the screen. The goal is to implement a working mobile view for this page.

The form itself is generated from a library, and its internal elements should not be styled as part of this solution. One potential and acceptable solution is to wrap the tables with something with a max width, allow a horizontal scrollbar to appear, meaning the user can swipe / scroll to see more of the tables.

Closed by #1210

From SyncLinear.com | BP-3

🚀 Dependency Updates

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Pending Approval

These branches will be created by Renovate only once you click their checkbox below.

  • Replace npm package npm-run-all with npm-run-all2 5.0.0
  • Update GitHub Action returntocorp/semgrep to cffeb57
  • Update GitHub Action actions/cache to v3.3.3
  • Update GitHub Action actions/setup-node to v3.8.2
  • Update GitHub Action actions/upload-artifact to v3.1.3
  • Update GitHub Action changesets/action to v1.4.7
  • Update GitHub Action codecov/codecov-action to v3.1.6
  • Update Rust crate serde_json to 1.0.117
  • Update Rust crate serde to 1.0.203
  • Update Rust crate thiserror to 1.0.61
  • Update npm package @babel/plugin-proposal-private-property-in-object to v7.21.11
  • Update npm package @blockprotocol/core to v0.1.3
  • Update npm package @blockprotocol/hook to v0.1.8
  • Update npm package @blockprotocol/service to v0.1.5
  • Update npm package @hashintel/design-system to v0.0.8
  • Update npm package @hashintel/type-editor to v0.0.25
  • Update npm package @mapbox/search-js-core to ^1.0.0-beta.21
  • Update npm package @stripe/react-stripe-js to ^1.16.5
  • Update npm package @twind/next to ^1.0.10
  • Update npm package @types/command-line-args to ^5.2.3
  • Update npm package @types/command-line-usage to ^5.0.4
  • Update npm package @types/cors to ^2.8.17
  • Update npm package @types/dedent to ^0.7.2
  • Update npm package @types/dotenv-webpack to ^7.0.7
  • Update npm package @types/hosted-git-info to ^3.0.5
  • Update npm package @types/is-ci to v3.0.4
  • Update npm package @types/lodash.debounce to v4.0.9
  • Update npm package @types/md5 to ^2.3.5
  • Update npm package @types/mime-types to ^2.1.4
  • Update npm package @types/mime to ^3.0.4
  • Update npm package @types/nprogress to ^0.2.3
  • Update npm package @types/pacote to v11.1.8
  • Update npm package @types/passport to ^1.0.16
  • Update npm package @types/prompt to ^1.1.8
  • Update npm package @types/react-gtm-module to ^2.0.3
  • Update npm package @types/react-html-parser to ^2.0.6
  • Update npm package @types/tar to ^6.1.13
  • Update npm package @types/tmp to ^0.2.6
  • Update npm package @types/wait-on to v5.3.4
  • Update npm package @types/wordpress__blocks to v11.0.9
  • Update npm package babel-loader to ^9.1.3
  • Update npm package babel-plugin-inline-react-svg to v2.0.2
  • Update npm package formdata-node to ^5.0.1
  • Update npm package html-to-text to ^8.2.1
  • Update npm package immer to ^9.0.21
  • Update npm package json-schema-to-typescript to ^11.0.5
  • Update npm package jsonschema to ^1.4.1
  • Update npm package micromatch to ^4.0.7 (micromatch, @types/micromatch)
  • Update npm package mongodb to ^4.17.2
  • Update npm package next-http-proxy-middleware to ^1.2.6
  • Update npm package next-session to ^4.0.5
  • Update npm package nodemailer to ^6.9.13 (nodemailer, @types/nodemailer)
  • Update npm package notistack to ^2.0.8
  • Update npm package pacote to v12.0.3
  • Update npm package patch-package to v6.5.1
  • Update npm package playwright-test-coverage to ^1.2.12
  • Update npm package prettier to v2.8.8
  • Update npm package react-resizable to ^3.0.5 (react-resizable, @types/react-resizable)
  • Update npm package react-toastify to v9.1.3
  • Update npm package react-transition-group to ^4.4.5
  • Update npm package remark-parse to ^10.0.2
  • Update npm package serve-handler to ^6.1.5 (serve-handler, @types/serve-handler)
  • Update npm package slugify to ^1.6.6
  • Update npm package style-loader to ^3.3.4
  • Update npm package styled-jsx to ^5.1.6
  • Update npm package suppress-experimental-warnings to ^1.1.17
  • Update npm package ts-node to ^10.9.2
  • Update npm package twind to ^0.16.19
  • Update npm package yarn-deduplicate to v6.0.2
  • Update rust-wasm-bindgen monorepo (wasm-bindgen, wasm-bindgen-test)
  • Update Font Awesome to v6.5.2 (@fortawesome/fontawesome-svg-core, @fortawesome/free-brands-svg-icons, @fortawesome/free-regular-svg-icons, @fortawesome/free-solid-svg-icons)
  • Update GitHub Action Swatinem/rust-cache to v2.7.3
  • Update GitHub Action actions/dependency-review-action to v3.1.5
  • Update GitHub Action github/codeql-action to v2.25.8
  • Update GitHub Action taiki-e/install-action to v2.38.0
  • Update Rust crate url to 2.5.0
  • Update aws-sdk-js-v3 monorepo to v3.592.0 (@aws-sdk/client-s3, @aws-sdk/client-ses)
  • Update babel monorepo to ^7.24.7 (@babel/core, @babel/eslint-parser, @babel/plugin-proposal-decorators, @babel/plugin-transform-runtime, @babel/preset-env, @babel/preset-react, @babel/preset-typescript, @babel/runtime)
  • Update dependency sentry/sdk to ^3.6.0
  • Update emotion monorepo (@emotion/cache, @emotion/react, @emotion/server, @emotion/styled)
  • Update material-ui monorepo (@mui/icons-material, @mui/material, @mui/system)
  • Update npm package @blockprotocol/graph to v0.3.4
  • Update npm package @changesets/changelog-github to v0.5.0
  • Update npm package @changesets/cli to v2.27.5
  • Update npm package @cloudflare/stream-react to ^1.9.1
  • Update npm package @lit-labs/react to v1.2.1
  • Update npm package @next/bundle-analyzer to v13.5.6
  • Update npm package @openapitools/openapi-generator-cli to v2.13.4
  • Update npm package @rollup/plugin-commonjs to v24.1.0
  • Update npm package @rollup/plugin-json to v6.1.0
  • Update npm package @rollup/plugin-wasm to v6.2.2
  • Update npm package @storybook/testing-library to ^0.2.2
  • Update npm package @stripe/stripe-js to ^1.54.2
  • Update npm package @types/lodash to v4.17.4
  • Update npm package @types/node to ^18.19.34
  • Update npm package @types/react-is to v18.3.0
  • Update npm package ajv to ^8.16.0
  • Update npm package algoliasearch to v4.23.3
  • Update npm package axios-retry to v3.9.1
  • Update npm package axios to ^1.7.2
  • Update npm package busboy to ^1.6.0 (busboy, @types/busboy)
  • Update npm package chalk to v5.3.0
  • Update npm package check-dependency-version-consistency to v3.3.0
  • Update npm package cookie-signature to ^1.2.1 (cookie-signature, @types/cookie-signature)
  • Update npm package core-js to ^3.37.1
  • Update npm package css-loader to ^6.11.0
  • Update npm package date-fns to ^2.30.0
  • Update npm package dotenv-flow to v3.3.0 (dotenv-flow, @types/dotenv-flow)
  • Update npm package dotenv-webpack to ^8.1.0
  • Update npm package echarts to v5.5.0
  • Update npm package eslint-config-prettier to v8.10.0
  • Update npm package eslint-import-resolver-typescript to v3.6.1
  • Update npm package eslint-plugin-import to v2.29.1
  • Update npm package eslint-plugin-jest to v27.9.0
  • Update npm package eslint-plugin-jsx-a11y to v6.8.0
  • Update npm package eslint-plugin-react to v7.34.2
  • Update npm package eslint-plugin-storybook to v0.8.0
  • Update npm package eslint to v8.57.0
  • Update npm package express-session to ^1.18.0 (express-session, @types/express-session)
  • Update npm package express-validator to ^6.15.0
  • Update npm package framer-motion to v10.18.0
  • Update npm package globby to ^13.2.2
  • Update npm package html-webpack-plugin to ^5.6.0
  • Update npm package knip to ^1.17.0
  • Update npm package lint-staged to v13.3.0
  • Update npm package lit to ^2.8.0
  • Update npm package lockfile-lint to v4.13.2
  • Update npm package markdownlint-cli2 to v0.13.0
  • Update npm package material-ui-popup-state to ^5.1.2
  • Update npm package next-connect to ^0.13.0
  • Update npm package next-mdx-remote to ^4.4.1
  • Update npm package next-seo to ^5.15.0
  • Update npm package node to >=16.20.2
  • Update npm package openai to ^3.3.0
  • Update npm package passport to ^0.7.0
  • Update npm package prettier-plugin-packagejson to v2.5.0
  • Update npm package prettier-plugin-sh to v0.14.0
  • Update npm package prismjs to ^1.29.0 (prismjs, @types/prismjs)
  • Update npm package react-hook-form to v7.51.5
  • Update npm package react-slick to ^0.30.2 (react-slick, @types/react-slick)
  • Update npm package remark-mdx to ^2.3.0
  • Update npm package rollup to v3.29.4
  • Update npm package sanitize-html to v2.13.0 (sanitize-html, @types/sanitize-html)
  • Update npm package sass to ^1.77.4
  • Update npm package slate-react to ^0.105.0
  • Update npm package slate to ^0.103.0
  • Update npm package stripe to ^11.18.0
  • Update npm package suppress-exit-code to v3.2.0
  • Update npm package ts-jest to v29.1.4
  • Update npm package ts-loader to v9.5.1
  • Update npm package tslib to v2.6.3
  • Update npm package turbo to v1.13.4
  • Update npm package typescript-json-schema to ^0.63.0
  • Update npm package typescript to v4.9.5
  • Update npm package use-local-storage-state to ^18.3.3
  • Update npm package webpack-assets-manifest to ^5.2.1 (webpack-assets-manifest, @types/webpack-assets-manifest)
  • Update npm package webpack-bundle-analyzer to v4.10.2 (webpack-bundle-analyzer, @types/webpack-bundle-analyzer)
  • Update npm package webpack-cli to ^5.1.4
  • Update npm package webpack-dev-server to ^4.15.2
  • Update npm package webpack to v5.91.0
  • Update playwright monorepo to ^1.44.1 (@playwright/test, playwright)
  • Update react monorepo (@types/react, @types/react-dom, eslint-plugin-react-hooks, react, react-dom)
  • Update rjsf monorepo to v5.18.4 (@rjsf/core, @rjsf/utils, @rjsf/validator-ajv8)
  • Update sentry-javascript monorepo (@sentry/integrations, @sentry/nextjs, @sentry/react)
  • Update storybook monorepo to ^7.6.19 (@storybook/addon-essentials, @storybook/addon-interactions, @storybook/addon-links, @storybook/blocks, @storybook/react, @storybook/react-webpack5, storybook)
  • Update typescript-eslint monorepo to v5.62.0 (@typescript-eslint/eslint-plugin, @typescript-eslint/parser)
  • Update wordpress monorepo (@wordpress/api-fetch, @wordpress/block-editor, @wordpress/blocks, @wordpress/components, @wordpress/data, @wordpress/scripts)
  • Update GitHub Action actions/cache to v4
  • Update GitHub Action actions/checkout to v4
  • Update GitHub Action actions/dependency-review-action to v4
  • Update GitHub Action actions/labeler to v5
  • Update GitHub Action actions/setup-node to v4
  • Update GitHub Action actions/upload-artifact to v4
  • Update GitHub Action andstor/file-existence-action to v3
  • Update GitHub Action codecov/codecov-action to v4
  • Update GitHub Action github/codeql-action to v3
  • Update dependency sentry/sdk to v4
  • Update npm package @apidevtools/json-schema-ref-parser to v11
  • Update npm package @fortawesome/fontawesome-svg-core to v6
  • Update npm package @lit-labs/react to v2
  • Update npm package @next/bundle-analyzer to v14
  • Update npm package @rollup/plugin-commonjs to v26
  • Update npm package @rollup/plugin-typescript to v11
  • Update npm package @stripe/react-stripe-js to v2
  • Update npm package @stripe/stripe-js to v3
  • Update npm package @types/wordpress__block-editor to v11
  • Update npm package @types/wordpress__blocks to v12
  • Update npm package ajv-formats to v3
  • Update npm package axios-retry to v4
  • Update npm package check-dependency-version-consistency to v4
  • Update npm package clsx to v2
  • Update npm package command-line-usage to v7
  • Update npm package concurrently to v8
  • Update npm package connect-mongo to v5
  • Update npm package copy-webpack-plugin to v12
  • Update npm package css-loader to v7
  • Update npm package date-fns to v3
  • Update npm package dedent to v1
  • Update npm package dotenv-flow to v4
  • Update npm package envalid to v8
  • Update npm package es-module-lexer to v1
  • Update npm package eslint-config-prettier to v9
  • Update npm package eslint-plugin-jest to v28
  • Update npm package eslint-plugin-simple-import-sort to v12
  • Update npm package eslint-plugin-unicorn to v53
  • Update npm package eslint to v9
  • Update npm package execa to v9
  • Update npm package express-validator to v7
  • Update npm package find-up to v7
  • Update npm package formdata-node to v6
  • Update npm package framer-motion to v11
  • Update npm package fs-extra to v11 (fs-extra, @types/fs-extra)
  • Update npm package globby to v14
  • Update npm package hosted-git-info to v7
  • Update npm package html-to-text to v9 (html-to-text, @types/html-to-text)
  • Update npm package husky to v9
  • Update npm package immer to v10
  • Update npm package json-schema-to-typescript to v14
  • Update npm package knip to v5
  • Update npm package lint-staged to v15
  • Update npm package lit to v3
  • Update npm package mime to v4 (mime, @types/mime)
  • Update npm package mongodb to v6
  • Update npm package next-connect to v1
  • Update npm package next-mdx-remote to v5
  • Update npm package next-seo to v6
  • Update npm package node to v20 (node, @types/node)
  • Update npm package notistack to v3
  • Update npm package openai to v4
  • Update npm package pacote to v18
  • Update npm package patch-package to v8
  • Update npm package prettier to v3
  • Update npm package react-toastify to v10
  • Update npm package realm-web to v2
  • Update npm package remark-mdx to v3
  • Update npm package rimraf to v5
  • Update npm package rollup to v4
  • Update npm package sass-loader to v14
  • Update npm package stripe to v15
  • Update npm package style-loader to v4
  • Update npm package suppress-experimental-warnings to v2
  • Update npm package turbo to v2
  • Update npm package typescript to v5
  • Update npm package unified to v11
  • Update npm package untildify to v5
  • Update npm package use-local-storage-state to v19
  • Update npm package uuid to v9.0.1 (uuid, @types/uuid)
  • Update npm package wait-on to v7
  • Update npm package webpack-dev-server to v5
  • Update remark (major) (remark-gfm, remark-parse)
  • Update sentry-javascript monorepo to v8 (major) (@sentry/nextjs, @sentry/react)
  • Update storybook monorepo to v8 (major) (@storybook/addon-essentials, @storybook/addon-interactions, @storybook/addon-links, @storybook/blocks, @storybook/react, @storybook/react-webpack5, storybook)
  • Update typescript-eslint monorepo to v7 (major) (@typescript-eslint/eslint-plugin, @typescript-eslint/parser)
  • Update wordpress monorepo (major) (@wordpress/api-fetch, @wordpress/block-editor, @wordpress/blocks, @wordpress/components, @wordpress/data, @wordpress/scripts)
  • 🔐 Create all pending approval PRs at once 🔐

Pending Status Checks

These updates await pending status checks. To force their creation now, click the checkbox below.

  • Update npm package nyc to v17
  • Update npm package uuid to v10

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

cargo
libs/@blockprotocol/type-system/crate/Cargo.toml
  • serde 1.0.188
  • serde_json 1.0.107
  • thiserror 1.0.49
  • tsify 0.4.5
  • url 2.4.1
  • wasm-bindgen 0.2.87
  • console_error_panic_hook 0.1.7
  • wasm-bindgen-test 0.3.37
composer
libs/wordpress-plugin/plugin/trunk/composer.json
  • sentry/sdk ^3.3
docker-compose
apps/site/docker-compose.dev.yml
infra/docker/wordpress/docker-compose.yml
  • mysql 8
github-actions
.github/actions/warm-up-repo/action.yml
  • actions/setup-node v3.8.1@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d
  • taiki-e/install-action v2.17.7@cc5a5c56a296ea597e6ea38f551f25dee8be1225
  • Swatinem/rust-cache v2.6.2@e207df5d269b42b69c8bc5101da26f7d31feddb4
.github/workflows/algolia-upload-index.yml
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
.github/workflows/canary-release.yml
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
.github/workflows/ci.yml
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
  • actions/upload-artifact v3.1.2@0b7f8abb1508181956e8e162db84b466c27e18ce
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
  • actions/cache v3.3.1@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8
  • codecov/codecov-action v3.1.4@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d
  • actions/upload-artifact v3.1.2@0b7f8abb1508181956e8e162db84b466c27e18ce
  • actions/upload-artifact v3.1.2@0b7f8abb1508181956e8e162db84b466c27e18ce
.github/workflows/codeql-analysis.yml
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
  • github/codeql-action v2.21.5@00e563ead9f72a8461b24876bee2d0c2e8bd2ee8
  • github/codeql-action v2.21.5@00e563ead9f72a8461b24876bee2d0c2e8bd2ee8
  • github/codeql-action v2.21.5@00e563ead9f72a8461b24876bee2d0c2e8bd2ee8
.github/workflows/dependency-review.yml
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
  • actions/dependency-review-action v3.0.8@f6fff72a3217f580d5afd49a46826795305b63c7
.github/workflows/deploy-fix.yml
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
.github/workflows/e2e-tests.yml
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
  • actions/upload-artifact v3.1.2@0b7f8abb1508181956e8e162db84b466c27e18ce
.github/workflows/labeler.yml
  • actions/labeler v4.3.0@ac9175f8a1f3625fd0d4fb234536d26811351594
.github/workflows/release.yml
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
  • changesets/action v1.4.5@f13b1baaa620fde937751f5d2c3572b9da32af23
.github/workflows/semgrep.yml
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
  • andstor/file-existence-action v2.0.0@20b4d2e596410855db8f9ca21e96fbe18e12930b
  • github/codeql-action v2.21.5@00e563ead9f72a8461b24876bee2d0c2e8bd2ee8
  • returntocorp/semgrep sha256:bfbf5f0e2b2d72a0b0c6c758bf16fa6f8850b2c83d1148becd948212063cde47
.github/workflows/warm-up-vercel.yml
  • actions/checkout v3.6.0@f43a0e5ff2bd294095638e18286ca9a3d1956744
npm
apps/site/package.json
  • @aws-sdk/client-s3 3.169.0
  • @aws-sdk/client-ses 3.169.0
  • @cloudflare/stream-react ^1.8.0
  • @emotion/cache ^11.10.0
  • @emotion/react ^11.10.0
  • @emotion/server ^11.10.0
  • @emotion/styled ^11.10.0
  • @fortawesome/fontawesome-svg-core ^1.3.0
  • @fortawesome/free-brands-svg-icons ^6.0.0
  • @fortawesome/free-regular-svg-icons ^6.0.0
  • @fortawesome/free-solid-svg-icons ^6.0.0
  • @hashintel/design-system 0.0.6
  • @hashintel/type-editor 0.0.21
  • @istanbuljs/nyc-config-typescript 1.0.2
  • @mui/icons-material ^5.10.3
  • @mui/material 5.11.8
  • @mui/system 5.11.8
  • @next/bundle-analyzer 13.0.7
  • @sentry/nextjs 7.77.0
  • @stripe/react-stripe-js ^1.16.3
  • @stripe/stripe-js ^1.46.0
  • @twind/next ^1.0.9
  • ajv ^8.11.2
  • algoliasearch 4.14.2
  • axios ^1.6.0
  • axios-retry 3.3.1
  • busboy ^1.4.0
  • clsx ^1.2.1
  • connect-mongo ^4.6.0
  • cookie-signature ^1.1.0
  • cors ^2.8.5
  • currency-symbol-map ^5.1.0
  • date-fns ^2.27.0
  • dedent ^0.7.0
  • envalid 7.3.1
  • execa ^6.1.0
  • express-session ^1.17.2
  • express-validator ^6.14.0
  • framer-motion 10.2.4
  • fs-extra ^10.1.0
  • globby ^13.1.2
  • gray-matter ^4.0.3
  • hosted-git-info ^4.1.0
  • html-to-text ^8.2.0
  • immer ^9.0.16
  • jsonschema ^1.4.0
  • lodash ^4.17.21
  • material-ui-popup-state ^5.0.4
  • md5 ^2.3.0
  • mime-types ^2.1.35
  • mongodb ^4.17.0
  • next 13.1.6
  • next-connect ^0.12.1
  • next-http-proxy-middleware ^1.2.5
  • next-mdx-remote ^4.0.3
  • next-seo ^5.5.0
  • next-session ^4.0.4
  • nodemailer ^6.7.2
  • notistack ^2.0.5
  • nprogress ^0.2.0
  • passport ^0.6.0
  • prismjs ^1.27.0
  • react 18.2.0
  • react-dom 18.2.0
  • react-gtm-module ^2.0.11
  • react-hook-form 7.37.0
  • react-html-parser ^2.0.2
  • react-slick ^0.28.1
  • react-transition-group ^4.4.2
  • remark-gfm ^3.0.1
  • remark-mdx ^2.1.5
  • remark-mdx-disable-explicit-jsx ^0.1.0
  • remark-parse ^10.0.1
  • rword ^3.2.1
  • sanitize-html ^2.7.2
  • sharp ^0.30.7
  • slick-carousel ^1.8.1
  • slugify ^1.6.5
  • stripe ^11.7.0
  • tar ^6.1.11
  • tmp-promise 3.0.3
  • twind ^0.16.17
  • unified ^10.1.2
  • uuid ^8.3.2
  • @playwright/test ^1.30.0
  • @types/busboy ^1.5.0
  • @types/cookie-signature ^1.0.4
  • @types/cors ^2.8.12
  • @types/dedent ^0.7.0
  • @types/dotenv-flow ^3.2.0
  • @types/express-session ^1.17.5
  • @types/hosted-git-info ^3.0.2
  • @types/html-to-text ^8.1.1
  • @types/lodash 4.14.190
  • @types/md5 ^2.3.2
  • @types/micromatch ^4.0.2
  • @types/mime-types ^2.1.1
  • @types/nodemailer ^6.4.6
  • @types/nprogress ^0.2.0
  • @types/passport ^1.0.11
  • @types/prismjs ^1.26.0
  • @types/react ^18.0.25
  • @types/react-dom 18.0.9
  • @types/react-gtm-module ^2.0.1
  • @types/react-html-parser ^2.0.2
  • @types/react-slick ^0.23.10
  • @types/sanitize-html ^2.6.2
  • @types/stripe ^8.0.417
  • @types/tar ^6.1.3
  • @types/tmp ^0.2.3
  • @types/uuid ^8.3.4
  • babel-plugin-inline-react-svg 2.0.1
  • babel-plugin-istanbul ^6.1.1
  • chalk 5.2.0
  • dotenv-flow 3.2.0
  • eslint 8.33.0
  • micromatch ^4.0.5
  • nyc ^15.1.0
  • playwright ^1.30.0
  • playwright-test-coverage ^1.2.8
  • rimraf ^3.0.2
  • suppress-experimental-warnings ^1.1.2
  • ts-node ^10.9.1
  • typescript 4.9.4
blocks/feature-showcase/package.json
  • chalk 5.2.0
  • fs-extra ^10.1.0
  • @types/react-dom 18.0.9
  • eslint 8.33.0
  • prettier 2.8.2
  • react 18.2.0
  • react-dom 18.2.0
  • typescript 4.9.4
  • react ^18.0.0
  • react-dom ^18.0.0
infra/cloudflare-r2-wrangler/package.json
  • realm-web 1.7.1
libs/@blockprotocol/core/package.json
  • es-module-lexer ^0.10.5
  • uuid ^8.3.2
  • eslint 8.33.0
  • rimraf ^3.0.2
  • typescript 4.9.4
  • react ^18.0.0
libs/@blockprotocol/design-system/package.json
  • @babel/preset-env ^7.20.2
  • @babel/preset-typescript ^7.21.0
  • @storybook/addon-essentials ^7.0.0-beta.14
  • @storybook/addon-interactions ^7.0.0-beta.14
  • @storybook/addon-links ^7.0.0-beta.14
  • @storybook/blocks ^7.0.0-beta.14
  • @storybook/react ^7.0.0-beta.14
  • @storybook/react-webpack5 ^7.0.0-beta.14
  • @storybook/testing-library ^0.0.13
  • eslint-plugin-storybook 0.6.11
  • react 18.2.0
  • react-dom 18.2.0
  • storybook ^7.0.0-beta.14
  • typescript 4.9.4
libs/@blockprotocol/graph/package.json
  • ajv ^8.11.2
  • ajv-formats ^2.1.1
  • json-schema-to-typescript ^11.0.2
  • lit ^2.4.1
  • typescript 4.9.4
  • @rollup/plugin-commonjs 24.0.1
  • @rollup/plugin-json 6.0.0
  • @rollup/plugin-typescript 9.0.2
  • eslint 8.33.0
  • rimraf ^3.0.2
  • rollup 3.5.1
  • react ^18.0.0
  • node >=16.15
libs/@blockprotocol/hook/package.json
  • eslint 8.33.0
  • rimraf ^3.0.2
  • typescript 4.9.4
  • react ^18.0.0
libs/@blockprotocol/service/package.json
  • @mapbox/search-js-core ^1.0.0-beta.14
  • @types/node ^18.13.0
  • eslint 8.33.0
  • openai ^3.2.1
  • rimraf ^3.0.2
  • ts-node ^10.9.1
  • typescript 4.9.4
  • typescript-json-schema ^0.55.0
  • react ^18.0.0
libs/@blockprotocol/type-system/package.json
  • @rollup/plugin-typescript 9.0.2
  • @rollup/plugin-wasm 6.0.1
  • @types/jest 29.4.0
  • eslint 8.33.0
  • fs-extra ^10.1.0
  • jest 29.4.1
  • rollup 3.5.1
  • ts-jest 29.0.5
  • tslib 2.4.1
  • typescript 4.9.4
libs/@local/eslint-config/package.json
  • @babel/eslint-parser 7.19.1
  • @babel/preset-react ^7.18.6
  • @typescript-eslint/eslint-plugin 5.49.0
  • @typescript-eslint/parser 5.49.0
  • eslint 8.33.0
  • eslint-config-airbnb 19.0.4
  • eslint-config-prettier 8.6.0
  • eslint-import-resolver-typescript 3.5.3
  • eslint-plugin-import 2.27.5
  • eslint-plugin-jest 27.2.1
  • eslint-plugin-jsx-a11y 6.7.1
  • eslint-plugin-react 7.32.2
  • eslint-plugin-react-hooks 4.6.0
  • eslint-plugin-simple-import-sort 8.0.0
  • eslint-plugin-unicorn 45.0.2
  • typescript 4.9.4
libs/@local/internal-api-client-generator/package.json
  • @openapitools/openapi-generator-cli 2.5.2
libs/@local/internal-api-client-generator/typescript/package.json
  • axios ^1.6.0
  • typescript 4.9.4
libs/@local/package-chores/package.json
  • @types/fs-extra ^9.0.13
  • @types/wait-on 5.3.1
  • chalk 5.2.0
  • envalid 7.3.1
  • eslint 8.33.0
  • execa ^6.1.0
  • fs-extra ^10.1.0
  • prettier 2.8.2
  • sleep-promise 9.1.0
  • suppress-experimental-warnings ^1.1.2
  • tmp-promise 3.0.3
  • tree-kill 1.2.2
  • ts-node ^10.9.1
  • typescript 4.9.4
  • untildify 4.0.0
  • wait-on 6.0.1
libs/@local/tsconfig/package.json
libs/block-scripts/package.json
  • @babel/core ^7.21.0
  • @babel/plugin-proposal-class-properties ^7.18.6
  • @babel/plugin-proposal-decorators ^7.21.0
  • @babel/plugin-proposal-private-methods 7.18.6
  • @babel/plugin-proposal-private-property-in-object 7.21.0
  • @babel/plugin-transform-runtime ^7.21.0
  • @babel/preset-env ^7.20.2
  • @babel/preset-react ^7.18.6
  • @babel/preset-typescript ^7.21.0
  • @babel/runtime ^7.21.0
  • babel-loader ^9.1.2
  • chalk 5.2.0
  • copy-webpack-plugin 10.2.4
  • core-js ^3.26.1
  • css-loader ^6.7.1
  • dotenv-webpack ^8.0.1
  • fs-extra ^10.1.0
  • html-webpack-plugin ^5.5.0
  • sass ^1.52.3
  • sass-loader ^12.6.0
  • serve-handler ^6.1.3
  • style-loader ^3.3.1
  • typescript 4.9.4
  • typescript-json-schema ^0.55.0
  • webpack ^5.76.0
  • webpack-assets-manifest ^5.1.0
  • webpack-bundle-analyzer ^4.8.0
  • webpack-dev-server ^4.11.1
  • yargs-parser 21.1.1
  • @types/dotenv-webpack ^7.0.3
  • @types/serve-handler ^6.1.1
  • @types/webpack-assets-manifest ^5.1.0
  • @types/webpack-bundle-analyzer ^4.6.0
  • eslint 8.33.0
  • node ^14.15.0 || >=16.13.0
libs/block-template-custom-element/package.json
  • lit ^2.4.1
  • @types/react-dom 18.0.9
  • @types/react-is 18.2.0
  • eslint 8.33.0
  • prettier 2.8.2
  • react 18.2.0
  • react-dom 18.2.0
libs/block-template-html/package.json
  • eslint 8.33.0
  • http-server 14.1.1
  • lnk-cli 1.0.1
  • prettier 2.8.2
  • rimraf ^3.0.2
libs/block-template-react/package.json
  • @types/react-dom 18.0.9
  • @types/react-is 18.2.0
  • eslint 8.33.0
  • prettier 2.8.2
  • react 18.2.0
  • react-dom 18.2.0
  • react ^18.0.0
  • react-dom ^18.0.0
libs/blockprotocol/package.json
  • chalk 5.2.0
  • command-line-args ^5.2.1
  • command-line-usage ^6.1.3
  • find-up ^6.3.0
  • formdata-node ^5.0.0
  • fs-extra ^10.1.0
  • globby ^13.1.2
  • is-ci 3.0.1
  • prompt ^1.3.0
  • slugify ^1.6.5
  • tar ^6.1.11
  • tmp-promise 3.0.3
  • @types/command-line-args ^5.2.0
  • @types/command-line-usage ^5.0.2
  • @types/is-ci 3.0.0
  • @types/prompt ^1.1.4
  • @types/react ^18.0.25
  • eslint 8.33.0
  • typescript 4.9.4
libs/create-block-app/package.json
  • chalk 5.2.0
  • command-line-args ^5.2.1
  • command-line-usage ^6.1.3
  • fs-extra ^10.1.0
  • pacote 12.0.2
  • slugify ^1.6.5
  • untildify 4.0.0
  • @types/pacote 11.1.5
  • eslint 8.33.0
libs/mock-block-dock/package.json
  • @emotion/react ^11.10.0
  • @emotion/styled ^11.10.0
  • @lit-labs/react 1.1.1
  • @mui/material 5.11.8
  • ajv ^8.11.2
  • axios ^1.6.0
  • dotenv-webpack ^8.0.1
  • echarts 5.4.1
  • mime ^3.0.0
  • react-json-view ^1.21.3
  • react-resizable ^3.0.4
  • slate ^0.82.1
  • slate-react ^0.83.1
  • styled-jsx ^5.1.0
  • use-local-storage-state ^18.1.1
  • uuid ^8.3.2
  • @babel/core ^7.21.0
  • @babel/plugin-proposal-class-properties ^7.18.6
  • @babel/plugin-proposal-private-methods 7.18.6
  • @babel/plugin-proposal-private-property-in-object 7.21.0
  • @babel/plugin-transform-runtime ^7.21.0
  • @babel/preset-env ^7.20.2
  • @babel/preset-react ^7.18.6
  • @babel/preset-typescript ^7.21.0
  • @babel/runtime ^7.21.0
  • @types/dotenv-webpack ^7.0.3
  • @types/mime ^3.0.1
  • @types/react-resizable ^3.0.3
  • babel-loader ^9.1.2
  • concurrently ^7.6.0
  • core-js ^3.26.1
  • cross-env ^7.0.3
  • eslint 8.33.0
  • html-webpack-plugin ^5.5.0
  • lit ^2.4.1
  • react 18.2.0
  • react-dom 18.2.0
  • rimraf ^3.0.2
  • typescript 4.9.4
  • webpack ^5.76.0
  • webpack-cli ^5.0.1
  • webpack-dev-server ^4.11.1
  • react ^18.0.0
  • react-dom ^18.0.0
libs/wordpress-plugin/package.json
  • @apidevtools/json-schema-ref-parser 9.1.2
  • @blockprotocol/core 0.1.2
  • @blockprotocol/graph 0.2.2
  • @blockprotocol/hook 0.1.3
  • @blockprotocol/service 0.1.4
  • @fortawesome/fontawesome-svg-core 6.4.0
  • @fortawesome/free-solid-svg-icons 6.4.0
  • @lit-labs/react 1.1.1
  • @rjsf/core 5.0.1
  • @rjsf/utils 5.0.1
  • @rjsf/validator-ajv8 5.0.1
  • @sentry/integrations 7.43.0
  • @sentry/react 7.43.0
  • @types/lodash.debounce 4.0.7
  • @types/react 18.0.28
  • @types/react-dom 18.0.11
  • @types/sanitize-html 2.8.1
  • @types/uuid 8.3.4
  • @types/wordpress__block-editor 7.0.0
  • @types/wordpress__blocks 11.0.7
  • @wordpress/api-fetch 6.18.0
  • @wordpress/block-editor 10.4.0
  • @wordpress/blocks 11.20.0
  • @wordpress/components 23.5.0
  • @wordpress/data 8.5.0
  • @wordpress/scripts 25.5.0
  • buffer 6.0.3
  • clsx 1.2.1
  • lodash.debounce 4.0.8
  • patch-package 6.5.1
  • react-toastify 9.1.1
  • sanitize-html 2.12.1
  • ts-loader 9.4.1
  • typescript 4.8.4
  • uuid 9.0.0
  • webpack 5.76.0
  • webpack-bundle-analyzer 4.7.0
package.json
  • @changesets/changelog-github 0.4.8
  • @changesets/cli 2.26.0
  • check-dependency-version-consistency 3.0.3
  • dotenv-flow 3.2.0
  • husky 8.0.3
  • knip ^1.6.1
  • lint-staged 13.1.0
  • lockfile-lint 4.10.0
  • markdownlint-cli2 0.7.0
  • npm-run-all 4.1.5
  • patch-package 6.5.0
  • prettier 2.8.2
  • prettier-plugin-packagejson 2.3.0
  • prettier-plugin-sh 0.12.8
  • suppress-exit-code 3.1.0
  • turbo 1.6.3
  • yarn-deduplicate 6.0.0
  • node >=16.14.0
nvm
.nvmrc

  • Check this box to trigger a request for Renovate to run again on this repository

[RFB] Appointment booking block

Request For Block (RFB)

Given a set of availability rules, dates or a calendar allow end users of a block to book events on an external calendar inline wherever this block is embedded. The target cal/source to check availability via would be editable when viewing the block in edit-mode. When in view-only mode, users should be constrained to making bookings only.

Could additionally support Cal.com/Calendly/equivalent services via their APIs where available, rather than requiring embedding apps to integrate with calendar sources directly, or block embedders to configure direct connections via a block's settings.

🚀 Potential future extensions

  • Resource-linked appointment bookings where calendar availability is not the only constraining factor (i.e. things like inventory or room availability can be taken into account through simple logical operators - or something like ownership of a specific NFT, which Cal enables)
  • Optional payment processing inline, as afforded by Calendly's Stripe integration, services like Square Appointments

🎨 Existing tools and prior art

[SITE] i18n support

Community members in China have reached out to us about providing translations of the specification and docs site.

We use NextJS on the Block Protocol website. This makes it easy to support internationalization of content, but some set up work is required. See https://nextjs.org/docs/advanced-features/i18n-routing

We're interested in hearing from community members with interest in helping us get the site ready for i18n, or who wish to provide translations.

[RFB] Audio/video capture

Request For Block (RFB)

In workspace and content management-style applications that utilize blocks the ability to record and store audio and video inline is useful.

We'd like to see a block which employs commonly supported browser APIs such as MediaDevices and MediaStream to allow users to record webcam/audio input which embedding applications can then save.

🎨 Existing tools and prior art

[RFB] Radio-button polls

Request For Block (RFB)

Quick radio-button poll block to easily allow single-option voting on questions.

To be expanded upon here. Discussion encouraged below.

🤩 Inspired by

[RFB] Kanban-like columnar boards

Request For Block (RFB)

Kanban-like columnar boards for easily viewing and sorting information in a visual fashion.

To be expanded upon here. Discussion encouraged below.

🤩 Inspired by

📚 Background reading

[SITE] Block Hub search

We intend to add search functionality to the Block Protocol Hub. While it's just our minimal set of example/starter blocks it's not hard to locate what you're looking for. But as the library grows we expect this to become useful.

In the meantime block search is available via the API (blockprotocol.org account required).

BP-11: Add "Save to 1Password" button next to API keys

See: Add the Save in 1Password button to your website (1Password developer documentation)

Follow the above docs to build a save request and then add the button to the API Keys page on the Þ site to allow users to save directly to their password managers.

API keys should use the identity value for the data attribute type.

Please note: the Save to 1Password button does not work on iOS or Android, so the button should be omitted when the page is viewed on mobile devices.

Figma designs to follow.

BP-11

Error creating new block app

I'm trying to create a new block app, with the instructions on this page [edit: added link]. I use the following commands:

npx create-block-app test-block
cd test-block
yarn install

The yarn install command fails with the following error:

[3/4] ⠈ mock-block-dock
error /Users/austin/projects/test-block/node_modules/mock-block-dock: Command failed.
Exit code: 1
Command: yarn build
Arguments:
Directory: /Users/austin/projects/test-block/node_modules/mock-block-dock
Output:
yarn run v1.22.17
$ yarn clean; yarn build:cjs; yarn build:esm
$ rimraf ./dist/
$ tsc --p tsconfig.build.json --module commonjs --outDir dist/cjs
error TS5058: The specified path does not exist: 'tsconfig.build.json'.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
$ tsc --p tsconfig.build.json
error TS5058: The specified path does not exist: 'tsconfig.build.json'.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I'm on macOS version 12.1 / Node v16.3.1 / npm v8.4.0 / yarn 1.22.17. Please let me know if you need any more details -- I'd really like to contribute to this project. Thanks in advance!

[RFB] Guesstimates

Request For Block (RFB)

An inline way to quickly generate 'guesstimates' re: the probability of anything happening, similar to the functionality provided on GetGuesstimate.com, or perhaps even using/extending it's open-source core.

To be expanded upon here. Discussion encouraged below.

🤩 Inspired by

[BP-1] Fix user type list display on mobile

You can see a list of all types a user has created on their profile page, for example: https://blockprotocol.org/@hash/all-types

This view is broken on mobile because the card for each type can go off the screen – possibly because of the white-space: pre on the a. The main goal is to have this list view correctly on mobile, and not overflow the screen horizontally (and a horizontal scroll bar should not appear).

It would be nice to maintain whitespace formatting in the descriptions inside each card – for example, this card's description is supposed to have a line-break which is lost when white-space: pre is removed. But this is not a hard requirement if it proves difficult – the main goal is to avoid horizontal overflow.

Screenshot 2023-03-14 at 13 39 10

BP-1

BP-97: Natively support Vue 3/Nuxt in `create-block-app`

Is your feature request related to a problem? Please describe.
Hello! I was thinking about building some kind of block based editor for email templates with mjml, and I came across this open source spec! I found it interesting but since my current application is using nuxt (or vue), the starter templates don't exactly match what I'm looking for

Describe the solution you'd like
I know it means more maintenance from the library side, so it's just a request here, but it would be great to see a create-block-app starter template for vue/nuxt that works out of the box, it would be great if it could include some documentation regarding things like monorepos since I would kind of like to develop separate blocks package e.g. block-mj-text, export it out and use it in my main nuxt application for an editor, kind of like this react example here https://github.com/usewaypoint/email-builder-js/tree/main/packages
It would be great if the development workflow could be simplified to the point like this where there's just an output html/vue/whatever component that's exported, and I can just use it without worrying about build config e.g. minimal package that exports a single vue component https://github.com/Esposter/Esposter/tree/main/packages/block-mj-text
I share the same rollup/tsconfig things across my packages (and .tsconfig is mainly generated by nuxt), so would need some guidance on what configuration is absolutely necessary for the build for blocks to work and how I could fit the block protocol workflow into developing separate block packages like this with minimum maintenance, it would be great to at least hear some thoughts, thanks!

The current state of my pnpm monorepo for reference if it helps:
https://github.com/Esposter/Esposter/tree/main/packages

Example block-based editors that I was inspired by:
https://emailbuilder.top
https://usewaypoint.github.io/email-builder-js/#sample/reservation-reminder

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

[RFB] Venn diagrams

Request For Block (RFB)

Venn diagrams are useful for pedagogic and classification purposes. They are primarily useful in helping visualize relationships between sets of entities. A block that allows for the easy inline creation and editing (and/or viewing) of Venn diagrams would be beneficial. As with many types of diagrams this is not a capability commonly found in existing block-based editors today.

Features to support

Screenshot 2022-02-05 at 13 10 24

The above graphic from Canva illustrates the various components of Venn diagrams.

Text font, size and color, as well as shape size, color and arrange should be customizable.

[SITE] Organizations on the Block Hub

We'd like users to be able to create and manage blocks and schemas within shared organizational namespaces, and not just under single-user personal accounts. We'll be adding this functionality soon.

create-block-app could do with modernisation

The generated app feels a little outdated:

  • It doesn't support nullish coalescing (in my case in an imported es6 third party module)
  • Using old versions of webpack
  • Uses outdated version of babel (why is it using babel in a typescript project?)

FWIW I see the potential and have some components that would be very suitable with very little work, but the lack of nullish coalescing and my unfamiliarity with babel started to make it a chore.

I don't mean to be negative, and am sorry that the above is all I can contribute at the moment,

[SITE] Block Hub uploader

Our current process for listing blocks on the Block Protocol Hub requires users to open a Pull Request against this repository under a hub/@[your-username] folder.

This process doesn't scale with the registry's ambition to provide a home for all blocks, but didn't require us to write any custom code when getting the website up quickly -- so was our starting practice.

Going forward we want users to be able to upload blocks by simply linking to external third-party repositories or packages hosted elsewhere, and do this directly from the BP website (as well as perhaps a command line tool). Additionally, we'd like to allow users to create private blocks that are only visible to other users within their org or who have a particular permission set, similar to how private npm packages work.

[SPEC] Fix example data on providing-data section of docs site

On the page documenting how to link data between entities the example for the user has an entityId of 41 but the related example shows the linkId and relatedSourceId having a value of 42. This inconsistent example is confusing.

id name companyId
41 Bob 456
{
  "entityId": "41",
  "entityTypeId": "User",
  "name": "Bob"
}

{
  "linkId": "user-42-company-456",
  "sourceEntityId": "42",
  "destinationEntityId": "456",
  "path": "company"
}

If there a place we can submit PRs to the docs site?

[BP-9] Move `spec` and `roadmap` out of `docs`, continue to share spec/docs sidebar

We want the sidebar shown on the blockprotocol.org/docs pages to remain as-is, containing the same links in the same order as present. However we want the URL that the spec directory is accessible at to bumped up a level from blockprotocol.org/docs/spec to blockprotocol.org/spec.

It was originally at this location, but at some point was moved as part of what was intended to be a short-lived quick hack, which provided an easy way for us to achieve a unified left-hand navigation sidebar that tied together the documentation with the specification.

In addition to moving spec, we also want to move roadmap from blockprotocol.org/docs/roadmap to blockprotocol.org/roadmap.

This PR follows:

  1. #1183
  2. #1108

May interact with if done concurrently:

  1. #1185

BP-9

[SPEC] Embedding application security and sandboxing blocks

The Block Protocol spec specifically calls out the security concern inherent in running arbitrary code from untrusted third-parties. It mentions the iFrame-based approach to sandboxing employed by our example embedding application, HASH, whose source code is public. We do not (yet) however provide inline docs and examples re: how embedding applications can harden themselves against malicious actors and protect their users from ne'er-do-wellers. We intend to. This issue captures the matter as an outstanding area for expansion.

We've additionally been exploring alternative approaches to the iFrame/postMessage paradigm, in particular how WebAssembly might be used. We'd welcome contributions from community members and interested parties re: either, as well as further/additional, emerging or novel approaches not already considered.

[BP-2] Set up Þ Storybook scaffolding

We want to set up a Storybook instance at design.blockprotocol.org containing the forthcoming Þ (block) design system, and related components.

Initially this will be empty. As a follow-up we will add individual components to it. This will eventually then feature in our documentation for block developers, as we encourage use of the block design system, and the Þ Style module.

An example of Storybook running in a comparable public monorepo can be found in this subdirectory of the HASH repo. This implementation/scaffolding should be mirrored in the libs/@blockprotocol/design-system directory of this repo (without any of the underlying components contained inside of the original HASH Storybook being ported across).

Cloudflare DNS records and a Vercel project have already been set up for design.blockprotocol.org. Custom Vercel commands have been used, identical to those in the above linked hashintel/hash monorepo's Storybook setup. These are as follows:

  • Build Command: yarn build-storybook
  • Output Directory: storybook-static
  • Install Command: cd ..; yarn install
  • Development Command: default, left blank

You can read more about in Vercel's development and build settings docs.

The root directory specified in Vercel is libs/@blockprotocol/design-system.

BP-2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.