ksk-design-system 1.63.0 → 1.63.1
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": "1.63.
|
|
4
|
+
"version": "1.63.1",
|
|
5
5
|
"description": "全コンポーネントの構造化定義。バリアント・アクセシビリティ要件・使用ルールを機械可読形式で管理。",
|
|
6
6
|
"counts": {
|
|
7
7
|
"ui": 68,
|
|
@@ -2107,7 +2107,10 @@
|
|
|
2107
2107
|
"単純な on/off トグルは FilterChip、単一選択リストは DropdownFilter、任意パネル + 明示クリアは FilterPill",
|
|
2108
2108
|
"適用中かどうかの正本は value(active フラグを別に持たない)",
|
|
2109
2109
|
"value の整形(複数選択の \"渋谷 他2件\" 等)は呼び出し側の責務"
|
|
2110
|
-
]
|
|
2110
|
+
],
|
|
2111
|
+
"props": {
|
|
2112
|
+
"icon": "ReactNode — ラベル左のアイコン(装飾・aria-hidden。iconsax size=16 相当)"
|
|
2113
|
+
}
|
|
2111
2114
|
},
|
|
2112
2115
|
{
|
|
2113
2116
|
"name": "ImageOverlayAction",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"meta": {
|
|
3
3
|
"name": "KSK Design System — Semantic Token Hex Cache",
|
|
4
|
-
"version": "1.63.
|
|
4
|
+
"version": "1.63.1",
|
|
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
|
@@ -18293,12 +18293,12 @@ var Hh = {
|
|
|
18293
18293
|
sm: "h-[var(--Control-Height-Sm)] typo-label-xs",
|
|
18294
18294
|
md: "h-[var(--Control-Height-Sm)] sm:h-[var(--Control-Height-Md)] typo-label-sm"
|
|
18295
18295
|
};
|
|
18296
|
-
function Uh({ label: e, value: t, onClear: n, clearLabel: r, children: i, open: a, onOpenChange: o, defaultOpen: s, panelLabel: c, align: l = "start", contentClassName: u,
|
|
18297
|
-
let
|
|
18296
|
+
function Uh({ label: e, value: t, onClear: n, clearLabel: r, children: i, open: a, onOpenChange: o, defaultOpen: s, panelLabel: c, align: l = "start", contentClassName: u, icon: d, size: f = "md", disabled: p = !1, className: m }) {
|
|
18297
|
+
let h = t != null && t !== "", g = h && !!n;
|
|
18298
18298
|
return /* @__PURE__ */ V("div", {
|
|
18299
18299
|
"data-slot": "filter-pill",
|
|
18300
|
-
"data-active":
|
|
18301
|
-
className: G("inline-flex shrink-0 items-center rounded-full border border-[var(--Border-Low-Emphasis)] transition-colors duration-[var(--Motion-Duration-Base)]",
|
|
18300
|
+
"data-active": h || void 0,
|
|
18301
|
+
className: G("inline-flex shrink-0 items-center rounded-full border border-[var(--Border-Low-Emphasis)] transition-colors duration-[var(--Motion-Duration-Base)]", h ? "border-[var(--Brand-Primary)] bg-[var(--Brand-Primary)] text-[var(--Text-on-Inverse)]" : "border-[var(--Border-Low-Emphasis)] bg-[var(--Surface-Primary)] text-[var(--Text-Medium-Emphasis)]", p && "cursor-not-allowed opacity-50", Hh[f], m),
|
|
18302
18302
|
children: [/* @__PURE__ */ V(zs, {
|
|
18303
18303
|
open: a,
|
|
18304
18304
|
defaultOpen: s,
|
|
@@ -18307,13 +18307,21 @@ function Uh({ label: e, value: t, onClear: n, clearLabel: r, children: i, open:
|
|
|
18307
18307
|
asChild: !0,
|
|
18308
18308
|
children: /* @__PURE__ */ V("button", {
|
|
18309
18309
|
type: "button",
|
|
18310
|
-
disabled:
|
|
18310
|
+
disabled: p,
|
|
18311
18311
|
"aria-haspopup": "dialog",
|
|
18312
|
-
className: G("flex h-full min-w-0 flex-1 items-center gap-1.5 rounded-full pl-4",
|
|
18313
|
-
children: [
|
|
18314
|
-
|
|
18315
|
-
|
|
18316
|
-
|
|
18312
|
+
className: G("flex h-full min-w-0 flex-1 items-center gap-1.5 rounded-full pl-4", h ? "text-[var(--Text-on-Inverse)]" : "text-[var(--Text-Medium-Emphasis)]", g ? "pr-1.5" : "pr-4", "cursor-pointer focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-[var(--Focus-High-Emphasis)]/50", "disabled:cursor-not-allowed disabled:pointer-events-none"),
|
|
18313
|
+
children: [
|
|
18314
|
+
d && /* @__PURE__ */ B("span", {
|
|
18315
|
+
"aria-hidden": "true",
|
|
18316
|
+
className: "shrink-0 inline-flex",
|
|
18317
|
+
children: d
|
|
18318
|
+
}),
|
|
18319
|
+
/* @__PURE__ */ B("span", {
|
|
18320
|
+
className: "truncate",
|
|
18321
|
+
children: h ? `${e}: ${t}` : e
|
|
18322
|
+
}),
|
|
18323
|
+
/* @__PURE__ */ B(Wh, {})
|
|
18324
|
+
]
|
|
18317
18325
|
})
|
|
18318
18326
|
}), /* @__PURE__ */ B(Vs, {
|
|
18319
18327
|
align: l,
|
|
@@ -18321,9 +18329,9 @@ function Uh({ label: e, value: t, onClear: n, clearLabel: r, children: i, open:
|
|
|
18321
18329
|
className: G("w-72", u),
|
|
18322
18330
|
children: i
|
|
18323
18331
|
})]
|
|
18324
|
-
}),
|
|
18332
|
+
}), g && /* @__PURE__ */ B("button", {
|
|
18325
18333
|
type: "button",
|
|
18326
|
-
disabled:
|
|
18334
|
+
disabled: p,
|
|
18327
18335
|
"aria-label": r ?? `${e}をクリア`,
|
|
18328
18336
|
onClick: (e) => {
|
|
18329
18337
|
e.stopPropagation(), n?.();
|
|
@@ -45,6 +45,11 @@ interface FilterPillProps {
|
|
|
45
45
|
align?: "start" | "center" | "end";
|
|
46
46
|
/** Popover パネルに渡す className(幅の上書き等)。 */
|
|
47
47
|
contentClassName?: string;
|
|
48
|
+
/**
|
|
49
|
+
* ラベルの左に出すアイコン(iconsax の size=16 相当を想定)。
|
|
50
|
+
* 装飾なので aria-hidden で描画される。
|
|
51
|
+
*/
|
|
52
|
+
icon?: React.ReactNode;
|
|
48
53
|
size?: FilterPillSize;
|
|
49
54
|
disabled?: boolean;
|
|
50
55
|
className?: string;
|
|
@@ -74,6 +79,6 @@ interface FilterPillProps {
|
|
|
74
79
|
* <CheckboxGroup ... />
|
|
75
80
|
* </FilterPill>
|
|
76
81
|
*/
|
|
77
|
-
declare function FilterPill({ label, value, onClear, clearLabel, children, open, onOpenChange, defaultOpen, panelLabel, align, contentClassName, size, disabled, className, }: FilterPillProps): React.JSX.Element;
|
|
82
|
+
declare function FilterPill({ label, value, onClear, clearLabel, children, open, onOpenChange, defaultOpen, panelLabel, align, contentClassName, icon, size, disabled, className, }: FilterPillProps): React.JSX.Element;
|
|
78
83
|
export { FilterPill };
|
|
79
84
|
export type { FilterPillProps, FilterPillSize };
|
package/package.json
CHANGED
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
| FieldSet, FieldLegend, FieldGroup, FieldDescription, FieldError, FieldSeparator | `@/components/patterns/field` | — | 3セクションの長いフォーム, SeparatorWithLabel |
|
|
129
129
|
| FileUpload | `@/components/patterns/file-upload` | — | Default, Multiple |
|
|
130
130
|
| FilterChip | `@/components/patterns/filter-chip` | — | Inactive, ActiveWithValue, Toggle, Group |
|
|
131
|
-
| FilterPill | `@/components/patterns/filter-pill` | — | Default, Active, ActiveWithoutClear, Bar, OpensPanelAndClears |
|
|
131
|
+
| FilterPill | `@/components/patterns/filter-pill` | — | Default, Active, ActiveWithoutClear, Bar, OpensPanelAndClears, WithIcon |
|
|
132
132
|
| Footer | `@/components/patterns/footer` | — | Default, Minimal, WithRenderSlot, WithExtra, WithPaymentIcons |
|
|
133
133
|
| FormField | `@/components/patterns/form-field` | — | WithInput, Required, WithError, WithDescription, WithTextarea, WithCharacterCountAndError, WithSelect, CompleteForm |
|
|
134
134
|
| FormRoot, FormSection, FormActions | `@/components/patterns/form` | — | Default |
|