diff --git a/.gitignore b/.gitignore
index c148347d..c8b48d3c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -140,6 +140,8 @@ dist
storybook-static
vite.config.*.timestamp*
vitest.config.*.timestamp*
+.svelte-kit/
+.playwright-cli/
*.orig
diff --git a/components/language-chooser/common/find-language/languageSearcher.ts b/components/language-chooser/common/find-language/languageSearcher.ts
index c8da6611..790ea1c5 100644
--- a/components/language-chooser/common/find-language/languageSearcher.ts
+++ b/components/language-chooser/common/find-language/languageSearcher.ts
@@ -1,7 +1,8 @@
/* allow anys so we can handle any shape of language object */
/* eslint-disable @typescript-eslint/no-explicit-any */
-import Fuse, { FuseResult } from "fuse.js";
+import Fuse from "fuse.js";
+import type { FuseResult } from "fuse.js";
const ORIGINAL_LANGUAGE_OBJECT_KEY = "_originalLanguageObject";
diff --git a/components/language-chooser/common/find-language/languageTagUtils.ts b/components/language-chooser/common/find-language/languageTagUtils.ts
index cde52cfa..c73f5892 100644
--- a/components/language-chooser/common/find-language/languageTagUtils.ts
+++ b/components/language-chooser/common/find-language/languageTagUtils.ts
@@ -1,10 +1,10 @@
import equivalentTags from "./language-data/equivalentTags.json" with { type: "json" };
-import {
+import { LanguageType } from "./findLanguageInterfaces";
+import type {
ILanguage,
IOrthography,
IRegion,
IScript,
- LanguageType,
} from "./findLanguageInterfaces";
import {
deepStripDemarcation,
diff --git a/components/language-chooser/common/find-language/matchingSubstringDemarcation.ts b/components/language-chooser/common/find-language/matchingSubstringDemarcation.ts
index 172cab4c..a8512f78 100644
--- a/components/language-chooser/common/find-language/matchingSubstringDemarcation.ts
+++ b/components/language-chooser/common/find-language/matchingSubstringDemarcation.ts
@@ -1,5 +1,5 @@
import { cloneDeep } from "lodash";
-import { ILanguage } from "./findLanguageInterfaces";
+import type { ILanguage } from "./findLanguageInterfaces";
// for marking/bolding the substrings which match the search string
export const START_OF_MATCH_MARKER = "[";
diff --git a/components/language-chooser/common/find-language/regionsAndScripts.ts b/components/language-chooser/common/find-language/regionsAndScripts.ts
index 8bbaa286..274f77dc 100644
--- a/components/language-chooser/common/find-language/regionsAndScripts.ts
+++ b/components/language-chooser/common/find-language/regionsAndScripts.ts
@@ -1,6 +1,6 @@
import { iso31661 } from "iso-3166";
import { iso15924 } from "iso-15924";
-import { ILanguage, IRegion, IScript } from "./findLanguageInterfaces";
+import type { ILanguage, IRegion, IScript } from "./findLanguageInterfaces";
// ISO-3166-1 is a region code to region name lookup
export function getAllRegions(): IRegion[] {
diff --git a/components/language-chooser/common/find-language/searchForLanguage.ts b/components/language-chooser/common/find-language/searchForLanguage.ts
index 9f54540f..92a4f5a4 100644
--- a/components/language-chooser/common/find-language/searchForLanguage.ts
+++ b/components/language-chooser/common/find-language/searchForLanguage.ts
@@ -1,5 +1,5 @@
import Fuse from "fuse.js";
-import {
+import type {
ICustomizableLanguageDetails,
ILanguage,
IOrthography,
diff --git a/components/language-chooser/common/find-language/searchResultModifiers.ts b/components/language-chooser/common/find-language/searchResultModifiers.ts
index 32551b6d..33c1b196 100644
--- a/components/language-chooser/common/find-language/searchResultModifiers.ts
+++ b/components/language-chooser/common/find-language/searchResultModifiers.ts
@@ -1,4 +1,5 @@
-import { ILanguage, IScript, LanguageType } from "./findLanguageInterfaces";
+import { LanguageType } from "./findLanguageInterfaces";
+import type { ILanguage, IScript } from "./findLanguageInterfaces";
import {
demarcateResults,
stripDemarcation,
diff --git a/components/language-chooser/svelte/language-chooser-svelte-daisyui/index.html b/components/language-chooser/svelte/language-chooser-svelte-daisyui/index.html
deleted file mode 100644
index 2e4df713..00000000
--- a/components/language-chooser/svelte/language-chooser-svelte-daisyui/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
- Svelte Language Chooser
-
-
-
-
-
-
\ No newline at end of file
diff --git a/components/language-chooser/svelte/language-chooser-svelte-daisyui/index.ts b/components/language-chooser/svelte/language-chooser-svelte-daisyui/index.ts
deleted file mode 100644
index 9ba9ed42..00000000
--- a/components/language-chooser/svelte/language-chooser-svelte-daisyui/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { default as LanguageChooser } from "./src/lib/LanguageChooser.svelte";
-export { default as LanguageChooserModal } from "./src/lib/LanguageChooserModal.svelte";
diff --git a/components/language-chooser/svelte/language-chooser-svelte-daisyui/package.json b/components/language-chooser/svelte/language-chooser-svelte-daisyui/package.json
index 1896c5e9..ac41fc4b 100644
--- a/components/language-chooser/svelte/language-chooser-svelte-daisyui/package.json
+++ b/components/language-chooser/svelte/language-chooser-svelte-daisyui/package.json
@@ -6,21 +6,38 @@
"url": "git+https://github.com/sillsdev/EthnoLib.git",
"directory": "components/language-chooser/svelte/language-chooser-svelte-daisyui"
},
+ "publishConfig": {
+ "access": "public"
+ },
+ "files": [
+ "dist"
+ ],
"type": "module",
- "main": "./index.js",
- "types": "./index.d.ts",
+ "main": "./dist/index.js",
+ "types": "./dist/index.d.ts",
+ "svelte": "./dist/index.js",
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "svelte": "./dist/index.js",
+ "default": "./dist/index.js"
+ }
+ },
"scripts": {
- "dev": "vite --open",
+ "dev": "storybook dev -p 6007",
"typecheck": "tsc",
"check": "svelte-check --tsconfig ./tsconfig.json",
"prebuild": "npm run typecheck",
- "build": "nx vite:build",
+ "build": "svelte-package -i src/lib",
"storybook": "storybook dev -p 6007",
"build-storybook": "storybook build",
"lint": "eslint .",
"test": "nx vite:test --config vitest.config.ts",
"testonce": "nx vite:test --config vitest.config.ts --run"
},
+ "peerDependencies": {
+ "svelte": ">=5.0.0"
+ },
"dependencies": {
"@ethnolib/find-language": "0.3.0",
"@ethnolib/language-chooser-controller": "0.2.0",
@@ -29,8 +46,8 @@
"devDependencies": {
"@storybook/addon-essentials": "^8.2.8",
"@storybook/svelte-vite": "^8.2.8",
+ "@sveltejs/package": "^2.3.10",
"@sveltejs/vite-plugin-svelte": "^4.0.0",
- "@tailwindcss/postcss": "^4.1.13",
"@tailwindcss/typography": "^0.5.16",
"@tsconfig/svelte": "^5.0.0",
"autoprefixer": "^10.4.21",
@@ -46,5 +63,13 @@
"engines": {
"node": ">=18.18"
},
- "nx": {}
+ "nx": {
+ "targets": {
+ "nx-release-publish": {
+ "options": {
+ "packageRoot": "{projectRoot}"
+ }
+ }
+ }
+ }
}
diff --git a/components/language-chooser/svelte/language-chooser-svelte-daisyui/src/lib/index.ts b/components/language-chooser/svelte/language-chooser-svelte-daisyui/src/lib/index.ts
new file mode 100644
index 00000000..1e78166b
--- /dev/null
+++ b/components/language-chooser/svelte/language-chooser-svelte-daisyui/src/lib/index.ts
@@ -0,0 +1,2 @@
+export { default as LanguageChooser } from "./LanguageChooser.svelte";
+export { default as LanguageChooserModal } from "./LanguageChooserModal.svelte";
diff --git a/components/language-chooser/svelte/language-chooser-svelte-daisyui/src/main.ts b/components/language-chooser/svelte/language-chooser-svelte-daisyui/src/main.ts
deleted file mode 100644
index a319f906..00000000
--- a/components/language-chooser/svelte/language-chooser-svelte-daisyui/src/main.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { mount } from "svelte";
-import App from "./App.svelte";
-
-const app = mount(App, {
- target: document.getElementById("app")!,
-});
-
-export default app;
diff --git a/components/language-chooser/svelte/language-chooser-svelte-daisyui/tsconfig.lib.json b/components/language-chooser/svelte/language-chooser-svelte-daisyui/tsconfig.lib.json
index 14a7a858..48a7b4e9 100644
--- a/components/language-chooser/svelte/language-chooser-svelte-daisyui/tsconfig.lib.json
+++ b/components/language-chooser/svelte/language-chooser-svelte-daisyui/tsconfig.lib.json
@@ -27,7 +27,6 @@
"./**/*.jsx",
"./**/*.ts",
"./**/*.tsx",
- "./**/*.svelte",
- "../index.ts"
+ "./**/*.svelte"
]
}
diff --git a/components/language-chooser/svelte/language-chooser-svelte-daisyui/vite.config.ts b/components/language-chooser/svelte/language-chooser-svelte-daisyui/vite.config.ts
index a602ce26..7f8af29d 100644
--- a/components/language-chooser/svelte/language-chooser-svelte-daisyui/vite.config.ts
+++ b/components/language-chooser/svelte/language-chooser-svelte-daisyui/vite.config.ts
@@ -1,8 +1,6 @@
///
import { defineConfig } from "vite";
import { svelte } from "@sveltejs/vite-plugin-svelte";
-import dts from "vite-plugin-dts";
-import * as path from "path";
import { nxViteTsPaths } from "@nx/vite/plugins/nx-tsconfig-paths.plugin";
export default defineConfig({
@@ -24,30 +22,9 @@ export default defineConfig({
}
},
}),
- dts({
- entryRoot: ".",
- tsconfigPath: path.join(__dirname, "tsconfig.lib.json"),
- }),
],
css: {
postcss: "./postcss.config.js",
},
-
- // Configuration for building your library.
- // See: https://vitejs.dev/guide/build.html#library-mode
- build: {
- outDir: "./dist",
- emptyOutDir: true,
- reportCompressedSize: true,
- commonjsOptions: {
- transformMixedEsModules: true,
- },
- lib: {
- entry: "./index.ts",
- name: "@ethnolib/language-chooser-svelte-daisyui",
- fileName: "index",
- formats: ["es", "cjs"],
- },
- },
});
diff --git a/components/language-chooser/svelte/language-chooser-svelte-demo/package.json b/components/language-chooser/svelte/language-chooser-svelte-demo/package.json
new file mode 100644
index 00000000..7cc11ad6
--- /dev/null
+++ b/components/language-chooser/svelte/language-chooser-svelte-demo/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "@ethnolib/language-chooser-svelte-demo",
+ "version": "0.1.0",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite dev",
+ "build": "vite build",
+ "preview": "vite preview",
+ "check": "svelte-check --tsconfig ./tsconfig.json"
+ },
+ "dependencies": {
+ "@ethnolib/find-language": "0.3.0",
+ "@ethnolib/language-chooser-svelte-daisyui": "*"
+ },
+ "devDependencies": {
+ "@sveltejs/adapter-static": "^3.0.8",
+ "@sveltejs/kit": "^2.20.7",
+ "@sveltejs/vite-plugin-svelte": "^4.0.0",
+ "@tailwindcss/typography": "^0.5.16",
+ "autoprefixer": "^10.4.21",
+ "daisyui": "^5.1.12",
+ "postcss": "^8.5.6",
+ "svelte": "^5.38.6",
+ "svelte-check": "^4.0.5",
+ "tailwindcss": "^3.4.17",
+ "vite": "^5.0.8"
+ },
+ "nx": {}
+}
diff --git a/components/language-chooser/svelte/language-chooser-svelte-demo/postcss.config.js b/components/language-chooser/svelte/language-chooser-svelte-demo/postcss.config.js
new file mode 100644
index 00000000..2aa7205d
--- /dev/null
+++ b/components/language-chooser/svelte/language-chooser-svelte-demo/postcss.config.js
@@ -0,0 +1,6 @@
+export default {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
diff --git a/components/language-chooser/svelte/language-chooser-svelte-demo/project.json b/components/language-chooser/svelte/language-chooser-svelte-demo/project.json
new file mode 100644
index 00000000..196f7495
--- /dev/null
+++ b/components/language-chooser/svelte/language-chooser-svelte-demo/project.json
@@ -0,0 +1,21 @@
+{
+ "name": "@ethnolib/language-chooser-svelte-demo",
+ "$schema": "../../../../node_modules/nx/schemas/project-schema.json",
+ "projectType": "application",
+ "targets": {
+ "dev": {
+ "executor": "nx:run-commands",
+ "options": {
+ "command": "npm run dev",
+ "cwd": "{projectRoot}"
+ }
+ },
+ "build": {
+ "executor": "nx:run-commands",
+ "options": {
+ "command": "npm run build",
+ "cwd": "{projectRoot}"
+ }
+ }
+ }
+}
diff --git a/components/language-chooser/svelte/language-chooser-svelte-demo/src/app.css b/components/language-chooser/svelte/language-chooser-svelte-demo/src/app.css
new file mode 100644
index 00000000..b5c61c95
--- /dev/null
+++ b/components/language-chooser/svelte/language-chooser-svelte-demo/src/app.css
@@ -0,0 +1,3 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
diff --git a/components/language-chooser/svelte/language-chooser-svelte-demo/src/app.html b/components/language-chooser/svelte/language-chooser-svelte-demo/src/app.html
new file mode 100644
index 00000000..84ffad16
--- /dev/null
+++ b/components/language-chooser/svelte/language-chooser-svelte-demo/src/app.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ %sveltekit.head%
+
+
+ %sveltekit.body%
+
+
diff --git a/components/language-chooser/svelte/language-chooser-svelte-demo/src/routes/+layout.svelte b/components/language-chooser/svelte/language-chooser-svelte-demo/src/routes/+layout.svelte
new file mode 100644
index 00000000..0f295c23
--- /dev/null
+++ b/components/language-chooser/svelte/language-chooser-svelte-demo/src/routes/+layout.svelte
@@ -0,0 +1,8 @@
+
+
+{@render children()}
diff --git a/components/language-chooser/svelte/language-chooser-svelte-daisyui/src/App.svelte b/components/language-chooser/svelte/language-chooser-svelte-demo/src/routes/+page.svelte
similarity index 91%
rename from components/language-chooser/svelte/language-chooser-svelte-daisyui/src/App.svelte
rename to components/language-chooser/svelte/language-chooser-svelte-demo/src/routes/+page.svelte
index 74378774..20c69423 100644
--- a/components/language-chooser/svelte/language-chooser-svelte-daisyui/src/App.svelte
+++ b/components/language-chooser/svelte/language-chooser-svelte-demo/src/routes/+page.svelte
@@ -1,12 +1,9 @@