@arbor-education/design-system.components 1.0.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/.github/workflows/fail-on-no-changeset.yml +33 -1
  2. package/CHANGELOG.md +17 -0
  3. package/dist/components/breadcrumbs/BreadcrumbCopyButton.d.ts.map +1 -1
  4. package/dist/components/breadcrumbs/BreadcrumbCopyButton.js +3 -2
  5. package/dist/components/breadcrumbs/BreadcrumbCopyButton.js.map +1 -1
  6. package/dist/components/breadcrumbs/BreadcrumbEllipsis.d.ts.map +1 -1
  7. package/dist/components/breadcrumbs/BreadcrumbEllipsis.js +2 -1
  8. package/dist/components/breadcrumbs/BreadcrumbEllipsis.js.map +1 -1
  9. package/dist/components/button/Button.d.ts +17 -8
  10. package/dist/components/button/Button.d.ts.map +1 -1
  11. package/dist/components/button/Button.js +5 -6
  12. package/dist/components/button/Button.js.map +1 -1
  13. package/dist/components/button/Button.stories.d.ts +17 -36
  14. package/dist/components/button/Button.stories.d.ts.map +1 -1
  15. package/dist/components/button/Button.stories.js +165 -214
  16. package/dist/components/button/Button.stories.js.map +1 -1
  17. package/dist/components/button/Button.test.d.ts.map +1 -1
  18. package/dist/components/button/Button.test.js +16 -10
  19. package/dist/components/button/Button.test.js.map +1 -1
  20. package/dist/components/datePicker/DatePicker.d.ts.map +1 -1
  21. package/dist/components/datePicker/DatePicker.js +2 -1
  22. package/dist/components/datePicker/DatePicker.js.map +1 -1
  23. package/dist/components/dateTimePicker/DateTimePicker.d.ts.map +1 -1
  24. package/dist/components/dateTimePicker/DateTimePicker.js +2 -1
  25. package/dist/components/dateTimePicker/DateTimePicker.js.map +1 -1
  26. package/dist/components/dropdown/Dropdown.stories.d.ts.map +1 -1
  27. package/dist/components/dropdown/Dropdown.stories.js +5 -3
  28. package/dist/components/dropdown/Dropdown.stories.js.map +1 -1
  29. package/dist/components/emptyState/EmptyState.stories.d.ts.map +1 -1
  30. package/dist/components/emptyState/EmptyState.stories.js +3 -2
  31. package/dist/components/emptyState/EmptyState.stories.js.map +1 -1
  32. package/dist/components/fileUpload/FileUpload.d.ts.map +1 -1
  33. package/dist/components/fileUpload/FileUpload.js +1 -1
  34. package/dist/components/fileUpload/FileUpload.js.map +1 -1
  35. package/dist/components/fileUpload/FileUpload.test.js +4 -4
  36. package/dist/components/fileUpload/FileUpload.test.js.map +1 -1
  37. package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.d.ts.map +1 -1
  38. package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.js +2 -1
  39. package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.js.map +1 -1
  40. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.d.ts.map +1 -1
  41. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.js +2 -1
  42. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.js.map +1 -1
  43. package/dist/components/grid/Grid.stories.d.ts.map +1 -1
  44. package/dist/components/grid/Grid.stories.js +4 -3
  45. package/dist/components/grid/Grid.stories.js.map +1 -1
  46. package/dist/components/heading/Heading.stories.d.ts.map +1 -1
  47. package/dist/components/heading/Heading.stories.js +18 -14
  48. package/dist/components/heading/Heading.stories.js.map +1 -1
  49. package/dist/components/icon/Icon.stories.d.ts.map +1 -1
  50. package/dist/components/icon/Icon.stories.js +30 -31
  51. package/dist/components/icon/Icon.stories.js.map +1 -1
  52. package/dist/components/modal/ModalCloseButton.d.ts.map +1 -1
  53. package/dist/components/modal/ModalCloseButton.js +2 -1
  54. package/dist/components/modal/ModalCloseButton.js.map +1 -1
  55. package/dist/components/section/Section.stories.d.ts.map +1 -1
  56. package/dist/components/section/Section.stories.js +52 -25
  57. package/dist/components/section/Section.stories.js.map +1 -1
  58. package/dist/components/table/Table.stories.d.ts.map +1 -1
  59. package/dist/components/table/Table.stories.js +4 -6
  60. package/dist/components/table/Table.stories.js.map +1 -1
  61. package/dist/components/table/pagination/PageSizeSelector.d.ts.map +1 -1
  62. package/dist/components/table/pagination/PageSizeSelector.js +2 -1
  63. package/dist/components/table/pagination/PageSizeSelector.js.map +1 -1
  64. package/dist/components/table/pagination/PaginationControls.d.ts.map +1 -1
  65. package/dist/components/table/pagination/PaginationControls.js +3 -2
  66. package/dist/components/table/pagination/PaginationControls.js.map +1 -1
  67. package/dist/components/table/tableControls/BulkActionsDropdown.d.ts.map +1 -1
  68. package/dist/components/table/tableControls/BulkActionsDropdown.js +3 -2
  69. package/dist/components/table/tableControls/BulkActionsDropdown.js.map +1 -1
  70. package/dist/components/table/tableControls/TableControls.d.ts.map +1 -1
  71. package/dist/components/table/tableControls/TableControls.js +2 -1
  72. package/dist/components/table/tableControls/TableControls.js.map +1 -1
  73. package/dist/components/table/tableControls/TableSettingsDropdown.d.ts.map +1 -1
  74. package/dist/components/table/tableControls/TableSettingsDropdown.js +2 -1
  75. package/dist/components/table/tableControls/TableSettingsDropdown.js.map +1 -1
  76. package/dist/components/toast/Toast.js +1 -1
  77. package/dist/components/toast/Toast.js.map +1 -1
  78. package/dist/components/tooltip/Tooltip.stories.js +5 -5
  79. package/dist/components/tooltip/Tooltip.stories.js.map +1 -1
  80. package/dist/components/tooltip/TooltipWrapper.stories.js +2 -2
  81. package/dist/components/tooltip/TooltipWrapper.stories.js.map +1 -1
  82. package/dist/components/userDropdown/internal/UserDropdownTrigger.d.ts.map +1 -1
  83. package/dist/components/userDropdown/internal/UserDropdownTrigger.js +3 -2
  84. package/dist/components/userDropdown/internal/UserDropdownTrigger.js.map +1 -1
  85. package/dist/index.css +15 -15
  86. package/dist/index.css.map +1 -1
  87. package/package.json +1 -1
  88. package/src/components/breadcrumbs/BreadcrumbCopyButton.tsx +5 -2
  89. package/src/components/breadcrumbs/BreadcrumbEllipsis.tsx +5 -2
  90. package/src/components/breadcrumbs/breadcrumbs.scss +2 -2
  91. package/src/components/button/Button.stories.tsx +205 -230
  92. package/src/components/button/Button.test.tsx +36 -9
  93. package/src/components/button/Button.tsx +6 -16
  94. package/src/components/button/button.scss +8 -8
  95. package/src/components/datePicker/DatePicker.tsx +5 -3
  96. package/src/components/dateTimePicker/DateTimePicker.tsx +5 -3
  97. package/src/components/dropdown/Dropdown.stories.tsx +7 -3
  98. package/src/components/emptyState/EmptyState.stories.tsx +4 -2
  99. package/src/components/fileUpload/FileUpload.test.tsx +4 -4
  100. package/src/components/fileUpload/FileUpload.tsx +8 -4
  101. package/src/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.tsx +3 -1
  102. package/src/components/formField/inputs/selectDropdown/SelectDropdown.tsx +3 -2
  103. package/src/components/grid/Grid.stories.tsx +17 -4
  104. package/src/components/heading/Heading.stories.tsx +23 -16
  105. package/src/components/icon/Icon.stories.tsx +43 -44
  106. package/src/components/modal/ModalCloseButton.tsx +5 -3
  107. package/src/components/section/Section.stories.tsx +86 -31
  108. package/src/components/table/Table.stories.tsx +19 -6
  109. package/src/components/table/pagination/PageSizeSelector.tsx +3 -1
  110. package/src/components/table/pagination/PaginationControls.tsx +17 -12
  111. package/src/components/table/tableControls/BulkActionsDropdown.tsx +3 -1
  112. package/src/components/table/tableControls/TableControls.tsx +31 -22
  113. package/src/components/table/tableControls/TableSettingsDropdown.tsx +7 -4
  114. package/src/components/toast/Toast.tsx +1 -1
  115. package/src/components/tooltip/Tooltip.stories.tsx +7 -7
  116. package/src/components/tooltip/TooltipWrapper.stories.tsx +4 -4
  117. package/src/components/userDropdown/internal/UserDropdownTrigger.tsx +2 -1
@@ -26,10 +26,42 @@ jobs:
26
26
  - name: Check for changeset
27
27
  if: ${{ !startsWith(github.head_ref, 'changeset-release/') }}
28
28
  run: |
29
- NEW_CHANGESETS=$(git diff --name-only origin/${{ github.base_ref }}...HEAD -- .changeset/ | grep -v 'README\.md' || true)
29
+ NEW_CHANGESETS=$(git diff --name-only origin/${{ github.base_ref }}...HEAD -- .changeset/ | grep '\.md$' | grep -v 'README\.md' || true)
30
30
  if [ -z "$NEW_CHANGESETS" ]; then
31
31
  echo "No changeset found in this PR. Please add a changeset file using 'yarn changeset'."
32
32
  exit 1
33
33
  fi
34
34
  echo "Changeset(s) found in this PR:"
35
35
  echo "$NEW_CHANGESETS"
36
+ - name: Validate changeset package names
37
+ if: ${{ !startsWith(github.head_ref, 'changeset-release/') }}
38
+ run: |
39
+ set -e
40
+ EXPECTED_NAME=$(node -p "require('./package.json').name")
41
+ NEW_CHANGESETS=$(git diff --name-only origin/${{ github.base_ref }}...HEAD -- .changeset/ | grep '\.md$' | grep -v 'README\.md' || true)
42
+ if [ -z "$NEW_CHANGESETS" ]; then
43
+ echo "No changesets to validate."
44
+ exit 0
45
+ fi
46
+ MISMATCH=0
47
+ for FILE in $NEW_CHANGESETS; do
48
+ if [ ! -f "$FILE" ]; then
49
+ continue
50
+ fi
51
+ PACKAGE_NAMES=$(tr -d '\r' < "$FILE" | awk '/^---$/{c++; next} c==1{print}' | sed -E "s/^[\"']?([^\"':]+)[\"']?:.*/\1/")
52
+ if [ -z "$PACKAGE_NAMES" ]; then
53
+ echo "No package entries in $FILE frontmatter — treating as a valid empty/no-release changeset."
54
+ continue
55
+ fi
56
+ for NAME in $PACKAGE_NAMES; do
57
+ if [ "$NAME" != "$EXPECTED_NAME" ]; then
58
+ echo "::error file=$FILE::Changeset references package '$NAME', but this repo's package.json name is '$EXPECTED_NAME'."
59
+ MISMATCH=1
60
+ fi
61
+ done
62
+ done
63
+ if [ "$MISMATCH" -ne 0 ]; then
64
+ echo "One or more changesets reference an incorrect package name. Fix the frontmatter to match package.json's \"name\" field ($EXPECTED_NAME)."
65
+ exit 1
66
+ fi
67
+ echo "All changeset package names match $EXPECTED_NAME."
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#239](https://github.com/arbor-education/design-system.components/pull/239) [`3e68f26`](https://github.com/arbor-education/design-system.components/commit/3e68f265f68b72da3b6118bb10ab06046747d16f) Thanks [@Alex-DN-SP](https://github.com/Alex-DN-SP)! - MIS-72462 Button refactor:
8
+ - Removed iconLeftName/iconRightName/iconLeftScreenReaderText/iconRightScreenReaderText — icons are now passed via children.
9
+ - Renamed iconOnly prop to isRound.
10
+ - Button no longer wraps children in <span class='ds-button__content'> by default.
11
+ - Narrowed the catch-all index signature to data-_ keys only. It existed to allow passing HTML data-xxxx attributes, but also let misspelled or removed prop names silently type-check (e.g. Tooltip stories had type where it meant variant) — those are now compile errors, data-_ attributes still work.
12
+ - type is now a properly typed prop instead of passing through untyped.
13
+
14
+ ## 1.0.5
15
+
16
+ ### Patch Changes
17
+
18
+ - [#241](https://github.com/arbor-education/design-system.components/pull/241) [`0931cd7`](https://github.com/arbor-education/design-system.components/commit/0931cd7c2e3ef63533b67a5b46debaaee2d21793) Thanks [@rickbairstow](https://github.com/rickbairstow)! - MIS-73546 Update changeset workflow to check package name
19
+
3
20
  ## 1.0.4
4
21
 
5
22
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbCopyButton.d.ts","sourceRoot":"","sources":["../../../src/components/breadcrumbs/BreadcrumbCopyButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAG5D,eAAO,MAAM,oBAAoB,GAAI,OAAO,yBAAyB,4CAqBpE,CAAC"}
1
+ {"version":3,"file":"BreadcrumbCopyButton.d.ts","sourceRoot":"","sources":["../../../src/components/breadcrumbs/BreadcrumbCopyButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAG5D,eAAO,MAAM,oBAAoB,GAAI,OAAO,yBAAyB,4CAuBpE,CAAC"}
@@ -1,13 +1,14 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Button } from '../button/Button.js';
3
+ import { Icon } from '../icon/Icon.js';
3
4
  import { TooltipWrapper } from '../tooltip/TooltipWrapper.js';
4
5
  import classNames from 'classnames';
5
6
  export const BreadcrumbCopyButton = (props) => {
6
7
  const { isClicked, onClick, ...rest } = props;
7
8
  const iconName = isClicked ? 'check' : 'link';
8
9
  const screenReaderText = isClicked ? 'Breadcrumb path copied' : 'Copy breadcrumb path';
9
- return (_jsx(TooltipWrapper, { tooltipContent: screenReaderText, children: _jsx(Button, { ...rest, onClick: onClick, iconLeftName: iconName, "aria-label": screenReaderText, size: "S", className: classNames('ds-breadcrumbs__copy-icon', {
10
+ return (_jsx(TooltipWrapper, { tooltipContent: screenReaderText, children: _jsx(Button, { ...rest, onClick: onClick, isRound: true, "aria-label": screenReaderText, size: "S", className: classNames('ds-breadcrumbs__copy-icon', {
10
11
  'ds-breadcrumbs__copy-icon--clicked': isClicked,
11
- }) }) }));
12
+ }), children: _jsx(Icon, { name: iconName }) }) }));
12
13
  };
13
14
  //# sourceMappingURL=BreadcrumbCopyButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbCopyButton.js","sourceRoot":"","sources":["../../../src/components/breadcrumbs/BreadcrumbCopyButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAE,EAAE;IACvE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAE9C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAE9C,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAEvF,OAAO,CACL,KAAC,cAAc,IAAC,cAAc,EAAE,gBAAgB,YAC9C,KAAC,MAAM,OACD,IAAI,EACR,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,QAAQ,gBACV,gBAAgB,EAC5B,IAAI,EAAC,GAAG,EACR,SAAS,EAAE,UAAU,CAAC,2BAA2B,EAAE;gBACjD,oCAAoC,EAAE,SAAS;aAChD,CAAC,GACF,GACa,CAClB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"BreadcrumbCopyButton.js","sourceRoot":"","sources":["../../../src/components/breadcrumbs/BreadcrumbCopyButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAE,EAAE;IACvE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAE9C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAE9C,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAEvF,OAAO,CACL,KAAC,cAAc,IAAC,cAAc,EAAE,gBAAgB,YAC9C,KAAC,MAAM,OACD,IAAI,EACR,OAAO,EAAE,OAAO,EAChB,OAAO,sBACK,gBAAgB,EAC5B,IAAI,EAAC,GAAG,EACR,SAAS,EAAE,UAAU,CAAC,2BAA2B,EAAE;gBACjD,oCAAoC,EAAE,SAAS;aAChD,CAAC,YAEF,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,GAAI,GACjB,GACM,CAClB,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbEllipsis.d.ts","sourceRoot":"","sources":["../../../src/components/breadcrumbs/BreadcrumbEllipsis.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,eAAO,MAAM,kBAAkB,GAAI,OAAO,uBAAuB,4CAYhE,CAAC"}
1
+ {"version":3,"file":"BreadcrumbEllipsis.d.ts","sourceRoot":"","sources":["../../../src/components/breadcrumbs/BreadcrumbEllipsis.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,eAAO,MAAM,kBAAkB,GAAI,OAAO,uBAAuB,4CAchE,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Button } from '../button/Button.js';
3
+ import { Icon } from '../icon/Icon.js';
3
4
  export const BreadcrumbEllipsis = (props) => {
4
5
  const { screenReaderText, ...rest } = props;
5
- return (_jsx(Button, { ...rest, size: "S", iconLeftName: "ellipsis", "aria-label": screenReaderText, className: "ds-breadcrumbs__ellipsis-button" }));
6
+ return (_jsx(Button, { ...rest, size: "S", isRound: true, "aria-label": screenReaderText, className: "ds-breadcrumbs__ellipsis-button", children: _jsx(Icon, { name: "ellipsis" }) }));
6
7
  };
7
8
  //# sourceMappingURL=BreadcrumbEllipsis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbEllipsis.js","sourceRoot":"","sources":["../../../src/components/breadcrumbs/BreadcrumbEllipsis.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAE,EAAE;IACnE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAE5C,OAAO,CACL,KAAC,MAAM,OACD,IAAI,EACR,IAAI,EAAC,GAAG,EACR,YAAY,EAAC,UAAU,gBACX,gBAAgB,EAC5B,SAAS,EAAC,iCAAiC,GAC3C,CACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"BreadcrumbEllipsis.js","sourceRoot":"","sources":["../../../src/components/breadcrumbs/BreadcrumbEllipsis.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA8B,EAAE,EAAE;IACnE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAE5C,OAAO,CACL,KAAC,MAAM,OACD,IAAI,EACR,IAAI,EAAC,GAAG,EACR,OAAO,sBACK,gBAAgB,EAC5B,SAAS,EAAC,iCAAiC,YAE3C,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,GAAG,GACjB,CACV,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import React, { type ButtonHTMLAttributes } from 'react';
2
- import type { IconName } from '../icon/allowedIcons.js';
3
2
  export type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'primary-destructive' | 'secondary-destructive' | 'text-link' | 'dropdown';
4
3
  export type ButtonSize = 'M' | 'S';
5
4
  export type ButtonProps = {
@@ -8,16 +7,26 @@ export type ButtonProps = {
8
7
  children?: React.ReactNode;
9
8
  className?: string;
10
9
  error?: boolean;
11
- [key: string]: unknown;
10
+ [key: `data-${string}`]: unknown;
12
11
  hasHorizontalPadding?: boolean;
13
- iconRightName?: IconName;
14
- iconRightScreenReaderText?: string;
15
- iconLeftName?: IconName;
16
- iconLeftScreenReaderText?: string;
12
+ isRound?: boolean;
17
13
  borderless?: boolean;
18
14
  onClick?: (event: React.MouseEvent<HTMLButtonElement>, ...otherArgs: unknown[]) => void;
19
- } & Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'onClick'>;
20
- export declare const Button: React.ForwardRefExoticComponent<Omit<React.PropsWithChildren<ButtonProps>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
15
+ } & Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'>;
16
+ export declare const Button: React.ForwardRefExoticComponent<{
17
+ [key: `data-${string}`]: unknown;
18
+ variant?: ButtonVariant;
19
+ size?: ButtonSize;
20
+ children?: React.ReactNode;
21
+ className?: string;
22
+ error?: boolean;
23
+ hasHorizontalPadding?: boolean;
24
+ isRound?: boolean;
25
+ borderless?: boolean;
26
+ onClick?: (event: React.MouseEvent<HTMLButtonElement>, ...otherArgs: unknown[]) => void;
27
+ } & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onClick"> & {
28
+ children?: React.ReactNode | undefined;
29
+ } & React.RefAttributes<HTMLButtonElement>>;
21
30
  export declare namespace Button {
22
31
  type Variant = ButtonVariant;
23
32
  type Size = ButtonSize;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAc,KAAK,oBAAoB,EAA0B,MAAM,OAAO,CAAC;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAG7D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,WAAW,GAAG,UAAU,CAAC;AAE9I,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACzF,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtE,eAAO,MAAM,MAAM,6HAyCjB,CAAC;AAIH,yBAAiB,MAAM,CAAC;IACtB,KAAY,OAAO,GAAG,aAAa,CAAC;IACpC,KAAY,IAAI,GAAG,UAAU,CAAC;IAC9B,KAAY,KAAK,GAAG,WAAW,CAAC;CACjC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAc,KAAK,oBAAoB,EAA0B,MAAM,OAAO,CAAC;AAE7F,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,WAAW,GAAG,UAAU,CAAC;AAE9I,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,GAAG,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACzF,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,CAAC;AAE7D,eAAO,MAAM,MAAM;;cAZP,aAAa;WAChB,UAAU;eACN,KAAK,CAAC,SAAS;gBACd,MAAM;YACV,OAAO;2BAEQ,OAAO;cACpB,OAAO;iBACJ,OAAO;cACV,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI;;;2CAuCvF,CAAC;AAIH,yBAAiB,MAAM,CAAC;IACtB,KAAY,OAAO,GAAG,aAAa,CAAC;IACpC,KAAY,IAAI,GAAG,UAAU,CAAC;IAC9B,KAAY,KAAK,GAAG,WAAW,CAAC;CACjC"}
@@ -1,15 +1,14 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import classNames from 'classnames';
3
3
  import React, { forwardRef } from 'react';
4
- import { Icon } from '../icon/Icon.js';
5
4
  export const Button = forwardRef((props, ref) => {
6
- const { variant = 'primary', size = 'M', children, onClick, disabled = false, className = '', hasHorizontalPadding = true, iconRightName, iconRightScreenReaderText, iconLeftName, iconLeftScreenReaderText, borderless = false, error = false, ...rest } = props;
7
- return (_jsxs("button", { className: classNames('ds-button', `ds-button--${variant}`, `ds-button--${size}`, {
5
+ const { variant = 'primary', size = 'M', children, onClick, disabled = false, className = '', hasHorizontalPadding = true, isRound = false, borderless = false, error = false, ...rest } = props;
6
+ return (_jsx("button", { className: classNames('ds-button', `ds-button--${variant}`, `ds-button--${size}`, {
8
7
  'ds-button--error': error,
9
8
  'ds-button--no-horizontal-padding': !hasHorizontalPadding,
10
- 'ds-button--icon-only': !children && (iconRightName || iconLeftName),
9
+ 'ds-button--round': isRound,
11
10
  'ds-button--borderless': borderless,
12
- }, className), onClick: onClick, disabled: disabled, ref: ref, ...rest, children: [iconLeftName && _jsx(Icon, { name: iconLeftName, size: 16, screenReaderText: iconLeftScreenReaderText || iconLeftName }), children ? _jsx("span", { className: "ds-button__content", children: children }) : children, iconRightName && _jsx(Icon, { name: iconRightName, size: 16, screenReaderText: iconRightScreenReaderText || iconRightName })] }));
11
+ }, className), onClick: onClick, disabled: disabled, ref: ref, ...rest, children: children }));
13
12
  });
14
13
  Button.displayName = 'Button';
15
14
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAqD,MAAM,OAAO,CAAC;AAE7F,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAsB5C,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAoD,CAAC,KAAkB,EAAE,GAAG,EAAE,EAAE;IAC9G,MAAM,EACJ,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,EACd,oBAAoB,GAAG,IAAI,EAC3B,aAAa,EACb,yBAAyB,EACzB,YAAY,EACZ,wBAAwB,EACxB,UAAU,GAAG,KAAK,EAClB,KAAK,GAAG,KAAK,EACb,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,kBACE,SAAS,EAAE,UAAU,CAAC,WAAW,EAC/B,cAAc,OAAO,EAAE,EACvB,cAAc,IAAI,EAAE,EACpB;YACE,kBAAkB,EAAE,KAAK;YACzB,kCAAkC,EAAE,CAAC,oBAAoB;YACzD,sBAAsB,EAAE,CAAC,QAAQ,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC;YACpE,uBAAuB,EAAE,UAAU;SACpC,EACD,SAAS,CACV,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,KACJ,IAAI,aAEP,YAAY,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,wBAAwB,IAAI,YAAY,GAAI,EAClH,QAAQ,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,oBAAoB,YAAE,QAAQ,GAAQ,CAAC,CAAC,CAAC,QAAQ,EAC5E,aAAa,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,yBAAyB,IAAI,aAAa,GAAI,IAChH,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAqD,MAAM,OAAO,CAAC;AAmB7F,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAoD,CAAC,KAAkB,EAAE,GAAG,EAAE,EAAE;IAC9G,MAAM,EACJ,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,EACd,oBAAoB,GAAG,IAAI,EAC3B,OAAO,GAAG,KAAK,EACf,UAAU,GAAG,KAAK,EAClB,KAAK,GAAG,KAAK,EACb,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,iBACE,SAAS,EAAE,UAAU,CAAC,WAAW,EAC/B,cAAc,OAAO,EAAE,EACvB,cAAc,IAAI,EAAE,EACpB;YACE,kBAAkB,EAAE,KAAK;YACzB,kCAAkC,EAAE,CAAC,oBAAoB;YACzD,kBAAkB,EAAE,OAAO;YAC3B,uBAAuB,EAAE,UAAU;SACpC,EACD,SAAS,CACV,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,KACJ,IAAI,YAEP,QAAQ,GACF,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC"}
@@ -2,7 +2,20 @@ import type { StoryObj } from '@storybook/react-vite';
2
2
  declare function ButtonDocsPage(): import("react/jsx-runtime").JSX.Element;
3
3
  declare const meta: {
4
4
  title: string;
5
- component: import("react").ForwardRefExoticComponent<Omit<import("react").PropsWithChildren<import("./Button.js").ButtonProps>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
5
+ component: import("react").ForwardRefExoticComponent<{
6
+ [key: `data-${string}`]: unknown;
7
+ variant?: import("./Button.js").ButtonVariant;
8
+ size?: import("./Button.js").ButtonSize;
9
+ children?: React.ReactNode;
10
+ className?: string;
11
+ error?: boolean;
12
+ hasHorizontalPadding?: boolean;
13
+ isRound?: boolean;
14
+ borderless?: boolean;
15
+ onClick?: (event: React.MouseEvent<HTMLButtonElement>, ...otherArgs: unknown[]) => void;
16
+ } & Omit<import("react").ButtonHTMLAttributes<HTMLButtonElement>, "onClick"> & {
17
+ children?: import("react").ReactNode | undefined;
18
+ } & import("react").RefAttributes<HTMLButtonElement>>;
6
19
  parameters: {
7
20
  layout: string;
8
21
  docs: {
@@ -82,31 +95,8 @@ declare const meta: {
82
95
  };
83
96
  };
84
97
  };
85
- iconLeftName: {
86
- control: "select";
87
- options: (string | undefined)[];
88
- description: string;
89
- table: {
90
- type: {
91
- summary: string;
92
- };
93
- defaultValue: {
94
- summary: string;
95
- };
96
- };
97
- };
98
- iconLeftScreenReaderText: {
99
- control: "text";
100
- description: string;
101
- table: {
102
- type: {
103
- summary: string;
104
- };
105
- };
106
- };
107
- iconRightName: {
108
- control: "select";
109
- options: (string | undefined)[];
98
+ isRound: {
99
+ control: "boolean";
110
100
  description: string;
111
101
  table: {
112
102
  type: {
@@ -117,15 +107,6 @@ declare const meta: {
117
107
  };
118
108
  };
119
109
  };
120
- iconRightScreenReaderText: {
121
- control: "text";
122
- description: string;
123
- table: {
124
- type: {
125
- summary: string;
126
- };
127
- };
128
- };
129
110
  borderless: {
130
111
  control: "boolean";
131
112
  description: string;
@@ -181,9 +162,9 @@ export declare const IconOnly: Story;
181
162
  export declare const IconOnlyAccessibility: Story;
182
163
  export declare const Disabled: Story;
183
164
  export declare const ErrorState: Story;
165
+ export declare const FormTypeAttribute: Story;
184
166
  export declare const Borderless: Story;
185
167
  export declare const NoHorizontalPadding: Story;
186
- export declare const FormTypeAttribute: Story;
187
168
  export declare const LoadingComposition: Story;
188
169
  export declare const WithForwardRef: Story;
189
170
  export declare const ClickTracking: Story;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.stories.d.ts","sourceRoot":"","sources":["../../../src/components/button/Button.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAuI5D,iBAAS,cAAc,4CAmBtB;AAED,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+NqB,CAAC;AAEhC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAwJnC,eAAO,MAAM,OAAO,EAAE,KAcrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAyBrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAyBvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KA+BtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAyBhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAyBlC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAyBtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAmCtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAoEzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAwDtB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAyB1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAyB5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KA+B1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KA+B3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAwC3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KA0BtB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KA6DnC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KA0BtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KA0BxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAgCxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KA8BjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAoE/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KA0DhC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAyC5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAgC3B,CAAC"}
1
+ {"version":3,"file":"Button.stories.d.ts","sourceRoot":"","sources":["../../../src/components/button/Button.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAqK5D,iBAAS,cAAc,4CAmBtB;AAED,QAAA,MAAM,IAAI;;;;;;;;;;;;+DAvKP,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuTyB,CAAC;AAEhC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAuJnC,eAAO,MAAM,OAAO,EAAE,KAcrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAyBrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAyBvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KA+BtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAyBhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAyBlC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAyBtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KA0CtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAoEzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAwDtB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAyB1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAyB5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAoC1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAoC3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAsC3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KA+BtB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KA6DnC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KA0BtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KA0BxB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAoE/B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAqCxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KA8BjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KA0DhC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAyC5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAgC3B,CAAC"}