diff --git a/.changeset/beige-suits-jam.md b/.changeset/beige-suits-jam.md new file mode 100644 index 00000000000..5dbfa0044da --- /dev/null +++ b/.changeset/beige-suits-jam.md @@ -0,0 +1,5 @@ +--- +'@itwin/itwinui-react': major +--- + +The dependencies on `@itwin/itwinui-css` and `@itwin/itwinui-variable` have been removed. This means `@itwin/itwinui-react` will bring its own stylesheet. diff --git a/.changeset/loud-adults-deny.md b/.changeset/loud-adults-deny.md new file mode 100644 index 00000000000..2583012d5b8 --- /dev/null +++ b/.changeset/loud-adults-deny.md @@ -0,0 +1,5 @@ +--- +'@itwin/itwinui-react': major +--- + +All elements have had their class names changed to prevent conflict with older versions. It is strongly recommended to switch these internal classes with your own classes or data attributes. diff --git a/.changeset/ninety-phones-deny.md b/.changeset/ninety-phones-deny.md new file mode 100644 index 00000000000..46f1036a246 --- /dev/null +++ b/.changeset/ninety-phones-deny.md @@ -0,0 +1,5 @@ +--- +'@itwin/itwinui-css': major +--- + +`border-box` will now be set for _all_ elements under `iui-root`. diff --git a/.changeset/smart-guests-play.md b/.changeset/smart-guests-play.md index a86cd693f2a..9326460c888 100644 --- a/.changeset/smart-guests-play.md +++ b/.changeset/smart-guests-play.md @@ -3,4 +3,4 @@ '@itwin/itwinui-css': major --- -Instead of cloning passed icons to set classes on them, the classes will now be set on a wrapping element. Affected components: `Header`, `Select`, `MenuItem`, `RadioTile`, `Tabs`, `ToggleSwitch`, `TreeNode`, `InputContainer` (and all input variants). +Instead of cloning passed icons to set classes on them, the classes will now be set on a wrapping element. Affected components: `Header`, `Select`, `MenuItem`, `RadioTile`, `Tabs`, `Tile`, `ToggleSwitch`, `TreeNode`, `InputContainer` (and all input variants). diff --git a/.changeset/twelve-olives-roll.md b/.changeset/twelve-olives-roll.md new file mode 100644 index 00000000000..ee84129715b --- /dev/null +++ b/.changeset/twelve-olives-roll.md @@ -0,0 +1,5 @@ +--- +'@itwin/itwinui-variables': minor +--- + +All selectors have been wrapped with `:where` to nullify specificity. diff --git a/apps/storybook/.storybook/StoryWithDecorator.jsx b/apps/storybook/.storybook/StoryWithDecorator.jsx index 17855b7dbe6..28c623c0081 100644 --- a/apps/storybook/.storybook/StoryWithDecorator.jsx +++ b/apps/storybook/.storybook/StoryWithDecorator.jsx @@ -20,6 +20,7 @@ export default function StoryWithDecorator(Story, context) { theme={theme} themeOptions={{ highContrast, applyBackground: false }} style={{ background }} + className='story-wrapper' > diff --git a/apps/storybook/.storybook/preview-body.html b/apps/storybook/.storybook/preview-body.html index 437351d0279..709957e9c30 100644 --- a/apps/storybook/.storybook/preview-body.html +++ b/apps/storybook/.storybook/preview-body.html @@ -2,7 +2,7 @@ html, body { padding: 0 !important; } - .iui-root { + .story-wrapper { padding: 1rem; height: 100svh; } diff --git a/apps/storybook/.storybook/preview.js b/apps/storybook/.storybook/preview.js index 9043d3b169b..239e967298b 100644 --- a/apps/storybook/.storybook/preview.js +++ b/apps/storybook/.storybook/preview.js @@ -12,7 +12,6 @@ const prefersDark = window.matchMedia?.('(prefers-color-scheme: dark)').matches; export default { parameters: { darkMode: { - classTarget: '.iui-root', dark: { ...themes.dark, ...darkTheme }, light: { ...themes.light, ...lightTheme }, }, diff --git a/apps/storybook/cypress-visual-screenshots/baseline/Alert.test.ts-Sticky.png b/apps/storybook/cypress-visual-screenshots/baseline/Alert.test.ts-Sticky.png index 9f8d5643ff3..a57bad06c22 100755 Binary files a/apps/storybook/cypress-visual-screenshots/baseline/Alert.test.ts-Sticky.png and b/apps/storybook/cypress-visual-screenshots/baseline/Alert.test.ts-Sticky.png differ diff --git a/apps/storybook/cypress-visual-screenshots/baseline/Breadcrumbs.test.ts-Overflow.png b/apps/storybook/cypress-visual-screenshots/baseline/Breadcrumbs.test.ts-Overflow.png old mode 100755 new mode 100644 index b6f8ee98182..ef2dfad1297 Binary files a/apps/storybook/cypress-visual-screenshots/baseline/Breadcrumbs.test.ts-Overflow.png and b/apps/storybook/cypress-visual-screenshots/baseline/Breadcrumbs.test.ts-Overflow.png differ diff --git a/apps/storybook/cypress-visual-screenshots/baseline/ButtonGroup.test.ts-Overflow.png b/apps/storybook/cypress-visual-screenshots/baseline/ButtonGroup.test.ts-Overflow.png index 691bb416f86..c6cff7b5d67 100755 Binary files a/apps/storybook/cypress-visual-screenshots/baseline/ButtonGroup.test.ts-Overflow.png and b/apps/storybook/cypress-visual-screenshots/baseline/ButtonGroup.test.ts-Overflow.png differ diff --git a/apps/storybook/cypress-visual-screenshots/baseline/Dialog.test.ts-Draggable Relative To Container.png b/apps/storybook/cypress-visual-screenshots/baseline/Dialog.test.ts-Draggable Relative To Container.png index d53edd2f0b7..979155290c3 100755 Binary files a/apps/storybook/cypress-visual-screenshots/baseline/Dialog.test.ts-Draggable Relative To Container.png and b/apps/storybook/cypress-visual-screenshots/baseline/Dialog.test.ts-Draggable Relative To Container.png differ diff --git a/apps/storybook/cypress-visual-screenshots/baseline/Header.test.ts-Slim.png b/apps/storybook/cypress-visual-screenshots/baseline/Header.test.ts-Slim.png index ba406f81d37..14c8e774ded 100755 Binary files a/apps/storybook/cypress-visual-screenshots/baseline/Header.test.ts-Slim.png and b/apps/storybook/cypress-visual-screenshots/baseline/Header.test.ts-Slim.png differ diff --git a/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow (Scroll end).png b/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow (Scroll end).png index 088ed1583d7..8060382982e 100755 Binary files a/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow (Scroll end).png and b/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow (Scroll end).png differ diff --git a/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow (Scroll start).png b/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow (Scroll start).png index f5ed85d661e..cebab3de5b6 100755 Binary files a/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow (Scroll start).png and b/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow (Scroll start).png differ diff --git a/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow.png b/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow.png index 051c8ad39df..4812a4a879a 100755 Binary files a/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow.png and b/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Horizontal Overflow.png differ diff --git a/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Vertical Overflow.png b/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Vertical Overflow.png index cabfad43336..470ecfded38 100755 Binary files a/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Vertical Overflow.png and b/apps/storybook/cypress-visual-screenshots/baseline/Tabs.test.ts-Vertical Overflow.png differ diff --git a/apps/storybook/src/AvatarGroup.test.ts b/apps/storybook/src/AvatarGroup.test.ts index 29a6f8b2651..ed05fa41345 100644 --- a/apps/storybook/src/AvatarGroup.test.ts +++ b/apps/storybook/src/AvatarGroup.test.ts @@ -18,7 +18,7 @@ describe('AvatarGroup', () => { cy.visit('iframe', { qs: { id } }); if (testName.includes('Tooltip')) { - cy.get('.iui-avatar-count').trigger('mouseenter'); // trigger tooltip + cy.get('abbr').contains('3').parent().trigger('mouseenter'); } cy.compareSnapshot(testName); diff --git a/apps/storybook/src/Breadcrumbs.test.ts b/apps/storybook/src/Breadcrumbs.test.ts index 23106829bf2..21fe76d6d0b 100644 --- a/apps/storybook/src/Breadcrumbs.test.ts +++ b/apps/storybook/src/Breadcrumbs.test.ts @@ -19,10 +19,6 @@ describe('Breadcrumbs', () => { const id = Cypress.storyId(storyPath, testName); cy.visit('iframe', { qs: { id } }); - if (testName === 'Custom Overflow Back Button') { - cy.get('.iui-button').eq(1).trigger('mouseenter'); - } - cy.compareSnapshot(testName); }); }); diff --git a/apps/storybook/src/ColorPicker.test.ts b/apps/storybook/src/ColorPicker.test.ts index e3d84dc6fdf..3b97dd5712f 100644 --- a/apps/storybook/src/ColorPicker.test.ts +++ b/apps/storybook/src/ColorPicker.test.ts @@ -10,7 +10,9 @@ describe('ColorPicker', () => { it(testName, function () { const id = Cypress.storyId(storyPath, testName); cy.visit('iframe', { qs: { id } }); - cy.get('.iui-button').first().click(); + cy.get('#storybook-root').within(() => { + cy.get('button').first().click(); + }); cy.compareSnapshot(testName); }); }); diff --git a/apps/storybook/src/ComboBox.test.ts b/apps/storybook/src/ComboBox.test.ts index 49b48281fa3..1d12164bd77 100644 --- a/apps/storybook/src/ComboBox.test.ts +++ b/apps/storybook/src/ComboBox.test.ts @@ -24,7 +24,7 @@ describe('ComboBox', () => { cy.compareSnapshot(`${testName} (Closed)`); cy.get('input').focus(); if (testName === 'Multiple Select') { - cy.get('.iui-list-item').then((els) => { + cy.get('[role=option]').then((els) => { const items = Array.from(els, (el) => el); items[3].click(); }); diff --git a/apps/storybook/src/Dialog.test.ts b/apps/storybook/src/Dialog.test.ts index 261af9ffbd7..4dd91356b8c 100644 --- a/apps/storybook/src/Dialog.test.ts +++ b/apps/storybook/src/Dialog.test.ts @@ -16,7 +16,9 @@ describe('Dialog', () => { it(testName, function () { const id = Cypress.storyId(storyPath, testName); cy.visit('iframe', { qs: { id } }); - cy.get('.iui-button').first().click(); + cy.get('#storybook-root').within(() => { + cy.get('button').first().click(); + }); cy.compareSnapshot(testName); }); }); diff --git a/apps/storybook/src/DropdownButton.test.ts b/apps/storybook/src/DropdownButton.test.ts index 457aafd799c..da2dbb97f60 100644 --- a/apps/storybook/src/DropdownButton.test.ts +++ b/apps/storybook/src/DropdownButton.test.ts @@ -11,7 +11,9 @@ describe('DropdownButton', () => { const id = Cypress.storyId(storyPath, testName); cy.visit('iframe', { qs: { id } }); cy.compareSnapshot(`${testName} (Closed)`); - cy.get('.iui-button').click(); + cy.get('#storybook-root').within(() => { + cy.get('button').click(); + }); cy.compareSnapshot(`${testName} (Open)`); }); }); diff --git a/apps/storybook/src/DropdownMenu.test.ts b/apps/storybook/src/DropdownMenu.test.ts index a034efd2420..bf313becd1a 100644 --- a/apps/storybook/src/DropdownMenu.test.ts +++ b/apps/storybook/src/DropdownMenu.test.ts @@ -19,10 +19,12 @@ describe('DropdownMenu', () => { const id = Cypress.storyId(storyPath, testName); cy.visit('iframe', { qs: { id } }); cy.compareSnapshot(`${testName} (Closed)`); - cy.get('.iui-button').click(); + cy.get('#storybook-root').within(() => { + cy.get('button').first().click(); + }); if (testName === 'Submenu') { - cy.get('.iui-list-item').last().trigger('mouseenter'); + cy.get('li[aria-expanded=false]').trigger('mouseenter'); } cy.compareSnapshot(`${testName} (Open)`); diff --git a/apps/storybook/src/ExpandableBlock.test.ts b/apps/storybook/src/ExpandableBlock.test.ts index 910c28cbd79..10d9a5484e9 100644 --- a/apps/storybook/src/ExpandableBlock.test.ts +++ b/apps/storybook/src/ExpandableBlock.test.ts @@ -20,7 +20,7 @@ describe('ExpandableBlock', () => { cy.visit('iframe', { qs: { id } }); cy.compareSnapshot(`${testName} (Closed)`); if (testName !== 'Disabled') { - cy.get('.iui-header').first().click(); + cy.get('[role=button]').first().click(); cy.compareSnapshot(`${testName} (Open)`); } }); diff --git a/apps/storybook/src/FileUpload.test.ts b/apps/storybook/src/FileUpload.test.ts index f91e267ebb6..3b687ed5429 100644 --- a/apps/storybook/src/FileUpload.test.ts +++ b/apps/storybook/src/FileUpload.test.ts @@ -20,7 +20,7 @@ describe('FileUpload', () => { testName === 'Default File Upload Card' || testName === 'Custom File Upload Card' ) { - cy.get('.iui-visually-hidden').selectFile( + cy.get('input').selectFile( { contents: Cypress.Buffer.from('file contents'), fileName: 'file.txt', diff --git a/apps/storybook/src/Flex.stories.tsx b/apps/storybook/src/Flex.stories.tsx index 385c09bdea8..c5fa073dea8 100644 --- a/apps/storybook/src/Flex.stories.tsx +++ b/apps/storybook/src/Flex.stories.tsx @@ -65,11 +65,11 @@ export default {