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 @@