Skip to content

Support SLDS2 #485

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 287 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
287 commits
Select commit Hold shift + click to select a range
f1baf01
(DropdownButton): improve a11y
msmx-mnakagawa Jun 2, 2025
d418f1b
(Popover): update markups
msmx-mnakagawa Jun 3, 2025
bbdd403
(Popover): improve a11y
msmx-mnakagawa Jun 3, 2025
9aea71e
(Table): update deprecated Element types
msmx-mnakagawa Jun 3, 2025
78b474b
(Table): update classnames and markups
msmx-mnakagawa Jun 3, 2025
db0873b
(Table): improve a11y
msmx-mnakagawa Jun 3, 2025
f07220a
(Table): consider `scope`
msmx-mnakagawa Jun 3, 2025
72e02ac
(SalesPath): update classnames
msmx-mnakagawa Jun 3, 2025
4fd5c8e
(SalesPath): refactor
msmx-mnakagawa Jun 3, 2025
6168fae
(SalesPath): update markups
msmx-mnakagawa Jun 3, 2025
19cb3e0
(SalesPath): improve a11y
msmx-mnakagawa Jun 3, 2025
e53b7b2
(SalesPath): resolve `prettier` errors
msmx-mnakagawa Jun 3, 2025
d6eed55
(Tabs): update classnames
msmx-mnakagawa Jun 3, 2025
a50212d
(Tabs): improve a11y
msmx-mnakagawa Jun 3, 2025
efc0cfe
(Notification): update classnames and markups
msmx-mnakagawa Jun 4, 2025
255088c
Merge pull request #458 from mashmatrix/support-slds-2-badge
stomita Jun 5, 2025
62f9b43
Merge pull request #457 from mashmatrix/support-slds-2-breadcrumbs
stomita Jun 5, 2025
65c2943
Merge pull request #459 from mashmatrix/support-slds-2-spinner
stomita Jun 5, 2025
9fa2124
Merge branch 'master' into support-slds-2
msmx-mnakagawa Jun 5, 2025
3f83b01
Merge pull request #465 from mashmatrix/support-slds-2-grid
stomita Jun 5, 2025
1e34457
(Pill): use simpler naming
msmx-mnakagawa Jun 6, 2025
29c2acd
Merge branch 'support-slds-2' into support-slds-2-pill
msmx-mnakagawa Jun 6, 2025
49c2b49
(Pill): use simpler naming in stories as well
msmx-mnakagawa Jun 6, 2025
48bfdb6
Merge branch 'support-slds-2' into support-slds-2-media-object
msmx-mnakagawa Jun 6, 2025
3cb63b5
(MediaObject): rename `isVerticalCenter` with `centered`
msmx-mnakagawa Jun 6, 2025
93a666a
Merge branch 'support-slds-2' into support-slds-2-tree-tree-node
msmx-mnakagawa Jun 6, 2025
91c971f
(TreeNode): revert mistakenly added button size
msmx-mnakagawa Jun 6, 2025
d9d94d4
(TreeNode): remove a switch that wouldn't be required
msmx-mnakagawa Jun 6, 2025
a97270c
(TreeNode): add `title` prop to item label
msmx-mnakagawa Jun 6, 2025
f9c5166
(TreeNode): remove implicit `title` setting
msmx-mnakagawa Jun 6, 2025
4eb3234
Merge pull request #461 from mashmatrix/support-slds-2-pill
stomita Jun 9, 2025
202c804
Merge branch 'support-slds-2' into support-slds-2-tree-tree-node
msmx-mnakagawa Jun 9, 2025
1ce5ad3
(TreeNode): remove the `aria-hidden` that may prevent a11y improvement
msmx-mnakagawa Jun 9, 2025
d4cb683
(TreeNode): remove `tabIndex`es that differ from the existing impleme…
msmx-mnakagawa Jun 9, 2025
9f5395c
Merge branch 'support-slds-2' into support-slds-2-popover
msmx-mnakagawa Jun 9, 2025
7a9263f
(Popover): pass static classnames statically
msmx-mnakagawa Jun 9, 2025
ba01c75
Merge pull request #478 from mashmatrix/support-slds-2-sales-path
stomita Jun 9, 2025
3cc3506
Merge branch 'support-slds-2-tree-tree-node' into support-slds-2-tabs
msmx-mnakagawa Jun 10, 2025
6775f9b
(Tabs): make `tabId` and `tabItemId` unique across each tab
msmx-mnakagawa Jun 10, 2025
004d394
Merge branch 'support-slds-2' into support-slds-2-form-element-field-set
msmx-mnakagawa Jun 10, 2025
cf3dd66
Merge branch 'support-slds-2' into support-slds-2-table
msmx-mnakagawa Jun 11, 2025
d3b5d1f
(Table): remove all the `scope` attributes
msmx-mnakagawa Jun 11, 2025
d1d72d8
Merge branch 'support-slds-2' into support-slds-2-tabs
msmx-mnakagawa Jun 11, 2025
8020109
Revert "(TreeNode): remove `tabIndex`es that differ from the existing…
msmx-mnakagawa Jun 11, 2025
613c568
Revert "(TreeNode): remove the `aria-hidden` that may prevent a11y im…
msmx-mnakagawa Jun 11, 2025
fbfd6df
Revert "(TreeNode): remove implicit `title` setting"
msmx-mnakagawa Jun 11, 2025
9bd19ac
Revert "(TreeNode): add `title` prop to item label"
msmx-mnakagawa Jun 11, 2025
c26f2fe
Revert "(TreeNode): remove a switch that wouldn't be required"
msmx-mnakagawa Jun 11, 2025
1114b2e
Revert "(TreeNode): revert mistakenly added button size"
msmx-mnakagawa Jun 11, 2025
4589d04
Revert "(TreeNode): update markups"
msmx-mnakagawa Jun 11, 2025
7637fb0
Revert "(TreeNode): improve a11y"
msmx-mnakagawa Jun 11, 2025
52605ad
Revert "(Tree): update classnames"
msmx-mnakagawa Jun 11, 2025
1bce255
Revert "(Tree): improve a11y"
msmx-mnakagawa Jun 11, 2025
8341462
Merge branch 'support-slds-2' into support-slds-2-text
msmx-mnakagawa Jun 11, 2025
746cd92
(Text): revert changes in `PageHeader.tsx`
msmx-mnakagawa Jun 11, 2025
e938990
(Table): remove unused `.slds-assistive-text`
msmx-mnakagawa Jun 11, 2025
635703c
(Table): remove directly added style
msmx-mnakagawa Jun 11, 2025
a939faf
(Table): wrap `Icon` with container, following docs
msmx-mnakagawa Jun 11, 2025
e8dfc9d
(Table): apply `.slds-table_resizable-cols` and remove `.slds-table_c…
msmx-mnakagawa Jun 11, 2025
2116765
Merge pull request #477 from mashmatrix/support-slds-2-table
stomita Jun 12, 2025
c85f24a
Merge pull request #473 from mashmatrix/support-slds-2-tree-tree-node
stomita Jun 12, 2025
b3383e4
Merge pull request #460 from mashmatrix/support-slds-2-text
stomita Jun 12, 2025
129c918
Merge pull request #463 from mashmatrix/support-slds-2-media-object
stomita Jun 12, 2025
92ba8b4
Merge branch 'support-slds-2' into support-slds-2-tabs
msmx-mnakagawa Jun 12, 2025
8404ed0
Revert "Revert "(Tree): improve a11y""
msmx-mnakagawa Jun 12, 2025
1ac4e09
Revert "Revert "(Tree): update classnames""
msmx-mnakagawa Jun 12, 2025
038b3bb
Revert "Revert "(TreeNode): improve a11y""
msmx-mnakagawa Jun 12, 2025
de41656
Revert "Revert "(TreeNode): update markups""
msmx-mnakagawa Jun 12, 2025
4aee558
Revert "Revert "(TreeNode): revert mistakenly added button size""
msmx-mnakagawa Jun 12, 2025
9c287d1
Revert "Revert "(TreeNode): remove a switch that wouldn't be required""
msmx-mnakagawa Jun 12, 2025
53b0c13
Revert "Revert "(TreeNode): add `title` prop to item label""
msmx-mnakagawa Jun 12, 2025
f69aa7e
Revert "Revert "(TreeNode): remove implicit `title` setting""
msmx-mnakagawa Jun 12, 2025
aaf7222
Revert "Revert "(TreeNode): remove the `aria-hidden` that may prevent…
msmx-mnakagawa Jun 12, 2025
2ad814c
Revert "Revert "(TreeNode): remove `tabIndex`es that differ from the …
msmx-mnakagawa Jun 12, 2025
982b4c7
Merge pull request #462 from mashmatrix/support-slds-2-modal
stomita Jun 12, 2025
5d62cb0
Merge pull request #475 from mashmatrix/support-slds-2-popover
stomita Jun 12, 2025
afd0bc4
Merge pull request #479 from mashmatrix/support-slds-2-tabs
stomita Jun 12, 2025
b11ae01
Merge branch 'support-slds-2' into support-slds-2-form-element-field-set
msmx-mnakagawa Jun 12, 2025
2182d63
(FormElement): rename `htmlFor` with `controlId`
msmx-mnakagawa Jun 12, 2025
a7218a2
Merge branch 'support-slds-2' into support-slds-2-dropdown-menu-dropd…
msmx-mnakagawa Jun 12, 2025
b5009c9
(DropdownButton): rename duprecated `.slds-button-space-left` with `.…
msmx-mnakagawa Jun 12, 2025
42a8b4c
(PageHeader): update markups significantly
msmx-mnakagawa Jun 5, 2025
bdeedbc
Merge branch 'master' into support-slds-2
msmx-mnakagawa Jun 12, 2025
839ab24
Merge branch 'support-slds-2' into support-slds-2-notification
msmx-mnakagawa Jun 12, 2025
4997a59
(Notification): remove duplicated `.slds-assistive-text`
msmx-mnakagawa Jun 12, 2025
791848b
(Notification): split a markup based on its `type`
msmx-mnakagawa Jun 13, 2025
22d4b0f
Merge branch 'master' into support-slds-2
msmx-mnakagawa Jun 13, 2025
831dd05
Merge branch 'support-slds-2' into support-slds-2-notification
msmx-mnakagawa Jun 13, 2025
b3d9288
Merge pull request #466 from mashmatrix/support-slds-2-form-element-f…
stomita Jun 13, 2025
4272771
(Toggle): pass `id` as `controlId`
msmx-mnakagawa May 30, 2025
fa9c314
(Toggle): remove undocumented `aria-live` attribute
msmx-mnakagawa May 30, 2025
000f488
(Toggle): handle `aria-describedby`
msmx-mnakagawa May 30, 2025
6145d4e
(Select): pass `id` as `controlId`
msmx-mnakagawa May 30, 2025
da98ae1
(Select): insert `.slds-select_container` inside the `FormElement`
msmx-mnakagawa May 30, 2025
f8b18fa
(Radio): update markup
msmx-mnakagawa May 30, 2025
4bde0ab
(Checkbox): update markup
msmx-mnakagawa May 30, 2025
8c20590
(Checkbox, CheckboxGroup): handle a11y
msmx-mnakagawa May 30, 2025
d506fe6
(Radio, RadioGroup): improve a11y
msmx-mnakagawa Jun 13, 2025
67c17c8
(Input): improve a11y
msmx-mnakagawa May 30, 2025
571ab0f
(Textarea): update markup for `readOnly`
msmx-mnakagawa May 30, 2025
84094cd
(Textarea): update a classname
msmx-mnakagawa May 30, 2025
aeeaae8
(Textarea): improve a11y
msmx-mnakagawa May 30, 2025
3895a68
(DateInput): pass id as controlId
msmx-mnakagawa Jun 13, 2025
434a501
(DateInput): update classnames
msmx-mnakagawa Jun 3, 2025
d27457c
(DateInput): improve a11y
msmx-mnakagawa Jun 3, 2025
226d03f
(Datepicker): update markups and classnames
msmx-mnakagawa Jun 3, 2025
d2d898d
(Datepicker): improve a11y
msmx-mnakagawa Jun 3, 2025
214c35d
(Picklist): update markups to combobox pattern
msmx-mnakagawa Jun 13, 2025
4dd62f9
(Picklist): update classnames for dropdown sizing
msmx-mnakagawa Jun 4, 2025
18274d8
(Picklist): improve a11y for disabled state
msmx-mnakagawa Jun 4, 2025
6730e1c
(Form): update markups
msmx-mnakagawa Jun 10, 2025
c563045
(Form): apply form type to each form element
msmx-mnakagawa Jun 10, 2025
0746be9
(Icon): add `xx-small` size
msmx-mnakagawa Jun 5, 2025
7dbc121
(Spinner): add `x-small` size
msmx-mnakagawa Jun 5, 2025
0d68f52
(Spinner): add a `layout` prop
msmx-mnakagawa Jun 5, 2025
e761b0e
(Lookup): implement basic SLDS-compliant combobox pattern
msmx-mnakagawa Jun 5, 2025
d69e781
(Lookup): improve accessibility with unified a11y attributes
msmx-mnakagawa Jun 5, 2025
c13b711
(Lookup): implement Multi Entity Lookup with scope selection
msmx-mnakagawa Jun 5, 2025
c7f0cdf
(Lookup): unify Icon component usage with container prop
msmx-mnakagawa Jun 5, 2025
6c2fe84
(Lookup): implement SLDS-compliant selected state markup
msmx-mnakagawa Jun 5, 2025
947a1a2
(Lookup): add iconAlign feature and restore Stories functionality
msmx-mnakagawa Jun 5, 2025
296b514
(Lookup): apply rest updates
msmx-mnakagawa Jun 5, 2025
4edd315
Merge pull request #474 from mashmatrix/support-slds-2-dropdown-menu-…
stomita Jun 17, 2025
b513781
Merge pull request #483 from mashmatrix/support-slds-2-page-header
stomita Jun 17, 2025
3a5ff8b
Merge branch 'support-slds-2' into support-slds-2-input
msmx-mnakagawa Jun 17, 2025
d67ae9d
(Input): use `useId()` as prefixes
msmx-mnakagawa Jun 17, 2025
c0e4280
Merge branch 'support-slds-2' into support-slds-2-toggle
msmx-mnakagawa Jun 17, 2025
6113bbd
(Toggle): revert unnecessary attribute changes
msmx-mnakagawa Jun 17, 2025
01ab0d7
Merge branch 'support-slds-2' into support-slds-2-select
msmx-mnakagawa Jun 17, 2025
a32dd17
(Select): wrap a select element with a container even when no label i…
msmx-mnakagawa Jun 17, 2025
94eae60
Merge branch 'support-slds-2' into support-slds-2-radio-radio-group
msmx-mnakagawa Jun 17, 2025
03449e5
(Radio): pass `id` explicitly to make `label` work fine
msmx-mnakagawa Jun 17, 2025
a27887e
Merge branch 'support-slds-2' into support-slds-2-checkbox-checkbox-g…
msmx-mnakagawa Jun 17, 2025
3a49bac
(Checkbox): pass `id` surely to make `label` work fine
msmx-mnakagawa Jun 17, 2025
21eef39
Merge branch 'support-slds-2' into support-slds-2-textarea
msmx-mnakagawa Jun 17, 2025
78514d5
(Textarea): pass `controlId` instead of `htmlFor`
msmx-mnakagawa Jun 17, 2025
4dc475d
(Textarea): add `htmlReadOnly` prop and a corresponding story, follow…
msmx-mnakagawa Jun 17, 2025
a6aab95
(Textarea): add attributes to the static `Text`, following `Input`
msmx-mnakagawa Jun 17, 2025
5ac7ffe
Merge branch 'support-slds-2' into support-slds-2-date-input-datepicker
msmx-mnakagawa Jun 17, 2025
32b8fca
(DateInput, DatePicker): remove unnecessary a11y attributes
msmx-mnakagawa Jun 17, 2025
c89d412
Merge branch 'support-slds-2' into support-slds-2-picklist
msmx-mnakagawa Jun 17, 2025
5718342
(Picklist): add a `scrollIntoView()` behavoir
msmx-mnakagawa Jun 17, 2025
a4f0c44
(Picklist): refactor to use `optionIdPrefix`
msmx-mnakagawa Jun 17, 2025
54c42eb
Merge branch 'support-slds-2' into support-slds-2-form
msmx-mnakagawa Jun 18, 2025
65b5886
Revert "(Form): apply form type to each form element"
msmx-mnakagawa Jun 18, 2025
f5db4ef
Merge branch 'support-slds-2' into support-slds-2-notification
msmx-mnakagawa Jun 18, 2025
4af32c7
reflect the spec
msmx-mnakagawa Jun 18, 2025
722c222
Merge branch 'support-slds-2' into support-slds-2-lookup
msmx-mnakagawa Jun 18, 2025
610776d
(Picklist): make `getPrevValue()` and `getNextValue()` not wrap around
msmx-mnakagawa Jun 18, 2025
52ff2a4
(Picklist): add Tab / Shift + Tab support
msmx-mnakagawa Jun 18, 2025
1750dd0
(Lookup): make `getPrevValue()` and `getNextValue()` not wrap around
msmx-mnakagawa Jun 18, 2025
2352af6
(Lookup): add Tab / Shift + Tab support
msmx-mnakagawa Jun 18, 2025
87d3bef
(Lookup): add a `scrollIntoView()` behavoir
msmx-mnakagawa Jun 18, 2025
76aaf73
(Lookup): add `onScopeKeyDown()`
msmx-mnakagawa Jun 18, 2025
3c7145a
(Lookup): refactor `scrollIntoView()` logic
msmx-mnakagawa Jun 18, 2025
4dc553d
(Lookup): refactor keyboard handlers
msmx-mnakagawa Jun 19, 2025
20eff7f
(Lookup): tweak icon sizes
msmx-mnakagawa Jun 19, 2025
a3df654
(Lookup): refactor to use `optionIdPrefix`
msmx-mnakagawa Jun 19, 2025
1cf0c6e
(Lookup): add a space key support
msmx-mnakagawa Jun 19, 2025
9f48228
(Lookup): enable skipping selections
msmx-mnakagawa Jun 19, 2025
896364e
Merge pull request #468 from mashmatrix/support-slds-2-select
stomita Jun 19, 2025
356ca4a
Merge branch 'support-slds-2' into support-slds-2-picklist
msmx-mnakagawa Jun 19, 2025
a61c532
Merge branch 'support-slds-2' into support-slds-2-lookup
msmx-mnakagawa Jun 19, 2025
5339bd6
Merge pull request #469 from mashmatrix/support-slds-2-radio-radio-group
stomita Jun 19, 2025
72353ea
Merge pull request #470 from mashmatrix/support-slds-2-checkbox-check…
stomita Jun 19, 2025
927a809
Merge branch 'support-slds-2' into support-slds-2-toggle
msmx-mnakagawa Jun 19, 2025
7636047
Merge branch 'support-slds-2' into support-slds-2-toggle
msmx-mnakagawa Jun 19, 2025
f5c8377
(Toggle): remove unnecessary attributes
msmx-mnakagawa Jun 19, 2025
9cb1257
Merge branch 'support-slds-2' into support-slds-2-input
msmx-mnakagawa Jun 19, 2025
4cb3806
Merge pull request #480 from mashmatrix/support-slds-2-notification
stomita Jun 19, 2025
2014326
Merge pull request #488 from mashmatrix/support-slds-2-form
stomita Jun 19, 2025
432a147
(Input): rename ids more descriptive
msmx-mnakagawa Jun 19, 2025
a86434e
(Input): switch to specify `labelId` based on whether `label` exists
msmx-mnakagawa Jun 19, 2025
7c89da9
(Input): add a fallback for an empty string
msmx-mnakagawa Jun 19, 2025
88f3f0e
Merge branch 'support-slds-2' into support-slds-2-picklist
msmx-mnakagawa Jun 19, 2025
1da593e
use `DropdownMenu` to delegate keyboard handlers
msmx-mnakagawa Jun 19, 2025
2b8cfec
(Lookup): refactor to divide sub components
msmx-mnakagawa Jun 19, 2025
6eadf5e
Merge branch 'support-slds-2' into support-slds-2-lookup
msmx-mnakagawa Jun 19, 2025
ecf43a5
restore the existing implementation as much as possible
msmx-mnakagawa Jun 19, 2025
9742d12
(Input): remove `aria-labelledby` for consistency
msmx-mnakagawa Jun 19, 2025
961c313
(Tree): remove `aria-labelledby` for consistency
msmx-mnakagawa Jun 19, 2025
03633dd
(Tabs): remove `aria-labelledby` for consistency
msmx-mnakagawa Jun 19, 2025
3932ea3
Merge branch 'support-slds-2' into support-slds-2-date-input-datepicker
msmx-mnakagawa Jun 19, 2025
6e27a16
(Datepicker): remove incorrect `aria-multiselectable`
msmx-mnakagawa Jun 19, 2025
13fe21d
(Picklist): remove `aria-labelledby` for concistency
msmx-mnakagawa Jun 19, 2025
5edc2d8
(Lookup): remove `aria-labelledby` for consistency
msmx-mnakagawa Jun 19, 2025
78a7f0f
(Lookup): remove `scopeId` that wouldn't be necessary
msmx-mnakagawa Jun 19, 2025
417ca6e
(Lookup): pass `comboboxId` as `controlId`
msmx-mnakagawa Jun 19, 2025
c92f98e
Merge pull request #472 from mashmatrix/support-slds-2-textarea
stomita Jun 19, 2025
cb5c907
Merge pull request #476 from mashmatrix/support-slds-2-date-input-dat…
stomita Jun 19, 2025
399692e
Merge pull request #467 from mashmatrix/support-slds-2-toggle
stomita Jun 19, 2025
1af6b84
Merge pull request #471 from mashmatrix/support-slds-2-input
stomita Jun 19, 2025
df4398d
Revert "restore the existing implementation as much as possible"
msmx-mnakagawa Jun 19, 2025
dfe1d79
Revert "use `DropdownMenu` to delegate keyboard handlers"
msmx-mnakagawa Jun 19, 2025
e1721e4
(Picklit): simplify scrolling logic
msmx-mnakagawa Jun 19, 2025
0cdebf9
Merge branch 'support-slds-2' into support-slds-2-lookup
msmx-mnakagawa Jun 19, 2025
de94337
(Picklist): enable to open a picklist with `Tab` key
msmx-mnakagawa Jun 19, 2025
4c586c0
(Lookup): tweak keyboeard logic
msmx-mnakagawa Jun 20, 2025
bf62197
(Lookup): put divided components directly
msmx-mnakagawa Jun 20, 2025
2078825
(Lookup): rename `isIgnoreTabNavigation` with `isTabNavigationIgnored`
msmx-mnakagawa Jun 20, 2025
4ef6024
(Lookup): reimplement `createKeyHandler()` with a hook
msmx-mnakagawa Jun 20, 2025
3664759
(Lookup): (scope) mitigate re-rendering by capsulating state changes
msmx-mnakagawa Jun 20, 2025
64c8394
Merge branch 'support-slds-2' into support-slds-2-area-labelledby
msmx-mnakagawa Jun 20, 2025
7ee9d46
Merge pull request #489 from mashmatrix/support-slds-2-area-labelledby
stomita Jun 23, 2025
2bc8eab
Merge branch 'support-slds-2' into support-slds-2-lookup
msmx-mnakagawa Jun 25, 2025
b1edc8a
Merge branch 'support-slds-2' into support-slds-2-picklist
msmx-mnakagawa Jun 25, 2025
906c378
(Picklist): handle deeply nested children
msmx-mnakagawa Jun 26, 2025
1d1e691
(Picklist): consider `disabled`
msmx-mnakagawa Jun 26, 2025
f099a9a
(Picklist): reduce the number of unnecessary recalculation
msmx-mnakagawa Jun 26, 2025
74368a5
(Lookup): show `listHeader` and `listFooter` consistently
msmx-mnakagawa Jun 26, 2025
cbe1da7
(Lookup): pass static classNames statically
msmx-mnakagawa Jun 26, 2025
69dfbf0
(Lookup): memorize `optionValues`
msmx-mnakagawa Jun 26, 2025
4fa28d9
(Lookup): refactor variable names for clarity
msmx-mnakagawa Jun 26, 2025
1e8a52d
Merge pull request #481 from mashmatrix/support-slds-2-picklist
stomita Jul 1, 2025
efbeafc
Merge branch 'support-slds-2' into support-slds-2-lookup
msmx-mnakagawa Jul 1, 2025
d15c4ec
(Lookup): make disabled style for the scope select visible
msmx-mnakagawa Jul 1, 2025
c591e06
Merge pull request #482 from mashmatrix/support-slds-2-lookup
stomita Jul 1, 2025
fdc4e0d
(Icon): update icon types
msmx-mnakagawa Jun 6, 2025
189b004
(Icon): update markups and classnames
msmx-mnakagawa Jun 6, 2025
b05c36d
(Button): update markups and classnames
msmx-mnakagawa Jun 6, 2025
df1c712
(Button): add new button types
msmx-mnakagawa Jun 13, 2025
4e27579
(Button): reflect `iconSize` to `ButtonIcon`
msmx-mnakagawa Jun 13, 2025
096208e
(Button): remove unused classnames
msmx-mnakagawa Jun 13, 2025
90902c8
(Icon): update an interface about `container`
msmx-mnakagawa Jun 13, 2025
b78c6a6
(Icon): improve a category icon classname
msmx-mnakagawa Jun 13, 2025
73109a9
(Icon): add `title`, `currentColor`, and `flip` props
msmx-mnakagawa Jun 13, 2025
1d538cc
(Icon, Button): remove unnecessary `eslint-disable-` comments
msmx-mnakagawa Jul 2, 2025
9ea3e18
(Icon): update a naming convention
msmx-mnakagawa Jul 2, 2025
dd31946
(Datepicker): remove unnecessary `eslint-disable-` comments
msmx-mnakagawa Jul 2, 2025
2938aa7
(Modal): remove an unnecessary `eslint-disable-` comment
msmx-mnakagawa Jul 2, 2025
87ab6e1
Revert "(Icon): update icon types"
msmx-mnakagawa Jul 3, 2025
288d955
(Icon, Button): unify `SvgButtonIcon` with `SvgIcon`
msmx-mnakagawa Jul 3, 2025
ca09ade
Merge pull request #490 from mashmatrix/support-slds-2-remove-eslint-…
stomita Jul 3, 2025
ef99975
(Icon): reflect interface update to stories
msmx-mnakagawa Jul 3, 2025
5a141a3
Merge branch 'support-slds-2' into support-slds-2-icon-button
msmx-mnakagawa Jul 3, 2025
49a0628
(Button): change the order of properties
msmx-mnakagawa Jul 7, 2025
da113a2
(Icon): replace `circleContainer` with `container`
msmx-mnakagawa Jul 7, 2025
8235e6f
(Icon): make `textColor` and `currentColor` mutually exclusive
msmx-mnakagawa Jul 7, 2025
9bef3e3
(Icon): add the `Current Color` story
msmx-mnakagawa Jul 7, 2025
f57f21b
(Icon): unify the `label` into the `title`
msmx-mnakagawa Jul 7, 2025
893d631
remove duplicated type definitions
msmx-mnakagawa Jul 9, 2025
bf49d8d
Merge pull request #486 from mashmatrix/support-slds-2-icon-button
stomita Jul 10, 2025
3477d9c
(Picklist): restore the `buttonRef` prop
msmx-mnakagawa Jul 10, 2025
9a84e05
(Picklist): normalize markups around `Icon`
msmx-mnakagawa Jul 10, 2025
3d1e26c
(Picklist): restore the `icon` prop
msmx-mnakagawa Jul 11, 2025
8309f9e
(Picklist): restore the `divider` prop
msmx-mnakagawa Jul 11, 2025
9d8c620
(Picklist): rename `buttonRef` with `inputRef`
msmx-mnakagawa Jul 18, 2025
38195da
(Picklist): restore the `onClick` prop
msmx-mnakagawa Jul 14, 2025
35a62a5
(Picklist): restore the `iconRight` prop
msmx-mnakagawa Jul 15, 2025
1c6f3ad
Merge pull request #492 from mashmatrix/support-slds-2-restore-props
stomita Jul 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions src/scripts/Badge.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,25 @@ import classnames from 'classnames';
*
*/
export type BadgeProps = {
type?: 'default' | 'shade' | 'inverse';
type?: 'inverse' | 'lightest' | 'success' | 'warning' | 'error';
label?: string;
} & HTMLAttributes<HTMLSpanElement>;

/**
*
*/
export const Badge: FC<BadgeProps> = ({ type, label, ...props }) => {
const typeClassName = type ? `slds-theme_${type}` : null;
const badgeClassNames = classnames('slds-badge', typeClassName);
const typeClassName = /^(inverse|lightest)$/.test(type ?? '')
? `slds-badge_${type}`
: null;
const themeClassName = /^(success|warning|error)$/.test(type ?? '')
? `slds-theme_${type}`
: null;
const badgeClassNames = classnames(
'slds-badge',
typeClassName,
themeClassName
);
return (
<span className={badgeClassNames} {...props}>
{label || props.children}
Expand Down
25 changes: 7 additions & 18 deletions src/scripts/BreadCrumbs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,7 @@ export const Crumb: FC<CrumbProps> = ({
...props
}) => {
const text = children;
const cClassName = classnames(
'slds-list__item slds-text-heading_label',
className
);
const cClassName = classnames('slds-breadcrumb__item', className);

return (
<li {...props} className={cClassName}>
Expand All @@ -33,34 +30,26 @@ export const Crumb: FC<CrumbProps> = ({
/**
*
*/
export type BreadCrumbsProps = {
label?: string;
} & HTMLAttributes<HTMLElement>;
export type BreadCrumbsProps = HTMLAttributes<HTMLElement>;

/**
*
*/
export const BreadCrumbs: FC<BreadCrumbsProps> = ({
label,
className,
children,
...props
}) => {
const oClassName = classnames(
'slds-breadcrumb slds-list_horizontal',
'slds-breadcrumb',
'slds-list_horizontal',
'slds-wrap',
className
);

return (
<nav {...props} role='navigation'>
{label ? (
<p id='bread-crumb-label' className='slds-assistive-text'>
{label}
</p>
) : null}
<ol className={oClassName} aria-labelledby='bread-crumb-label'>
{children}
</ol>
<nav {...props} role='navigation' aria-label='Breadcrumbs'>
<ol className={oClassName}>{children}</ol>
</nav>
);
};
49 changes: 25 additions & 24 deletions src/scripts/Button.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
import React, { FC, ReactNode, ButtonHTMLAttributes, Ref, useRef } from 'react';
import classnames from 'classnames';
import { Icon } from './Icon';
import { SvgIcon, IconCategory } from './Icon';
import { Spinner } from './Spinner';
import { useEventCallback, useMergeRefs } from './hooks';

export type ButtonType =
| 'neutral'
| 'brand'
| 'outline-brand'
| 'destructive'
| 'text-destructive'
| 'success'
| 'inverse'
| 'icon'
| 'icon-bare'
Expand All @@ -31,6 +34,7 @@ export type ButtonIconMoreSize = 'x-small' | 'small' | 'medium' | 'large';
*/
export type ButtonIconProps = {
className?: string;
category?: IconCategory;
icon: string;
align?: ButtonIconAlign;
size?: ButtonIconSize;
Expand All @@ -43,9 +47,9 @@ export type ButtonIconProps = {
*/
export const ButtonIcon: FC<ButtonIconProps> = ({
icon,
category = 'utility',
align,
size,
inverse,
className,
style,
...props
Expand All @@ -56,19 +60,22 @@ export const ButtonIcon: FC<ButtonIconProps> = ({
: null;
const sizeClassName =
size && ICON_SIZES.indexOf(size) >= 0 ? `slds-button__icon_${size}` : null;
const inverseClassName = inverse ? 'slds-button__icon_inverse' : null;
const iconClassNames = classnames(
'slds-button__icon',
alignClassName,
sizeClassName,
inverseClassName,
className
);

if (icon.indexOf(':') > 0) {
[category, icon] = icon.split(':') as [IconCategory, string];
}

return (
<Icon
<SvgIcon
className={iconClassNames}
icon={icon}
textColor={null}
category={category}
pointerEvents='none'
style={style}
{...props}
Expand Down Expand Up @@ -118,6 +125,7 @@ export const Button: FC<ButtonProps> = (props) => {
buttonRef: buttonRef_,
iconMoreSize: iconMoreSize_,
onClick: onClick_,
tabIndex,
...rprops
} = props;

Expand All @@ -135,19 +143,24 @@ export const Button: FC<ButtonProps> = (props) => {
onClick_?.(e);
});

const content = children || label;
const isIconOnly = type && /^icon-/.test(type) && icon && !content;

const typeClassName = type ? `slds-button_${type}` : null;
const btnClassNames = classnames(className, 'slds-button', typeClassName, {
'slds-is-selected': selected,
['slds-button_icon']: /^icon-/.test(type ?? ''),
[`slds-button_icon-${size ?? ''}`]:
/^(x-small|small)$/.test(size ?? '') && /^icon-/.test(type ?? ''),
});

const buttonContent = (
// eslint-disable-next-line react/button-has-type
return (
<button
ref={buttonRef}
className={btnClassNames}
type={htmlType}
title={isIconOnly || alt ? alt ?? icon : undefined}
tabIndex={tabIndex ?? -1}
{...rprops}
onClick={onClick}
>
Expand All @@ -159,7 +172,7 @@ export const Button: FC<ButtonProps> = (props) => {
inverse={inverse}
/>
) : undefined}
{children || label}
{content}
{icon && iconAlign === 'right' ? (
<ButtonIcon
icon={icon}
Expand All @@ -171,22 +184,10 @@ export const Button: FC<ButtonProps> = (props) => {
{iconMore ? (
<ButtonIcon icon={iconMore} align='right' size={iconMoreSize} />
) : undefined}
{alt ? <span className='slds-assistive-text'>{alt}</span> : undefined}
{isIconOnly || alt ? (
<span className='slds-assistive-text'>{alt ?? icon}</span>
) : undefined}
{loading ? <Spinner /> : undefined}
</button>
);

if (props.tabIndex != null) {
return (
<span
className='react-slds-button-focus-wrapper'
style={{ outline: 0 }}
tabIndex={-1}
>
{buttonContent}
</span>
);
}

return buttonContent;
};
31 changes: 22 additions & 9 deletions src/scripts/Checkbox.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ import React, {
FC,
InputHTMLAttributes,
Ref,
useId,
useContext,
ReactNode,
} from 'react';
import classnames from 'classnames';
import { FormElement, FormElementProps } from './FormElement';
import { FormElement } from './FormElement';
import { CheckboxGroupContext, CheckboxValueType } from './CheckboxGroup';

/**
Expand All @@ -15,7 +16,6 @@ import { CheckboxGroupContext, CheckboxValueType } from './CheckboxGroup';
export type CheckboxProps = {
label?: string;
required?: boolean;
error?: FormElementProps['error'];
cols?: number;
name?: string;
value?: CheckboxValueType;
Expand All @@ -33,10 +33,10 @@ export type CheckboxProps = {
export const Checkbox: FC<CheckboxProps> = (props) => {
const {
type, // eslint-disable-line @typescript-eslint/no-unused-vars
id: id_,
className,
label,
required,
error,
cols,
tooltip,
tooltipIcon,
Expand All @@ -45,22 +45,35 @@ export const Checkbox: FC<CheckboxProps> = (props) => {
children,
...rprops
} = props;
const { grouped } = useContext(CheckboxGroupContext);

const prefix = useId();
const id = id_ ?? `${prefix}-id`;

const { grouped, error, errorId } = useContext(CheckboxGroupContext);
const formElemProps = {
required,
error,
errorId,
cols,
tooltip,
tooltipIcon,
elementRef,
};
const checkClassNames = classnames(className, 'slds-checkbox');
const check = (
<label className={checkClassNames}>
<input ref={inputRef} type='checkbox' {...rprops} />
<span className='slds-checkbox_faux' />
<span className='slds-form-element__label'>{label || children}</span>
</label>
<div className={checkClassNames}>
<input
ref={inputRef}
type='checkbox'
{...rprops}
id={id}
aria-describedby={error ? errorId : undefined}
/>
<label className='slds-checkbox__label' htmlFor={id}>
<span className='slds-checkbox_faux' />
<span className='slds-form-element__label'>{label || children}</span>
</label>
</div>
);
return grouped ? (
check
Expand Down
24 changes: 20 additions & 4 deletions src/scripts/CheckboxGroup.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React, {
useId,
createContext,
FieldsetHTMLAttributes,
Ref,
Expand All @@ -23,7 +24,11 @@ export type CheckboxValueType = string | number;
/**
*
*/
export const CheckboxGroupContext = createContext<{ grouped?: boolean }>({});
export const CheckboxGroupContext = createContext<{
grouped?: boolean;
error?: FormElementProps['error'];
errorId?: string;
}>({});

/**
*
Expand Down Expand Up @@ -107,19 +112,25 @@ export const CheckboxGroup = createFC<
? error.message
: undefined
: undefined;
const grpCtx = useMemo(() => ({ grouped: true }), []);

const errorId = useId();
const grpCtx = useMemo(
() => ({ grouped: true, error, errorId }),
[error, errorId]
);

return (
<fieldset
ref={elementRef}
className={grpClassNames}
style={grpStyles}
aria-required={required}
{...rprops}
onChange={onChange}
>
<legend className='slds-form-element__label'>
{required ? (
<abbr className='slds-required' title='required'>
<abbr className='slds-required' title='required' aria-hidden='true'>
*
</abbr>
) : undefined}
Expand All @@ -135,7 +146,12 @@ export const CheckboxGroup = createFC<
{children}
</CheckboxGroupContext.Provider>
{errorMessage ? (
<div className='slds-form-element__help'>{errorMessage}</div>
<div
className='slds-form-element__help'
id={error ? errorId : undefined}
>
{errorMessage}
</div>
) : undefined}
</div>
</fieldset>
Expand Down
13 changes: 11 additions & 2 deletions src/scripts/DateInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ export const DateInput = createFC<DateInputProps, { isFormElement: boolean }>(
});

const formElemProps = {
id,
controlId: id,
cols,
label,
required,
Expand All @@ -333,7 +333,16 @@ export const DateInput = createFC<DateInputProps, { isFormElement: boolean }>(
};
return (
<FormElement {...formElemProps}>
<div className={classnames(className, 'slds-dropdown-trigger')}>
<div
className={classnames(
className,
'slds-dropdown-trigger',
'slds-dropdown-trigger_click',
{
'slds-is-open': opened,
}
)}
>
<div className='slds-input-has-icon slds-input-has-icon_right'>
<Input
inputRef={inputRef}
Expand Down
Loading