Git Product home page Git Product logo

lowdefy / lowdefy Goto Github PK

View Code? Open in Web Editor NEW
2.5K 27.0 152.0 1.86 GB

The config web stack for business apps - build internal tools, client portals, web apps, admin panels, dashboards, web sites, and CRUD apps with YAML or JSON.

Home Page: https://lowdefy.com

License: Other

JavaScript 95.10% HTML 2.46% Nunjucks 0.42% Less 1.99% Shell 0.02% Dockerfile 0.02%
web-app web-app-generator lowdefy crud-apps yaml admin-panels internal-tools selfhosted webdev workflow-automation

lowdefy's Introduction

Lowdefy

Discord

Tweet Follow

Tests Maintainability Test Coverage Codecov

Lowdefy ๐Ÿซถ The Config Webstack for Business Apps

Lowdefy is a source available web framework that enables you to:

  • ๐ŸŽจ Build web UIs and connect to databases and APIs.
  • ๐Ÿ”Œ Extend app functionality with npm plugins.
  • โš›๏ธ Built on top of Next.js and Auth.js.
  • ๐ŸŒ Host your apps anywhere you host Next.js.
  • โœ‚๏ธ Only code your business logic.

Create internal tools, web apps, admin panels, BI dashboards, web sites and CRUD apps with simple YAML or JSON config.

๐Ÿ›  Build Web UIs with Easy Config

Lowdefy config is easy to read, write, copy, paste, or template. Config when you can, but code when you need to.

  • Over 70 Blocks and 150 logic operators for a quick start.
  • Dynamic UIs with simple state management.
  • Responsive layouts out of the box.
  • Extend with custom React components.

๐Ÿ“ก Connect to Your Data and APIs

Make API calls and read and write to your databases with minimal config. Build web apps that connect your data.

  • Build dynamic queries using variables and logic operators.
  • Execute requests from both authenticated and public pages.
  • Secure secrets for passwords and API keys.
  • Build custom connections with any npm modules.

๐Ÿ”ง Extend Everything with NPM Plugins

Lowdefy's Blocks, Requests, Operators, Actions, Auth Providers, and Adapters can all be extended with plugins, making it the most flexible config web stack. Powered by NPM, Lowdefy's plugin system allows developers to bundle modules using their preferred packages. Even unpublished plugins can be added to your repository, enabling easy use of project-specific code. See the plugin docs and the plugin project example for more details.

๐Ÿ’ผ Built for Developers and Enterprise-Ready

๐ŸŒ Deploy Anywhere

Lowdefy runs as a Next.js app in production, so you can deploy it anywhere that supports Next.js deployment. Deploy with Vercel, Docker, or anything that runs Next.js apps.

๐Ÿ”’ Secured with Auth.js

Authentication is built on top of Auth.js, providing the full flexibility and security from one of the most popular open-source auth layers. SSO, SAML, 2FA, no problem. Google, Okta, Auth0, and more - bring your own provider.

๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป Git Control for Humans

Lowdefy's minimal config is designed to be easy to read, write, and understand, making it simple to copy, paste, review changes, or pick up where others left off. Defining apps using a structured schema speeds up development in teams of any size.

๐Ÿ”‘ Public, Authenticated, and Role-Based Access

Lowdefy supports building multi-page apps with both public and private pages, serving a wide range of use cases. Role-based access control (RBAC) allows for easy implementation of secure, granular access control where needed.

How Lowdefy Apps Work ๐Ÿ‘‰ https://docs.lowdefy.com

Lowdefy apps are built using:

  • ๐Ÿ“ฆ Blocks are the visual part of the app, the React components. Lowdefy provides a set of default block types but app capabilities can be extended with custom blocks.
  • โš™๏ธ Operators are the functions that are used to express logic within an app. Lowdefy has many built in easy to use operator functions for creating dynamic applications with ease, however, custom javascript operators can also be loaded.
  • โšก๏ธ Actions are triggered by events, like clicking a button or loading a page. When events are triggered, a list of javascript functions can be called. Lowdefy has a set of useful actions, but applications functionality can be enriched by adding custom Lowdefy actions.
  • ๐Ÿ“ฃ Requests make calls to external services to hydrate applications with data or post data to external services. Lowdefy doesn't have any data storage built in. Instead, it provides connections to external services like databases and APIs.

We are working on expanding the list of connections, and you can vote for the ones you need here.

Quick start

Run:

pnpx lowdefy@latest init && pnpx lowdefy@latest dev

This will create a file called lowdefy.yaml in the current working directory that contains the configuration for a Lowdefy app (as well as a .gitignore) and launch a local development server at http://localhost:3000. Make changes in the lowdefy.yaml file to see them reflect in the app.

๐Ÿ”— More Lowdefy Links

โ›น๏ธโ€โ™€๏ธ Contributing

Lowdefy Plugins

The simplest way to contribute to Lowdefy is by creating custom plugins like Blocks, Actions, Requests, Operators, or Auth Adapters and Providers, and publishing them to NPM for the community's benefit.

Easily add and develop plugins in any Lowdefy project; refer to the plugins project example for a pnpm monorepo setup to jumpstart local plugin development.

When publishing your plugin to NPM, include lowdefy in the name for easy discovery, and share it on our Github Discussions to inform the community.

Lowdefy Platform Development

Run Lowdefy servers locally by adding your Lowdefy config to the app/.. folder. Use one of the following scripts to the server:

  • pnpm app:cli:dev: Starts the development server with the config provided in the app folder, useful for developing locally.
  • pnpm app:cli:build: Creates a production build of your lowdefy app for the config config provided in the app folder.
  • pnpm app:cli:start: Starts the production server of your lowdefy app built using the build command output.

See the project package.json scripts for more predefined scripts.

Please also see CONTRIBUTING.md.

โ˜•๏ธ Changelog

Convert a v3 app to V4 - See the v4 conversion notes.

All changes to this project are documented in CHANGELOG.md.

๐Ÿ” Security

If you discover a vulnerability, please follow the guide in SECURITY.md to disclose this to us responsibly.

๐Ÿค Code of Conduct

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to follow the Contributor Covenant code of conduct. See CODE_OF_CONDUCT.md for more.

lowdefy's People

Contributors

acvwyk avatar charilaouc avatar correiarmjoao avatar florian-s-code avatar gervwyk avatar github-actions[bot] avatar hannwil avatar johannmoller avatar machielvdw avatar mat02 avatar pleabargain avatar radiergummi avatar renovate-bot avatar renovate[bot] avatar samtolmay avatar sandile-memela avatar sheshallconquer avatar snyk-bot avatar stephaniejks avatar susiwen8 avatar vicam001 avatar yianni99 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lowdefy's Issues

Feature Request: Firestore Connector

Hi! Thanks for the interesting project. It would be nice to have a Firestore connector, allowing Lowdefy to interact with that data store, including its listeners.

MVP Checklist

Frontend

  • Finalize initial blocks
  • Go through list of know bugs from Jira
  • Renderer tests
  • Tests for Actions

Backend

  • Connection controller and test
  • Secrets
  • Sheets connector

Hosting & CLI

  • Deploy to Docker hub
  • Lambda deploy
  • Deploy provider (Netlify / Vercel / Digital Ocean)
  • Init Lowdefy project CLI
  • Init Docker in CLI
  • Init custom block CLI
  • CLI telemetry & CLI config flags

Documentation

  • Update tutorial
  • All concepts
  • New connections
  • Main ReadMe
  • Package ReadMes
  • Example ReadMe

CLI port already in use error

Is your feature request related to a problem? Please describe.
When another terminal window is running the CLI, it throws:

Error: listen EADDRINUSE: address already in use

Describe the solution you'd like
Gracefully throw a descriptive error telling the user how to specify another port.

Dependency Dashboard

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.

  • chore(deps): update dependency @types/react to v18.2.79
  • chore(deps): update dependency eslint-plugin-import to v2.29.1
  • chore(deps): update dependency less-loader to v11.1.4
  • chore(deps): update nextjs monorepo to v13.5.6 (@next/eslint-plugin-next, next)
  • fix(deps): update ag-grid monorepo to v30.2.1 (@ag-grid-community/client-side-row-model, @ag-grid-community/core, @ag-grid-community/csv-export, @ag-grid-community/react, @ag-grid-community/styles)
  • fix(deps): update dependency @ant-design/icons to v4.8.3
  • fix(deps): update dependency @elastic/elasticsearch to v7.17.13
  • fix(deps): update dependency @react-google-maps/api to v2.19.3
  • fix(deps): update dependency antd to v4.24.16
  • fix(deps): update dependency axios to v1.6.8
  • fix(deps): update dependency change-case to v5.4.4
  • fix(deps): update dependency mingo to v6.4.14
  • fix(deps): update dependency mssql to v10.0.2
  • fix(deps): update dependency next-auth to v4.24.7
  • fix(deps): update dependency pdfmake to v0.2.10
  • fix(deps): update dependency pg to v8.11.5
  • fix(deps): update dependency redis to v4.6.13
  • fix(deps): update dependency remark-gfm to v3.0.1
  • fix(deps): update dependency sqlite3 to v5.1.7
  • fix(deps): update dependency swr to v2.2.5
  • fix(deps): update dependency yaml-loader to v0.8.1
  • chore(deps): update dependency @babel/core to v7.24.4
  • chore(deps): update dependency @changesets/cli to v2.27.1
  • chore(deps): update dependency @emotion/jest to v11.11.0
  • chore(deps): update dependency @shelf/jest-mongodb to v4.2.0
  • chore(deps): update dependency eslint to v8.57.0
  • chore(deps): update dependency eslint-config-prettier to v9.1.0
  • chore(deps): update dependency eslint-plugin-prettier to v5.1.3
  • chore(deps): update dependency eslint-plugin-react to v7.34.1
  • chore(deps): update dependency jest-canvas-mock to v2.5.2
  • chore(deps): update dependency less to v4.2.0
  • chore(deps): update dependency prettier to v3.2.5
  • chore(deps): update dependency turbo to v1.13.2
  • chore(deps): update dependency webpack to v5.91.0
  • chore(deps): update pnpm to v8.15.7
  • chore(deps): update swc monorepo (@swc/cli, @swc/core, @swc/jest, swc-loader)
  • chore(deps): update testing-library monorepo (@testing-library/dom, @testing-library/user-event)
  • fix(deps): update dependency @docsearch/react to v3.6.0
  • fix(deps): update dependency aws-sdk to v2.1599.0
  • fix(deps): update dependency chokidar to v3.6.0
  • fix(deps): update dependency classnames to v2.5.1
  • fix(deps): update dependency dompurify to v3.1.0
  • fix(deps): update dependency dotenv to v16.4.5
  • fix(deps): update dependency echarts to v5.5.0
  • fix(deps): update dependency fs-extra to v11.2.0
  • fix(deps): update dependency moment to v2.30.1
  • fix(deps): update dependency mongodb to v6.5.0
  • fix(deps): update dependency pino to v8.20.0
  • fix(deps): update dependency semver to v7.6.0
  • fix(deps): update dependency stripe to v14.25.0
  • fix(deps): update dependency yaml to v2.4.1
  • chore(deps): update actions/setup-node action to v4
  • chore(deps): update codecov/codecov-action action to v4
  • chore(deps): update dependency eslint to v9
  • chore(deps): update dependency less-loader to v12
  • chore(deps): update jest monorepo to v29 (major) (@jest/globals, jest, jest-diff, jest-environment-jsdom, jest-environment-node)
  • chore(deps): update nextjs monorepo to v14 (major) (@next/eslint-plugin-next, next)
  • chore(deps): update node.js to v20
  • chore(deps): update pnpm to v9
  • chore(deps): update testing-library monorepo (major) (@testing-library/dom, @testing-library/react)
  • fix(deps): update ag-grid monorepo to v31 (major) (@ag-grid-community/client-side-row-model, @ag-grid-community/core, @ag-grid-community/csv-export, @ag-grid-community/react, @ag-grid-community/styles)
  • fix(deps): update dependency @ant-design/icons to v5
  • fix(deps): update dependency @elastic/elasticsearch to v8
  • fix(deps): update dependency @sendgrid/mail to v8
  • fix(deps): update dependency antd to v5
  • fix(deps): update dependency commander to v12
  • fix(deps): update dependency google-spreadsheet to v4
  • fix(deps): update dependency knex to v3
  • fix(deps): update dependency ora to v8
  • fix(deps): update dependency react-icons to v5
  • fix(deps): update dependency rehype-raw to v7
  • fix(deps): update dependency stripe to v15
  • fix(deps): update remark (major) (react-markdown, remark-gfm)
  • ๐Ÿ” Create all pending approval PRs at once ๐Ÿ”

Detected dependencies

dockerfile
packages/cli/src/commands/init-docker/Dockerfile
  • node 18-buster
  • node 18-alpine
github-actions
.github/workflows/release.yaml
  • actions/checkout v4
  • actions/setup-node v3
  • changesets/action v1
.github/workflows/test-branches.yml
  • actions/checkout v4
  • pnpm/action-setup v2
  • actions/setup-node v3
  • codecov/codecov-action v3
.github/workflows/test-pulls.yml
  • actions/checkout v4
  • pnpm/action-setup v2
  • actions/setup-node v3
  • codecov/codecov-action v3
npm
package.json
  • @changesets/cli 2.26.2
  • eslint 8.54.0
  • eslint-config-prettier 9.0.0
  • eslint-import-resolver-node 0.3.9
  • eslint-plugin-import 2.29.0
  • eslint-plugin-jsx-a11y 6.8.0
  • eslint-plugin-prettier 5.0.1
  • eslint-plugin-react 7.33.2
  • eslint-plugin-react-hooks 4.6.0
  • prettier 3.1.0
  • turbo 1.10.16
  • pnpm 8.8.0
packages/api/package.json
  • @lowdefy/ajv 4.0.2
  • @lowdefy/helpers 4.0.2
  • @lowdefy/node-utils 4.0.2
  • @lowdefy/nunjucks 4.0.2
  • @lowdefy/operators 4.0.2
  • @lowdefy/operators-js 4.0.2
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/build/package.json
  • @lowdefy/ajv 4.0.2
  • @lowdefy/blocks-basic 4.0.2
  • @lowdefy/blocks-loaders 4.0.2
  • @lowdefy/helpers 4.0.2
  • @lowdefy/node-utils 4.0.2
  • @lowdefy/nunjucks 4.0.2
  • @lowdefy/operators 4.0.2
  • @lowdefy/operators-js 4.0.2
  • ajv 8.12.0
  • json5 2.2.3
  • yaml 2.3.4
  • yargs 17.7.2
  • @jest/globals 28.1.3
  • @lowdefy/actions-core 4.0.2
  • @lowdefy/actions-pdf-make 4.0.2
  • @lowdefy/blocks-aggrid 4.0.2
  • @lowdefy/blocks-algolia 4.0.2
  • @lowdefy/blocks-antd 4.0.2
  • @lowdefy/blocks-color-selectors 4.0.2
  • @lowdefy/blocks-echarts 4.0.2
  • @lowdefy/blocks-google-maps 4.0.2
  • @lowdefy/blocks-markdown 4.0.2
  • @lowdefy/blocks-qr 4.0.2
  • @lowdefy/connection-axios-http 4.0.2
  • @lowdefy/connection-elasticsearch 4.0.2
  • @lowdefy/connection-google-sheets 4.0.2
  • @lowdefy/connection-knex 4.0.2
  • @lowdefy/connection-mongodb 4.0.2
  • @lowdefy/connection-redis 4.0.2
  • @lowdefy/connection-sendgrid 4.0.2
  • @lowdefy/connection-stripe 4.0.2
  • @lowdefy/operators-change-case 4.0.2
  • @lowdefy/operators-diff 4.0.2
  • @lowdefy/operators-moment 4.0.2
  • @lowdefy/operators-mql 4.0.2
  • @lowdefy/operators-nunjucks 4.0.2
  • @lowdefy/operators-uuid 4.0.2
  • @lowdefy/operators-yaml 4.0.2
  • @lowdefy/plugin-auth0 4.0.2
  • @lowdefy/plugin-aws 4.0.2
  • @lowdefy/plugin-csv 4.0.2
  • @lowdefy/plugin-next-auth 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/cli/package.json
  • @lowdefy/helpers 4.0.2
  • @lowdefy/node-utils 4.0.2
  • axios 1.6.2
  • commander 11.1.0
  • decompress 4.2.1
  • decompress-targz 4.1.1
  • dotenv 16.3.1
  • ora 7.0.1
  • semver 7.5.4
  • uuid 9.0.1
  • yaml 2.3.4
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • node >=18
packages/client/package.json
  • @ant-design/icons 4.8.0
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/engine 4.0.2
  • @lowdefy/helpers 4.0.2
  • @lowdefy/layout 4.0.2
  • classnames 2.3.2
  • react 18.2.0
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @jest/globals 28.1.3
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/docs/package.json
  • @lowdefy/helpers 4.0.2
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/engine/package.json
  • @lowdefy/helpers 4.0.2
  • @lowdefy/operators 4.0.2
  • @jest/globals 28.1.3
  • @lowdefy/actions-core 4.0.2
  • @lowdefy/build 4.0.2
  • @lowdefy/operators-js 4.0.2
  • @lowdefy/operators-mql 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/layout/package.json
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/helpers 4.0.2
  • antd 4.24.14
  • react 18.2.0
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @jest/globals 28.1.3
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/operators/package.json
  • @lowdefy/helpers 4.0.2
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/actions/actions-core/package.json
  • @lowdefy/helpers 4.0.2
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/actions/actions-pdf-make/package.json
  • pdfmake 0.2.7
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/blocks/blocks-aggrid/package.json
  • @ag-grid-community/client-side-row-model 30.2.0
  • @ag-grid-community/core 30.2.0
  • @ag-grid-community/csv-export 30.2.0
  • @ag-grid-community/react 30.2.0
  • @ag-grid-community/styles 30.2.0
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/helpers 4.0.2
  • react 18.2.0
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/blocks/blocks-algolia/package.json
  • @docsearch/react 3.5.2
  • @lowdefy/block-utils 4.0.2
  • react 18.2.0
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/blocks/blocks-antd/package.json
  • @ant-design/icons 4.8.0
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/helpers 4.0.2
  • antd 4.24.14
  • classnames 2.3.2
  • moment 2.29.4
  • rc-motion 2.9.0
  • react 18.2.0
  • react-dom 18.2.0
  • tinycolor2 1.6.0
  • @emotion/jest 11.10.5
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @lowdefy/node-utils 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/blocks/blocks-basic/package.json
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/helpers 4.0.2
  • dompurify 3.0.6
  • react 18.2.0
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/blocks/blocks-color-selectors/package.json
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/blocks-antd 4.0.2
  • classnames 2.3.2
  • react 18.2.0
  • react-colorful 5.6.1
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-canvas-mock 2.4.0
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/blocks/blocks-echarts/package.json
  • @lowdefy/block-utils 4.0.2
  • echarts 5.4.3
  • echarts-for-react 3.0.2
  • react 18.2.0
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/blocks/blocks-google-maps/package.json
  • @lowdefy/block-utils 4.0.2
  • @react-google-maps/api 2.19.2
  • react 18.2.0
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/blocks/blocks-loaders/package.json
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/helpers 4.0.2
  • react 18.2.0
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/blocks/blocks-markdown/package.json
  • @lowdefy/block-utils 4.0.2
  • dompurify 3.0.6
  • react 18.2.0
  • react-dom 18.2.0
  • react-markdown 8.0.7
  • react-syntax-highlighter 15.5.0
  • rehype-raw 6.1.1
  • remark-gfm 3.0.0
  • @emotion/jest 11.10.5
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • @types/react 18.2.38
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/blocks/blocks-qr/package.json
  • @lowdefy/block-utils 4.0.2
  • html5-qrcode 2.3.8
  • react 18.2.0
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/connections/connection-axios-http/package.json
  • @lowdefy/helpers 4.0.2
  • axios 1.6.2
  • @lowdefy/ajv 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/plugins/connections/connection-elasticsearch/package.json
  • @elastic/elasticsearch 7.17.12
  • @lowdefy/helpers 4.0.2
  • @jest/globals 28.1.3
  • @lowdefy/ajv 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/plugins/connections/connection-google-sheets/package.json
  • @lowdefy/helpers 4.0.2
  • google-spreadsheet 3.3.0
  • mingo 6.4.9
  • moment 2.29.4
  • @jest/globals 28.1.3
  • @lowdefy/ajv 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/plugins/connections/connection-knex/package.json
  • @lowdefy/helpers 4.0.2
  • knex 2.5.1
  • mssql 10.0.1
  • mysql 2.18.1
  • pg 8.11.3
  • sqlite3 5.1.6
  • @jest/globals 28.1.3
  • @lowdefy/ajv 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/plugins/connections/connection-mongodb/package.json
  • @lowdefy/helpers 4.0.2
  • @next-auth/mongodb-adapter 1.1.3
  • mongodb 6.3.0
  • saslprep 1.0.3
  • @lowdefy/ajv 4.0.2
  • @shelf/jest-mongodb 4.1.7
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-node 28.1.3
  • next 13.5.4
  • next-auth 4.24.5
  • react 18.2.0
  • react-dom 18.2.0
packages/plugins/connections/connection-redis/package.json
  • @lowdefy/helpers 4.0.2
  • redis 4.6.11
  • @jest/globals 28.1.3
  • @lowdefy/ajv 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/plugins/connections/connection-sendgrid/package.json
  • @lowdefy/helpers 4.0.2
  • @sendgrid/mail 7.7.0
  • @jest/globals 28.1.3
  • @lowdefy/ajv 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/plugins/connections/connection-stripe/package.json
  • @lowdefy/helpers 4.0.2
  • stripe 14.5.0
  • @jest/globals 28.1.3
  • @lowdefy/ajv 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/plugins/operators/operators-change-case/package.json
  • @lowdefy/helpers 4.0.2
  • @lowdefy/operators 4.0.2
  • change-case 5.4.0
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/operators/operators-diff/package.json
  • @lowdefy/helpers 4.0.2
  • @lowdefy/operators 4.0.2
  • deep-diff 1.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/operators/operators-js/package.json
  • @lowdefy/helpers 4.0.2
  • @lowdefy/operators 4.0.2
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/operators/operators-moment/package.json
  • @lowdefy/operators 4.0.2
  • moment 2.29.4
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/operators/operators-mql/package.json
  • @lowdefy/helpers 4.0.2
  • @lowdefy/operators 4.0.2
  • mingo 6.4.9
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/operators/operators-nunjucks/package.json
  • @lowdefy/helpers 4.0.2
  • @lowdefy/nunjucks 4.0.2
  • @lowdefy/operators 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/operators/operators-uuid/package.json
  • @lowdefy/helpers 4.0.2
  • @lowdefy/operators 4.0.2
  • uuid 9.0.1
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/operators/operators-yaml/package.json
  • @lowdefy/helpers 4.0.2
  • @lowdefy/operators 4.0.2
  • yaml 2.3.4
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/plugins/plugin-auth0/package.json
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/plugins/plugins/plugin-aws/package.json
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/blocks-antd 4.0.2
  • @lowdefy/helpers 4.0.2
  • antd 4.24.14
  • aws-sdk 2.1459.0
  • react 18.2.0
  • react-dom 18.2.0
  • @emotion/jest 11.10.5
  • @lowdefy/ajv 4.0.2
  • @lowdefy/block-dev 4.0.2
  • @lowdefy/jest-yaml-transform 4.0.2
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/plugins/plugins/plugin-csv/package.json
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
packages/plugins/plugins/plugin-next-auth/package.json
  • next 13.5.4
  • next-auth 4.24.5
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • react 18.2.0
  • react-dom 18.2.0
packages/servers/server-community/package.json
  • @lowdefy/actions-core 4.0.2
  • @lowdefy/api 4.0.2
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/blocks-antd 4.0.2
  • @lowdefy/blocks-basic 4.0.2
  • @lowdefy/blocks-loaders 4.0.2
  • @lowdefy/client 4.0.2
  • @lowdefy/helpers 4.0.2
  • @lowdefy/layout 4.0.2
  • @lowdefy/node-utils 4.0.2
  • @lowdefy/operators-js 4.0.2
  • @lowdefy/plugin-next-auth 4.0.2
  • next 13.5.4
  • next-auth 4.24.5
  • pino 8.16.2
  • process 0.11.10
  • react 18.2.0
  • react-dom 18.2.0
  • react-icons 4.12.0
  • @lowdefy/build 4.0.2
  • @next/eslint-plugin-next 13.5.4
  • less 4.1.3
  • less-loader 11.1.3
  • next-with-less 3.0.1
  • webpack 5.89.0
  • yaml 2.3.4
  • yargs 17.7.2
  • node >=18
packages/servers/server-dev/package.json
  • @lowdefy/actions-core 4.0.2
  • @lowdefy/api 4.0.2
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/blocks-aggrid 4.0.2
  • @lowdefy/blocks-antd 4.0.2
  • @lowdefy/blocks-basic 4.0.2
  • @lowdefy/blocks-color-selectors 4.0.2
  • @lowdefy/blocks-echarts 4.0.2
  • @lowdefy/blocks-loaders 4.0.2
  • @lowdefy/blocks-markdown 4.0.2
  • @lowdefy/blocks-qr 4.0.2
  • @lowdefy/build 4.0.2
  • @lowdefy/client 4.0.2
  • @lowdefy/connection-axios-http 4.0.2
  • @lowdefy/engine 4.0.2
  • @lowdefy/helpers 4.0.2
  • @lowdefy/layout 4.0.2
  • @lowdefy/node-utils 4.0.2
  • @lowdefy/operators-change-case 4.0.2
  • @lowdefy/operators-diff 4.0.2
  • @lowdefy/operators-js 4.0.2
  • @lowdefy/operators-moment 4.0.2
  • @lowdefy/operators-mql 4.0.2
  • @lowdefy/operators-nunjucks 4.0.2
  • @lowdefy/operators-uuid 4.0.2
  • @lowdefy/operators-yaml 4.0.2
  • @lowdefy/plugin-next-auth 4.0.2
  • chokidar 3.5.3
  • dotenv 16.3.1
  • next 13.5.4
  • next-auth 4.24.5
  • opener 1.5.2
  • pino 8.16.2
  • process 0.11.10
  • react 18.2.0
  • react-dom 18.2.0
  • react-icons 4.12.0
  • swr 2.2.4
  • yaml 2.3.4
  • yargs 17.7.2
  • @next/eslint-plugin-next 13.5.4
  • less 4.1.3
  • less-loader 11.1.3
  • next-with-less 3.0.1
  • webpack 5.89.0
  • node >=18
packages/servers/server-enterprise/package.json
  • @lowdefy/actions-core 4.0.2
  • @lowdefy/api 4.0.2
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/blocks-antd 4.0.2
  • @lowdefy/blocks-basic 4.0.2
  • @lowdefy/blocks-loaders 4.0.2
  • @lowdefy/client 4.0.2
  • @lowdefy/helpers 4.0.2
  • @lowdefy/layout 4.0.2
  • @lowdefy/node-utils 4.0.2
  • @lowdefy/operators-js 4.0.2
  • @lowdefy/plugin-next-auth 4.0.2
  • next 13.5.4
  • next-auth 4.24.5
  • pino 8.16.2
  • process 0.11.10
  • react 18.2.0
  • react-dom 18.2.0
  • react-icons 4.12.0
  • @lowdefy/build 4.0.2
  • @next/eslint-plugin-next 13.5.4
  • less 4.2.0
  • less-loader 11.1.3
  • next-with-less 3.0.1
  • webpack 5.89.0
  • yaml 2.3.4
  • yargs 17.7.2
  • node >=18
packages/utils/ajv/package.json
  • @lowdefy/nunjucks 4.0.2
  • ajv 8.12.0
  • ajv-errors 3.0.0
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/utils/block-dev/package.json
  • @emotion/jest 11.10.5
  • @lowdefy/block-utils 4.0.2
  • @lowdefy/helpers 4.0.2
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • ajv 8.12.0
  • ajv-errors 3.0.0
  • jest 28.1.3
  • jest-serializer-html 7.1.0
  • react 18.2.0
  • react-dom 18.2.0
  • yaml-loader 0.8.0
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
packages/utils/block-utils/package.json
  • @emotion/css 11.11.2
  • @lowdefy/helpers 4.0.2
  • dompurify 3.0.6
  • react 18.2.0
  • react-dom 18.2.0
  • @babel/core 7.23.3
  • @emotion/jest 11.10.5
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • @testing-library/dom 8.19.1
  • @testing-library/react 13.4.0
  • @testing-library/user-event 14.4.3
  • copyfiles 2.4.1
  • jest 28.1.3
  • jest-environment-jsdom 28.1.3
  • jest-serializer-html 7.1.0
packages/utils/helpers/package.json
  • lodash.merge 4.6.2
  • @jest/globals 28.1.3
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • jest-diff 28.1.3
packages/utils/jest-yaml-transform/package.json
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
  • yaml 2.3.4
packages/utils/node-utils/package.json
  • @lowdefy/helpers 4.0.2
  • fs-extra 11.1.1
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • jest 28.1.3
packages/utils/nunjucks/package.json
  • @lowdefy/helpers 4.0.2
  • moment 2.29.4
  • @swc/cli 0.1.63
  • @swc/core 1.3.99
  • @swc/jest 0.2.29
  • clean-webpack-plugin 4.0.0
  • jest 28.1.3
  • nunjucks 3.2.4
  • swc-loader 0.2.3
  • webpack 5.89.0
  • webpack-cli 5.1.4
packages/website/package.json
  • @swc/cli 0.1.63
  • @swc/core 1.3.99

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

Button gets stuck in loading

Describe the bug
When using a button to call a popup container, the button gets stuck in loading state after the popup is closed.

To Reproduce

- id: button
  type: Button
  events:
    onClick:
      - id: open_modal
        type: CallMethod
        params:
          blockId: modal
          method: toggleOpen
          
- id: modal
  type: Modal

Expected behavior
Button should come out of loading when I close the modal.

Lowdefy Version
3.11.3

MVP: Finalize initial blocks

General

  • Investigate methods auto testing
  • Comment login code for now
  • Retry enzyme render tests with adapter updates

Block Examples & Schema Tests

Basic

  • Context
  • Box
  • Html
  • List
  • Span

Antd

  • Affix
  • Alert
  • Anchor
  • AutoComplete
  • Avatar
  • Badge
  • Breadcrumb
  • Button
  • ButtonSelector
  • Card
  • CheckboxSelector
  • Collapse
  • Comment
  • ConfirmModal
  • Content
  • ControlledList
  • DateRangeSelector
  • DateSelector
  • DateTimeSelector
  • Descriptions
  • Divider
  • Drawer
  • Footer
  • Header
  • Icon
  • Label
  • Layout
  • Menu
  • Message
  • MobileMenu
  • Modal
  • MonthSelector
  • MultipleSelector
  • Notification
  • NumberInput
  • PageHCF
  • PageHCSF
  • PageHeaderMenu
  • PageHSCF
  • PageSHCF
  • PageSiderMenu
  • Pagination
  • Paragraph
  • ParagraphInput
  • Progress
  • RadioSelector
  • RatingSlider
  • Result
  • S3UploadButton
  • Selector
  • Skeleton
  • Spin
  • Statistic
  • Switch
  • Tabs
  • TextArea
  • TextInput
  • Timeline
  • Title
  • TitleInput
  • WeekSelector

AmCharts

  • AmCharts4Pie
  • AmCharts4XY

AgGrid

  • AgGrid

Code Blocks

  • CodeEditor
  • CodeBlock

Color Selector

  • ColorSelector

Markdown

  • Markdown
  • MarkdownWithHtml

Race condition for displayMessage federation delay throws error.

Describe the bug
When a request is returned before displayMessage has completed loading to follow error occurs:

TypeError: this.context.window.displayMessage is not a function

To Reproduce

events:
      onInit:
        - id: fetch
          type: Request
          params: get_usersxxxxx # try to get a request which does not exisit.

Expected behavior
Hold of calling displayMessage until federation loading is done.

Lowdefy Version
3.10.2

Blocks retain value if value in state is set to undefined

Describe the bug
Blocks retain their block values when their value in state is set to undefined.

See line 299 in engine/Blocks.js:
block.value = type.isUndefined(stateValue) ? block.value : stateValue;

To reproduce
Configuration

blocks:
  - id: object.input1
    ...
  - id: object.input2
    ...
actions:
  onClick:
     - id: set
       type: SetState
       params:
         object: {}

It is expected that block inputs become null, but their values are not set to null.

When developing a custom block, localhost should not be cached

Is your feature request related to a problem? Please describe.
Build caches localhost blocks, so cache must be cleared anytime the block server restarts in order to refresh meta changes.

Describe the solution you'd like
When a type is resolved to localhost, no cache is required and type can be resolved directly on build.

Use _var as input for _ref path.

Use _var as input for _ref path.

Currently throws:

15:39:39 โœ– TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Object
15:39:39 โœ– The "path" argument must be of type string. Received an instance of Object

Use Case
file.yaml

_ref:
  path: template.yaml
  vars:
    schema: ../def.json

template.yaml

   field:
     _ref:
       path: 
          _schema
       transformer: change.js

Lowdefy Version
3.6.0

react-test-renderer should be a dependency of block-tools.

Describe the bug
react-test-renderer is used as a dependency by block-tools but is listed as a devDependency. When using block-tools from a project that is not in the monorepo, you get a module not found error, since react-test-renderer is not installed as a dependency when installing with yarn/npm

Add Object.defineProperty operator

Currently, there is no way to app properties to an object with a dynamic key.

Config (if using Object.defineProperty):

_object.defineProperty:
  on:
    a: 1
  key: b
  descriptor:
    value: 2

A better config might be needed.

Docs

Docs for blocks

Basic

  • Context
  • Box
  • DangerousHtml
  • Html
  • List
  • Span

Antd

  • Affix
  • Alert
  • Anchor
  • AutoComplete
  • Avatar
  • Badge
  • Breadcrumb
  • Button
  • ButtonSelector
  • Card
  • CheckboxSelector
  • Collapse
  • Comment
  • ConfirmModal
  • ControlledList
  • DateRangeSelector
  • DateSelector
  • DateTimeSelector
  • Descriptions
  • Divider
  • Drawer
  • Icon
  • Label
  • Menu
  • Message
  • MobileMenu
  • Modal
  • MonthSelector
  • MultipleSelector
  • Notification
  • NumberInput
  • PageHCF
  • PageHCSF
  • PageHeaderMenu
  • PageHSCF
  • PageSHCF
  • PageSiderMenu
  • Pagination
  • Paragraph
  • ParagraphInput
  • Progress
  • RadioSelector
  • RatingSlider
  • Result
  • S3UploadButton
  • Selector
  • Skeleton
  • Spin
  • Statistic
  • Switch
  • Tabs
  • TextArea
  • TextInput
  • Title
  • TitleInput
  • WeekSelector
  • Timeline

AmCharts

  • AmCharts4Pie
  • AmCharts4XY

Color Selector

  • ColorSelector
  • ChromeColorSelector
  • TwitterColorSelector
  • GithubColorSelector
  • SwatchesColorSelector
  • SliderColorSelector
  • CompactColorSelector
  • CircleColorSelector

Markdown

  • DangerousMarkdown
  • Markdown
  • MarkdownWithCode

Cannot set visible on a context block

Describe the bug
If visible is set to false on a context block, the page fails to load, even if the block is not the root context, or if visible is set to true in the onInit event.

To Reproduce

 id: test
type: PageHeaderMenu
events:
  onInit:
    - id: setState
      type: SetState
      params:
        visible: true
blocks:
  - id: visible
    type: Switch
  - id: con
    type: PageHeaderMenu
    visible:
      _state: visible

Access denied error should render error to user

Describe the bug
With openid connect auth, if a user gets access denied from the auth provider, the app only renders a blank screen on the callback route.

To Reproduce
Connect auth0 to a app, then sign in with a unauthorized user.

Expected behavior
Just render an error, not a blank screen.

Lowdefy Version
3.11.4

Fix error message when block type cannot be resolved

Describe the bug
Currently, the cli throws:

Error: Request failed with status code 404

To Reproduce
Use any unknown block type

Expected behavior
Throw type unresolved error like:

Error: Block type: ${type} could not be resolved. Please provide a valid type.url.

Lowdefy Version
v0.0.0-alpha.2

List as display type, and rename current List to ListInput

Is your feature request related to a problem? Please describe.
Working with lists require you to mange the list values in state, where all you want to do is display a list of data.

Describe the solution you'd like
List should be a display type with data property, and the current List block should be renamed to ListInput.

Block loading prop does not update or change.

Describe the bug
If a block fires callAction, the block loading prop does not change to true, however, actions.onClick.loading but since this is a nested prop, React does not update the block for this nested prop change.

To Reproduce
This code does not put the button into a loading state.

     - id: test
        type: Button
        actions:
          onClick:
            - id: fetch
              type: Request
              params: request_id

This code does put the button into a loading state because the SetState actions causes the button to rerender.

     - id: test
        type: Button
        actions:
          onClick:
           - id: set_state
              type: SetState
              params:
                ts:
                  _date: 0
            - id: fetch
              type: Request
              params: request_id

Expected behavior
The loading prop for blocks must update, if any _request on a block goes into loading or any action chain busy executing.

Lowdefy Version
v3.4.0

NumberInput button click does not inc or dec properly.

Describe the bug
Stepping a NumberInput with the buttons has inconsistent result when there is already a value on the field.

Reproduce
Create a NumberInput. Set a value. Try changing the value by using the buttons.

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.