Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
8434475
Baseline compatibilty
brianjhanson Mar 24, 2026
097d174
Cleaning up a bit
brianjhanson Mar 24, 2026
83416e6
Stop some style bleeding
brianjhanson Mar 24, 2026
ab86773
Fix legacy pages
brianjhanson Mar 25, 2026
666adaf
Minor styling updates
brianjhanson Mar 25, 2026
107b8e2
Clean up types
brianjhanson Mar 25, 2026
20d9995
Apply reset to `.menu--disclosure`
brianjhanson Mar 25, 2026
df32f7d
Ensure global Craft variable is defined
brianjhanson Mar 25, 2026
31590f9
Minor styling updates
brianjhanson Mar 25, 2026
ec083ba
POST request success
brianjhanson Mar 25, 2026
8efc0a0
Merge branch '6.x' into feature/js-compat
brianjhanson Mar 26, 2026
a941d86
Add reset class to legacy templates
brianjhanson Mar 27, 2026
109abd4
Update EntryTypeSelect.vue
brianjhanson Mar 30, 2026
ae44904
Use an EntryTypeResource
brianjhanson Mar 31, 2026
dc84db2
Prefix classes with .cp
brianjhanson Mar 31, 2026
c82b018
Ignore `craft-icon` and `slot` from namespacing
brianjhanson Mar 31, 2026
72ae3b0
Remove resource wrap by default
brianjhanson Mar 31, 2026
10e5020
Show overrides properly on form
brianjhanson Apr 1, 2026
6a729c4
Merge branch '6.x' into feature/js-compat
brianjhanson Apr 1, 2026
f39082f
Fix prettier
brianjhanson Apr 1, 2026
52f6e91
Merge branch '6.x' into feature/js-compat
brianjhanson Apr 7, 2026
4c55ced
Contain legacy styles
brianjhanson Apr 7, 2026
9dbdc37
Update tooltip styles a bit
brianjhanson Apr 7, 2026
d7c2b46
Working through EntryTyper overrides
brianjhanson Apr 7, 2026
db76f1d
Working Entry Type selection
brianjhanson Apr 7, 2026
b5a1342
A little janky, but it works
brianjhanson Apr 7, 2026
3a376b8
Handle more complex icons
brianjhanson Apr 7, 2026
d097371
Remove bespoke flex utility
brianjhanson Apr 8, 2026
7f3f1c9
Initial drag and drop on entryTypeSelect component
brianjhanson Apr 8, 2026
e6937bf
Remove debug styles
brianjhanson Apr 8, 2026
6ed3ac9
Add legacy styles
brianjhanson Apr 8, 2026
1872a02
Build assets
brianjhanson Apr 8, 2026
f5bf87c
Rebuild cp asset
brianjhanson Apr 8, 2026
6dcb9fa
Merge branch '6.x' of github.com:craftcms/cms into feature/js-compat
brianjhanson Apr 8, 2026
70fe939
Add tests
brianjhanson Apr 8, 2026
6e636d5
cp-colorable -> cp-color
brianjhanson Apr 8, 2026
24a2f5b
Rework color tokens a bit
brianjhanson Apr 8, 2026
51599bb
Add dom.ts tests
brianjhanson Apr 8, 2026
3729bed
Move menu styles out of the cp-legacy class
brianjhanson Apr 8, 2026
927517a
Paint over javascript error for now
brianjhanson Apr 8, 2026
166b9b2
Fix the HUD styling
brianjhanson Apr 8, 2026
d59880e
Fix test
brianjhanson Apr 8, 2026
a32abd8
EntryTypeResource cleanup
brianjhanson Apr 8, 2026
d4f68f4
Fix icon picker
brianjhanson Apr 8, 2026
2f4c874
Cleanup markup
brianjhanson Apr 8, 2026
0009aa9
Cleanup
brianjhanson Apr 8, 2026
256d070
Deleted _variables.scss a bit too early
brianjhanson Apr 8, 2026
4813932
Build
brianjhanson Apr 8, 2026
9b74009
Fix login
brianjhanson Apr 9, 2026
a4d1328
Merge branch '6.x' into feature/js-compat
brianjhanson Apr 14, 2026
bc138f9
Build
brianjhanson Apr 14, 2026
e322a8e
Inital craft-info-icon
brianjhanson Apr 8, 2026
13eb47c
Replace AdminTable info icon
brianjhanson Apr 9, 2026
6d83f06
Deprecation warning
brianjhanson Apr 9, 2026
79e1b35
Only one info-icon at a time
brianjhanson Apr 9, 2026
7633539
Update link field instructions with new icon
brianjhanson Apr 9, 2026
ee9d811
Port Entry Type and Fields index page
brianjhanson Apr 9, 2026
ff0f7cc
Make things more consistent
brianjhanson Apr 10, 2026
f400cb5
Remove extra prop
brianjhanson Apr 10, 2026
442aea9
Style "new" buttons
brianjhanson Apr 10, 2026
b40050d
Empty state
brianjhanson Apr 10, 2026
b4d7d08
Delete entry types
brianjhanson Apr 10, 2026
512feb3
Deprecation messages
brianjhanson Apr 10, 2026
75f8979
CSS grid cp-table
brianjhanson Apr 10, 2026
7c8e4e5
Translation and search icon badges
brianjhanson Apr 10, 2026
cfe840a
A bit more table cleanup
brianjhanson Apr 10, 2026
9aa358f
Improve styling of usages
brianjhanson Apr 10, 2026
07a3fc2
Minor styling updates
brianjhanson Apr 10, 2026
dc15ff7
Initial port of volumes
brianjhanson Apr 10, 2026
d8626d1
Reorder volumes
brianjhanson Apr 11, 2026
fcc465f
Switching out columnHelper for our custom one
brianjhanson Apr 11, 2026
0030699
Convert the image transforms page
brianjhanson Apr 11, 2026
8435f8b
Filesystems
brianjhanson Apr 13, 2026
f38e53d
Remove the old template
brianjhanson Apr 13, 2026
6ca7334
Build assets
brianjhanson Apr 14, 2026
d673815
Port GraphQL Schemas
brianjhanson Apr 14, 2026
742d8c2
Port GraphQL Tokens
brianjhanson Apr 14, 2026
230db5c
Port user groups
brianjhanson Apr 14, 2026
15aef75
Cleanup
brianjhanson Apr 14, 2026
10589ab
Merge branch '6.x' of github.com:craftcms/cms into feature/inertia-ui
brianjhanson Apr 14, 2026
a979004
Merge branch 'feature/inertia-ui' of github.com:craftcms/cms into fea…
brianjhanson Apr 14, 2026
af2440e
Add `whereNumber` for fields
brianjhanson Apr 14, 2026
902c9ff
Cleanup comment
brianjhanson Apr 14, 2026
bfcae1f
Update test
brianjhanson Apr 14, 2026
574c567
Fix PHPStan errors
brianjhanson Apr 14, 2026
4975d05
Fix type errors
brianjhanson Apr 14, 2026
e299043
Add docs for Admin Table
brianjhanson Apr 14, 2026
57597a4
Fix another type error
brianjhanson Apr 14, 2026
83be0ab
Update PagesTest
brianjhanson Apr 14, 2026
aa7d473
Fix info-icon display
brianjhanson Apr 14, 2026
4dc1b5b
Merge branch '6.x' of github.com:craftcms/cms into feature/inertia-ui
brianjhanson Apr 15, 2026
7349ffa
Update render test
brianjhanson Apr 15, 2026
7d9d71b
Merge branch 'feature/inertia-ui' of github.com:craftcms/cms into fea…
brianjhanson Apr 15, 2026
cf18ffb
Edit user groups page to inertia
brianjhanson Apr 20, 2026
d613c22
logical properties
brianjhanson Apr 20, 2026
8f2641b
Consolidate a bit of logic
brianjhanson Apr 20, 2026
6d39a04
Inertia links to user group
brianjhanson Apr 20, 2026
bcec45b
Disable pagination
brianjhanson Apr 20, 2026
c840183
inertiaProps isn't nullable
brianjhanson Apr 21, 2026
1f81c2b
Merge branch '6.x' into feature/inertia-ui
brianjhanson Apr 21, 2026
76e5a5a
Merge branch 'feature/inertia-ui' of github.com:craftcms/cms into fea…
brianjhanson Apr 21, 2026
1ee3980
Updates field settings tests
brianjhanson Apr 21, 2026
887d5e0
Merge branch 'feature/admin-table-pages' of github.com:craftcms/cms i…
brianjhanson Apr 21, 2026
84d0cd6
Cleanup email settings pae
brianjhanson Apr 21, 2026
cdbcd06
Consolidation and cleanup
brianjhanson Apr 21, 2026
3205047
Update tests
brianjhanson Apr 21, 2026
94927f4
Fix PHPStan error
brianjhanson Apr 21, 2026
ca8e39d
Fix token tests
brianjhanson Apr 21, 2026
6000ebe
Merge branch 'feature/admin-table-pages' of github.com:craftcms/cms i…
brianjhanson Apr 21, 2026
893c651
Merge pull request #18710 from craftcms/feature/admin-table-pages
brianjhanson Apr 21, 2026
523c96a
Merge branch 'feature/inertia-ui' into feature/edit-user-group
brianjhanson Apr 22, 2026
2ef502a
Update UserGroupsController test
brianjhanson Apr 22, 2026
f9128de
Merge pull request #18737 from craftcms/feature/edit-user-group
brianjhanson Apr 22, 2026
099fb1f
Refactor copy-button
brianjhanson Apr 23, 2026
fe4df28
Move shortcut support into action-item
brianjhanson Apr 23, 2026
594bac0
Fix admin table bug
brianjhanson Apr 23, 2026
ef1cd72
Majority of plugins index page
brianjhanson Apr 23, 2026
b8b2fc1
Fix random type error
brianjhanson Apr 23, 2026
4761658
Update PluginsController
brianjhanson Apr 23, 2026
ceeb71a
Move some changes from the other branch
brianjhanson Apr 23, 2026
ab99350
Merge branch '6.x' of github.com:craftcms/cms into feature/inertia-ui
brianjhanson Apr 24, 2026
7059687
Merge branch 'feature/inertia-ui' of github.com:craftcms/cms into fea…
brianjhanson Apr 24, 2026
831bd55
Add a storybook for the Vue side
brianjhanson Apr 24, 2026
8009732
Feature parity with legacy code
brianjhanson Apr 24, 2026
d9cf65e
Fix PluginsControllerTest test
brianjhanson Apr 24, 2026
8c72e31
Merge pull request #18750 from craftcms/feature/plugins-page
brandonkelly Apr 24, 2026
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
437 changes: 437 additions & 0 deletions .storybook/inertia-mock.ts

Large diffs are not rendered by default.

67 changes: 67 additions & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import type {StorybookConfig} from '@storybook/vue3-vite';
import {dirname, join} from 'path';
import vue from '@vitejs/plugin-vue';
import tailwindcss from '@tailwindcss/vite';

/**
* This function is used to resolve the absolute path of a package.
* It is needed in projects that use Yarn PnP or are set up within a monorepo.
*/
function getAbsolutePath(value: string): string {
return dirname(require.resolve(join(value, 'package.json')));
}

const config: StorybookConfig = {
stories: ['../resources/js/**/*.mdx', '../resources/js/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
addons: [
getAbsolutePath('@storybook/addon-themes'),
getAbsolutePath('@storybook/addon-docs'),
getAbsolutePath('@storybook/addon-a11y'),
],
framework: {
name: getAbsolutePath('@storybook/vue3-vite') as '@storybook/vue3-vite',
options: {
docgen: 'vue-component-meta',
},
},
viteFinal(config) {
// Storybook's vue3-vite framework adds its own Vue plugin with default options.
// We need to configure `isCustomElement` so Vue treats `craft-*` tags as web
// components (from @craftcms/cp) rather than trying to resolve them as Vue
// components. Since Vite's mergeConfig doesn't deep-merge plugin options,
// we remove Storybook's Vue plugin and add our own with the correct config.
const filteredPlugins = (config.plugins || []).flat().filter((plugin) => {
if (plugin && typeof plugin === 'object' && 'name' in plugin) {
return plugin.name !== 'vite:vue';
}
return true;
});

return {
...config,
plugins: [
...filteredPlugins,
tailwindcss(),
vue({
template: {
compilerOptions: {
isCustomElement: (tag) => tag.startsWith('craft-'),
},
},
}),
],
resolve: {
...config.resolve,
alias: {
...(config.resolve?.alias || {}),
'@': join(__dirname, '../resources/js'),
vue: 'vue/dist/vue.esm-bundler.js',
// Mock Inertia for Storybook
'@inertiajs/vue3': join(__dirname, 'inertia-mock.ts'),
},
},
};
},
};

export default config;
57 changes: 57 additions & 0 deletions .storybook/preview.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/* Storybook preview utilities */

/* Layout helpers for stories */
.sb-flex {
display: flex;
}

.sb-flex-col {
flex-direction: column;
}

.sb-items-center {
align-items: center;
}

.sb-justify-center {
justify-content: center;
}

.sb-gap-2 {
gap: 0.5rem;
}

.sb-gap-4 {
gap: 1rem;
}

.sb-p-4 {
padding: 1rem;
}

/* Grid utilities */
.sb-grid {
display: grid;
}

.sb-grid-cols-2 {
grid-template-columns: repeat(2, 1fr);
}

.sb-grid-cols-3 {
grid-template-columns: repeat(3, 1fr);
}

/* Stack layout */
.sb-stack {
display: flex;
flex-direction: column;
gap: 1rem;
}

.sb-inline {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
align-items: center;
}
62 changes: 62 additions & 0 deletions .storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import type {Preview} from '@storybook/vue3';
import {setup} from '@storybook/vue3';
import {withThemeByDataAttribute} from '@storybook/addon-themes';
import '@craftcms/cp';
import '../resources/css/cp.css';
import './preview.css';
import {installInertiaMock, type PageProps, setPageProps} from './inertia-mock';

// Install the Inertia mock globally
setup((app) => {
installInertiaMock(app);
});

// Declare module augmentation for Storybook parameters
declare module '@storybook/vue3' {
interface Parameters {
inertia?: Partial<PageProps>;
}
}

const preview: Preview = {
parameters: {
controls: {
expanded: true,
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
options: {
storySort: {
method: 'alphabetical',
},
},
a11y: {
// 'todo' - show a11y violations in the test UI only
// 'error' - fail CI on a11y violations
// 'off' - skip a11y checks entirely
test: 'todo',
},
},
decorators: [
// Inertia page props decorator - must come before theme decorator
(story, context) => {
// Reset and apply any story-specific page props
const inertiaProps = context.parameters.inertia || {};
setPageProps(inertiaProps);
return story();
},
withThemeByDataAttribute({
themes: {
light: 'light',
dark: 'dark',
},
defaultTheme: 'light',
attributeName: 'data-theme',
}),
],
tags: ['autodocs'],
};

export default preview;
Loading
Loading