From 32bbb69b0d3f774341a48bea30ca53274d7c20ad Mon Sep 17 00:00:00 2001 From: AtsushiM Date: Mon, 6 Apr 2026 15:59:24 +0900 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20Accordion=E3=82=B3=E3=83=B3?= =?UTF-8?q?=E3=83=9D=E3=83=BC=E3=83=8D=E3=83=B3=E3=83=88=E5=AF=BE=E5=BF=9C?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0=EF=BC=88=E5=BE=8C=E6=96=B9=E4=BA=92?= =?UTF-8?q?=E6=8F=9B=E6=80=A7=E3=81=AE=E3=81=9F=E3=82=81AccordionPanel?= =?UTF-8?q?=E3=81=AF=E4=BF=9D=E6=8C=81=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit smarthr-ui v92でAccordionPanelからAccordionへリネームされたため、両方をサポート。 変更内容: - rules/best-practice-for-interactive-element/index.js: Accordion(s)?を追加 - rules/component-name/index.js: 'Accordion$': 'Accordion$'を追加 - test/best-practice-for-interactive-element.js: Accordion(s)?を追加 - test/component-name.js: Accordionのテストケースを追加 - rules/best-practice-for-interactive-element/README.md: Accordionを追加 後方互換性のため、AccordionPanel(s)?は全て保持。 Co-Authored-By: Claude Sonnet 4.5 --- .../rules/best-practice-for-interactive-element/README.md | 3 ++- .../rules/best-practice-for-interactive-element/index.js | 3 ++- packages/eslint-plugin-smarthr/rules/component-name/index.js | 3 ++- .../test/best-practice-for-interactive-element.js | 3 ++- packages/eslint-plugin-smarthr/test/component-name.js | 1 + 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md b/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md index bb790648d..e783e3cdb 100644 --- a/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md +++ b/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md @@ -34,7 +34,8 @@ #### smarthr-uiの対象要素 -- AccordionPanel +- Accordion +- AccordionPanel (後方互換性のために残す) - Anchor - Checkbox - Date diff --git a/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/index.js b/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/index.js index 52f5389a8..4ff4cded6 100644 --- a/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/index.js +++ b/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/index.js @@ -8,7 +8,8 @@ const INTERACTIVE_COMPONENT_NAMES = `(${[ '(L|l)egend(s)$', '(S|s)elect(s)?', '(T|t)extarea(s)?', - 'AccordionPanel(s)?', + 'Accordion(s)?', + 'AccordionPanel(s)?', // 後方互換性のために残す 'Anchor', 'DisclosureTrigger?', 'DropZone(s)?', diff --git a/packages/eslint-plugin-smarthr/rules/component-name/index.js b/packages/eslint-plugin-smarthr/rules/component-name/index.js index ac325a08f..c3b9625fc 100644 --- a/packages/eslint-plugin-smarthr/rules/component-name/index.js +++ b/packages/eslint-plugin-smarthr/rules/component-name/index.js @@ -73,7 +73,8 @@ const EXPECTED_NAMES = { '(S|^s)ection$': 'Section$', '(S|^s)elect$': 'Select$', '(T|^t)extarea$': 'Textarea$', - 'AccordionPanel$': 'AccordionPanel$', + 'Accordion$': 'Accordion$', + 'AccordionPanel$': 'AccordionPanel$', // 後方互換性のために残す 'ActionDialogWithTrigger$': 'ActionDialogWithTrigger$', 'Anchor$': 'Anchor$', 'AnchorButton$': 'AnchorButton$', diff --git a/packages/eslint-plugin-smarthr/test/best-practice-for-interactive-element.js b/packages/eslint-plugin-smarthr/test/best-practice-for-interactive-element.js index 1cb5245a3..aecb8989a 100644 --- a/packages/eslint-plugin-smarthr/test/best-practice-for-interactive-element.js +++ b/packages/eslint-plugin-smarthr/test/best-practice-for-interactive-element.js @@ -21,7 +21,8 @@ const INTERACTIVE_COMPONENT_NAMES = `(${[ '(L|l)egend(s)$', '(S|s)elect(s)?', '(T|t)extarea(s)?', - 'AccordionPanel(s)?', + 'Accordion(s)?', + 'AccordionPanel(s)?', // 後方互換性のために残す 'Anchor', 'DisclosureTrigger?', 'DropZone(s)?', diff --git a/packages/eslint-plugin-smarthr/test/component-name.js b/packages/eslint-plugin-smarthr/test/component-name.js index e4f51f25d..2a6dea4f6 100644 --- a/packages/eslint-plugin-smarthr/test/component-name.js +++ b/packages/eslint-plugin-smarthr/test/component-name.js @@ -178,6 +178,7 @@ ruleTester.run('component-name', rule, { { code: `import { FormDialog as HogeDialog } from './hoge'`, errors: [ { message: messageImportAs({ extended: 'HogeDialog', matcher: /FormDialog$/, base: 'FormDialog' }) } ] }, { code: 'const PaginationFuga = styled(FugaPagination)``', errors: [ { message: messageInheritance({ extended: 'PaginationFuga', matcher: /Pagination$/ }) } ] }, { code: `import { HogeSideNav as Hoge } from './hoge'`, errors: [ { message: messageImportAs({ extended: 'Hoge', matcher: /Nav$/, base: 'HogeSideNav' }) }, { message: messageImportAs({ extended: 'Hoge', matcher: /SideNav$/, base: 'HogeSideNav' }) } ] }, + { code: 'const AccordionAny = styled(FugaAccordion)``', errors: [ { message: messageInheritance({ extended: 'AccordionAny', matcher: /Accordion$/ }) } ] }, { code: 'const AccordionPanelAny = styled(FugaAccordionPanel)``', errors: [ { message: messageInheritance({ extended: 'AccordionPanelAny', matcher: /AccordionPanel$/ }) } ] }, { code: `import { HogeFilterDropdown as Hoge } from './hoge'`, errors: [ { message: messageImportAs({ extended: 'Hoge', matcher: /FilterDropdown$/, base: 'HogeFilterDropdown' }) } ] }, { code: `const Hoge = styled.fieldset`, errors: [ { message: messageInheritance({ extended: 'Hoge', matcher: /Fieldset$/ }) } ] }, From 8f93a1743db4e4010e827506ddf885247632ea0e Mon Sep 17 00:00:00 2001 From: AtsushiM Date: Mon, 6 Apr 2026 16:12:08 +0900 Subject: [PATCH 2/4] =?UTF-8?q?docs:=20readme=E3=81=8B=E3=82=89=E5=BE=8C?= =?UTF-8?q?=E6=96=B9=E4=BA=92=E6=8F=9B=E6=80=A7=E3=81=AE=E6=B3=A8=E8=A8=98?= =?UTF-8?q?=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.5 --- .../rules/best-practice-for-interactive-element/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md b/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md index e783e3cdb..8e8a0edc9 100644 --- a/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md +++ b/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md @@ -35,7 +35,7 @@ #### smarthr-uiの対象要素 - Accordion -- AccordionPanel (後方互換性のために残す) +- AccordionPanel - Anchor - Checkbox - Date From 0d7587aa859264f861b5f3b23aee6f27596eefaf Mon Sep 17 00:00:00 2001 From: AtsushiM Date: Mon, 6 Apr 2026 16:14:52 +0900 Subject: [PATCH 3/4] =?UTF-8?q?refactor:=20=E6=AD=A3=E8=A6=8F=E8=A1=A8?= =?UTF-8?q?=E7=8F=BE=E3=82=92Accordion(Panel)=3F(s)=3F=E3=81=AB=E7=B5=B1?= =?UTF-8?q?=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.5 --- .../rules/best-practice-for-interactive-element/index.js | 3 +-- .../test/best-practice-for-interactive-element.js | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/index.js b/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/index.js index 4ff4cded6..9f6acc0c0 100644 --- a/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/index.js +++ b/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/index.js @@ -8,8 +8,7 @@ const INTERACTIVE_COMPONENT_NAMES = `(${[ '(L|l)egend(s)$', '(S|s)elect(s)?', '(T|t)extarea(s)?', - 'Accordion(s)?', - 'AccordionPanel(s)?', // 後方互換性のために残す + 'Accordion(Panel)?(s)?', 'Anchor', 'DisclosureTrigger?', 'DropZone(s)?', diff --git a/packages/eslint-plugin-smarthr/test/best-practice-for-interactive-element.js b/packages/eslint-plugin-smarthr/test/best-practice-for-interactive-element.js index aecb8989a..0c23b630b 100644 --- a/packages/eslint-plugin-smarthr/test/best-practice-for-interactive-element.js +++ b/packages/eslint-plugin-smarthr/test/best-practice-for-interactive-element.js @@ -21,8 +21,7 @@ const INTERACTIVE_COMPONENT_NAMES = `(${[ '(L|l)egend(s)$', '(S|s)elect(s)?', '(T|t)extarea(s)?', - 'Accordion(s)?', - 'AccordionPanel(s)?', // 後方互換性のために残す + 'Accordion(Panel)?(s)?', 'Anchor', 'DisclosureTrigger?', 'DropZone(s)?', From a49bbfb8cdad63b9c46cb9f882b44273683870bf Mon Sep 17 00:00:00 2001 From: AtsushiM Date: Mon, 6 Apr 2026 16:15:21 +0900 Subject: [PATCH 4/4] =?UTF-8?q?docs:=20readme=E3=81=8B=E3=82=89AccordionPa?= =?UTF-8?q?nel=E3=81=AE=E8=A8=98=E8=BF=B0=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 後方互換性のためロジックには残すが、ユーザー向けドキュメントには最新のAccordionのみ記載。 Co-Authored-By: Claude Sonnet 4.5 --- .../rules/best-practice-for-interactive-element/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md b/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md index 8e8a0edc9..49060bb58 100644 --- a/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md +++ b/packages/eslint-plugin-smarthr/rules/best-practice-for-interactive-element/README.md @@ -35,7 +35,6 @@ #### smarthr-uiの対象要素 - Accordion -- AccordionPanel - Anchor - Checkbox - Date