create-rue 0.1.3 → 0.3.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bundle.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- /*! create-rue v0.1.3 | MIT */
2
+ /*! create-rue v0.3.12 | MIT */
3
3
  import { createRequire } from "node:module";
4
4
  import * as fs from "node:fs";
5
5
  import "node:fs";
@@ -1799,8 +1799,8 @@ var require_ejs = /* @__PURE__ */ __commonJSMin(((exports) => {
1799
1799
  //#region utils/banners.ts
1800
1800
  var import_picocolors = require_picocolors();
1801
1801
  var import_ejs = /* @__PURE__ */ __toESM(require_ejs(), 1);
1802
- const defaultBanner = "Rue.js - The Wasm Framework For Vapor Native DOM";
1803
- const gradientBanner = "\x1B[38;2;66;211;146mR\x1B[39m\x1B[38;2;66;211;146mu\x1B[39m\x1B[38;2;66;211;146me\x1B[39m\x1B[38;2;66;211;146m.\x1B[39m\x1B[38;2;66;211;146mj\x1B[39m\x1B[38;2;66;210;147ms\x1B[39m \x1B[38;2;68;206;152m-\x1B[39m \x1B[38;2;69;202;157mT\x1B[39m\x1B[38;2;70;200;160mh\x1B[39m\x1B[38;2;71;198;162me\x1B[39m \x1B[38;2;73;194;167mW\x1B[39m\x1B[38;2;73;192;170ma\x1B[39m\x1B[38;2;74;190;173ms\x1B[39m\x1B[38;2;75;188;175mm\x1B[39m \x1B[38;2;77;184;180mF\x1B[39m\x1B[38;2;77;182;183mr\x1B[39m\x1B[38;2;78;180;185ma\x1B[39m\x1B[38;2;79;178;188mm\x1B[39m\x1B[38;2;80;176;191me\x1B[39m\x1B[38;2;81;174;193mw\x1B[39m\x1B[38;2;82;172;196mo\x1B[39m\x1B[38;2;82;170;198mr\x1B[39m\x1B[38;2;83;168;201mk\x1B[39m \x1B[38;2;85;164;206mF\x1B[39m\x1B[38;2;86;162;209mo\x1B[39m\x1B[38;2;86;160;211mr\x1B[39m \x1B[38;2;88;156;216mV\x1B[39m\x1B[38;2;89;154;219ma\x1B[39m\x1B[38;2;90;152;222mp\x1B[39m\x1B[38;2;90;150;224mo\x1B[39m\x1B[38;2;91;148;227mr\x1B[39m \x1B[38;2;93;144;232mN\x1B[39m\x1B[38;2;94;142;234ma\x1B[39m\x1B[38;2;94;140;237mt\x1B[39m\x1B[38;2;95;138;240mi\x1B[39m\x1B[38;2;96;136;242mv\x1B[39m\x1B[38;2;97;134;245me\x1B[39m \x1B[38;2;98;130;250mD\x1B[39m\x1B[38;2;99;128;252mO\x1B[39m\x1B[38;2;100;126;255mM\x1B[39m";
1802
+ const defaultBanner = "Rue.js - The Wasm Framework For Native DOM";
1803
+ const gradientBanner = "\x1B[38;2;66;211;146mR\x1B[39m\x1B[38;2;66;211;146mu\x1B[39m\x1B[38;2;66;211;146me\x1B[39m\x1B[38;2;66;211;146m.\x1B[39m\x1B[38;2;66;211;146mj\x1B[39m\x1B[38;2;67;209;149ms\x1B[39m\x1B[38;2;68;207;152m \x1B[39m\x1B[38;2;69;204;155m-\x1B[39m\x1B[38;2;70;202;158m \x1B[39m\x1B[38;2;71;200;160mT\x1B[39m\x1B[38;2;71;197;163mh\x1B[39m\x1B[38;2;72;195;166me\x1B[39m\x1B[38;2;73;193;169m \x1B[39m\x1B[38;2;74;190;172mW\x1B[39m\x1B[38;2;75;188;175ma\x1B[39m\x1B[38;2;76;186;178ms\x1B[39m\x1B[38;2;77;184;181mm\x1B[39m\x1B[38;2;78;181;184m \x1B[39m\x1B[38;2;79;179;187mF\x1B[39m\x1B[38;2;80;177;190mr\x1B[39m\x1B[38;2;81;174;193ma\x1B[39m\x1B[38;2;82;172;196mm\x1B[39m\x1B[38;2;82;170;199me\x1B[39m\x1B[38;2;83;167;202mw\x1B[39m\x1B[38;2;84;165;205mo\x1B[39m\x1B[38;2;85;163;208mr\x1B[39m\x1B[38;2;86;161;211mk\x1B[39m\x1B[38;2;87;158;214m \x1B[39m\x1B[38;2;88;156;217mF\x1B[39m\x1B[38;2;89;154;220mo\x1B[39m\x1B[38;2;90;151;223mr\x1B[39m\x1B[38;2;91;149;225m \x1B[39m\x1B[38;2;92;147;228mN\x1B[39m\x1B[38;2;93;144;231ma\x1B[39m\x1B[38;2;94;142;234mt\x1B[39m\x1B[38;2;94;140;237mi\x1B[39m\x1B[38;2;95;138;240mv\x1B[39m\x1B[38;2;96;135;243me\x1B[39m\x1B[38;2;97;133;246m \x1B[39m\x1B[38;2;98;131;249mD\x1B[39m\x1B[38;2;99;128;252mO\x1B[39m\x1B[38;2;100;126;255mM\x1B[39m";
1804
1804
  //#endregion
1805
1805
  //#region utils/deepMerge.ts
1806
1806
  const isObject = (val) => val && typeof val === "object";
@@ -2037,7 +2037,7 @@ function inferPackageManager() {
2037
2037
  //#endregion
2038
2038
  //#region package.json
2039
2039
  var name = "create-rue";
2040
- var version = "0.1.3";
2040
+ var version = "0.3.12";
2041
2041
  //#endregion
2042
2042
  //#region index.ts
2043
2043
  const language = await getLanguage(fileURLToPath(new URL("./locales", import.meta.url)));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-rue",
3
- "version": "0.1.3",
3
+ "version": "0.3.12",
4
4
  "description": "🛠️ The will to start a Vite-powered Rue project",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/hunzhiwange/create-rue#readme",
@@ -36,7 +36,7 @@ const Home: FC = () => (
36
36
  <div className="max-w-3xl space-y-4">
37
37
  <div className="badge badge-primary badge-outline">Rue.js</div>
38
38
  <h1 className="text-4xl font-semibold tracking-tight sm:text-5xl">
39
- The Wasm Framework For Vapor Native DOM
39
+ The Wasm Framework For Native DOM
40
40
  </h1>
41
41
  <p className="max-w-2xl text-base leading-7 text-base-content/70">
42
42
  Rue.js 采用原生 JSX / TSX 开发方式,结合细粒度响应式与面向原生 DOM
@@ -424,13 +424,13 @@ const TodoApp: FC = () => {
424
424
  }
425
425
 
426
426
  const nextTodo: TodoItem = {
427
- id: nextId.value++,
428
- title,
429
- status: 'todo',
430
- archived: false,
431
- createdAt: new Date().toISOString(),
432
- createdOrder: nextCreatedOrder.value++,
433
- }
427
+ id: nextId.value++,
428
+ title,
429
+ status: 'todo',
430
+ archived: false,
431
+ createdAt: new Date().toISOString(),
432
+ createdOrder: nextCreatedOrder.value++,
433
+ }
434
434
 
435
435
  setTodos((current) => [nextTodo, ...current])
436
436
  setDraft('')
@@ -466,8 +466,8 @@ const TodoApp: FC = () => {
466
466
  setEditingTitle('')
467
467
  }
468
468
 
469
- const saveEditing = (id: number, titleOverride?: string) => {
470
- const title = (titleOverride ?? editingTitle.value).trim()
469
+ const saveEditing = (id: number) => {
470
+ const title = editingTitle.value.trim()
471
471
  if (!title) {
472
472
  return
473
473
  }
@@ -592,14 +592,9 @@ const TodoApp: FC = () => {
592
592
  const editingValue = isEditing ? editingTitle.value : item.title
593
593
  const meta = statusMeta[item.status]
594
594
 
595
- const commitEditing = (latestValue: string) => {
596
- setEditingTitle(latestValue)
597
- saveEditing(item.id, latestValue)
598
- }
599
-
600
595
  return (
601
596
  <article
602
- key={`${item.id}-${item.title}-${item.status}-${item.archived ? 'archived' : 'active'}-${isEditing ? 'editing' : 'view'}`}
597
+ key={item.id}
603
598
  className={`card border bg-base-100 shadow-sm transition-all ${meta.cardClass} ${
604
599
  item.archived ? 'opacity-75' : 'hover:-translate-y-0.5 hover:shadow-md'
605
600
  }`}
@@ -608,7 +603,9 @@ const TodoApp: FC = () => {
608
603
  <div className="flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between">
609
604
  <div className="flex-1 space-y-3">
610
605
  <div className="flex flex-wrap items-center gap-2">
611
- <span className={`inline-block h-2.5 w-2.5 rounded-full ${meta.dotClass}`}></span>
606
+ <span
607
+ className={`inline-block h-2.5 w-2.5 rounded-full ${meta.dotClass}`}
608
+ ></span>
612
609
  <span className={meta.badgeClass}>{meta.label}</span>
613
610
  {item.archived && (
614
611
  <span className="badge badge-secondary badge-outline">已归档</span>
@@ -630,10 +627,7 @@ const TodoApp: FC = () => {
630
627
  {item.title}
631
628
  </h2>
632
629
 
633
- <div
634
- data-todo-edit-row="true"
635
- className={`flex flex-col gap-3 sm:flex-row ${isEditing ? '' : 'hidden'}`}
636
- >
630
+ <div className={`flex flex-col gap-3 sm:flex-row ${isEditing ? '' : 'hidden'}`}>
637
631
  <input
638
632
  className="input input-bordered w-full"
639
633
  value={editingValue}
@@ -642,7 +636,7 @@ const TodoApp: FC = () => {
642
636
  }}
643
637
  onKeydown={(event: KeyboardEvent) => {
644
638
  if (event.key === 'Enter') {
645
- commitEditing((event.target as HTMLInputElement).value)
639
+ saveEditing(item.id)
646
640
  }
647
641
  if (event.key === 'Escape') {
648
642
  cancelEditing()
@@ -652,18 +646,16 @@ const TodoApp: FC = () => {
652
646
  <div className="flex gap-2">
653
647
  <button
654
648
  className="btn btn-primary btn-sm"
655
- onClick={(event: any) => {
656
- const editRow = (event.currentTarget as HTMLElement).closest(
657
- '[data-todo-edit-row="true"]',
658
- ) as HTMLElement | null
659
- const input = editRow?.querySelector('input') as HTMLInputElement | null
660
- commitEditing(input?.value ?? editingValue)
661
- }}
649
+ onClick={() => saveEditing(item.id)}
662
650
  type="button"
663
651
  >
664
652
  保存
665
653
  </button>
666
- <button className="btn btn-ghost btn-sm" onClick={cancelEditing} type="button">
654
+ <button
655
+ className="btn btn-ghost btn-sm"
656
+ onClick={cancelEditing}
657
+ type="button"
658
+ >
667
659
  取消
668
660
  </button>
669
661
  </div>
@@ -689,7 +681,11 @@ const TodoApp: FC = () => {
689
681
 
690
682
  <div className="flex flex-wrap gap-2 lg:justify-end">
691
683
  {!isEditing && (
692
- <button className="btn btn-sm btn-outline" onClick={() => startEditing(item)} type="button">
684
+ <button
685
+ className="btn btn-sm btn-outline"
686
+ onClick={() => startEditing(item)}
687
+ type="button"
688
+ >
693
689
  改名
694
690
  </button>
695
691
  )}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rue-demo",
3
- "version": "0.1.0",
3
+ "version": "0.3.12",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -14,18 +14,18 @@
14
14
  "format-check": "oxfmt --check ."
15
15
  },
16
16
  "dependencies": {
17
- "@rue-js/jsx-runtime": "^0.1.1",
18
- "@rue-js/router": "^0.1.1",
19
- "@rue-js/rue": "^0.1.1",
20
- "@rue-js/runtime": "^0.1.1",
21
- "@rue-js/runtime-vapor": "^0.1.1",
17
+ "@rue-js/jsx-runtime": "^0.3.10",
18
+ "@rue-js/router": "^0.3.10",
19
+ "@rue-js/rue": "^0.3.10",
20
+ "@rue-js/runtime": "^0.3.10",
21
+ "@rue-js/runtime-vapor": "^0.3.10",
22
22
  "daisyui": "^5.5.19",
23
23
  "oxfmt": "^0.48.0",
24
24
  "oxlint": "^1.63.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@rue-js/jsx-dev-runtime": "^0.1.1",
28
- "@rue-js/vite-plugin-rue": "^0.1.1",
27
+ "@rue-js/jsx-dev-runtime": "^0.3.10",
28
+ "@rue-js/vite-plugin-rue": "^0.3.10",
29
29
  "@swc/core": "^1.15.33",
30
30
  "@tailwindcss/typography": "^0.5.19",
31
31
  "@tailwindcss/vite": "^4.3.0",