@krpkg/ui 0.0.0-stage → 0.3.0
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/README.md +138 -2
- package/assets/android-background-alley.svg +3 -0
- package/assets/android-background-clean.svg +3 -0
- package/assets/android-background-default.svg +3 -0
- package/assets/android-background-mono.svg +3 -0
- package/assets/android-background-teal.svg +3 -0
- package/assets/android-foreground-alley.svg +3 -0
- package/assets/android-foreground-clean.svg +3 -0
- package/assets/android-foreground-default.svg +3 -0
- package/assets/android-foreground-mono.svg +3 -0
- package/assets/android-foreground-teal.svg +3 -0
- package/assets/android-icon-background.png +0 -0
- package/assets/android-icon-foreground.png +0 -0
- package/assets/android-icon-monochrome.png +0 -0
- package/assets/apple-touch-icon-120x120.png +0 -0
- package/assets/apple-touch-icon-152x152.png +0 -0
- package/assets/apple-touch-icon-167x167.png +0 -0
- package/assets/apple-touch-icon-180x180.png +0 -0
- package/assets/apple-touch-icon.png +0 -0
- package/assets/favicon-128x128.png +0 -0
- package/assets/favicon-16x16.png +0 -0
- package/assets/favicon-32x32.png +0 -0
- package/assets/favicon-48x48.png +0 -0
- package/assets/favicon-64x64.png +0 -0
- package/assets/favicon-96x96.png +0 -0
- package/assets/favicon.ico +0 -0
- package/assets/favicon.png +0 -0
- package/assets/favicon.svg +11 -0
- package/assets/icon-alley.png +0 -0
- package/assets/icon-teal.png +0 -0
- package/assets/icon.png +0 -0
- package/assets/logo-alley.svg +11 -0
- package/assets/logo-badge.svg +11 -0
- package/assets/logo-clean.svg +11 -0
- package/assets/logo-default.svg +11 -0
- package/assets/logo-icon.svg +3 -0
- package/assets/logo-mono.svg +11 -0
- package/assets/logo-teal.svg +11 -0
- package/assets/logo.svg +3 -0
- package/assets/pwa-192x192.png +0 -0
- package/assets/pwa-256x256.png +0 -0
- package/assets/pwa-384x384.png +0 -0
- package/assets/pwa-512x512.png +0 -0
- package/assets/pwa-maskable-192x192.png +0 -0
- package/assets/pwa-maskable-512x512.png +0 -0
- package/assets/splash-icon.png +0 -0
- package/dist/chunk-HAD2NPEW.mjs +155 -0
- package/dist/chunk-HAD2NPEW.mjs.map +1 -0
- package/dist/chunk-ZJSL4I3W.mjs +38 -0
- package/dist/chunk-ZJSL4I3W.mjs.map +1 -0
- package/dist/index.css +2053 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.mts +245 -0
- package/dist/index.d.ts +245 -0
- package/dist/index.js +1331 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1110 -0
- package/dist/index.mjs.map +1 -0
- package/dist/native.d.mts +51 -0
- package/dist/native.d.ts +51 -0
- package/dist/native.js +514 -0
- package/dist/native.js.map +1 -0
- package/dist/native.mjs +431 -0
- package/dist/native.mjs.map +1 -0
- package/dist/tokens.d.mts +183 -0
- package/dist/tokens.d.ts +183 -0
- package/dist/tokens.js +185 -0
- package/dist/tokens.js.map +1 -0
- package/dist/tokens.mjs +19 -0
- package/dist/tokens.mjs.map +1 -0
- package/dist/utils.d.mts +13 -0
- package/dist/utils.d.ts +13 -0
- package/dist/utils.js +65 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.mjs +9 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +71 -4
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// src/utils/format.ts
|
|
2
|
+
function formatRelativeTime(dateInput) {
|
|
3
|
+
const date = new Date(dateInput);
|
|
4
|
+
const now = /* @__PURE__ */ new Date();
|
|
5
|
+
const diffSec = Math.floor((now.getTime() - date.getTime()) / 1e3);
|
|
6
|
+
if (isNaN(diffSec)) return "";
|
|
7
|
+
if (diffSec < 60) return `${Math.max(1, diffSec)}s`;
|
|
8
|
+
const diffMin = Math.floor(diffSec / 60);
|
|
9
|
+
if (diffMin < 60) return `${diffMin}m`;
|
|
10
|
+
const diffHours = Math.floor(diffMin / 60);
|
|
11
|
+
if (diffHours < 24) return `${diffHours}h`;
|
|
12
|
+
const diffDays = Math.floor(diffHours / 24);
|
|
13
|
+
if (diffDays < 7) return `${diffDays}d`;
|
|
14
|
+
return date.toLocaleDateString("en-US", {
|
|
15
|
+
month: "short",
|
|
16
|
+
day: "numeric",
|
|
17
|
+
year: date.getFullYear() !== now.getFullYear() ? "numeric" : void 0
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function formatDuration(seconds) {
|
|
21
|
+
if (!seconds || seconds <= 0) return "0:00";
|
|
22
|
+
const mins = Math.floor(seconds / 60);
|
|
23
|
+
const secs = Math.floor(seconds % 60);
|
|
24
|
+
const padSecs = secs < 10 ? `0${secs}` : `${secs}`;
|
|
25
|
+
if (mins >= 60) {
|
|
26
|
+
const hours = Math.floor(mins / 60);
|
|
27
|
+
const remMins = mins % 60;
|
|
28
|
+
const padMins = remMins < 10 ? `0${remMins}` : `${remMins}`;
|
|
29
|
+
return `${hours}:${padMins}:${padSecs}`;
|
|
30
|
+
}
|
|
31
|
+
return `${mins}:${padSecs}`;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
formatRelativeTime,
|
|
36
|
+
formatDuration
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=chunk-ZJSL4I3W.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/format.ts"],"sourcesContent":["/**\n * Shared Formatting Utilities for Web, Desktop (Tauri), and Mobile\n */\n\n/**\n * Format timestamp into relative display string (e.g. 12s, 5m, 3h, 2d, or formatted date)\n */\nexport function formatRelativeTime(dateInput: string | Date | number): string {\n const date = new Date(dateInput);\n const now = new Date();\n const diffSec = Math.floor((now.getTime() - date.getTime()) / 1000);\n\n if (isNaN(diffSec)) return '';\n if (diffSec < 60) return `${Math.max(1, diffSec)}s`;\n const diffMin = Math.floor(diffSec / 60);\n if (diffMin < 60) return `${diffMin}m`;\n const diffHours = Math.floor(diffMin / 60);\n if (diffHours < 24) return `${diffHours}h`;\n const diffDays = Math.floor(diffHours / 24);\n if (diffDays < 7) return `${diffDays}d`;\n\n return date.toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: date.getFullYear() !== now.getFullYear() ? 'numeric' : undefined,\n });\n}\n\n/**\n * Format duration in seconds to M:SS or H:MM:SS\n */\nexport function formatDuration(seconds: number): string {\n if (!seconds || seconds <= 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n const padSecs = secs < 10 ? `0${secs}` : `${secs}`;\n if (mins >= 60) {\n const hours = Math.floor(mins / 60);\n const remMins = mins % 60;\n const padMins = remMins < 10 ? `0${remMins}` : `${remMins}`;\n return `${hours}:${padMins}:${padSecs}`;\n }\n return `${mins}:${padSecs}`;\n}\n"],"mappings":";AAOO,SAAS,mBAAmB,WAA2C;AAC5E,QAAM,OAAO,IAAI,KAAK,SAAS;AAC/B,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,UAAU,KAAK,OAAO,IAAI,QAAQ,IAAI,KAAK,QAAQ,KAAK,GAAI;AAElE,MAAI,MAAM,OAAO,EAAG,QAAO;AAC3B,MAAI,UAAU,GAAI,QAAO,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC;AAChD,QAAM,UAAU,KAAK,MAAM,UAAU,EAAE;AACvC,MAAI,UAAU,GAAI,QAAO,GAAG,OAAO;AACnC,QAAM,YAAY,KAAK,MAAM,UAAU,EAAE;AACzC,MAAI,YAAY,GAAI,QAAO,GAAG,SAAS;AACvC,QAAM,WAAW,KAAK,MAAM,YAAY,EAAE;AAC1C,MAAI,WAAW,EAAG,QAAO,GAAG,QAAQ;AAEpC,SAAO,KAAK,mBAAmB,SAAS;AAAA,IACtC,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM,KAAK,YAAY,MAAM,IAAI,YAAY,IAAI,YAAY;AAAA,EAC/D,CAAC;AACH;AAKO,SAAS,eAAe,SAAyB;AACtD,MAAI,CAAC,WAAW,WAAW,EAAG,QAAO;AACrC,QAAM,OAAO,KAAK,MAAM,UAAU,EAAE;AACpC,QAAM,OAAO,KAAK,MAAM,UAAU,EAAE;AACpC,QAAM,UAAU,OAAO,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI;AAChD,MAAI,QAAQ,IAAI;AACd,UAAM,QAAQ,KAAK,MAAM,OAAO,EAAE;AAClC,UAAM,UAAU,OAAO;AACvB,UAAM,UAAU,UAAU,KAAK,IAAI,OAAO,KAAK,GAAG,OAAO;AACzD,WAAO,GAAG,KAAK,IAAI,OAAO,IAAI,OAAO;AAAA,EACvC;AACA,SAAO,GAAG,IAAI,IAAI,OAAO;AAC3B;","names":[]}
|