ksk-design-system 2.6.2 → 2.6.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "meta": {
3
3
  "name": "KSK Design System — Component Contracts",
4
- "version": "2.6.2",
4
+ "version": "2.6.3",
5
5
  "description": "全コンポーネントの構造化定義。バリアント・アクセシビリティ要件・使用ルールを機械可読形式で管理。",
6
6
  "counts": {
7
7
  "ui": 68,
@@ -288,6 +288,9 @@
288
288
  "accessibility": [
289
289
  "Must pair with <Label> for each item",
290
290
  "RadioGroupItem は見た目 20px の円のまま ::before で 44x44px の当たり判定を内蔵する。消費側で [role=\"radio\"] のグローバル寸法上書きを追加しない(issue #470)"
291
+ ],
292
+ "rules": [
293
+ "Native は単体 Radio(ksk-design-system/native/ui)を共用。selected/onChange/size/disabled/decorative を持つ。decorative は親 radio の操作と読み上げに委ねる。単体使用では accessibilityLabel を指定し、onChange は常に true(排他制御は親)。"
291
294
  ]
292
295
  },
293
296
  {
@@ -1338,7 +1341,8 @@
1338
1341
  "leftSlot 幅にインデントされない全幅の下段要素(進捗バー等)は footerSlot、title 列の内側に置くものは bottomSlot",
1339
1342
  "押せる行(href / onClick)の中に削除ボタン等の別操作を置く場合は secondaryAction を使う。rightSlot に button を入れると button の入れ子で不正な HTML になる",
1340
1343
  "secondaryAction 指定時はルートが div になり、行全体を覆う不可視の a/button(stretched link)+ 副アクションの兄弟配置に切り替わる",
1341
- "バッジ・日時・シェブロンなど押せない表示は secondaryAction ではなく rightSlot"
1344
+ "バッジ・日時・シェブロンなど押せない表示は secondaryAction ではなく rightSlot",
1345
+ "Native: titleTone / descriptionTone は default | accent | caution(既定 default)。文字列にのみ DS typography と semantic text 色を適用し、ReactNode は従来通り無加工。divider は none(既定)| inset | full。inset は density の左右 padding に追随し、leading 幅は含めない。footerSlot がある場合も行全体の下端。外置き Separator の full-bleed 既定は変更しない。"
1342
1346
  ]
1343
1347
  },
1344
1348
  {
@@ -5,6 +5,21 @@
5
5
  "dsIssue": 531,
6
6
  "consumerIssue": "https://github.com/ekusiek716/trip-todo/issues/168",
7
7
  "fixPr": 532
8
+ },
9
+ {
10
+ "dsIssue": 571,
11
+ "consumerIssue": "https://github.com/ekusiek716/exam-kit/issues/1094",
12
+ "fixPr": 574
13
+ },
14
+ {
15
+ "dsIssue": 572,
16
+ "consumerIssue": "https://github.com/ekusiek716/exam-kit/issues/1088",
17
+ "fixPr": 574
18
+ },
19
+ {
20
+ "dsIssue": 573,
21
+ "consumerIssue": "https://github.com/ekusiek716/exam-kit/issues/1089",
22
+ "fixPr": 574
8
23
  }
9
24
  ]
10
25
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "meta": {
3
3
  "name": "KSK Design System — Semantic Token Hex Cache",
4
- "version": "2.6.2",
4
+ "version": "2.6.3",
5
5
  "description": "semantic / semanticDark トークン(var(--Primitive-*) 参照)を実 hex に解決したサイドカー生成物。hex はデフォルト(Blue)テーマでの解決値であり、Brand 系(meta.themeDependentKeys に列挙)はテーマ差し替え(orange/green/violet 等)で実色が変わる。テーマ別の完全解決値は `ksk-design-system/native` エクスポート(バンドル済み native トークンモジュール)の themes を参照。tokens.json 本体のスキーマは変更せず、AI がこのファイルだけで実色を把握できるようにし、primitive 値の変更による semantic 実色のドリフトを --check で機械検出する。",
6
6
  "generatedBy": "scripts/generate-token-hex-cache.mjs",
7
7
  "theme": "default",
package/dist/index.js CHANGED
@@ -13407,7 +13407,7 @@ function If({ className: e, id: t, style: n, title: r, variant: i = "filled", si
13407
13407
  variant: i,
13408
13408
  size: a,
13409
13409
  shape: o
13410
- }), "rounded-r-none", v !== "tile" && "pr-1.5", i === "outline" && "border-r-0", w, T);
13410
+ }), "rounded-r-none", v !== "tile" && "pr-1", i === "outline" && "border-r-0", w, T);
13411
13411
  return /* @__PURE__ */ V("span", {
13412
13412
  id: t,
13413
13413
  style: n,
@@ -13435,7 +13435,7 @@ function If({ className: e, id: t, style: n, title: r, variant: i = "filled", si
13435
13435
  onClick: (e) => {
13436
13436
  e.stopPropagation(), d?.();
13437
13437
  },
13438
- className: G("relative inline-flex shrink-0 items-center justify-center touch-manipulation [-webkit-tap-highlight-color:transparent] [@media(hover:hover)]:transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--Focus-High-Emphasis)] disabled:pointer-events-none disabled:opacity-50", !c && i === "filled" && "bg-[var(--Surface-Secondary)] text-[var(--Text-Medium-Emphasis)] hover:bg-[var(--Surface-Tertiary)] hover:text-[var(--Text-High-Emphasis)]", !c && i === "accent" && "bg-[var(--Surface-Accent-Primary-Light)] text-[var(--Text-Accent-Primary)] hover:bg-[var(--Hover-Secondary-Button)]", !c && i === "outline" && "border border-l-0 border-[var(--Border-Medium-Emphasis)] bg-transparent text-[var(--Text-Medium-Emphasis)] hover:bg-[var(--Surface-Secondary)] hover:text-[var(--Text-High-Emphasis)]", c && "bg-[var(--Brand-Primary)] text-[var(--Text-on-Inverse)] hover:bg-[var(--Active-Primary-Button)] hover:text-[var(--Text-on-Inverse)]", D, O),
13438
+ className: G("relative inline-flex shrink-0 items-center justify-center touch-manipulation [-webkit-tap-highlight-color:transparent] [@media(hover:hover)]:transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--Focus-High-Emphasis)] disabled:pointer-events-none disabled:opacity-50", !c && i === "filled" && "bg-[var(--Surface-Secondary)] text-[var(--Text-Medium-Emphasis)] hover:bg-[var(--Surface-Tertiary)] hover:text-[var(--Text-High-Emphasis)]", !c && i === "accent" && "bg-[var(--Surface-Accent-Primary-Light)] text-[var(--Text-Accent-Primary)] hover:bg-[var(--Hover-Secondary-Button)]", !c && i === "outline" && "border border-l-0 border-[var(--Border-Medium-Emphasis)] bg-transparent text-[var(--Text-Medium-Emphasis)] hover:bg-[var(--Surface-Secondary)] hover:text-[var(--Text-High-Emphasis)]", c && "bg-[var(--Brand-Primary)] text-[var(--Text-on-Inverse)] hover:bg-[var(--Active-Primary-Button)] hover:text-[var(--Text-on-Inverse)]", D, v !== "tile" && "[@media(hover:hover)_and_(pointer:fine)]:w-8 [@media(any-pointer:coarse)]:min-w-11", O),
13439
13439
  children: S
13440
13440
  })]
13441
13441
  });
@@ -14118,7 +14118,7 @@ function ip({ className: e, title: t, description: n, action: r, variant: i = "g
14118
14118
  ...o,
14119
14119
  children: [(t || n || r) && /* @__PURE__ */ V("div", {
14120
14120
  "data-slot": "settings-section-header",
14121
- className: "flex items-start justify-between gap-3 px-1",
14121
+ className: "flex items-start justify-between gap-3 px-4",
14122
14122
  children: [/* @__PURE__ */ V("div", {
14123
14123
  className: "min-w-0 flex-1",
14124
14124
  children: [t && /* @__PURE__ */ B("h2", {
@@ -14144,7 +14144,7 @@ function ap({ className: e, title: t, description: n, leading: r, rightSlot: i,
14144
14144
  let d = /* @__PURE__ */ V(z, { children: [
14145
14145
  r && /* @__PURE__ */ B("div", {
14146
14146
  "data-slot": "settings-list-row-leading",
14147
- className: "flex size-10 shrink-0 items-center justify-center",
14147
+ className: "flex shrink-0 items-center justify-center",
14148
14148
  children: r
14149
14149
  }),
14150
14150
  /* @__PURE__ */ V("div", {
@@ -16360,7 +16360,20 @@ function Vm({ className: e, icon: t, emoji: n, label: r, description: i, meta: a
16360
16360
  }) : v ? /* @__PURE__ */ B("span", {
16361
16361
  className: "shrink-0 text-[var(--Text-Accent-Primary)]",
16362
16362
  "aria-hidden": !0,
16363
- children: /* @__PURE__ */ B(pe, { size: 16 })
16363
+ children: /* @__PURE__ */ B("svg", {
16364
+ width: "16",
16365
+ height: "16",
16366
+ viewBox: "0 0 12 12",
16367
+ fill: "none",
16368
+ "aria-hidden": "true",
16369
+ children: /* @__PURE__ */ B("path", {
16370
+ d: "M10 3L4.5 8.5L2 6",
16371
+ stroke: "currentColor",
16372
+ strokeWidth: "2",
16373
+ strokeLinecap: "round",
16374
+ strokeLinejoin: "round"
16375
+ })
16376
+ })
16364
16377
  }) : null]
16365
16378
  }), x && /* @__PURE__ */ V("span", {
16366
16379
  className: "flex w-full flex-wrap items-end justify-between gap-x-2 gap-y-1",