Skip to content

Commit

Permalink
Merge branch 'release/2' into 6993_refactor-import-to-use
Browse files Browse the repository at this point in the history
  • Loading branch information
anicyne authored Feb 27, 2025
2 parents 3426b52 + 37b04f1 commit 8a59ee9
Show file tree
Hide file tree
Showing 28 changed files with 683 additions and 105 deletions.
2 changes: 2 additions & 0 deletions packages/components/src/components/a11y.scss
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@use './@shared/mixins' as *;

/*
* This file contains all rules for accessibility.
*/
Expand Down
24 changes: 13 additions & 11 deletions packages/components/src/components/component-list.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
import { KolAbbr } from './abbr/shadow';
import { KolAccordion } from './accordion/shadow';
import { KolAlertWc } from './alert/component';
import { KolAlert } from './alert/shadow';
import { KolAvatarWc } from './avatar/component';
import { KolAlertWc } from './alert/component';
import { KolAvatar } from './avatar/shadow';
import { KolAvatarWc } from './avatar/component';
import { KolBadge } from './badge/shadow';
import { KolBreadcrumb } from './breadcrumb/shadow';
import { KolButtonGroupWc } from './button-group/component';
import { KolButton } from './button/shadow';
import { KolButtonGroup } from './button-group/shadow';
import { KolButtonGroupWc } from './button-group/component';
import { KolButtonLink } from './button-link/shadow';
import { KolButtonWc } from './button/component';
import { KolButton } from './button/shadow';
import { KolCard } from './card/shadow';
import { KolCombobox } from './combobox/shadow';
import { KolDetails } from './details/shadow';
import { KolDrawer } from './drawer/shadow';
import { KolForm } from './form/shadow';
import { KolHeadingWc } from './heading/component';
import { KolHeading } from './heading/shadow';
import { KolHeadingWc } from './heading/component';
import { KolIcon } from './icon/shadow';
import { KolImage } from './image/shadow';
import { KolIndentedText } from './indented-text/shadow';
Expand All @@ -32,22 +33,23 @@ import { KolInputRange } from './input-range/shadow';
import { KolInputText } from './input-text/shadow';
import { KolInputWc } from './input/component';
import { KolKolibri } from './kolibri/shadow';
import { KolLink } from './link/shadow';
import { KolLinkButton } from './link-button/shadow';
import { KolLinkGroup } from './link-group/shadow';
import { KolLinkWc } from './link/component';
import { KolLink } from './link/shadow';
import { KolLogo } from './logo/shadow';
import { KolModal } from './modal/shadow';
import { KolNav } from './nav/shadow';
import { KolPagination } from './pagination/shadow';
import { KolPopover } from './popover/component';
import { KolPopoverButton } from './popover-button/shadow';
import { KolProgress } from './progress/shadow';
import { KolQuote } from './quote/shadow';
import { KolSelect } from './select/shadow';
import { KolSingleSelect } from './single-select/shadow';
import { KolSkipNav } from './skip-nav/shadow';
import { KolSpanWc } from './span/component';
import { KolSpin } from './spin/shadow';
import { KolSingleSelect } from './single-select/shadow';
import { KolSplitButton } from './split-button/shadow';
import { KolSymbol } from './symbol/component';
import { KolTable } from './table/shadow';
Expand All @@ -56,12 +58,11 @@ import { KolTextarea } from './textarea/shadow';
import { KolToastContainer } from './toaster/shadow';
import { KolToolbar } from './toolbar/shadow';
import { KolTooltipWc } from './tooltip/component';
import { KolVersion } from './version/shadow';
import { KolTree } from './tree/shadow';
import { KolTreeItem } from './tree-item/shadow';
import { KolTreeItemWc } from './tree-item/component';
import { KolTreeWc } from './tree/component';
import { KolCombobox } from './combobox/shadow';
import { KolVersion } from './version/shadow';

export const COMPONENTS = [
KolAbbr,
Expand All @@ -87,7 +88,6 @@ export const COMPONENTS = [
KolIcon,
KolImage,
KolIndentedText,
KolInputWc,
KolInputCheckbox,
KolInputColor,
KolInputDate,
Expand All @@ -98,6 +98,7 @@ export const COMPONENTS = [
KolInputRadio,
KolInputRange,
KolInputText,
KolInputWc,
KolKolibri,
KolLink,
KolLinkButton,
Expand All @@ -108,13 +109,14 @@ export const COMPONENTS = [
KolNav,
KolPagination,
KolPopover,
KolPopoverButton,
KolProgress,
KolQuote,
KolSelect,
KolSingleSelect,
KolSkipNav,
KolSpanWc,
KolSpin,
KolSingleSelect,
KolSplitButton,
KolSymbol,
KolTable,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { expect } from '@playwright/test';
import { test } from '@stencil/playwright';

test.describe('kol-popover-button', () => {
test('should show and hide popover on click', async ({ page }) => {
await page.setContent(`
<kol-popover-button _label="Toggle popover">
Popover content
</kol-popover-button>
`);

const button = page.getByTestId('popover-button');
const popover = page.getByTestId('popover-content');

// Initially hidden
await expect(popover).not.toBeVisible();

// Show on click
await button.click();
await expect(popover).toBeVisible();

// Hide on second click
await button.click();
await expect(popover).not.toBeVisible();
});

test('should handle disabled state', async ({ page }) => {
await page.setContent(`
<kol-popover-button _label="Open popover" _disabled>
Popover content
</kol-popover-button>
`);

const button = page.getByTestId('popover-button');
const popover = page.getByTestId('popover-content');

await button.click({ force: true });
await expect(popover).not.toBeVisible();
});
});
37 changes: 37 additions & 0 deletions packages/components/src/components/popover-button/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# kol-popover-button

<!-- Auto Generated Below -->

## Properties

| Property | Attribute | Description | Type | Default |
| --------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- |
| `_accessKey` | `_access-key` | Defines which key combination can be used to trigger or focus the interactive element of the component. | `string \| undefined` | `undefined` |
| `_ariaControls` | `_aria-controls` | Defines which elements are controlled by this component. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls) | `string \| undefined` | `undefined` |
| `_ariaDescription` | `_aria-description` | Defines the value for the aria-description attribute. | `string \| undefined` | `undefined` |
| `_ariaExpanded` | `_aria-expanded` | Defines whether the interactive element of the component expanded something. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded) | `boolean \| undefined` | `undefined` |
| `_ariaSelected` | `_aria-selected` | Defines whether the interactive element of the component is selected (e.g. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected) | `boolean \| undefined` | `undefined` |
| `_customClass` | `_custom-class` | Defines the custom class attribute if \_variant="custom" is set. | `string \| undefined` | `undefined` |
| `_disabled` | `_disabled` | Makes the element not focusable and ignore all events. | `boolean \| undefined` | `false` |
| `_hideLabel` | `_hide-label` | Hides the caption by default and displays the caption text with a tooltip when the interactive element is focused or the mouse is over it. | `boolean \| undefined` | `false` |
| `_icons` | `_icons` | Defines the icon classnames (e.g. `_icons="fa-solid fa-user"`). | `KoliBriHorizontalIcons & KoliBriVerticalIcons \| string \| undefined` | `undefined` |
| `_id` | `_id` | Defines the internal ID of the primary component element. | `string \| undefined` | `undefined` |
| `_label` _(required)_ | `_label` | Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to `false` to enable the expert slot. | `string` | `undefined` |
| `_name` | `_name` | Defines the technical name of an input field. | `string \| undefined` | `undefined` |
| `_on` | -- | Defines the callback functions for button events. | `undefined \| { onClick?: EventValueOrEventCallback<MouseEvent, StencilUnknown> \| undefined; onMouseDown?: EventCallback<MouseEvent> \| undefined; }` | `undefined` |
| `_popoverAlign` | `_popover-align` | Defines where to show the Popover preferably: top, right, bottom or left. | `"bottom" \| "left" \| "right" \| "top" \| undefined` | `'bottom'` |
| `_role` | `_role` | Defines the role of the components primary element. | `"button" \| "link" \| "tab" \| "treeitem" \| undefined` | `undefined` |
| `_shortKey` | `_short-key` | Adds a visual short key hint to the component. | `string \| undefined` | `undefined` |
| `_tabIndex` | `_tab-index` | Defines which tab-index the primary element of the component has. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) | `number \| undefined` | `undefined` |
| `_tooltipAlign` | `_tooltip-align` | Defines where to show the Tooltip preferably: top, right, bottom or left. | `"bottom" \| "left" \| "right" \| "top" \| undefined` | `'top'` |
| `_type` | `_type` | Defines either the type of the component or of the components interactive element. | `"button" \| "reset" \| "submit" \| undefined` | `'button'` |
| `_value` | `_value` | Defines the value that the button emits on click. | `boolean \| null \| number \| object \| string \| undefined` | `undefined` |
| `_variant` | `_variant` | Defines which variant should be used for presentation. | `"custom" \| "danger" \| "ghost" \| "normal" \| "primary" \| "secondary" \| "tertiary" \| undefined` | `'normal'` |

## Slots

| Slot | Description |
| ---- | -------------------- |
| | The popover content. |

---
Loading

0 comments on commit 8a59ee9

Please sign in to comment.