From c76e9653d4c89738b05a36a58b4f0b1c85f0e4a7 Mon Sep 17 00:00:00 2001 From: maze Date: Thu, 12 Mar 2026 11:17:43 +0100 Subject: [PATCH] Fixed table styles and panel variants --- .gitignore | 2 +- .stylelintrc.json | 5 ++++ package.json | 24 ++++++++-------- scripts/build-if-needed.cjs | 48 ++++++++++++++++++++++++++++++- src/components/Footer.tsx | 2 +- src/components/Layout.tsx | 4 +-- src/components/Navbar.tsx | 2 +- src/components/Split.tsx | 15 ++++------ src/index.ts | 18 ++++-------- src/styles/components/_table.scss | 2 +- vite.config.ts | 8 ++++++ 11 files changed, 90 insertions(+), 40 deletions(-) diff --git a/.gitignore b/.gitignore index a61cd08..80d6764 100644 --- a/.gitignore +++ b/.gitignore @@ -141,7 +141,7 @@ out # Nuxt.js build / generate output .nuxt -dist +dist/* # Gatsby files .cache/ diff --git a/.stylelintrc.json b/.stylelintrc.json index 798546f..bf163ef 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -6,6 +6,11 @@ "stylelint-scss", "stylelint-order" ], + "ignoreFiles": [ + "**/node_modules/**", + "dist/**", + "src/vendor/**" + ], "customSyntax": "postcss-scss", "rules": { "at-rule-no-unknown": null, diff --git a/package.json b/package.json index 1af5818..6a03268 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cyberduck", - "private": false, - "version": "1.1.0", + "private": true, + "version": "1.1.1", "repository": { "type": "git", "url": "git+https://git.maze.io/maze/cyberduck.git" @@ -12,7 +12,7 @@ "homepage": "https://git.maze.io/maze/cyberduck#readme", "type": "module", "main": "dist/cyberduck.cjs.js", - "module": "dist/cyberduck.es.js", + "module": "dist/esm.js", "types": "dist/types/index.d.ts", "style": "dist/cyberduck.css", "sideEffects": [ @@ -26,19 +26,19 @@ ], "exports": { ".": { - "import": "./dist/cyberduck.es.js", + "types": "./dist/types/index.d.ts", + "import": "./dist/index.js", "require": "./dist/cyberduck.cjs.js", - "default": "./dist/cyberduck.es.js", - "types": "./dist/types/index.d.ts" + "default": "./dist/index.js" }, "./package.json": "./package.json", "./styles": "./src/styles/cyberduck.scss", "./styles/*": "./src/styles/*", "./css": "./dist/cyberduck.css", "./*": { - "import": "./dist/cyberduck.es.js", - "require": "./dist/cyberduck.cjs.js", - "types": "./dist/*.d.ts" + "types": "./dist/*.d.ts", + "import": "./dist/index.js", + "require": "./dist/cyberduck.cjs.js" } }, "scripts": { @@ -49,9 +49,9 @@ "lint": "eslint .", "lint:css": "stylelint \"src/**/*.{scss,css,sass}\"", "format:css": "prettier --write \"src/**/*.{scss,css,sass}\"", - "styles:build": "sass --no-source-map --style=compressed --load-path=node_modules src:dist", - "styles:check": "sass --no-source-map --update --load-path=node_modules src:dist", - "styles:dev": "sass --watch --no-source-map --load-path=node_modules src:dist", + "styles:build": "sass --no-source-map --style=compressed --load-path=node_modules --quiet-deps src:dist", + "styles:check": "sass --no-source-map --update --load-path=node_modules --quiet-deps src:dist", + "styles:dev": "sass --watch --no-source-map --load-path=node_modules --quiet-deps src:dist", "preview": "vite preview" }, "peerDependencies": { diff --git a/scripts/build-if-needed.cjs b/scripts/build-if-needed.cjs index f1ad2ec..c8d3d27 100644 --- a/scripts/build-if-needed.cjs +++ b/scripts/build-if-needed.cjs @@ -29,7 +29,7 @@ if (fs.existsSync(tsconfig)) { // 2) Sass build (styles) runIfAvailable( 'npx --no-install sass --version', - 'npx --no-install sass --no-source-map --style=compressed --load-path=node_modules src:dist', + 'npx --no-install sass --no-source-map --style=compressed --load-path=node_modules --quiet-deps --silence-deprecation=if-function,global-builtin,color-functions src:dist', 'Sass styles build', ) @@ -68,3 +68,49 @@ try { } catch (e) { console.warn('Failed to generate per-subpath wrappers:', e && e.message) } + +// Ensure a minimal `dist/types/index.d.ts` exists so consumers installing +// from the packed tarball won't see a "could not find declaration file" error. +try { + const indexDts = path.join(cwd, 'dist', 'types', 'index.d.ts') + if (!fs.existsSync(indexDts)) { + const dir = path.dirname(indexDts) + if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true }) + const fallback = `/// + export const Navbar: import('react').FC; + export const Footer: import('react').FC; + export const Layout: import('react').FC; + export const Split: import('react').FC & { Panel: import('react').FC }; + export default { Navbar, Footer, Layout, Split }; + ` + fs.writeFileSync(indexDts, fallback) + console.log('Wrote fallback dist/types/index.d.ts') + } +} catch (e) { + console.warn('Failed to write fallback index.d.ts:', e && e.message) +} + +// Write a small ESM wrapper that re-exports everything from the generated +// `cyberduck.es.js` bundle. Some browser toolchains import the package +// entry directly; having a tiny wrapper helps ensure named exports are +// preserved and visible to native ESM loaders. +try { + const esmWrapperPath = path.join(cwd, 'dist', 'esm.js') + // Re-export named bindings and build a local default object so we don't + // need to import the bundle's default (some tools choke on that). + const esmContent = `import { Navbar, Footer, Layout, Split } from './cyberduck.es.js';\nexport { Navbar, Footer, Layout, Split };\nconst __default = { Navbar, Footer, Layout, Split };\nexport default __default;\n`; + fs.writeFileSync(esmWrapperPath, esmContent) + console.log('Wrote dist/esm.js wrapper') +} catch (e) { + console.warn('Failed to write dist/esm.js wrapper:', e && e.message) +} +try { + const indexPath = path.join(cwd, 'dist', 'index.js') + // index.js mirrors esm.js to help environments that resolve package root + // to an index file instead of reading package.json fields. + const indexContent = `import { Navbar, Footer, Layout, Split } from './cyberduck.es.js';\nexport { Navbar, Footer, Layout, Split };\nconst __default = { Navbar, Footer, Layout, Split };\nexport default __default;\n`; + fs.writeFileSync(indexPath, indexContent) + console.log('Wrote dist/index.js wrapper') +} catch (e) { + console.warn('Failed to write dist/index.js wrapper:', e && e.message) +} diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 64e6a8c..d2350b9 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -1,6 +1,6 @@ import React from 'react' -const Footer: React.FC = () => { +export const Footer: React.FC = () => { return (