diff --git a/aform/src/components/form/ADatePicker.vue b/aform/src/components/form/ADatePicker.vue
index f8749ae2..0e9a4a63 100644
--- a/aform/src/components/form/ADatePicker.vue
+++ b/aform/src/components/form/ADatePicker.vue
@@ -156,7 +156,7 @@ useKeyboardNav([
diff --git a/aform/src/theme/aform.css b/aform/src/theme/aform.css
index 15d493c7..80fe5bf2 100644
--- a/aform/src/theme/aform.css
+++ b/aform/src/theme/aform.css
@@ -1 +1 @@
-@import url('@stonecrop/themes/default/default.css');
+@import url('@stonecrop/themes/default.css');
diff --git a/aform/src/theme/login.css b/aform/src/theme/login.css
index 4bcbf482..fab0fd30 100644
--- a/aform/src/theme/login.css
+++ b/aform/src/theme/login.css
@@ -1,2 +1,2 @@
-@import url('@stonecrop/themes/default/default.css');
+@import url('@stonecrop/themes/default.css');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200');
diff --git a/atable/src/components/ACell.vue b/atable/src/components/ACell.vue
index 3d9537a0..a08045d4 100644
--- a/atable/src/components/ACell.vue
+++ b/atable/src/components/ACell.vue
@@ -193,5 +193,5 @@ const cellStyle: CSSProperties = {
diff --git a/atable/src/components/AExpansionRow.vue b/atable/src/components/AExpansionRow.vue
index 2a76df87..12211458 100644
--- a/atable/src/components/AExpansionRow.vue
+++ b/atable/src/components/AExpansionRow.vue
@@ -61,5 +61,5 @@ if (addNavigation) {
diff --git a/atable/src/components/ARow.vue b/atable/src/components/ARow.vue
index 86eef115..6c0434d1 100644
--- a/atable/src/components/ARow.vue
+++ b/atable/src/components/ARow.vue
@@ -87,5 +87,5 @@ if (addNavigation) {
diff --git a/atable/src/components/ATable.vue b/atable/src/components/ATable.vue
index 583c1638..93636cc4 100644
--- a/atable/src/components/ATable.vue
+++ b/atable/src/components/ATable.vue
@@ -224,5 +224,5 @@ window.addEventListener('keydown', (event: KeyboardEvent) => {
diff --git a/atable/src/components/ATableHeader.vue b/atable/src/components/ATableHeader.vue
index 8f57b2aa..43cd1a9a 100644
--- a/atable/src/components/ATableHeader.vue
+++ b/atable/src/components/ATableHeader.vue
@@ -34,5 +34,5 @@ const getHeaderCellStyle = (column: TableColumn): CSSProperties => ({
diff --git a/atable/src/components/ATableModal.vue b/atable/src/components/ATableModal.vue
index 7d3274fa..abbdd568 100644
--- a/atable/src/components/ATableModal.vue
+++ b/atable/src/components/ATableModal.vue
@@ -31,5 +31,5 @@ const handleInput = (event: Event) => {
diff --git a/beam/themes/beam.css b/beam/themes/beam.css
index 441bf8b1..2b176a06 100644
--- a/beam/themes/beam.css
+++ b/beam/themes/beam.css
@@ -1,4 +1,4 @@
-/* @import url('../../themes/default/default.css'); */
+/* @import url('../../themes/default.css'); */
@import url('https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap');
/* Style */
diff --git a/common/changes/@stonecrop/aform/fix-export-styles_2024-10-30-08-22.json b/common/changes/@stonecrop/aform/fix-export-styles_2024-10-30-08-22.json
new file mode 100644
index 00000000..add1f094
--- /dev/null
+++ b/common/changes/@stonecrop/aform/fix-export-styles_2024-10-30-08-22.json
@@ -0,0 +1,10 @@
+{
+ "changes": [
+ {
+ "packageName": "@stonecrop/aform",
+ "comment": "update theme path",
+ "type": "patch"
+ }
+ ],
+ "packageName": "@stonecrop/aform"
+}
\ No newline at end of file
diff --git a/common/changes/@stonecrop/atable/fix-export-styles_2024-10-30-08-22.json b/common/changes/@stonecrop/atable/fix-export-styles_2024-10-30-08-22.json
new file mode 100644
index 00000000..c7cdfd0e
--- /dev/null
+++ b/common/changes/@stonecrop/atable/fix-export-styles_2024-10-30-08-22.json
@@ -0,0 +1,10 @@
+{
+ "changes": [
+ {
+ "packageName": "@stonecrop/atable",
+ "comment": "update theme path",
+ "type": "patch"
+ }
+ ],
+ "packageName": "@stonecrop/atable"
+}
\ No newline at end of file
diff --git a/common/changes/@stonecrop/beam/fix-export-styles_2024-10-30-08-22.json b/common/changes/@stonecrop/beam/fix-export-styles_2024-10-30-08-22.json
new file mode 100644
index 00000000..a5e456a5
--- /dev/null
+++ b/common/changes/@stonecrop/beam/fix-export-styles_2024-10-30-08-22.json
@@ -0,0 +1,10 @@
+{
+ "changes": [
+ {
+ "packageName": "@stonecrop/beam",
+ "comment": "update theme path",
+ "type": "patch"
+ }
+ ],
+ "packageName": "@stonecrop/beam"
+}
\ No newline at end of file
diff --git a/common/changes/@stonecrop/themes/fix-export-styles_2024-10-30-08-22.json b/common/changes/@stonecrop/themes/fix-export-styles_2024-10-30-08-22.json
new file mode 100644
index 00000000..e0788b51
--- /dev/null
+++ b/common/changes/@stonecrop/themes/fix-export-styles_2024-10-30-08-22.json
@@ -0,0 +1,10 @@
+{
+ "changes": [
+ {
+ "packageName": "@stonecrop/themes",
+ "comment": "export themes correctly",
+ "type": "patch"
+ }
+ ],
+ "packageName": "@stonecrop/themes"
+}
\ No newline at end of file
diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml
index 20354256..a144f7be 100644
--- a/common/config/rush/pnpm-lock.yaml
+++ b/common/config/rush/pnpm-lock.yaml
@@ -634,15 +634,9 @@ importers:
../../themes:
devDependencies:
- '@vitejs/plugin-vue':
- specifier: ^5.1.3
- version: 5.1.3(vite@5.4.6)(vue@3.5.6)
vite:
specifier: ^5.4.5
version: 5.4.6(sass@1.78.0)
- vue:
- specifier: ^3.5.6
- version: 3.5.6(typescript@5.6.2)
../../utilities:
dependencies:
diff --git a/examples/atable/default.story.vue b/examples/atable/default.story.vue
index 5c6fb906..f577ac8a 100644
--- a/examples/atable/default.story.vue
+++ b/examples/atable/default.story.vue
@@ -108,7 +108,7 @@ const full_width_table = ref({
diff --git a/examples/atable/list.story.vue b/examples/atable/list.story.vue
index 4f9bf04a..e1943128 100644
--- a/examples/atable/list.story.vue
+++ b/examples/atable/list.story.vue
@@ -315,7 +315,7 @@ rowNav['keydown.enter'] = rowNav['keydown.down']
diff --git a/examples/atable/tree.story.vue b/examples/atable/tree.story.vue
index cb2457d1..a33b3a97 100644
--- a/examples/atable/tree.story.vue
+++ b/examples/atable/tree.story.vue
@@ -95,7 +95,7 @@ const pinned = ref({
diff --git a/examples/docbuilder/components/Builder.vue b/examples/docbuilder/components/Builder.vue
index d30e0e7d..bee826cd 100644
--- a/examples/docbuilder/components/Builder.vue
+++ b/examples/docbuilder/components/Builder.vue
@@ -88,7 +88,7 @@ const actionElements = [
diff --git a/themes/.npmignore b/themes/.npmignore
index 0c5b1f0c..5073370d 100644
--- a/themes/.npmignore
+++ b/themes/.npmignore
@@ -5,16 +5,11 @@
# Use negative patterns to bring back the specific things we want to publish.
!/bin/**
-!/src/**
-!/src-*/**
!/dist/**
!ThirdPartyNotice.txt
# Ignore certain patterns that should not get published.
/dist/*.stats.*
-/src/**/test/
-/src-*/**/test/
-*.test.js
# NOTE: These don't need to be specified, because NPM includes them automatically.
#
diff --git a/themes/README.md b/themes/README.md
index 35330c4c..ad75ccf0 100644
--- a/themes/README.md
+++ b/themes/README.md
@@ -14,8 +14,8 @@ This directory contains various themes that can be used in Stonecrop application
## Usage
-To use a theme, simply import the stylesheet into your application. For example, to use the `dark` theme:
+To use a theme, import the corresponding stylesheet into your application. For example, to use the `dark` theme:
```javascript
-import '@stonecrop/themes/dark';
+import '@stonecrop/themes/dark.css';
```
\ No newline at end of file
diff --git a/themes/agritheory/index.ts b/themes/agritheory/index.ts
new file mode 100644
index 00000000..dd71f3d3
--- /dev/null
+++ b/themes/agritheory/index.ts
@@ -0,0 +1 @@
+import './agritheory.css'
diff --git a/themes/dark/index.ts b/themes/dark/index.ts
new file mode 100644
index 00000000..e8688055
--- /dev/null
+++ b/themes/dark/index.ts
@@ -0,0 +1 @@
+import './dark.css'
diff --git a/themes/default/index.ts b/themes/default/index.ts
new file mode 100644
index 00000000..0ddd6711
--- /dev/null
+++ b/themes/default/index.ts
@@ -0,0 +1 @@
+import './default.css'
diff --git a/themes/excel/index.ts b/themes/excel/index.ts
new file mode 100644
index 00000000..e972eec9
--- /dev/null
+++ b/themes/excel/index.ts
@@ -0,0 +1 @@
+import './excel.css'
diff --git a/themes/index.css b/themes/index.css
deleted file mode 100644
index b86581a4..00000000
--- a/themes/index.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@import url('https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap');
-@import url('./default/default.css');
diff --git a/themes/index.js b/themes/index.js
deleted file mode 100644
index d2ad33db..00000000
--- a/themes/index.js
+++ /dev/null
@@ -1 +0,0 @@
-import './index.css'
diff --git a/themes/legal/index.ts b/themes/legal/index.ts
new file mode 100644
index 00000000..fbb34b96
--- /dev/null
+++ b/themes/legal/index.ts
@@ -0,0 +1 @@
+import './legal.css'
diff --git a/themes/package.json b/themes/package.json
index b438742f..281f798b 100644
--- a/themes/package.json
+++ b/themes/package.json
@@ -14,6 +14,15 @@
"bugs": {
"url": "https://github.com/agritheory/stonecrop/issues"
},
+ "exports": {
+ "./agritheory.css": "./dist/agritheory.css",
+ "./dark.css": "./dist/default.css",
+ "./default.css": "./dist/default.css",
+ "./excel.css": "./dist/default.css",
+ "./legal.css": "./dist/default.css",
+ "./verdant.css": "./dist/default.css",
+ "./vue.css": "./dist/default.css"
+ },
"scripts": {
"prepublish": "vite build",
"build": "vite build",
@@ -21,9 +30,7 @@
"preview": "vite preview"
},
"devDependencies": {
- "@vitejs/plugin-vue": "^5.1.3",
- "vite": "^5.4.5",
- "vue": "^3.5.6"
+ "vite": "^5.4.5"
},
"publishConfig": {
"access": "public"
diff --git a/themes/verdant/index.ts b/themes/verdant/index.ts
new file mode 100644
index 00000000..c6b6308f
--- /dev/null
+++ b/themes/verdant/index.ts
@@ -0,0 +1 @@
+import './verdant.css'
diff --git a/themes/vite.config.js b/themes/vite.config.js
index 0f749698..f57df406 100644
--- a/themes/vite.config.js
+++ b/themes/vite.config.js
@@ -1,28 +1,21 @@
import { resolve } from 'path'
import { defineConfig } from 'vite'
-import vue from '@vitejs/plugin-vue'
const projectRootDir = resolve(__dirname)
export default defineConfig({
- plugins: [vue()],
- resolve: {
- alias: {
- '@': resolve(projectRootDir, 'src'),
- },
- },
build: {
- sourcemap: true,
+ cssCodeSplit: true,
lib: {
- entry: resolve(projectRootDir, 'index.js'),
name: '@stonecrop/themes',
- },
- rollupOptions: {
- external: ['vue'],
- output: {
- globals: {
- vue: 'Vue',
- },
+ entry: {
+ agritheory: resolve(projectRootDir, 'agritheory/index.ts'),
+ dark: resolve(projectRootDir, 'dark/index.ts'),
+ default: resolve(projectRootDir, 'default/index.ts'),
+ excel: resolve(projectRootDir, 'excel/index.ts'),
+ legal: resolve(projectRootDir, 'legal/index.ts'),
+ verdant: resolve(projectRootDir, 'verdant/index.ts'),
+ vue: resolve(projectRootDir, 'vue/index.ts'),
},
},
},
diff --git a/themes/vue/index.ts b/themes/vue/index.ts
new file mode 100644
index 00000000..b8896cb4
--- /dev/null
+++ b/themes/vue/index.ts
@@ -0,0 +1 @@
+import './vue.css'