Git Product home page Git Product logo

endava / beeq Goto Github PK

View Code? Open in Web Editor NEW
77.0 4.0 10.0 32.28 MB

BEEQ Design System, a web component library ruled by Endavan developers :)

Home Page: https://beeq.design

License: Apache License 2.0

Shell 0.08% JavaScript 0.54% TypeScript 74.40% HTML 0.05% SCSS 15.33% CSS 0.67% Handlebars 0.41% MDX 8.51%
component-library design-system ui-components web-components stenciljs tailwindcss components endava endavans

beeq's Introduction

BEEQ Design System

BEEQ, a web component library initiative

This repository holds the source code of the web components present in the BEEQ Design System.

⚠️ Before Starting ⚠️

Structure 🧩

The project has been structured as an NX monorepo :

├── 📁 packages
  ├── 📁 beeq
  ├── 📁 beeq-angular
  ├── 📁 beeq-react
  ├── 📁 beeq-vue
  ├── ...
  ├── 📁 beeq-tailwindcss
  ├── ...
├── 📁 tools
├── package.json
├── package-lock.json

where:

Dependencies 📡

We recommend the use of Volta to manage Node and NPM versions. The installation process is pretty straightforward, and as referenced on their official site:

With Volta, you can select a Node engine once and then stop worrying about it. You can switch between projects and stop having to manually switch between Nodes.

Once you have Volta installed, whenever you change to the BEEQ folder locally, it will switch to the right Node and NPM versions pinned in the package.json:

  "volta": {
    "node": "20.11.1",
    "npm": "10.4.0"
  }

Volta is not mandatory, you can still use any Node/NPM setup that fits you most, just keep in mind that you'll need:

Usage

The BEEQ components are published to the NPM package manager registry. You can use the @beeq/core or any of the framework-specific wrappers (@beeq/angular, @beeq/react) depending on the technology stack of your project. Make sure the follow the usage instructions for each package:

Feel free to check our Storybook to see all the BEEQ components released. There you can find all the component's APIs (properties, events, and methods exposed) along with the variations that each component allows.

Running the project 🏃‍

To develop/extend components on the BEEQ Design System, please fork this repo in GitHub and clone it locally to a new directory:

git clone https://github.com/<YOUR_GITHUB_USERNAME>/BEEQ.git BEEQ-Design-System
cd BEEQ-Design-System
git checkout main

Installation ⚙️

Simply run:

npm ci
# Make sure to build first the project before starting it
npm run build
npm start

Start coding 😃!

Build 📦

For a Production build, just run:

npm run build

Test 🧪

BEEQ uses Jest for unit tests and Jest and Puppeteer for end-to-end tests.

You can run all the tests once, by executing:

npm run test

🚨 If you get an error similar to the one below, try to check out locally the main branch and run the tests again.

fatal: Not a valid object name main
fatal: No such ref: 'main'
nx affected

Generate component

BEEQ comes with a component generator that saves you time when creating the skeleton for a new component. To use the generator, you just need to run the following command and follow the instructions in your prompt CLI:

npm run g

Contributing 💻

💥 If you are in the mood and want to help 🙂, please read carefully our Contributing Guidelines and Development Standards.

❗️ When working on a bug fix, new feature, etc., please notice that we follow a GitFlow workflow. Make sure to follow the instructions from the Contributing Branching Strategy guidelines about how to create your branch when starting to work on a bug/hot fixing, new feature, etc.

Documentation 📖

StencilJs

Need help? Check out the Stenciljs docs here (https://stenciljs.com/).

Tailwind CSS

We use Tailwind CSS for the style of the components, please take a look at their documentation here: (https://tailwindcss.com/docs/)

Thanks 🙏

Chromatic

We would like to express our sincere gratitude to Chromatic for providing the visual testing platform that enables us to review UI changes and identify visual regressions.

Nx.dev

Thank you to the Nx team for helping us streamline our CI process and efficiently manage our Monorepo.

beeq's People

Contributors

amturian avatar andreea215 avatar cata1989 avatar dependabot[bot] avatar dgonzalezr avatar endv-bogdanb avatar hamudehomsi avatar magdaavram avatar mihairusu88 avatar pavelescuvictor avatar renovate[bot] 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

Watchers

 avatar  avatar  avatar  avatar

beeq's Issues

Dependency Dashboard

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

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(deps): update dependency @swc/core to v1.7.18
  • chore(deps): update dependency husky to v9.1.5
  • chore(deps): update dependency lint-staged to v15.2.9
  • chore(deps): update dependency ts-jest to v29.2.5
  • chore(deps): update dependency @commitlint/cli to v19.4.0
  • chore(deps): update dependency tslib to v2.7.0
  • chore(deps): update node.js to v20.17.0
  • chore(deps): update dependency puppeteer to v23

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Pending Status Checks

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

  • chore(deps): update dependency eslint-import-resolver-typescript to v3.6.3
  • chore(deps): update dependency jsdom to v24.1.3
  • chore(deps): update nx to v19.6.3 (@nx/angular, @nx/devkit, @nx/esbuild, @nx/eslint, @nx/eslint-plugin, @nx/jest, @nx/js, @nx/plugin, @nx/react, @nx/rollup, @nx/storybook, @nx/workspace, nx)
  • chore(deps): update dependency jsdom to v25

Ignored or Blocked

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

Detected dependencies

circleci
.circleci/config.yml
  • nx 1.6.2
github-actions
.github/actions/cache-deps/action.yml
  • actions/cache v4
.github/workflows/publish.yml
  • actions/checkout v4
  • volta-cli/action v4
  • bitovi/github-actions-storybook-to-github-pages v1.0.3
npm
package.json
  • @angular/core 18.2.1
  • @angular/forms 18.2.1
  • @angular/router 18.2.1
  • react 18.3.1
  • react-dom 18.3.1
  • rxjs 7.8.1
  • tslib 2.6.3
  • zone.js 0.14.10
  • @angular-devkit/build-angular 18.2.1
  • @angular-devkit/core 18.2.1
  • @angular-devkit/schematics 18.2.1
  • @angular-eslint/eslint-plugin 18.3.0
  • @angular-eslint/eslint-plugin-template 18.3.0
  • @angular/cli 18.2.1
  • @angular/compiler-cli 18.2.1
  • @angular/language-service 18.2.1
  • @babel/core 7.25.2
  • @babel/preset-react 7.24.7
  • @beeq/storybook-addon-html 6.0.0
  • @chromatic-com/storybook 1.7.0
  • @commitlint/cli 19.3.0
  • @commitlint/config-angular 19.3.0
  • @commitlint/config-conventional 19.2.2
  • @jscutlery/semver 5.3.1
  • @nx/angular 19.6.2
  • @nx/devkit 19.6.2
  • @nx/esbuild 19.6.2
  • @nx/eslint 19.6.2
  • @nx/eslint-plugin 19.6.2
  • @nx/jest 19.6.2
  • @nx/js 19.6.2
  • @nx/plugin 19.6.2
  • @nx/react 19.6.2
  • @nx/rollup 19.6.2
  • @nx/storybook 19.6.2
  • @nx/workspace 19.6.2
  • @nxext/stencil 19.0.0
  • @rollup/plugin-url 8.0.2
  • @schematics/angular 18.2.1
  • @stencil/angular-output-target 0.8.4
  • @stencil/core 4.20.0
  • @stencil/react-output-target 0.5.3
  • @stencil/sass 3.0.12
  • @stencil/vue-output-target 0.8.9
  • @storybook/addon-a11y 8.2.9
  • @storybook/addon-actions 8.2.9
  • @storybook/addon-docs 8.2.9
  • @storybook/addon-essentials 8.2.9
  • @storybook/addon-links 8.2.9
  • @storybook/builder-vite 8.2.9
  • @storybook/core-server 8.2.9
  • @storybook/mdx2-csf 1.1.0
  • @storybook/preview-api 8.2.9
  • @storybook/web-components 8.2.9
  • @storybook/web-components-vite 8.2.9
  • @swc-node/register 1.10.9
  • @swc/cli 0.4.0
  • @swc/core 1.7.14
  • @swc/helpers 0.5.12
  • @testing-library/dom 10.4.0
  • @testing-library/react 16.0.0
  • @types/jest 29.5.12
  • @types/mdx 2.0.13
  • @types/node 22.5.0
  • @types/react 18.3.4
  • @types/react-dom 18.3.0
  • @typescript-eslint/eslint-plugin 7.18.0
  • @typescript-eslint/parser 7.18.0
  • autoprefixer 10.4.20
  • babel-jest 29.7.0
  • chromatic 11.7.1
  • core-js 3.38.1
  • decompress 4.2.1
  • eslint 8.57.0
  • eslint-config-prettier 9.1.0
  • eslint-import-resolver-typescript 3.6.1
  • eslint-plugin-import 2.29.1
  • eslint-plugin-jsx-a11y 6.9.0
  • eslint-plugin-prettier 5.2.1
  • eslint-plugin-react 7.35.0
  • eslint-plugin-react-hooks 4.6.2
  • eslint-plugin-storybook 0.8.0
  • fs-extra 11.2.0
  • husky 9.1.4
  • jest 29.7.0
  • jest-environment-jsdom 29.7.0
  • jsdom 24.1.1
  • jsonc-eslint-parser 2.4.0
  • lint-staged 15.2.8
  • lit 3.2.0
  • lit-html 3.2.0
  • nanospinner 1.1.0
  • ng-packagr 18.2.1
  • ngx-deploy-npm 8.2.0
  • npm-run-all 4.1.5
  • nx 19.6.2
  • nx-stylelint 17.1.5
  • patch-package 8.0.0
  • plop 4.0.1
  • postcss 8.4.41
  • postcss-import 16.1.0
  • postcss-preset-env 10.0.2
  • postcss-url 10.1.3
  • prettier 3.3.3
  • prettier-plugin-tailwindcss 0.6.6
  • puppeteer 22.15.0
  • react-syntax-highlighter 15.5.0
  • rimraf 6.0.1
  • stencil-tailwind-plugin 1.8.0
  • storybook 8.2.9
  • stylelint 16.8.2
  • stylelint-config-standard 36.0.1
  • stylelint-config-standard-scss 13.1.0
  • tailwindcss 3.4.10
  • tailwindcss-theme-swapper 0.12.0
  • ts-jest 29.2.4
  • ts-node 10.9.2
  • typescript 5.5.4
  • vite 5.4.2
  • vite-plugin-turbosnap 1.0.3
  • vite-tsconfig-paths 5.0.1
  • vue 3.4.38
  • node 20.16.0
  • npm 10.8.2

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

Bug: bq-select scss variable missing declaration

BEEQ package

beeq/core

BEEQ version

1.3.3

Current Behavior

BqSelect is missing declaration of --bq-select--gap-label.

image

Expected Behavior

--bq-select--gap-label should be defined inside select/scss/bq-select.variables.scss

Steps to Reproduce

Search inside bee-q codebase --bq-select--gap-label, there is not definition.

Code Reproduction URL

No response

Your Environment

No response

Additional Information

No response

Bug: bq-select does not update when value is change externally

BEEQ package

beeq/core

BEEQ version

1.3.0

Current Behavior

bq-select with multiple property does not update when value is updated externally.

Expected Behavior

bq-select should react to external change of value and update input.

Steps to Reproduce

Navigate to a instance of @beeq/core. In browser console

  1. document.querySelector("bq-select").value = JSON.stringify(["running"])

Code Reproduction URL

No response

Your Environment

No response

Additional Information

No response

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.json5
Error type: Invalid JSON5 (parsing failed)
Message: JSON5.parse error: JSON5: invalid character '\'' at 46:60

Feat: add stroke size CSS variables for consistency and update usages

Describe the feature

To enhance the consistency of our project's design elements, we need to introduce a standardized stroke size across the repository.

Describe the use case for this feature

Standardizing stroke sizes ensures a consistent and cohesive visual style across the application. This improves user experience by maintaining uniformity in UI elements like icons and borders. Additionally, using variables for stroke sizes simplifies maintenance and allows for easy updates, enhancing the scalability of our design system.

Describe the solution you'd like

Define Stroke Size Variables:

Add new variables for stroke sizes in the appropriate configuration or style file (e.g., variables.scss, config.js, etc.).
Ensure these variables cover the range of stroke sizes used throughout the project.

Update Existing Stroke Sizes:

Identify all instances in the codebase where stroke sizes are hardcoded.
Replace these hardcoded values with the newly defined stroke size variables.
Testing:

After updating the stroke sizes, thoroughly test the application to ensure that the changes do not negatively impact the UI/UX.

Pay special attention to elements that heavily rely on stroke sizes, such as icons, borders, and shapes.

Documentation:

Update any relevant documentation to reflect the new stroke size variables.
Provide examples of how to use these variables in the documentation.

Related Code

No response

Additional Information

No response

Feat: Enable tooltip for slider

Describe the feature

The purpose of this feature is to have the ability to show a <bq-tooltip> to the slider thumb(s) for single and range variants.

Describe the use case for this feature

Showing a tooltip when the slider thumb(s) is hovered (or making it always visible) will provide consumers with better feedback when setting the slider value.

Describe the solution you'd like

Related Code

Additional Information

Feat: Drawer component

Describe the feature

We need a Drawer component that consumers can use in their projects/apps.

Describe the use case for this feature

Sometimes users or consumers need to display information details from a list without navigating away from it.

Describe the solution you'd like

The drawer should have 3 slots:

  • Header or Title
  • Body
  • Footer

The drawer should be able to slide in/out from a side of the page, the side can be set through a property/attribute (e.g.: placement: 'left' | 'right'. Should we consider the top and bottom as well? (e.g.: https://ant.design/components/drawer).

The user can close the drawer by clicking the X icon on the Header (near the title) or clicking outside the drawer. Still, this behavior should be flexible, meaning that the drawer should allow consumers to set whether the drawer closes when clicking outside (true by default).

The width of the drawer can be customized as well, according to Figma: 320px default.

Events to consider

  • open: triggered when the drawer will open
  • close: triggered when the drawer will close
  • afterClose: triggered after the drawer has closed
  • afterOpen: triggered after the drawer has open

Related Code

No response

Additional Information

Figma: https://www.figma.com/file/2VS47PTSkQWJkr7H6DpAdR/BEEQ-Design-System-(v1.0)?type=design&node-id=3991%3A54955&mode=design&t=IM6eKno8O3mv7ODZ-1

Bug: bq-select leaks bqClose event from bq-tag

BEEQ package

beeq/core

BEEQ version

1.3.0

Current Behavior

bq-select with multiple property leaks bqClose event emitted by tag when closed.

Expected Behavior

bq-select should stop the propagation of bqClose.

Steps to Reproduce

Navigate to a instance of @beeq/core. In browser console

  1. document.querySelector("bq-select").addEventListener("bqClose",console.log)
  2. Close a tag
Screen.Recording.2024-04-25.at.09.46.16.mov

Code Reproduction URL

No response

Your Environment

No response

Additional Information

No response

Bug: the Side menu does not display correctly the item's tooltip when collapsed

BEEQ package

beeq/core

BEEQ version

1.2.0

Current Behavior

The side menu does not show the tooltip of the menu items when is collapsed.

CleanShot 2024-04-15 at 14 36 04@2x

Expected Behavior

It should display the tooltip of each menu item on hover when the Side menu is collapsed.

Steps to Reproduce

It can be reproduced in the current storybook (related to the last version released: v1.2.0):
https://storybook.beeq.design/?path=/story/components-side-menu--collapse

Code Reproduction URL

https://storybook.beeq.design/?path=/story/components-side-menu--collapse

Your Environment

No response

Additional Information

No response

Bug: the Slider component does not reflect value changes with `ngModel` in Angular

BEEQ package

beeq/angular

BEEQ version

1.3.1

Current Behavior

When changing the value of the Slider component in an Angular project, using ngModel, the model does not get updated properly.

Expected Behavior

Using ngModel in the Slider component should guarantee that the model is updated properly when the value changes.

Steps to Reproduce

  1. Create an Angular project that uses @beeq/core and @beeq/angular.
  2. After setting up the project, add a <bq-slider> to the template:
export class AppComponent {
  ...
  sliderValue = [25, 75];

  ...

  onSliderChange(ev: CustomEvent<{ value: string | number | number[] }>) {
    console.log('onSliderChange', ev.detail.value);
    console.log('Slider value changed!', this.sliderValue);
  }
}
<bq-slider
  type="range"
  debounce-time="250"
  enable-value-indicator
  [(ngModel)]="sliderValue"
  (bqChange)="onSliderChange()"
  ngDefaultControl
></bq-slider>
  1. If we change the slider value, we will see that the model (sliderValue) does not get updated.

Code Reproduction URL

https://codesandbox.io/p/devbox/beeq-with-angular-cs7xxf?file=%2Fsrc%2Fapp%2Fapp.component.html%3A14%2C4

Your Environment

No response

Additional Information

No response

Bug: Dialog closes when pressing Esc key even if `disable-close-esc-keydown` is enabled

BEEQ package

beeq/core

BEEQ version

1.1.0

Current Behavior

When using the <bq-dialog> component and enabling the disableCloseEscKeydown, the dialog gets closed.

Expected Behavior

The dialog should not close if disableCloseEscKeydown is enabled.

<bq-dialog disable-close-esc-key-down> ... </bq-dialog>

Steps to Reproduce

  1. Go to Storybook: https://storybook.beeq.design/?path=/story/components-dialog--default
  2. Enable disable-close-esc-keydown in the Controls panel
  3. Press the Esc key
  4. The dialog will close when it shouldn't.

Code Reproduction URL

No response

Your Environment

No response

Additional Information

CleanShot.2024-04-01.at.13.55.53.mp4

Bug: vite fails to resolve correctly @beeq/core/dist/* paths

BEEQ package

beeq/react

BEEQ version

1.4.0

Current Behavior

✘ [ERROR] Missing "./dist/components/bq-accordion.js" specifier in "@beeq/core" package [plugin vite:dep-pre-bundle]

node_modules/@beeq/react/src/components.js:5:57:
  5 │ ...ineBqAccordion } from '@beeq/core/dist/components/bq-accordion.js';
    ╵                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This error came from the "onResolve" callback registered here:

node_modules/esbuild/lib/main.js:1293:20:
  1293 │       let promise = setup({

Expected Behavior

Should not fail.

Steps to Reproduce

  1. npm create vite@latest
  2. Pick react with typescript with swc
  3. cd project && npm i
  4. npm i @beeq/{core,react}
  5. add this to App.tsx
import './App.css'
import { BqButton } from '@beeq/react'

function App() {
  return <BqButton />
}

export default App

Code Reproduction URL

No response

Your Environment

No response

Additional Information

No response

Bug: range slider thumb gets stuck at 100%

BEEQ package

beeq/core

BEEQ version

1.4.0

Current Behavior

On range slider when the left thumb gets to the right end the thumb cannot be moved.

Expected Behavior

On range slider when the left thumb gets to the right end the thumb should moved.

Steps to Reproduce

Go to a beeq instance where there is a range slider. Move the left thumb all the way to the right.

Screen.Recording.2024-05-28.at.21.17.39.mov

Code Reproduction URL

No response

Your Environment

No response

Additional Information

No response

Bug: Date Picker multi-type selection issue with months >=2

BEEQ package

beeq/core

BEEQ version

1.4.0

Current Behavior

  1. Open the Date Picker with Multi-type selection and months set to 2 or more.
  2. Begin selecting multiple months.
  3. Click on a month in the right calendar.
  4. The calendar shifts to the next set of months.
  5. The selected months are not visible.
  6. Closing and reopening the dropdown is required to see the selection. 👇
issue_multi_date_picker.mov

Expected Behavior

  1. Open the Date Picker with Multi-type selection and months set to 2 or more.
  2. Begin selecting multiple months.
  3. Click on a month in the right calendar.
  4. The calendar should remain on the current set of months, displaying all selected months.
  5. The selected months should be immediately visible without needing to close and reopen the dropdown.

Steps to Reproduce

Mentioned above.👆

Code Reproduction URL

No response

Your Environment

No response

Additional Information

No response

Bug: BqSelect does not render/display the initial value defined

BEEQ package

beeq/react

BEEQ version

1.2.0

Current Behavior

BqSelect: initial value is not displayed in the input, although the corresponding option is marked as active (as expected).

Expected Behavior

BqSelect: the initial value should be displayed when the component loads.

Steps to Reproduce

function App() {
  const [selectedVale, setSelectedValue] = useState("Active");

  const handleSelect = (
    ev: CustomEvent<{ value: string | number | string[] }>
  ) => setSelectedValue(String(ev.detail.value));

  return (
    <div className="container">
      <p>Selected value: {selectedVale}</p>
      <br />
      <BqSelect
        name="select"
        disableClear={true}
        placeholder="Select a value"
        value={selectedVale}
        onBqSelect={handleSelect}
      >
        <BqOption value="Active">Active</BqOption>
        <BqOption value="Arhived">Arhived</BqOption>
      </BqSelect>
    </div>
  );
}

Code Reproduction URL

CodeSanbox example

Your Environment

No response

Additional Information

No response

Bug: bq-checkbox indeterminate property is wrongly typed

BEEQ package

beeq/core

BEEQ version

1.3.0

Current Behavior

bq-checkbox indeterminate property is typed as false

Expected Behavior

bq-checkbox indeterminate property is typed as boolean

Steps to Reproduce

In a project that uses typescript and react, paste the following snippet

      <BqCheckbox indeterminate></BqCheckbox>
image

Code Reproduction URL

No response

Your Environment

No response

Additional Information

No response

Bug: bq-slider lower value updated to max value

BEEQ package

beeq/core

BEEQ version

1.3.0

Current Behavior

When upper value is max value, upon changing lower value it is getting updated to max value.

Expected Behavior

Lower value should not be updated to max value.

Steps to Reproduce

Navigate to a instance of @beeq/core. In browser console

  1. document.querySelector("bq-slider").value= JSON.stringify([30, 100])
  2. document.querySelector("bq-slider").value= JSON.stringify([31, 100])
Screen.Recording.2024-04-23.at.17.38.35.mov

Code Reproduction URL

No response

Your Environment

No response

Additional Information

No response

Bug: unable to set or drag the Slider down to `0` value

BEEQ package

beeq/core

BEEQ version

1.2.0

Current Behavior

The slider component cannot be set to 0 value. When dragging the thumb down to 0, it gets stuck on 1 but never riches the 0 value.

Expected Behavior

Able to set the slider value to 0, even by dragging the slider thumb.

Steps to Reproduce

It can be reproduced in Storybook: https://storybook.beeq.design/?path=/story/components-slider--single&args=value-indicator:!true

  1. Enable value-indicator attribute
  2. Drag the slider thumb down to 0

Code Reproduction URL

https://storybook.beeq.design/?path=/story/components-slider--single&args=value-indicator:!true

Your Environment

No response

Additional Information

CleanShot.2024-04-11.at.09.07.35.mp4

Bug: Accordion expand/collapse animation isn't smooth

BEEQ package

beeq/core

BEEQ version

latest

Current Behavior

When expanding or collapsing an Accordion item, the animation seems a bit weird and is not as smooth as it should be it is like the text gets displayed some milliseconds before the accordion body content expands.

CleanShot.2024-03-07.at.14.29.30.mp4

Expected Behavior

The animation should be smooth, with no content overlap, and no quirk or jump. Something similar to this code pen:
https://codepen.io/giana/pen/OrpdLK

Steps to Reproduce

The current issue can be also checked on the officiant documentation:
https://www.beeq.design/3d466e231/p/713eae-accordion/b/155c3d

Code Reproduction URL

No response

Your Environment

No response

Additional Information

No response

Feat: add support for multiple selections on the Select component

Describe the feature

I would like to have the possibility to select multiple options on the <BqSelect> component.

Describe the use case for this feature

Sometimes projects require having a multiple selection for use cases like filters.

Describe the solution you'd like

With the addition of a new property: multiple we could set a slightly different behavior for the select to allow multiple selections. On each selection, a tag is shown to display the text of the option selected. We could also delimit how many tags to show and display a +n after that.

Related Code

No response

Additional Information

Figma: https://www.figma.com/file/2VS47PTSkQWJkr7H6DpAdR/BEEQ-Design-System-(v1.0)?type=design&node-id=6614%3A36113&mode=design&t=WKqJqQpUSFH3Isug-1

Feat: Progress component

Describe the feature

Describe the use case for this feature

Describe the solution you'd like

Try to use the native progress HTML element under the hood
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress

Check the article below for applying custom styles:
https://nikitahl.com/progress-bar-css

Related Code

Additional Information

Figma: https://www.figma.com/file/2VS47PTSkQWJkr7H6DpAdR/BEEQ-Design-System-(v1.0)?type=design&node-id=3991%3A54962&mode=design&t=IM6eKno8O3mv7ODZ-1

Bug: the Slider layout breaks if the parent has text alignment

BEEQ package

beeq/core

BEEQ version

1.3.1

Current Behavior

When setting text alignment in a container that has inside a BqSlider component, the layout of the slider breaks since the alignment gets reflected also in the slider content (eg. in the span elements used under the hood).

<div style="text-align: center;">
  <BqSlider type="range" value={[40, 80]} />
</div>

Expected Behavior

The Slider layout should be consistence regardless of the container style applied.

Steps to Reproduce

  1. Open Beeq Storybook and to the Slider range example.
  2. Open the Browser Devtools and set a text-alignment: center in the div container that holds the <bq-slider>

CleanShot 2024-05-15 at 15 07 14@2x

Code Reproduction URL

No response

Your Environment

No response

Additional Information

No response

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.