@outs-tand-ing/ui 0.2.25 → 0.2.28
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/dist/brand/app-icon/palette.d.ts +7 -0
- package/dist/brand/app-icon/palette.d.ts.map +1 -0
- package/dist/index.js +7 -7
- package/package.json +12 -11
- package/src/brand/app-icon/README.md +34 -0
- package/src/brand/app-icon/palette.ts +8 -0
- package/src/brand/app-icon/triangle-back.svg +3 -0
- package/src/brand/app-icon/triangle-front.svg +3 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../../src/brand/app-icon/palette.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;CAKvB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createVNode as o, defineComponent as s, mergeProps as c, nextTick as l, normalizeClass as u, normalizeStyle as d, onMounted as f, onUnmounted as p, openBlock as m, ref as h, renderList as g, renderSlot as _, useAttrs as v, useSlots as y, watch as b } from "vue";
|
|
2
2
|
//#region src/components/BrandLogo.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
-
var x =
|
|
3
|
+
var x = /*@__PURE__*/ s({
|
|
4
4
|
__name: "BrandLogo",
|
|
5
5
|
props: { size: {
|
|
6
6
|
type: String,
|
|
@@ -29,7 +29,7 @@ function C(e, t, n, r, a, o) {
|
|
|
29
29
|
"text-5xl": n.size === "lg"
|
|
30
30
|
}]) }, "OUTSTANDING", 2);
|
|
31
31
|
}
|
|
32
|
-
var w =
|
|
32
|
+
var w = /*#__PURE__*/ S(x, [["render", C], ["__file", "/Users/kemal/Desktop/Kite/_Code/outs/ui/src/components/BrandLogo.vue"]]), T = {
|
|
33
33
|
squircle: {
|
|
34
34
|
width: 100,
|
|
35
35
|
height: 100,
|
|
@@ -48,7 +48,7 @@ var w = /* @__PURE__ */ S(x, [["render", C], ["__file", "/Users/kemal/Desktop/Ki
|
|
|
48
48
|
fill: "#ffffff"
|
|
49
49
|
}]
|
|
50
50
|
}
|
|
51
|
-
}, E = "var(--logo-outer-stroke-color, currentColor)", D = "var(--logo-stroke-color, currentColor)", O =
|
|
51
|
+
}, E = "var(--logo-outer-stroke-color, currentColor)", D = "var(--logo-stroke-color, currentColor)", O = /*@__PURE__*/ s({
|
|
52
52
|
inheritAttrs: !1,
|
|
53
53
|
__name: "SVGShape",
|
|
54
54
|
props: {
|
|
@@ -272,11 +272,11 @@ function L(t, n, o, s, l, f) {
|
|
|
272
272
|
}, null, 10, I))), 128))])], 8, P))
|
|
273
273
|
], 14, k)) : r("v-if", !0)], 16);
|
|
274
274
|
}
|
|
275
|
-
var R =
|
|
275
|
+
var R = /*#__PURE__*/ S(O, [
|
|
276
276
|
["render", L],
|
|
277
277
|
["__scopeId", "data-v-00a84a8e"],
|
|
278
278
|
["__file", "/Users/kemal/Desktop/Kite/_Code/outs/ui/src/components/SVGShape.vue"]
|
|
279
|
-
]), z =
|
|
279
|
+
]), z = /*@__PURE__*/ s({
|
|
280
280
|
__name: "AccessWrapper",
|
|
281
281
|
props: {
|
|
282
282
|
logoData: {
|
|
@@ -331,7 +331,7 @@ function K(e, t, s, c, l, u) {
|
|
|
331
331
|
}, null, -1), a("div", G, [_(e.$slots, "footer")])], 512)
|
|
332
332
|
]);
|
|
333
333
|
}
|
|
334
|
-
var q =
|
|
334
|
+
var q = /*#__PURE__*/ S(z, [["render", K], ["__file", "/Users/kemal/Desktop/Kite/_Code/outs/ui/src/components/AccessWrapper.vue"]]), J = /*@__PURE__*/ s({
|
|
335
335
|
__name: "ScrollableArea",
|
|
336
336
|
props: {
|
|
337
337
|
axis: {
|
|
@@ -413,7 +413,7 @@ function Y(e, t, n, o, s, c) {
|
|
|
413
413
|
}, null, 6))
|
|
414
414
|
], 2);
|
|
415
415
|
}
|
|
416
|
-
var X =
|
|
416
|
+
var X = /*#__PURE__*/ S(J, [["render", Y], ["__file", "/Users/kemal/Desktop/Kite/_Code/outs/ui/src/components/ScrollableArea.vue"]]);
|
|
417
417
|
//#endregion
|
|
418
418
|
//#region src/utils/svg-parse.ts
|
|
419
419
|
function Z(e) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@outs-tand-ing/ui",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.28",
|
|
4
4
|
"description": "Shared Vue components, icons, and design tokens for Outs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -64,21 +64,22 @@
|
|
|
64
64
|
"release:major": "bun scripts/release.ts major",
|
|
65
65
|
"palette": "bun scripts/generate-palette.ts",
|
|
66
66
|
"generate:android": "bun scripts/generate-android-colors.ts",
|
|
67
|
-
"generate:ios": "bun scripts/generate-ios-colors.ts"
|
|
67
|
+
"generate:ios": "bun scripts/generate-ios-colors.ts",
|
|
68
|
+
"generate:android:icon": "bun scripts/generate-android-icon.ts"
|
|
68
69
|
},
|
|
69
70
|
"peerDependencies": {
|
|
70
71
|
"vue": "^3.5.0"
|
|
71
72
|
},
|
|
72
73
|
"devDependencies": {
|
|
73
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
74
|
-
"bun-types": "^1.3.
|
|
75
|
-
"eslint": "^10.
|
|
76
|
-
"eslint-plugin-vue": "^10.9.
|
|
77
|
-
"sharp": "^0.
|
|
74
|
+
"@vitejs/plugin-vue": "^6.0.7",
|
|
75
|
+
"bun-types": "^1.3.14",
|
|
76
|
+
"eslint": "^10.4.1",
|
|
77
|
+
"eslint-plugin-vue": "^10.9.2",
|
|
78
|
+
"sharp": "^0.35.0",
|
|
78
79
|
"typescript": "^6.0.3",
|
|
79
|
-
"typescript-eslint": "^8.
|
|
80
|
-
"vite": "^8.0.
|
|
81
|
-
"vue": "^3.5.
|
|
82
|
-
"vue-tsc": "^3.
|
|
80
|
+
"typescript-eslint": "^8.61.0",
|
|
81
|
+
"vite": "^8.0.16",
|
|
82
|
+
"vue": "^3.5.37",
|
|
83
|
+
"vue-tsc": "^3.3.4"
|
|
83
84
|
}
|
|
84
85
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# App icon — single source
|
|
2
|
+
|
|
3
|
+
The brand mark (two overlapping rounded triangles, placeholder) lives here and is the **only**
|
|
4
|
+
editable source for both platforms. The triangle SVGs are not duplicated into the iOS or Android
|
|
5
|
+
trees — those hold generated/authored artifacts only.
|
|
6
|
+
|
|
7
|
+
| Source | What it drives |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `triangle-back.svg`, `triangle-front.svg` | the mark geometry (1024 canvas, neutral fill — colour is applied per platform) |
|
|
10
|
+
| `palette.ts` | channel colours (dev red / prod green) + background |
|
|
11
|
+
|
|
12
|
+
## Android — generated
|
|
13
|
+
|
|
14
|
+
From `ui/`:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
bun run generate:android:icon
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`scripts/generate-android-icon.ts` writes the `ic_launcher_foreground` / `ic_launcher_monochrome`
|
|
21
|
+
/ `splash_icon` drawables + per-flavour `colors.xml` into the app tree (each `AUTO-GENERATED`).
|
|
22
|
+
Structural files (adaptive-icon XML, themes, manifest) stay hand-authored.
|
|
23
|
+
|
|
24
|
+
## iOS — Icon Composer (manual, GUI)
|
|
25
|
+
|
|
26
|
+
iOS has no generation step — the layered Liquid Glass `.icon` is authored in **Icon Composer**:
|
|
27
|
+
|
|
28
|
+
1. Import `triangle-back.svg` then `triangle-front.svg` from **this folder** as two layers.
|
|
29
|
+
2. Set the channel fill (green prod / red dev) and tune Liquid Glass.
|
|
30
|
+
3. Save over the project's `.icon` files at `ios/outstanding/AppIcon.icon` / `AppIconDev.icon`.
|
|
31
|
+
|
|
32
|
+
The `.icon` is the build artifact (it stays in the iOS tree); these SVGs are only its inputs.
|
|
33
|
+
A future enhancement can stamp the channel colour straight into the `.icon` layers to skip the GUI
|
|
34
|
+
for colour-only changes.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Launcher-icon colour tokens — the single source for the Android icon generator.
|
|
2
|
+
// `dev`/`prod` are the build-channel signal (red dev / green prod), independent of season.
|
|
3
|
+
export const iconPalette = {
|
|
4
|
+
background: '#EDEDED',
|
|
5
|
+
fallback: '#888888',
|
|
6
|
+
dev: '#FF3B30',
|
|
7
|
+
prod: '#34C759',
|
|
8
|
+
}
|