hanseol-dev 5.0.3-dev.18 → 5.0.3-dev.19

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.
@@ -822,11 +822,11 @@ function buildDonutChartContent(design, data) {
822
822
  cumPct += pct;
823
823
  return `${segColors[i % segColors.length]} ${start.toFixed(1)}% ${cumPct.toFixed(1)}%`;
824
824
  }).join(',');
825
- const css = `.content{flex:1;display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;align-content:center}
825
+ const css = `.content{flex:1;display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;align-content:center;padding:20px 0}
826
826
  .donut-wrap{display:flex;justify-content:center;align-items:center}
827
- .donut{width:500px;height:500px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 32px rgba(0,0,0,0.08)}
828
- .donut-hole{width:240px;height:240px;border-radius:50%;background:${design.background_color};display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px}
829
- .donut-center{font-size:30px;font-weight:800;color:${design.primary_color};text-align:center;line-height:1.3}
827
+ .donut{width:540px;height:540px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 32px rgba(0,0,0,0.08)}
828
+ .donut-hole{width:260px;height:260px;border-radius:50%;background:${design.background_color};display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px}
829
+ .donut-center{font-size:32px;font-weight:800;color:${design.primary_color};text-align:center;line-height:1.3}
830
830
  .legend{display:flex;flex-direction:column;gap:28px}
831
831
  .legend-item{display:flex;align-items:center;gap:16px;font-size:28px;padding:12px 16px;background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,0.04);color:${getCardTextColor(design)}}
832
832
  .legend-dot{width:24px;height:24px;border-radius:50%;flex-shrink:0}
@@ -857,7 +857,7 @@ function buildTableContent(design, data) {
857
857
  const css = `.content{flex:1;display:flex;flex-direction:column;justify-content:center}
858
858
  .data-table{width:100%;border-collapse:collapse;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,0.05);border-radius:12px;overflow:hidden;table-layout:fixed}
859
859
  .data-table th{background:${design.primary_color};color:#fff;font-size:28px;text-align:left;padding:22px 28px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
860
- .data-table td{font-size:28px;color:${cardText};padding:22px 28px;border-bottom:1px solid ${design.accent_light};overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
860
+ .data-table td{font-size:28px;color:${cardText};padding:22px 28px;border-bottom:1px solid ${design.accent_light};overflow:hidden;word-break:break-word}
861
861
  .data-table tr:last-child td{border-bottom:none}
862
862
  .data-table tr:nth-child(even){background:${design.accent_light}20}
863
863
  .data-table tr.highlight td{background:${design.accent_color}15;font-weight:600}
@@ -865,7 +865,7 @@ function buildTableContent(design, data) {
865
865
  const headers = (data.headers || []).slice(0, maxCols).map(h => `<th>${escapeHtmlTemplate(String(h || '').slice(0, 25))}</th>`).join('');
866
866
  const rows = (data.rows || []).slice(0, 5).map((row, ri) => {
867
867
  const cls = ri === data.highlightRow ? ' class="highlight"' : '';
868
- const cells = (row || []).slice(0, maxCols).map(c => `<td>${escapeHtmlTemplate(String(c || '').slice(0, 35))}</td>`).join('');
868
+ const cells = (row || []).slice(0, maxCols).map(c => `<td>${escapeHtmlTemplate(String(c || '').slice(0, 50))}</td>`).join('');
869
869
  return `<tr${cls}>${cells}</tr>`;
870
870
  }).join('\n');
871
871
  return {
@@ -906,7 +906,7 @@ function buildProcessFlowContent(design, data) {
906
906
  }
907
907
  function buildBigNumbersContent(design, data) {
908
908
  const cardText = getCardTextColor(design);
909
- const css = `.content{flex:1;display:flex;gap:40px;align-items:stretch}
909
+ const css = `.content{flex:1;display:flex;gap:40px;align-items:center}
910
910
  .metric-card{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:56px 36px;border-radius:20px;background:#fff;box-shadow:0 6px 28px rgba(0,0,0,0.08);text-align:center;gap:20px;border-top:4px solid ${design.accent_color}}
911
911
  .metric-value{font-size:100px;font-weight:800;color:${design.primary_color};line-height:1}
912
912
  .metric-unit{font-size:36px;font-weight:600;color:${design.accent_color}}
@@ -944,14 +944,14 @@ function buildTimelineContent(design, data) {
944
944
  return { css, html: `<div class="content">${milestones}\n</div>` };
945
945
  }
946
946
  function buildProgressBarsContent(design, data) {
947
- const css = `.content{flex:1;display:flex;flex-direction:column;justify-content:center;gap:36px;padding:20px 0}
948
- .bar-item{display:flex;flex-direction:column;gap:10px}
947
+ const css = `.content{flex:1;display:flex;flex-direction:column;justify-content:center;gap:44px;padding:40px 0}
948
+ .bar-item{display:flex;flex-direction:column;gap:12px}
949
949
  .bar-header{display:flex;justify-content:space-between;align-items:baseline}
950
- .bar-label{font-size:30px;font-weight:600;color:${design.text_color}}
951
- .bar-val{font-size:30px;font-weight:700;color:${design.primary_color}}
952
- .bar-track{width:100%;height:40px;background:${design.accent_light};border-radius:20px;overflow:hidden}
953
- .bar-fill{height:100%;border-radius:20px;background:linear-gradient(90deg,${design.primary_color},${design.accent_color})}
954
- .bar-detail{font-size:24px;color:${design.text_color}88;margin-top:-2px}`;
950
+ .bar-label{font-size:32px;font-weight:600;color:${design.text_color}}
951
+ .bar-val{font-size:32px;font-weight:700;color:${design.primary_color}}
952
+ .bar-track{width:100%;height:56px;background:${design.accent_light};border-radius:28px;overflow:hidden}
953
+ .bar-fill{height:100%;border-radius:28px;background:linear-gradient(90deg,${design.primary_color},${design.accent_color})}
954
+ .bar-detail{font-size:26px;color:${design.text_color}88;margin-top:-2px}`;
955
955
  const bars = (data.bars || []).slice(0, 6).map(b => `
956
956
  <div class="bar-item">
957
957
  <div class="bar-header"><span class="bar-label">${escapeHtmlTemplate(b.label || '')}</span><span class="bar-val">${escapeHtmlTemplate(b.value || '')}</span></div>
@@ -7,7 +7,7 @@ export declare const PROJECTS_DIR: string;
7
7
  export declare const CREDENTIALS_FILE_PATH: string;
8
8
  export declare const APP_NAME = "hanseol-dev";
9
9
  export declare const SERVICE_ID = "hanseol";
10
- export declare const APP_VERSION = "5.0.3-dev.18";
10
+ export declare const APP_VERSION = "5.0.3-dev.19";
11
11
  export declare const DASHBOARD_URL = "https://52.78.246.50.nip.io";
12
12
  export declare const ONCE_URL = "https://52.78.246.50.nip.io:5090";
13
13
  export declare const FREE_URL = "https://52.78.246.50.nip.io:6090";
package/dist/constants.js CHANGED
@@ -9,7 +9,7 @@ export const PROJECTS_DIR = path.join(LOCAL_HOME_DIR, 'projects');
9
9
  export const CREDENTIALS_FILE_PATH = path.join(LOCAL_HOME_DIR, 'credentials.json');
10
10
  export const APP_NAME = 'hanseol-dev';
11
11
  export const SERVICE_ID = 'hanseol';
12
- export const APP_VERSION = '5.0.3-dev.18';
12
+ export const APP_VERSION = '5.0.3-dev.19';
13
13
  export const DASHBOARD_URL = 'https://52.78.246.50.nip.io';
14
14
  export const ONCE_URL = 'https://52.78.246.50.nip.io:5090';
15
15
  export const FREE_URL = 'https://52.78.246.50.nip.io:6090';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hanseol-dev",
3
- "version": "5.0.3-dev.18",
3
+ "version": "5.0.3-dev.19",
4
4
  "description": "Hanseol - OpenAI-Compatible Coding Agent",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",