kaze-design-system 0.1.1 → 0.2.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/components.css +45 -0
- package/dist/components/FilterPill/FilterPill.js +31 -0
- package/dist/index.js +2 -0
- package/dist/lib/chartColors.js +7 -1
- package/dist/tokens.js +7 -1
- package/dist/types/components/FilterPill/FilterPill.d.ts +10 -0
- package/dist/types/components/FilterPill/index.d.ts +2 -0
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/lib/chartColors.d.ts +1 -1
- package/dist/types/tokens/tokens.d.ts +6 -0
- package/package.json +1 -1
- package/tokens.css +14 -0
- package/utilities.css +30 -0
package/components.css
CHANGED
|
@@ -3719,6 +3719,51 @@
|
|
|
3719
3719
|
margin: var(--space-1) 0;
|
|
3720
3720
|
}
|
|
3721
3721
|
|
|
3722
|
+
/* ── FilterPill ──────────────────────────────────────────── */
|
|
3723
|
+
.filter-pill {
|
|
3724
|
+
display: inline-flex;
|
|
3725
|
+
align-items: center;
|
|
3726
|
+
gap: var(--space-1-5);
|
|
3727
|
+
padding: var(--space-1) var(--space-3);
|
|
3728
|
+
font-size: var(--font-size-sm);
|
|
3729
|
+
font-weight: var(--font-weight-medium);
|
|
3730
|
+
line-height: 1.5;
|
|
3731
|
+
border-radius: var(--radius-full);
|
|
3732
|
+
border: 1px solid var(--color-border);
|
|
3733
|
+
background-color: var(--color-bg);
|
|
3734
|
+
color: var(--color-fg-secondary);
|
|
3735
|
+
cursor: pointer;
|
|
3736
|
+
-webkit-user-select: none;
|
|
3737
|
+
user-select: none;
|
|
3738
|
+
white-space: nowrap;
|
|
3739
|
+
transition: background-color var(--duration-normal) var(--ease-default),
|
|
3740
|
+
border-color var(--duration-normal) var(--ease-default),
|
|
3741
|
+
color var(--duration-normal) var(--ease-default);
|
|
3742
|
+
}
|
|
3743
|
+
|
|
3744
|
+
.filter-pill:hover {
|
|
3745
|
+
background-color: var(--color-surface-hover);
|
|
3746
|
+
}
|
|
3747
|
+
|
|
3748
|
+
.filter-pill:focus-visible {
|
|
3749
|
+
outline: var(--ring-width) solid var(--ring-color);
|
|
3750
|
+
outline-offset: var(--ring-offset);
|
|
3751
|
+
}
|
|
3752
|
+
|
|
3753
|
+
.filter-pill--active {
|
|
3754
|
+
border-color: var(--filter-pill-color, var(--color-primary));
|
|
3755
|
+
background-color: color-mix(in srgb, var(--filter-pill-color, var(--color-primary)) 8%, transparent);
|
|
3756
|
+
color: var(--filter-pill-color, var(--color-fg));
|
|
3757
|
+
}
|
|
3758
|
+
|
|
3759
|
+
.filter-pill__dot {
|
|
3760
|
+
width: 8px;
|
|
3761
|
+
height: 8px;
|
|
3762
|
+
border-radius: var(--radius-full);
|
|
3763
|
+
background-color: var(--filter-pill-color, currentColor);
|
|
3764
|
+
flex-shrink: 0;
|
|
3765
|
+
}
|
|
3766
|
+
|
|
3722
3767
|
/* ── Command Palette (additions) ────────────────────────── */
|
|
3723
3768
|
|
|
3724
3769
|
.command-palette__group {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { cn } from "../../lib/utils.js";
|
|
4
|
+
const FilterPill = forwardRef(
|
|
5
|
+
({ active, color, dot, className, style, children, ...rest }, ref) => {
|
|
6
|
+
const pillStyle = color ? { ...style, "--filter-pill-color": color } : style;
|
|
7
|
+
return /* @__PURE__ */ jsxs(
|
|
8
|
+
"button",
|
|
9
|
+
{
|
|
10
|
+
ref,
|
|
11
|
+
type: "button",
|
|
12
|
+
className: cn(
|
|
13
|
+
"filter-pill",
|
|
14
|
+
active && "filter-pill--active",
|
|
15
|
+
className
|
|
16
|
+
),
|
|
17
|
+
style: pillStyle,
|
|
18
|
+
"aria-pressed": active,
|
|
19
|
+
...rest,
|
|
20
|
+
children: [
|
|
21
|
+
dot && /* @__PURE__ */ jsx("span", { className: "filter-pill__dot", "aria-hidden": "true" }),
|
|
22
|
+
children
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
FilterPill.displayName = "FilterPill";
|
|
29
|
+
export {
|
|
30
|
+
FilterPill
|
|
31
|
+
};
|
package/dist/index.js
CHANGED
|
@@ -21,6 +21,7 @@ import { EmptyState } from "./components/EmptyState/EmptyState.js";
|
|
|
21
21
|
import { FAB } from "./components/FAB/FAB.js";
|
|
22
22
|
import { FAQ, FAQItem } from "./components/FAQ/FAQ.js";
|
|
23
23
|
import { FeatureCard, FeatureGrid } from "./components/FeatureGrid/FeatureGrid.js";
|
|
24
|
+
import { FilterPill } from "./components/FilterPill/FilterPill.js";
|
|
24
25
|
import { FormField } from "./components/FormField/FormField.js";
|
|
25
26
|
import { Grid } from "./components/Grid/Grid.js";
|
|
26
27
|
import { Heading } from "./components/Heading/Heading.js";
|
|
@@ -97,6 +98,7 @@ export {
|
|
|
97
98
|
FAQItem,
|
|
98
99
|
FeatureCard,
|
|
99
100
|
FeatureGrid,
|
|
101
|
+
FilterPill,
|
|
100
102
|
FormField,
|
|
101
103
|
Grid,
|
|
102
104
|
Heading,
|
package/dist/lib/chartColors.js
CHANGED
|
@@ -4,7 +4,13 @@ const CHART_COLORS = [
|
|
|
4
4
|
"var(--chart-purple)",
|
|
5
5
|
"var(--chart-amber)",
|
|
6
6
|
"var(--chart-red)",
|
|
7
|
-
"var(--chart-cyan)"
|
|
7
|
+
"var(--chart-cyan)",
|
|
8
|
+
"var(--chart-lime)",
|
|
9
|
+
"var(--chart-pink)",
|
|
10
|
+
"var(--chart-orange)",
|
|
11
|
+
"var(--chart-teal)",
|
|
12
|
+
"var(--chart-yellow)",
|
|
13
|
+
"var(--chart-green)"
|
|
8
14
|
];
|
|
9
15
|
export {
|
|
10
16
|
CHART_COLORS
|
package/dist/tokens.js
CHANGED
|
@@ -42,7 +42,13 @@ const chart = {
|
|
|
42
42
|
purple: "var(--chart-purple)",
|
|
43
43
|
amber: "var(--chart-amber)",
|
|
44
44
|
red: "var(--chart-red)",
|
|
45
|
-
cyan: "var(--chart-cyan)"
|
|
45
|
+
cyan: "var(--chart-cyan)",
|
|
46
|
+
lime: "var(--chart-lime)",
|
|
47
|
+
pink: "var(--chart-pink)",
|
|
48
|
+
orange: "var(--chart-orange)",
|
|
49
|
+
teal: "var(--chart-teal)",
|
|
50
|
+
yellow: "var(--chart-yellow)",
|
|
51
|
+
green: "var(--chart-green)"
|
|
46
52
|
};
|
|
47
53
|
const space = {
|
|
48
54
|
0: "var(--space-0)",
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes } from "react";
|
|
2
|
+
export interface FilterPillProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
/** Whether the pill is in an active/selected state */
|
|
4
|
+
active?: boolean;
|
|
5
|
+
/** Dynamic accent color (CSS color value). Applied via --filter-pill-color custom property */
|
|
6
|
+
color?: string;
|
|
7
|
+
/** Show a colored dot indicator before the label */
|
|
8
|
+
dot?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const FilterPill: import("react").ForwardRefExoticComponent<FilterPillProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -6,6 +6,8 @@ export { Card, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } f
|
|
|
6
6
|
export type { CardProps, CardVariant, CardHeaderProps, CardTitleProps, CardDescriptionProps, CardBodyProps, CardFooterProps, } from "./Card";
|
|
7
7
|
export { Badge } from "./Badge";
|
|
8
8
|
export type { BadgeProps, BadgeVariant } from "./Badge";
|
|
9
|
+
export { FilterPill } from "./FilterPill";
|
|
10
|
+
export type { FilterPillProps } from "./FilterPill";
|
|
9
11
|
export { Input } from "./Input";
|
|
10
12
|
export type { InputProps } from "./Input";
|
|
11
13
|
export { Select } from "./Select";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** Shared chart color palette using CSS custom properties */
|
|
2
|
-
export declare const CHART_COLORS: readonly ["var(--chart-emerald)", "var(--chart-blue)", "var(--chart-purple)", "var(--chart-amber)", "var(--chart-red)", "var(--chart-cyan)"];
|
|
2
|
+
export declare const CHART_COLORS: readonly ["var(--chart-emerald)", "var(--chart-blue)", "var(--chart-purple)", "var(--chart-amber)", "var(--chart-red)", "var(--chart-cyan)", "var(--chart-lime)", "var(--chart-pink)", "var(--chart-orange)", "var(--chart-teal)", "var(--chart-yellow)", "var(--chart-green)"];
|
|
@@ -47,6 +47,12 @@ export declare const chart: {
|
|
|
47
47
|
readonly amber: "var(--chart-amber)";
|
|
48
48
|
readonly red: "var(--chart-red)";
|
|
49
49
|
readonly cyan: "var(--chart-cyan)";
|
|
50
|
+
readonly lime: "var(--chart-lime)";
|
|
51
|
+
readonly pink: "var(--chart-pink)";
|
|
52
|
+
readonly orange: "var(--chart-orange)";
|
|
53
|
+
readonly teal: "var(--chart-teal)";
|
|
54
|
+
readonly yellow: "var(--chart-yellow)";
|
|
55
|
+
readonly green: "var(--chart-green)";
|
|
50
56
|
};
|
|
51
57
|
export declare const space: {
|
|
52
58
|
readonly 0: "var(--space-0)";
|
package/package.json
CHANGED
package/tokens.css
CHANGED
|
@@ -174,6 +174,20 @@
|
|
|
174
174
|
--chart-yellow: var(--yellow-500);
|
|
175
175
|
--chart-green: var(--green-500);
|
|
176
176
|
|
|
177
|
+
/* Numbered aliases for programmatic access */
|
|
178
|
+
--chart-1: var(--chart-blue);
|
|
179
|
+
--chart-2: var(--chart-emerald);
|
|
180
|
+
--chart-3: var(--chart-amber);
|
|
181
|
+
--chart-4: var(--chart-pink);
|
|
182
|
+
--chart-5: var(--chart-cyan);
|
|
183
|
+
--chart-6: var(--chart-red);
|
|
184
|
+
--chart-7: var(--chart-lime);
|
|
185
|
+
--chart-8: var(--chart-purple);
|
|
186
|
+
--chart-9: var(--chart-orange);
|
|
187
|
+
--chart-10: var(--chart-teal);
|
|
188
|
+
--chart-11: var(--chart-yellow);
|
|
189
|
+
--chart-12: var(--chart-green);
|
|
190
|
+
|
|
177
191
|
/* ── Typography ────────────────────────────────────────── */
|
|
178
192
|
--font-sans: var(--font-montserrat, "Montserrat"), var(--font-noto-sans-jp, "Noto Sans JP"), -apple-system, BlinkMacSystemFont,
|
|
179
193
|
"Segoe UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo,
|
package/utilities.css
CHANGED
|
@@ -164,6 +164,36 @@
|
|
|
164
164
|
.tabular-nums { font-variant-numeric: tabular-nums; }
|
|
165
165
|
.font-mono { font-family: var(--font-mono); }
|
|
166
166
|
|
|
167
|
+
/* ── Grid Presets ────────────────────────────────────────── */
|
|
168
|
+
.grid--2-col {
|
|
169
|
+
display: grid;
|
|
170
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
171
|
+
gap: var(--space-4);
|
|
172
|
+
}
|
|
173
|
+
.grid--3-col {
|
|
174
|
+
display: grid;
|
|
175
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
176
|
+
gap: var(--space-4);
|
|
177
|
+
}
|
|
178
|
+
.grid--auto {
|
|
179
|
+
display: grid;
|
|
180
|
+
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
|
181
|
+
gap: var(--space-4);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
@media (max-width: 767px) {
|
|
185
|
+
.grid--2-col,
|
|
186
|
+
.grid--3-col {
|
|
187
|
+
grid-template-columns: 1fr;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* ── Text Helpers ────────────────────────────────────────── */
|
|
192
|
+
.text--secondary {
|
|
193
|
+
font-size: var(--font-size-xs);
|
|
194
|
+
color: var(--color-fg-secondary);
|
|
195
|
+
}
|
|
196
|
+
|
|
167
197
|
/* ── Background Colors ───────────────────────────────────── */
|
|
168
198
|
.bg-primary { background-color: var(--color-bg); }
|
|
169
199
|
.bg-secondary { background-color: var(--color-bg-secondary); }
|