From e8147be0ec88bfacac0474f3b72edd38ee992b4c Mon Sep 17 00:00:00 2001 From: Jonas Pfalzgraf Date: Fri, 31 Jul 2026 12:02:49 +0000 Subject: [PATCH 1/5] update --- AGENT.md | 67 +++ README.md | 20 +- bun.lock | 511 ++++++++++++++---- docs/.vitepress/config.ts | 10 + docs/components/avatar-group.md | 87 +++ docs/components/banner.md | 93 ++++ docs/components/button-group.md | 75 +++ docs/components/file-upload.md | 116 ++++ docs/components/index.md | 22 +- docs/components/kbd.md | 81 +++ docs/components/number-input.md | 126 +++++ docs/components/popover.md | 97 ++++ docs/components/rating.md | 103 ++++ docs/components/stepper.md | 103 ++++ docs/components/timeline.md | 96 ++++ docs/guide/installation.md | 4 +- docs/guide/migration-from-1-1-0.md | 2 +- package.json | 38 +- src/components/accordion/BqAccordion.ts | 8 +- src/components/alert/BqAlert.ts | 11 +- src/components/avatar-group/BqAvatarGroup.ts | 154 ++++++ src/components/avatar-group/index.ts | 1 + src/components/avatar/BqAvatar.ts | 8 +- src/components/badge/BqBadge.ts | 8 +- src/components/banner/BqBanner.ts | 123 +++++ src/components/banner/index.ts | 1 + src/components/breadcrumbs/BqBreadcrumbs.ts | 11 +- src/components/button-group/BqButtonGroup.ts | 115 ++++ src/components/button-group/index.ts | 1 + src/components/button/BqButton.ts | 11 +- src/components/card/BqCard.ts | 8 +- src/components/checkbox/BqCheckbox.ts | 11 +- src/components/chip/BqChip.ts | 11 +- src/components/dialog/BqDialog.ts | 101 +--- src/components/divider/BqDivider.ts | 8 +- src/components/drawer/BqDrawer.ts | 100 +--- .../dropdown-menu/BqDropdownMenu.ts | 159 ++---- src/components/empty-state/BqEmptyState.ts | 8 +- src/components/file-upload/BqFileUpload.ts | 371 +++++++++++++ src/components/file-upload/index.ts | 1 + src/components/icon-button/BqIconButton.ts | 8 +- src/components/index.ts | 10 + src/components/input/BqInput.ts | 8 +- src/components/kbd/BqKbd.ts | 104 ++++ src/components/kbd/index.ts | 1 + src/components/number-input/BqNumberInput.ts | 346 ++++++++++++ src/components/number-input/index.ts | 1 + src/components/pagination/BqPagination.ts | 11 +- src/components/popover/BqPopover.ts | 242 +++++++++ src/components/popover/index.ts | 1 + src/components/progress/BqProgress.ts | 8 +- src/components/radio/BqRadio.ts | 11 +- src/components/rating/BqRating.ts | 214 ++++++++ src/components/rating/index.ts | 1 + .../segmented-control/BqSegmentedControl.ts | 8 +- src/components/select/BqSelect.ts | 8 +- src/components/skeleton/BqSkeleton.ts | 8 +- src/components/slider/BqSlider.ts | 11 +- src/components/spinner/BqSpinner.ts | 8 +- src/components/stat-card/BqStatCard.ts | 10 +- src/components/stepper/BqStepper.ts | 247 +++++++++ src/components/stepper/index.ts | 1 + src/components/switch/BqSwitch.ts | 11 +- src/components/table/BqTable.ts | 11 +- src/components/tabs/BqTabs.ts | 8 +- src/components/textarea/BqTextarea.ts | 8 +- src/components/timeline/BqTimeline.ts | 144 +++++ src/components/timeline/index.ts | 1 + src/components/toast/BqToast.ts | 11 +- src/components/tooltip/BqTooltip.ts | 112 ++-- src/i18n/en.ts | 38 ++ src/index.ts | 20 + src/utils/component.ts | 167 ++++++ src/utils/dom.ts | 74 +++ src/utils/index.ts | 13 +- src/utils/styles.ts | 79 ++- stories/avatar-group.stories.ts | 32 ++ stories/banner.stories.ts | 55 ++ stories/button-group.stories.ts | 36 ++ stories/file-upload.stories.ts | 44 ++ stories/kbd.stories.ts | 33 ++ stories/number-input.stories.ts | 60 ++ stories/popover.stories.ts | 49 ++ stories/rating.stories.ts | 46 ++ stories/stepper.stories.ts | 40 ++ stories/timeline.stories.ts | 58 ++ tests/component-utils.test.ts | 191 +++++++ tests/new-components.test.ts | 461 ++++++++++++++++ tests/styles.test.ts | 74 +++ 89 files changed, 5440 insertions(+), 584 deletions(-) create mode 100644 docs/components/avatar-group.md create mode 100644 docs/components/banner.md create mode 100644 docs/components/button-group.md create mode 100644 docs/components/file-upload.md create mode 100644 docs/components/kbd.md create mode 100644 docs/components/number-input.md create mode 100644 docs/components/popover.md create mode 100644 docs/components/rating.md create mode 100644 docs/components/stepper.md create mode 100644 docs/components/timeline.md create mode 100644 src/components/avatar-group/BqAvatarGroup.ts create mode 100644 src/components/avatar-group/index.ts create mode 100644 src/components/banner/BqBanner.ts create mode 100644 src/components/banner/index.ts create mode 100644 src/components/button-group/BqButtonGroup.ts create mode 100644 src/components/button-group/index.ts create mode 100644 src/components/file-upload/BqFileUpload.ts create mode 100644 src/components/file-upload/index.ts create mode 100644 src/components/kbd/BqKbd.ts create mode 100644 src/components/kbd/index.ts create mode 100644 src/components/number-input/BqNumberInput.ts create mode 100644 src/components/number-input/index.ts create mode 100644 src/components/popover/BqPopover.ts create mode 100644 src/components/popover/index.ts create mode 100644 src/components/rating/BqRating.ts create mode 100644 src/components/rating/index.ts create mode 100644 src/components/stepper/BqStepper.ts create mode 100644 src/components/stepper/index.ts create mode 100644 src/components/timeline/BqTimeline.ts create mode 100644 src/components/timeline/index.ts create mode 100644 src/utils/component.ts create mode 100644 stories/avatar-group.stories.ts create mode 100644 stories/banner.stories.ts create mode 100644 stories/button-group.stories.ts create mode 100644 stories/file-upload.stories.ts create mode 100644 stories/kbd.stories.ts create mode 100644 stories/number-input.stories.ts create mode 100644 stories/popover.stories.ts create mode 100644 stories/rating.stories.ts create mode 100644 stories/stepper.stories.ts create mode 100644 stories/timeline.stories.ts create mode 100644 tests/component-utils.test.ts create mode 100644 tests/new-components.test.ts create mode 100644 tests/styles.test.ts diff --git a/AGENT.md b/AGENT.md index 132fd19..4128e35 100644 --- a/AGENT.md +++ b/AGENT.md @@ -22,6 +22,73 @@ This repository is `@bquery/ui`, a framework-agnostic Web Components library bui 5. Treat import side effects (`import '@bquery/ui'`) and per-component entrypoints (`@bquery/ui/components/`) as the canonical registration model; `registerAll()` is deprecated compatibility-only. 6. When touching versioned install snippets or release-facing docs, keep pinned CDN examples aligned with the current package version in `package.json`. +## Component conventions + +### Styles + +Declare styles with the `css` tagged template from `@bquery/bquery/component` and +interpolate the shared fragments from `src/utils/styles.ts`: + +```ts +import { component, css, html } from '@bquery/bquery/component'; +import { baseStyles, reset, srOnly } from '../../utils/styles.js'; + +styles: css` + ${baseStyles} + ${reset} + :host { display: block; } +` +``` + +This matters for more than tidiness. A `css` payload is handed to +`adoptedStyleSheets`, so the stylesheet is constructed **once per component and +shared by every instance**, and re-renders no longer rewrite it. A plain string +falls back to a per-instance `