Skip to content

feat(design-system)!: add DsButton v1.3 [AR-52648]#308

Open
mmurawski-dn wants to merge 11 commits intodrivenets:nextfrom
mmurawski-dn:drivenets/michal/AR-52648-ds-button-v3
Open

feat(design-system)!: add DsButton v1.3 [AR-52648]#308
mmurawski-dn wants to merge 11 commits intodrivenets:nextfrom
mmurawski-dn:drivenets/michal/AR-52648-ds-button-v3

Conversation

@mmurawski-dn
Copy link
Copy Markdown
Collaborator

@mmurawski-dn mmurawski-dn commented Mar 25, 2026

@mmurawski-dn mmurawski-dn force-pushed the drivenets/michal/AR-52648-ds-button-v3 branch from 9f7790d to 5238a39 Compare March 25, 2026 12:42
/**
* If true the 'pressed' styles are applied
*/
selected?: boolean;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it better to call this prop selected or pressed?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was not sure 🤔 I chose selected, because in the future we might have button group component (and selected prop would fit much better). Maybe I could change comment?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, let's keep the name, but change the comment.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing @default false annotation

@mmurawski-dn mmurawski-dn changed the base branch from main to next March 26, 2026 12:28
@mmurawski-dn mmurawski-dn changed the title [DO NOT MERGE] feat(design-system): add DsButton v1.3 [AR-52648] feat(design-system): add DsButton v1.3 [AR-52648] Mar 26, 2026
@StyleShit StyleShit changed the title feat(design-system): add DsButton v1.3 [AR-52648] feat(design-system)!: add DsButton v1.3 [AR-52648] Mar 26, 2026
@mmurawski-dn mmurawski-dn force-pushed the drivenets/michal/AR-52648-ds-button-v3 branch from ebb606f to 8afa833 Compare March 26, 2026 12:38
mmurawski-dn and others added 4 commits March 26, 2026 13:44
…venets#314)

<img width="468" height="76" alt="image"
src="https://github.com/user-attachments/assets/3761251e-b757-49fa-a456-90f357104fe2"
/>
<img width="480" height="81" alt="image"
src="https://github.com/user-attachments/assets/02f6239e-ed04-4092-af8f-e08c99343bd0"
/>


---------------------------

<img width="489" height="85" alt="image"
src="https://github.com/user-attachments/assets/cfc29e9f-9c5b-41a2-86e1-a252bf006f55"
/>
<img width="485" height="82" alt="image"
src="https://github.com/user-attachments/assets/95e0a86c-2ceb-4b76-a149-0da3a1d813b3"
/>

Co-authored-by: Evyatar Daud <32631382+StyleShit@users.noreply.github.com>
…enets#302)

[Jira](https://github.com/drivenets/design-system/pull/AR-48187-dap-design-system-date-and-time-picker)
|
[Figma](https://www.figma.com/design/nha3m67y7S57cHCSuQO2gp/DAP-Design-System-1.2?node-id=30063-134151&m=dev)

## Context
This PR 3rd of 4 main PRs to create a Date Time Range picker components:

1. ✅ `Time Picker` component - standalone Time Picker component.
[PR](drivenets#255)
2. ✅ `Date Picker component` - standalone Date Picker component with
option to select time. It will use `Time Picker` component inside.
[PR](drivenets#283)
3. 🫵 **`Date Range Picker` component - combines 2 `Date Picker`
component**
4. ✅  Deprecate `DateInput` component

## Showcase



https://github.com/user-attachments/assets/64849310-2a79-42f6-9e02-be00400377db
@mmurawski-dn mmurawski-dn force-pushed the drivenets/michal/AR-52648-ds-button-v3 branch from 8afa833 to 2a99d3d Compare March 26, 2026 13:49
vpolessky-dn and others added 2 commits March 26, 2026 15:44
drivenets#275)

Co-authored-by: Evyatar Daud <32631382+StyleShit@users.noreply.github.com>
…enets#288)

[Jira](https://github.com/drivenets/design-system/pull/AR-48187-dap-design-system-date-and-time-picker)
|
[Figma](https://www.figma.com/design/nha3m67y7S57cHCSuQO2gp/DAP-Design-System-1.2?node-id=30063-134151&m=dev)

## Context
This PR is last of 4 main PRs to create a Date Time Range picker
components:

1. ✅ `Time Picker` component - standalone Time Picker component.
[PR](drivenets#255)
2. ✅ `Date Picker component` - standalone Date Picker component with
option to select time. It will use `Time Picker` component inside.
[PR](drivenets#283)
3. ✅ `Date Range Picker` component - combines 2 `Date Picker` component
4. 👇 **Deprecate `DateInput` component**

❗❗❗ It has to be merged last ❗❗❗

## Showcase

<img width="1897" height="839" alt="image"
src="https://github.com/user-attachments/assets/10c33c00-4d04-460e-8daa-efbdb9e95a69"
/>
iromanchuk-dn
iromanchuk-dn previously approved these changes Mar 26, 2026
@iromanchuk-dn iromanchuk-dn self-requested a review March 26, 2026 15:28
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @drivenets/design-system@0.8.0

### Minor Changes

-   73e3010: Add `DsDatePicker` component
-   1fa6a48: Deprecated `DsDateInput` component
-   27151fc: Add `DsKeyValuePair` component
-   5cd65b4: Add `DsTimePicker` component
-   ad3aad4: Add `DsDateRangePicker` component

### Patch Changes

-   0335e72: Capitalize only the first word in `DsStatusBadge`
-   6dc2bbe: Fix font size in `DsDropdownMenu` item
-   8aaa33b: Update dependencies
-   56d993b: Fix table issues related to React Compiler
-   8c56a53: Add `hideActionRequired` prop to `DsCommentBubble`
-   7752e64: Add aria role to `DsLoader`
-   5a59014: Remove ellipsis from `DsTooltip`
    Add `slotProps` to `DsTooltip`
- e6da4c4: Fix `DsAutocomplete` onValueChange trigger, fix clear button
-   16f7361: Fix styles in `DsCommentBubble`
-   eef2a74: Use semantic HTML structure in `DsTable` empty view
-   ba7fb97: Fix File prototype loss in `DsFileUpload`

## @drivenets/eslint-plugin-design-system@0.0.12

### Patch Changes

-   1fa6a48: Add deprecation rule for `DsDateInput`

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
// Dynamic by nature of this component
// eslint-disable-next-line react/button-has-type
type={type}
disabled={disabled}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

disabled={disabled || loading}

pointer-events: none are not disabling the element in case of enter\space selection

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue is, the designs show loading state in "normal" colors. Any idea how to go around it?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, got it

data-color={color}
data-on-dark={onDark ? 'true' : undefined}
data-variant={variant}
data-selected={selected ? 'true' : undefined}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

data-selected is invisible to screen readers - toggle buttons should use aria-pressed

}
}

.root[data-color='default'][data-variant='primary'] {
Copy link
Copy Markdown
Collaborator

@vpolessky-dn vpolessky-dn Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mixin usage here looks reasonable to reduce boilerplate parts

@mixin button-variant($bg, $hover-bg, $active-bg, $text, $border) {
  background-color: $bg;
  color: $text;
  border-color: $border;
  &:hover:not(:disabled):not(:active):not([data-selected='true']) {
    background-color: $hover-bg;
  }
}

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be fair, I would prefer going explicit. Easier to debug and adjust 🤔

Comment on lines +14 to +17
ref?: Ref<HTMLButtonElement>;
className?: string;
style?: CSSProperties;
children?: ReactNode;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

className, style, children are already in ButtonHTMLAttributes

import { DsButtonV3 } from '..';
import styles from '../ds-button-v3.module.scss';

describe('DsButtonV3', () => {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No tests for:
disabled + loading combined
selected + disabled combined
onDark + color="negative" interaction

@mmurawski-dn mmurawski-dn force-pushed the drivenets/michal/AR-52648-ds-button-v3 branch from 310d33e to 64c5abd Compare March 27, 2026 12:10
@github-actions github-actions bot added tooling eslint-plugin cursor PR that changes cursor rules, skills, etc. labels Mar 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cursor PR that changes cursor rules, skills, etc. design-system eslint-plugin tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants