Skip to content

Commit e3b7aea

Browse files
committed
make hang-ui package compatible with dev / vite
1 parent f954a89 commit e3b7aea

File tree

10 files changed

+67
-21
lines changed

10 files changed

+67
-21
lines changed

js/bun.lock

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"typescript": "^5.9.2",
4646
"vite": "^6.3.6",
4747
"vite-plugin-html": "^3.2.2",
48+
"vite-plugin-solid": "^2.11.10",
4849
},
4950
},
5051
"hang-ui": {
@@ -394,6 +395,14 @@
394395

395396
"@types/audioworklet": ["@types/[email protected]", "", {}, "sha512-aPQ0DurtnDRWO3qvu8iK1R0aDlKS7sDOWx7MVhMWkGTmlyfnf50GPKYJlKdq8UP159ntPiqPJ5XZ/2v1R0V0Bw=="],
396397

398+
"@types/babel__core": ["@types/[email protected]", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="],
399+
400+
"@types/babel__generator": ["@types/[email protected]", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="],
401+
402+
"@types/babel__template": ["@types/[email protected]", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="],
403+
404+
"@types/babel__traverse": ["@types/[email protected]", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="],
405+
397406
"@types/chai": ["@types/[email protected]", "", { "dependencies": { "@types/deep-eql": "*" } }, "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg=="],
398407

399408
"@types/deep-eql": ["@types/[email protected]", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="],
@@ -710,7 +719,7 @@
710719

711720
"is-url-superb": ["[email protected]", "", {}, "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA=="],
712721

713-
"is-what": ["is-what@5.5.0", "", {}, "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw=="],
722+
"is-what": ["is-what@4.1.16", "", {}, "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A=="],
714723

715724
"isexe": ["[email protected]", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
716725

@@ -770,7 +779,7 @@
770779

771780
"magic-string": ["[email protected]", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw=="],
772781

773-
"merge-anything": ["merge-anything@6.0.6", "", { "dependencies": { "is-what": "^5.2.0" } }, "sha512-F3K1W45PvTjRZzbcYIhXntNr8cux00gUxR8IzNPPG+80gNlAHZGVBwFyN4x5yjw/7QkLPKDbRQBK4KrJKo69mw=="],
782+
"merge-anything": ["merge-anything@5.1.7", "", { "dependencies": { "is-what": "^4.1.8" } }, "sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ=="],
774783

775784
"merge2": ["[email protected]", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
776785

@@ -914,7 +923,7 @@
914923

915924
"solid-js": ["[email protected]", "", { "dependencies": { "csstype": "^3.1.0", "seroval": "~1.3.0", "seroval-plugins": "~1.3.0" } }, "sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew=="],
916925

917-
"solid-refresh": ["solid-refresh@0.7.5", "", { "dependencies": { "@babel/generator": "^7.23.6", "@babel/types": "^7.23.6" }, "peerDependencies": { "solid-js": "^1.3" } }, "sha512-ZYMbjWsy7IwSF3+oZCNnReiTYSyCAFRvC7oLUKxxh1wPa6/6YIWqsxa+Ma2kM4F/ypWT69B1c0fmKeZRdLueGw=="],
926+
"solid-refresh": ["solid-refresh@0.6.3", "", { "dependencies": { "@babel/generator": "^7.23.6", "@babel/helper-module-imports": "^7.22.15", "@babel/types": "^7.23.6" }, "peerDependencies": { "solid-js": "^1.3" } }, "sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA=="],
918927

919928
"source-map": ["[email protected]", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
920929

@@ -1008,6 +1017,8 @@
10081017

10091018
"vite-plugin-html": ["[email protected]", "", { "dependencies": { "@rollup/pluginutils": "^4.2.0", "colorette": "^2.0.16", "connect-history-api-fallback": "^1.6.0", "consola": "^2.15.3", "dotenv": "^16.0.0", "dotenv-expand": "^8.0.2", "ejs": "^3.1.6", "fast-glob": "^3.2.11", "fs-extra": "^10.0.1", "html-minifier-terser": "^6.1.0", "node-html-parser": "^5.3.3", "pathe": "^0.2.0" }, "peerDependencies": { "vite": ">=2.0.0" } }, "sha512-vb9C9kcdzcIo/Oc3CLZVS03dL5pDlOFuhGlZYDCJ840BhWl/0nGeZWf3Qy7NlOayscY4Cm/QRgULCQkEZige5Q=="],
10101019

1020+
"vite-plugin-solid": ["[email protected]", "", { "dependencies": { "@babel/core": "^7.23.3", "@types/babel__core": "^7.20.4", "babel-preset-solid": "^1.8.4", "merge-anything": "^5.1.7", "solid-refresh": "^0.6.3", "vitefu": "^1.0.4" }, "peerDependencies": { "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*", "solid-js": "^1.7.2", "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["@testing-library/jest-dom"] }, "sha512-Yr1dQybmtDtDAHkii6hXuc1oVH9CPcS/Zb2jN/P36qqcrkNnVPsMTzQ06jyzFPFjj3U1IYKMVt/9ZqcwGCEbjw=="],
1021+
10111022
"vitefu": ["[email protected]", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="],
10121023

10131024
"vitest": ["[email protected]", "", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.4", "@vitest/mocker": "3.2.4", "@vitest/pretty-format": "^3.2.4", "@vitest/runner": "3.2.4", "@vitest/snapshot": "3.2.4", "@vitest/spy": "3.2.4", "@vitest/utils": "3.2.4", "chai": "^5.2.0", "debug": "^4.4.1", "expect-type": "^1.2.1", "magic-string": "^0.30.17", "pathe": "^2.0.3", "picomatch": "^4.0.2", "std-env": "^3.9.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.14", "tinypool": "^1.1.1", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", "vite-node": "3.2.4", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "@vitest/browser": "3.2.4", "@vitest/ui": "3.2.4", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/debug", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A=="],
@@ -1118,6 +1129,10 @@
11181129

11191130
"unplugin-solid/@rollup/pluginutils": ["@rollup/[email protected]", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="],
11201131

1132+
"unplugin-solid/merge-anything": ["[email protected]", "", { "dependencies": { "is-what": "^5.2.0" } }, "sha512-F3K1W45PvTjRZzbcYIhXntNr8cux00gUxR8IzNPPG+80gNlAHZGVBwFyN4x5yjw/7QkLPKDbRQBK4KrJKo69mw=="],
1133+
1134+
"unplugin-solid/solid-refresh": ["[email protected]", "", { "dependencies": { "@babel/generator": "^7.23.6", "@babel/types": "^7.23.6" }, "peerDependencies": { "solid-js": "^1.3" } }, "sha512-ZYMbjWsy7IwSF3+oZCNnReiTYSyCAFRvC7oLUKxxh1wPa6/6YIWqsxa+Ma2kM4F/ypWT69B1c0fmKeZRdLueGw=="],
1135+
11211136
"vite/rollup": ["[email protected]", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.50.1", "@rollup/rollup-android-arm64": "4.50.1", "@rollup/rollup-darwin-arm64": "4.50.1", "@rollup/rollup-darwin-x64": "4.50.1", "@rollup/rollup-freebsd-arm64": "4.50.1", "@rollup/rollup-freebsd-x64": "4.50.1", "@rollup/rollup-linux-arm-gnueabihf": "4.50.1", "@rollup/rollup-linux-arm-musleabihf": "4.50.1", "@rollup/rollup-linux-arm64-gnu": "4.50.1", "@rollup/rollup-linux-arm64-musl": "4.50.1", "@rollup/rollup-linux-loongarch64-gnu": "4.50.1", "@rollup/rollup-linux-ppc64-gnu": "4.50.1", "@rollup/rollup-linux-riscv64-gnu": "4.50.1", "@rollup/rollup-linux-riscv64-musl": "4.50.1", "@rollup/rollup-linux-s390x-gnu": "4.50.1", "@rollup/rollup-linux-x64-gnu": "4.50.1", "@rollup/rollup-linux-x64-musl": "4.50.1", "@rollup/rollup-openharmony-arm64": "4.50.1", "@rollup/rollup-win32-arm64-msvc": "4.50.1", "@rollup/rollup-win32-ia32-msvc": "4.50.1", "@rollup/rollup-win32-x64-msvc": "4.50.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA=="],
11221137

11231138
"vite-plugin-html/pathe": ["[email protected]", "", {}, "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw=="],
@@ -1142,6 +1157,8 @@
11421157

11431158
"unplugin-solid/@rollup/pluginutils/estree-walker": ["[email protected]", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="],
11441159

1160+
"unplugin-solid/merge-anything/is-what": ["[email protected]", "", {}, "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw=="],
1161+
11451162
"vite/rollup/@rollup/rollup-android-arm-eabi": ["@rollup/[email protected]", "", { "os": "android", "cpu": "arm" }, "sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag=="],
11461163

11471164
"vite/rollup/@rollup/rollup-android-arm64": ["@rollup/[email protected]", "", { "os": "android", "cpu": "arm64" }, "sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw=="],

js/bun.lockb

2.32 KB
Binary file not shown.

js/hang-demo/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"@kixelated/hang-ui": "workspace:^"
1717
},
1818
"devDependencies": {
19+
"@biomejs/biome": "^2.2.2",
1920
"@tailwindcss/postcss": "^4.1.13",
2021
"@tailwindcss/typography": "^0.5.16",
2122
"@tailwindcss/vite": "^4.1.13",
@@ -24,6 +25,6 @@
2425
"typescript": "^5.9.2",
2526
"vite": "^6.3.6",
2627
"vite-plugin-html": "^3.2.2",
27-
"@biomejs/biome": "^2.2.2"
28+
"vite-plugin-solid": "^2.11.10"
2829
}
2930
}

js/hang-demo/vite.config.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import tailwindcss from "@tailwindcss/vite";
22
import { defineConfig } from "vite";
3+
import solidPlugin from 'vite-plugin-solid';
4+
import path from 'node:path';
35

46
export default defineConfig({
57
root: "src",
6-
plugins: [tailwindcss()],
8+
plugins: [tailwindcss(), solidPlugin()],
79
build: {
810
target: "esnext",
911
sourcemap: process.env.NODE_ENV === "production" ? false : "inline",
@@ -16,6 +18,18 @@ export default defineConfig({
1618
},
1719
},
1820
},
21+
resolve: {
22+
alias: {
23+
'@kixelated/hang-ui/publish/element': path.resolve(
24+
__dirname,
25+
'../hang-ui/src/Components/publish/element.tsx'
26+
),
27+
'@kixelated/hang-ui/watch/element': path.resolve(
28+
__dirname,
29+
'../hang-ui/src/Components/watch/element.tsx'
30+
),
31+
},
32+
},
1933
server: {
2034
// TODO: properly support HMR
2135
hmr: false,

js/hang-ui/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
"./publish/element": "./dist/publish-controls.esm.js",
1212
"./watch/element": "./dist/watch-controls.esm.js"
1313
},
14+
"sideEffects": true,
1415
"scripts": {
1516
"build": "npm run clean && rollup -c",
1617
"check": "biome check src",
17-
"clean": "rimraf dist"
18+
"clean": "rimraf dist",
19+
"fix": "biome check src --fix"
1820
},
1921
"devDependencies": {
2022
"@biomejs/biome": "^2.2.2",
@@ -23,7 +25,6 @@
2325
"rimraf": "^6.0.1",
2426
"rollup": "^4.53.3",
2527
"rollup-plugin-esbuild": "^6.2.1",
26-
"rollup-plugin-string": "^3.0.0",
2728
"solid-element": "^1.9.1",
2829
"solid-js": "^1.9.10",
2930
"unplugin-solid": "^1.0.0"

js/hang-ui/rollup.config.mjs

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
1+
// rollup.config.mjs / rollup.config.js
2+
import { readFileSync } from 'node:fs';
13
import nodeResolve from '@rollup/plugin-node-resolve';
24
import esbuild from 'rollup-plugin-esbuild';
3-
import { string } from 'rollup-plugin-string';
45
import solid from 'unplugin-solid/rollup';
56

7+
function inlineCss() {
8+
return {
9+
name: 'inline-css',
10+
load(id) {
11+
if (id.endsWith('.css?inline')) {
12+
const realId = id.replace(/\?inline$/, '');
13+
const css = readFileSync(realId, 'utf8');
14+
return `export default ${JSON.stringify(css)};`;
15+
}
16+
},
17+
};
18+
}
19+
620
export default [
721
{
822
input: 'src/Components/publish/element.tsx',
@@ -12,12 +26,12 @@ export default [
1226
sourcemap: true,
1327
},
1428
plugins: [
15-
string({ include: '**/*.css' }),
29+
inlineCss(),
1630
solid({ dev: false, hydratable: false }),
1731
esbuild({
18-
include: /\.[jt]sx?$/, // .js, .ts, .jsx, .tsx
19-
jsx: 'preserve', // let unplugin-solid handle JSX
20-
tsconfig: 'tsconfig.json', // optional; mainly for paths/aliases
32+
include: /\.[jt]sx?$/,
33+
jsx: 'preserve',
34+
tsconfig: 'tsconfig.json',
2135
}),
2236
nodeResolve({ extensions: ['.js', '.ts', '.tsx'] }),
2337
],
@@ -30,12 +44,12 @@ export default [
3044
sourcemap: true,
3145
},
3246
plugins: [
33-
string({ include: '**/*.css' }),
47+
inlineCss(),
3448
solid({ dev: false, hydratable: false }),
3549
esbuild({
36-
include: /\.[jt]sx?$/, // .js, .ts, .jsx, .tsx
37-
jsx: 'preserve', // let unplugin-solid handle JSX
38-
tsconfig: 'tsconfig.json', // optional; mainly for paths/aliases
50+
include: /\.[jt]sx?$/,
51+
jsx: 'preserve',
52+
tsconfig: 'tsconfig.json',
3953
}),
4054
nodeResolve({ extensions: ['.js', '.ts', '.tsx'] }),
4155
],

js/hang-ui/src/Components/publish/element.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { customElement } from 'solid-element';
33
import { createSignal, onMount } from 'solid-js';
44
import PublishControls from './PublishControls';
55
import PublishControlsContextProvider from './PublishUIContextProvider';
6-
import styles from './styles.css';
6+
import styles from './styles.css?inline';
77

88
customElement(
99
'hang-publish-ui',

js/hang-ui/src/Components/watch/element.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type HangWatch from '@kixelated/hang/watch/element';
22
import { customElement } from 'solid-element';
33
import { createSignal, onMount } from 'solid-js';
44
import BufferingIndicator from './BufferingIndicator';
5-
import styles from './styles.css';
5+
import styles from './styles.css?inline';
66
import WatchControls from './WatchControls';
77
import WatchUIContextProvider from './WatchUIContextProvider';
88

js/hang-ui/src/css.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
declare module '*.css' {
1+
declare module '*.css?inline' {
22
const content: string;
33
export default content;
44
}

js/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
],
1515
"scripts": {
1616
"check": "bun run --filter='*' check",
17-
"fix": "bun run --filter='*' fix",
18-
"postinstall": "bun run --filter='@kixelated/hang-ui' build"
17+
"fix": "bun run --filter='*' fix"
1918
},
2019
"devDependencies": {
2120
"concurrently": "^9.2.1"

0 commit comments

Comments
 (0)