tamga-ui 0.5.1 → 0.5.3

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/CHANGELOG.md CHANGED
@@ -5,6 +5,50 @@ Versions follow [semver](https://semver.org/). Through `0.x`, breaking changes m
5
5
 
6
6
  > 🇹🇷 Türkçe için [tamga.org.tr/tr](https://tamga.org.tr/tr).
7
7
 
8
+ ## 0.5.3
9
+
10
+ > A page title can carry its own marks.
11
+
12
+ ### Changed
13
+
14
+ - **`PageBand.title` takes a node, not a string.** A detail page's title usually carries a mark that
15
+ belongs inside it: the record number, a status chip, a blocked flag. They are part of the title,
16
+ not an action, so `actions` (the band's other edge) was the wrong home and products were drawing
17
+ the whole band by hand to get them. The title line now wraps its children with a gap, so a name
18
+ and two chips sit on one baseline and wrap together.
19
+
20
+ ## 0.5.2
21
+
22
+ > A light palette takes the brand's hue, and two things a pointer could feel: a checkbox
23
+ > that flickered under hover and a two-line label that centred itself.
24
+
25
+ ### Fixed
26
+
27
+ - **`Checkbox` no longer centres a two-line label.** It renders a `<button>`, and a browser centres
28
+ button text; every other choice surface in the kit already neutralises that (`RadioGroup`'s list
29
+ look, `.tamga-choice-card`), this one did not. A one-word label never showed it; a label with a
30
+ description under it did.
31
+
32
+ ## Unreleased
33
+
34
+ ### Changed
35
+
36
+ - **A light palette now carries the brand's hue.** `makePalette` fixed every light surface at hue
37
+ 90 — `page`, `shell`, `rail`, `hover`, `sunk`, `line`, `div` were the same warm paper whatever the
38
+ brand, while the dark half breathed in the brand's hue. Only the HUE moves: the lightness steps
39
+ and the chroma ceiling are untouched, so the contrast that makes a panel comfortable to read is
40
+ the same number it was (measured: ink over page stays above 15). The warm-brand guard still holds
41
+ a red or orange brand at the paper hue, because a surface pulled toward those reads as dirty
42
+ rather than tinted.
43
+
44
+ ### Fixed
45
+
46
+ - **A hovered checkbox no longer flickers.** The box lifts a pixel on hover, and the hover target
47
+ was the box itself: a pointer resting on its lower or right edge lost the box as it moved, the
48
+ hover ended, the box came back, the hover started again — a loop that does not stop, because the
49
+ pointer never moved. Hover now belongs to the wrapping control, which does not move. The label
50
+ lights the box too, which is where a checkbox's hit area always was.
51
+
8
52
  ## 0.5.1
9
53
 
10
54
  > Three corrections the 0.5.0 port left behind: a menu that stole the page's scroll, and the
@@ -12,5 +12,5 @@ import { Check, Minus } from "./icons.js";
12
12
  * offsetini taşır, böylece kontrol ailesinin bir üyesi gibi okunur.
13
13
  * ---------------------------------------------------------------- */
14
14
  export function Checkbox({ label, checked, indeterminate = false, onChange, disabled = false, className, compact = false, ...rest }) {
15
- return (_jsxs("button", { ...dataProps(rest), type: "button", role: "checkbox", "aria-checked": indeterminate ? "mixed" : checked, "aria-disabled": disabled || undefined, disabled: disabled, onClick: () => !disabled && onChange?.(!checked), className: cn("flex items-center gap-2 text-body", disabled && "text-ink-faint", className), children: [_jsx("span", { className: cn("tamga-check", compact && "tamga-check-sm"), "data-checked": (checked || indeterminate) && !disabled, "data-off": disabled || undefined, children: indeterminate ? (_jsx(Icon, { icon: Minus, size: "xs", weight: "bold" })) : checked ? (_jsx(Icon, { icon: Check, size: "xs", weight: "bold" })) : null }), label] }));
15
+ return (_jsxs("button", { ...dataProps(rest), type: "button", role: "checkbox", "aria-checked": indeterminate ? "mixed" : checked, "aria-disabled": disabled || undefined, disabled: disabled, onClick: () => !disabled && onChange?.(!checked), className: cn("flex items-center gap-2 text-left text-body", disabled && "text-ink-faint", className), children: [_jsx("span", { className: cn("tamga-check", compact && "tamga-check-sm"), "data-checked": (checked || indeterminate) && !disabled, "data-off": disabled || undefined, children: indeterminate ? (_jsx(Icon, { icon: Minus, size: "xs", weight: "bold" })) : checked ? (_jsx(Icon, { icon: Check, size: "xs", weight: "bold" })) : null }), label] }));
16
16
  }
@@ -88,7 +88,15 @@ export declare function PageBand({ eyebrow, title, subtitle, actions, className,
88
88
  * yoksa yalnız o kişiyi mi ilgilendirdiği gibi.
89
89
  */
90
90
  eyebrow?: string;
91
- title: string;
91
+ /**
92
+ * The page's name. A node rather than a string, because a detail page's title often carries a
93
+ * mark that belongs INSIDE it: a record number, a status chip, a blocked flag. Those are part of
94
+ * the title, not an action; `actions` is the other edge of the band.
95
+ * TR: Sayfanın adı. Metin değil düğüm, çünkü bir detay sayfasının başlığı çoğu zaman İÇİNDE bir
96
+ * işaret taşıyor: kayıt numarası, durum çipi, bloke bayrağı. Onlar başlığın parçası, bir eylem
97
+ * değil; `actions` şeridin öteki ucu.
98
+ */
99
+ title: ReactNode;
92
100
  subtitle?: string;
93
101
  actions?: ReactNode;
94
102
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/components/layout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/components/layout.tsx"],"names":[],"mappings":"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"}
@@ -78,7 +78,7 @@ export function CellActions({ className, children, align = "end", ...props
78
78
  * Doküman: /docs/page-band
79
79
  */
80
80
  export function PageBand({ eyebrow, title, subtitle, actions, className, ...rest }) {
81
- return (_jsxs("div", { ...dataProps(rest), className: cn("flex flex-wrap items-end gap-4", className), children: [_jsxs("div", { className: "min-w-0 flex-1 basis-65", children: [eyebrow ? (_jsx("p", { className: "mb-1.5 text-small font-semibold text-ink-faint", children: eyebrow })) : null, _jsx("h1", { className: "font-display text-display-lg leading-tight font-extrabold text-ink", children: title }), subtitle ? _jsx("p", { className: "mt-1.5 text-body text-ink-soft", children: subtitle }) : null] }), actions ? _jsx("div", { className: "ml-auto flex flex-wrap items-center gap-2", children: actions }) : null] }));
81
+ return (_jsxs("div", { ...dataProps(rest), className: cn("flex flex-wrap items-end gap-4", className), children: [_jsxs("div", { className: "min-w-0 flex-1 basis-65", children: [eyebrow ? (_jsx("p", { className: "mb-1.5 text-small font-semibold text-ink-faint", children: eyebrow })) : null, _jsx("h1", { className: "flex flex-wrap items-center gap-x-3 gap-y-1.5 font-display text-display-lg leading-tight font-extrabold text-ink", children: title }), subtitle ? _jsx("p", { className: "mt-1.5 text-body text-ink-soft", children: subtitle }) : null] }), actions ? _jsx("div", { className: "ml-auto flex flex-wrap items-center gap-2", children: actions }) : null] }));
82
82
  }
83
83
  /**
84
84
  * Gezinen bağlantı. `Button variant="link"` DEĞİL: o bir `<button>`, yani orta
package/dist/fonts.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! tamga-ui 0.5.1 · MIT · https://tamga.org.tr */
1
+ /*! tamga-ui 0.5.3 · MIT · https://tamga.org.tr */
2
2
  @font-face {
3
3
  font-family: "Red Hat Display";
4
4
  font-style: normal;
package/dist/kit.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! tamga-ui 0.5.1 · MIT · https://tamga.org.tr */
1
+ /*! tamga-ui 0.5.3 · MIT · https://tamga.org.tr */
2
2
  :root {
3
3
 
4
4
  --overlay-gap: 8px;
@@ -2355,7 +2355,6 @@
2355
2355
  border-radius: var(--radius-chip);
2356
2356
  box-shadow: none;
2357
2357
  }
2358
- .tamga-check-sm:hover,
2359
2358
  .tamga-check-sm[data-checked="true"] {
2360
2359
  transform: none;
2361
2360
  box-shadow: none;
@@ -2375,13 +2374,8 @@
2375
2374
  cursor: default;
2376
2375
  }
2377
2376
 
2378
- .tamga-check[data-off]:hover, .tamga-radio[data-off]:hover {
2379
- border-color: var(--color-edge);
2380
- transform: none;
2381
- box-shadow: none;
2382
- }
2383
-
2384
- .tamga-check:hover, .tamga-radio:hover {
2377
+ :where(button, label):hover
2378
+ :is(.tamga-check, .tamga-radio):not([data-off]):not(.tamga-check-sm) {
2385
2379
  border-color: var(--color-accent-line);
2386
2380
  transform: translate(-1px, -1px);
2387
2381
  box-shadow: 3px 3px 0 var(--color-accent-line);
@@ -1 +1 @@
1
- {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/lib/palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAA0B,QAAQ,EAAc,MAAM,YAAY,CAAC;AAEpG;;;;;;;;GAQG;AAEH,qFAAqF;AACrF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAyL5D;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAIzD;AAMD,OAAO,EAAE,KAAK,EAAE,CAAC;AAIjB,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG;IACxB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,CA8BxD;AAoBD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI9D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAMpD;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/lib/palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAA0B,QAAQ,EAAc,MAAM,YAAY,CAAC;AAEpG;;;;;;;;GAQG;AAEH,qFAAqF;AACrF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AA4L5D;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAIzD;AAMD,OAAO,EAAE,KAAK,EAAE,CAAC;AAIjB,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG;IACxB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,CA8BxD;AAoBD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI9D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAMpD;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC"}
@@ -14,13 +14,13 @@ import { lightness, deltaL, isHex, hexToOklch, oklchToHex, contrast } from "./co
14
14
  const REFERANS_MARKA = { l: 0.49, c: 0.2158, h: 264.4 };
15
15
  const BASAMAK = {
16
16
  light: {
17
- page: { l: 0.961, c: 0.0083, k: "sabit" },
18
- shell: { l: 0.997, c: 0.0041, k: "sabit" },
19
- rail: { l: 0.925, c: 0.0112, k: "sabit" },
20
- hover: { l: 0.970, c: 0.0082, k: "sabit" },
21
- sunk: { l: 0.898, c: 0.0142, k: "sabit" },
22
- line: { l: 0.861, c: 0.0156, k: "sabit" },
23
- div: { l: 0.904, c: 0.0129, k: "sabit" },
17
+ page: { l: 0.961, c: 0.0083, k: "kisitli" },
18
+ shell: { l: 0.997, c: 0.0041, k: "kisitli" },
19
+ rail: { l: 0.925, c: 0.0112, k: "kisitli" },
20
+ hover: { l: 0.970, c: 0.0082, k: "kisitli" },
21
+ sunk: { l: 0.898, c: 0.0142, k: "kisitli" },
22
+ line: { l: 0.861, c: 0.0156, k: "kisitli" },
23
+ div: { l: 0.904, c: 0.0129, k: "kisitli" },
24
24
  edge: { l: 0.834, c: 0.0154, k: "kisitli" },
25
25
  edgeHover: { l: 0.677, c: 0.0340, k: "kisitli" },
26
26
  edgeStrong: { l: 0.241, c: 0.0635, k: "tam" },
@@ -30,7 +30,7 @@ const BASAMAK = {
30
30
  inkFaint: { l: 0.460, c: 0.0476, k: "kisitli" },
31
31
  navIdle: { l: 0.241, c: 0.0635, k: "tam" },
32
32
  navHover: { l: 0.241, c: 0.0635, k: "tam" },
33
- navHoverBg: { l: 0.997, c: 0.0041, k: "sabit" },
33
+ navHoverBg: { l: 0.997, c: 0.0041, k: "kisitli" },
34
34
  },
35
35
  dark: {
36
36
  page: { l: 0.218, c: 0.0385, k: "kisitli" },
@@ -60,11 +60,13 @@ const BASAMAK = {
60
60
  navHoverBg: { l: 0.257, c: 0.0473, k: "kisitli" },
61
61
  },
62
62
  };
63
- /** Açık temanın sabit kâğıtları: tonu 78, markadan bağımsız. */
63
+ /** Sıcak markada kâğıdın kaçtığı ton. */
64
64
  const KAGIT_TONU = 78;
65
+ /* AÇIK YÜZEYLER DE MARKADAN TON ALIYOR. Kâğıtlar `h: 90`da sabitti: seçilen renk ne olursa
66
+ olsun ray, zemin ve kartlar aynı sıcak griydi, oysa koyu tema markanın tonunda nefes
67
+ alıyordu. Değişen yalnız TON · parlaklık ve doyum tavanı aynı kaldığı için kontrast ve
68
+ göz konforu yerinde duruyor (ölçüldü: mürekkep/zemin 15.5+). */
65
69
  function notrUret(b, marka, koyu) {
66
- if (b.k === "sabit")
67
- return oklchToHex({ l: b.l, c: b.c, h: 90 });
68
70
  const oran = Math.max(0.12, Math.min(1.4, marka.c / REFERANS_MARKA.c));
69
71
  const tavan = koyu ? 0.02 : 0.022;
70
72
  let c = b.k === "tam" ? b.c * oran : Math.min(b.c * oran, tavan);
package/dist/styles.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! tamga-ui 0.5.1 · MIT · https://tamga.org.tr */
1
+ /*! tamga-ui 0.5.3 · MIT · https://tamga.org.tr */
2
2
  @import "./fonts.css";
3
3
  @import "./theme.css";
4
4
  @import "./kit.css";
package/dist/theme.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! tamga-ui 0.5.1 · MIT · https://tamga.org.tr */
1
+ /*! tamga-ui 0.5.3 · MIT · https://tamga.org.tr */
2
2
  @custom-variant dark (&:is(.dark *));
3
3
 
4
4
  @theme static {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamga-ui",
3
- "version": "0.5.1",
3
+ "version": "0.5.3",
4
4
  "description": "Mant\u0131ksal's shared interface library: tokens, physics and components.",
5
5
  "license": "MIT",
6
6
  "type": "module",