@brycks/core-front 0.3.1 → 0.3.2
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/components/data/List/List.cjs +1 -1
- package/dist/components/data/List/List.cjs.map +1 -1
- package/dist/components/data/List/List.js +92 -88
- package/dist/components/data/List/List.js.map +1 -1
- package/dist/components/data/Table/Table.cjs +1 -1
- package/dist/components/data/Table/Table.cjs.map +1 -1
- package/dist/components/data/Table/Table.js +129 -125
- package/dist/components/data/Table/Table.js.map +1 -1
- package/dist/components/data/TreeView/TreeView.cjs +2 -0
- package/dist/components/data/TreeView/TreeView.cjs.map +1 -0
- package/dist/components/data/TreeView/TreeView.js +256 -0
- package/dist/components/data/TreeView/TreeView.js.map +1 -0
- package/dist/components/data/VirtualList/VirtualList.cjs +2 -0
- package/dist/components/data/VirtualList/VirtualList.cjs.map +1 -0
- package/dist/components/data/VirtualList/VirtualList.js +186 -0
- package/dist/components/data/VirtualList/VirtualList.js.map +1 -0
- package/dist/components/data.cjs +1 -1
- package/dist/components/data.js +21 -16
- package/dist/components/data.js.map +1 -1
- package/dist/components/feedback/Modal/Modal.cjs +1 -1
- package/dist/components/feedback/Modal/Modal.cjs.map +1 -1
- package/dist/components/feedback/Modal/Modal.js +81 -77
- package/dist/components/feedback/Modal/Modal.js.map +1 -1
- package/dist/components/form/Combobox/Combobox.cjs +7 -0
- package/dist/components/form/Combobox/Combobox.cjs.map +1 -0
- package/dist/components/form/Combobox/Combobox.js +338 -0
- package/dist/components/form/Combobox/Combobox.js.map +1 -0
- package/dist/components/form/DateRangePicker/DateRangePicker.cjs +2 -0
- package/dist/components/form/DateRangePicker/DateRangePicker.cjs.map +1 -0
- package/dist/components/form/DateRangePicker/DateRangePicker.js +372 -0
- package/dist/components/form/DateRangePicker/DateRangePicker.js.map +1 -0
- package/dist/components/form/MultiSelect/MultiSelect.cjs +2 -0
- package/dist/components/form/MultiSelect/MultiSelect.cjs.map +1 -0
- package/dist/components/form/MultiSelect/MultiSelect.js +393 -0
- package/dist/components/form/MultiSelect/MultiSelect.js.map +1 -0
- package/dist/components/form/Rating/Rating.cjs +2 -0
- package/dist/components/form/Rating/Rating.cjs.map +1 -0
- package/dist/components/form/Rating/Rating.js +163 -0
- package/dist/components/form/Rating/Rating.js.map +1 -0
- package/dist/components/form/Slider/Slider.cjs +1 -1
- package/dist/components/form/Slider/Slider.cjs.map +1 -1
- package/dist/components/form/Slider/Slider.js +120 -85
- package/dist/components/form/Slider/Slider.js.map +1 -1
- package/dist/components/form/TagInput/TagInput.cjs +2 -0
- package/dist/components/form/TagInput/TagInput.cjs.map +1 -0
- package/dist/components/form/TagInput/TagInput.js +286 -0
- package/dist/components/form/TagInput/TagInput.js.map +1 -0
- package/dist/components/form/TimePicker/TimePicker.cjs +2 -0
- package/dist/components/form/TimePicker/TimePicker.cjs.map +1 -0
- package/dist/components/form/TimePicker/TimePicker.js +328 -0
- package/dist/components/form/TimePicker/TimePicker.js.map +1 -0
- package/dist/components/form.cjs +1 -1
- package/dist/components/form.js +34 -22
- package/dist/components/form.js.map +1 -1
- package/dist/components/layout/Card/Card.cjs +1 -1
- package/dist/components/layout/Card/Card.cjs.map +1 -1
- package/dist/components/layout/Card/Card.js +62 -59
- package/dist/components/layout/Card/Card.js.map +1 -1
- package/dist/components/layout/Collapse/Collapse.cjs +2 -0
- package/dist/components/layout/Collapse/Collapse.cjs.map +1 -0
- package/dist/components/layout/Collapse/Collapse.js +140 -0
- package/dist/components/layout/Collapse/Collapse.js.map +1 -0
- package/dist/components/layout.cjs +1 -1
- package/dist/components/layout.js +27 -24
- package/dist/components/layout.js.map +1 -1
- package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs +1 -1
- package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs.map +1 -1
- package/dist/components/navigation/Breadcrumb/Breadcrumb.js +66 -62
- package/dist/components/navigation/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/navigation/ContextMenu/ContextMenu.cjs +2 -0
- package/dist/components/navigation/ContextMenu/ContextMenu.cjs.map +1 -0
- package/dist/components/navigation/ContextMenu/ContextMenu.js +227 -0
- package/dist/components/navigation/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/components/navigation/Dropdown/Dropdown.cjs +2 -2
- package/dist/components/navigation/Dropdown/Dropdown.cjs.map +1 -1
- package/dist/components/navigation/Dropdown/Dropdown.js +84 -80
- package/dist/components/navigation/Dropdown/Dropdown.js.map +1 -1
- package/dist/components/navigation/Menu/Menu.cjs +1 -1
- package/dist/components/navigation/Menu/Menu.cjs.map +1 -1
- package/dist/components/navigation/Menu/Menu.js +132 -94
- package/dist/components/navigation/Menu/Menu.js.map +1 -1
- package/dist/components/navigation/Pagination/Pagination.cjs +1 -1
- package/dist/components/navigation/Pagination/Pagination.cjs.map +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +111 -107
- package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
- package/dist/components/navigation/Stepper/Stepper.cjs +2 -0
- package/dist/components/navigation/Stepper/Stepper.cjs.map +1 -0
- package/dist/components/navigation/Stepper/Stepper.js +187 -0
- package/dist/components/navigation/Stepper/Stepper.js.map +1 -0
- package/dist/components/navigation.cjs +1 -1
- package/dist/components/navigation.js +27 -21
- package/dist/components/navigation.js.map +1 -1
- package/dist/components/utility/Badge/Badge.cjs +1 -1
- package/dist/components/utility/Badge/Badge.cjs.map +1 -1
- package/dist/components/utility/Badge/Badge.js +38 -35
- package/dist/components/utility/Badge/Badge.js.map +1 -1
- package/dist/data.d.ts +116 -0
- package/dist/form.d.ts +316 -0
- package/dist/hooks/useInteractionState.cjs +2 -0
- package/dist/hooks/useInteractionState.cjs.map +1 -0
- package/dist/hooks/useInteractionState.js +67 -0
- package/dist/hooks/useInteractionState.js.map +1 -0
- package/dist/hooks.cjs +1 -1
- package/dist/hooks.d.ts +87 -0
- package/dist/hooks.js +16 -14
- package/dist/hooks.js.map +1 -1
- package/dist/layout.d.ts +44 -0
- package/dist/navigation.d.ts +88 -0
- package/package.json +1 -1
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { jsx as i, jsxs as x } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as $, createContext as q, useContext as F } from "react";
|
|
3
|
+
import { cx as I } from "../../../utils/styles.js";
|
|
4
|
+
import { spacing as t } from "../../../design-system/tokens/spacing.js";
|
|
5
|
+
import { fontSizes as s } from "../../../design-system/tokens/typography.js";
|
|
6
|
+
import { durations as z, easings as C } from "../../../design-system/tokens/motion.js";
|
|
7
|
+
const L = q(null);
|
|
8
|
+
function G() {
|
|
9
|
+
const u = F(L);
|
|
10
|
+
if (!u)
|
|
11
|
+
throw new Error("Step components must be used within a Stepper");
|
|
12
|
+
return u;
|
|
13
|
+
}
|
|
14
|
+
const j = {
|
|
15
|
+
sm: { indicator: t[6], fontSize: s.sm, labelSize: s.xs, gap: t[2], lineWidth: 2 },
|
|
16
|
+
md: { indicator: t[8], fontSize: s.base, labelSize: s.sm, gap: t[3], lineWidth: 2 },
|
|
17
|
+
lg: { indicator: t[10], fontSize: s.md, labelSize: s.base, gap: t[4], lineWidth: 3 }
|
|
18
|
+
};
|
|
19
|
+
function J() {
|
|
20
|
+
return /* @__PURE__ */ i("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ i(
|
|
21
|
+
"path",
|
|
22
|
+
{
|
|
23
|
+
d: "M3.5 8l3 3 6-6",
|
|
24
|
+
stroke: "currentColor",
|
|
25
|
+
strokeWidth: "2",
|
|
26
|
+
strokeLinecap: "round",
|
|
27
|
+
strokeLinejoin: "round"
|
|
28
|
+
}
|
|
29
|
+
) });
|
|
30
|
+
}
|
|
31
|
+
const K = $(function({
|
|
32
|
+
currentStep: m,
|
|
33
|
+
onStepChange: h,
|
|
34
|
+
size: a = "md",
|
|
35
|
+
orientation: n = "horizontal",
|
|
36
|
+
clickable: c = !1,
|
|
37
|
+
className: l,
|
|
38
|
+
style: g,
|
|
39
|
+
children: d,
|
|
40
|
+
testId: y,
|
|
41
|
+
...v
|
|
42
|
+
}, b) {
|
|
43
|
+
const e = j[a], f = Array.isArray(d) ? d.length : 1, k = {
|
|
44
|
+
display: "flex",
|
|
45
|
+
flexDirection: n === "horizontal" ? "row" : "column",
|
|
46
|
+
gap: n === "horizontal" ? 0 : e.gap,
|
|
47
|
+
alignItems: n === "horizontal" ? "flex-start" : "stretch",
|
|
48
|
+
...g
|
|
49
|
+
};
|
|
50
|
+
return /* @__PURE__ */ i(
|
|
51
|
+
L.Provider,
|
|
52
|
+
{
|
|
53
|
+
value: {
|
|
54
|
+
size: a,
|
|
55
|
+
orientation: n,
|
|
56
|
+
currentStep: m,
|
|
57
|
+
totalSteps: f,
|
|
58
|
+
onStepClick: h,
|
|
59
|
+
clickable: c
|
|
60
|
+
},
|
|
61
|
+
children: /* @__PURE__ */ i(
|
|
62
|
+
"div",
|
|
63
|
+
{
|
|
64
|
+
ref: b,
|
|
65
|
+
role: "navigation",
|
|
66
|
+
"aria-label": "Progress",
|
|
67
|
+
className: I(
|
|
68
|
+
"brycks-stepper",
|
|
69
|
+
`brycks-stepper--${a}`,
|
|
70
|
+
`brycks-stepper--${n}`,
|
|
71
|
+
l
|
|
72
|
+
),
|
|
73
|
+
style: k,
|
|
74
|
+
"data-testid": y,
|
|
75
|
+
...v,
|
|
76
|
+
children: d
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
});
|
|
82
|
+
K.displayName = "Stepper";
|
|
83
|
+
const Q = $(function({
|
|
84
|
+
index: m,
|
|
85
|
+
title: h,
|
|
86
|
+
description: a,
|
|
87
|
+
icon: n,
|
|
88
|
+
disabled: c = !1,
|
|
89
|
+
hasError: l = !1,
|
|
90
|
+
className: g,
|
|
91
|
+
style: d,
|
|
92
|
+
...y
|
|
93
|
+
}, v) {
|
|
94
|
+
const { size: b, orientation: e, currentStep: f, totalSteps: k, onStepClick: w, clickable: D } = G(), o = j[b], p = m ?? 0, S = p === k - 1, r = p < f ? "completed" : p === f ? "current" : "upcoming", W = D && !c && r !== "current", N = () => {
|
|
95
|
+
W && w && w(p);
|
|
96
|
+
}, A = {
|
|
97
|
+
display: "flex",
|
|
98
|
+
flexDirection: e === "horizontal" ? "column" : "row",
|
|
99
|
+
alignItems: e === "horizontal" ? "center" : "flex-start",
|
|
100
|
+
gap: o.gap,
|
|
101
|
+
flex: e === "horizontal" && !S ? 1 : void 0,
|
|
102
|
+
cursor: W ? "pointer" : "default",
|
|
103
|
+
opacity: c ? 0.5 : 1,
|
|
104
|
+
...d
|
|
105
|
+
}, O = {
|
|
106
|
+
display: "flex",
|
|
107
|
+
alignItems: "center",
|
|
108
|
+
flexDirection: e === "horizontal" ? "row" : "column",
|
|
109
|
+
gap: 0,
|
|
110
|
+
flex: e === "horizontal" && !S ? 1 : void 0
|
|
111
|
+
}, R = () => l ? "var(--brycks-error-default)" : r === "completed" ? "var(--brycks-success-default)" : r === "current" ? "var(--brycks-primary-default)" : "var(--brycks-border-default)", B = {
|
|
112
|
+
display: "flex",
|
|
113
|
+
alignItems: "center",
|
|
114
|
+
justifyContent: "center",
|
|
115
|
+
width: o.indicator,
|
|
116
|
+
height: o.indicator,
|
|
117
|
+
borderRadius: "50%",
|
|
118
|
+
backgroundColor: r === "upcoming" ? "var(--brycks-background-default)" : R(),
|
|
119
|
+
border: r === "upcoming" ? `${o.lineWidth}px solid ${l ? "var(--brycks-error-default)" : "var(--brycks-border-default)"}` : "none",
|
|
120
|
+
color: r === "upcoming" ? l ? "var(--brycks-error-default)" : "var(--brycks-foreground-muted)" : "white",
|
|
121
|
+
fontSize: o.labelSize,
|
|
122
|
+
fontWeight: 600,
|
|
123
|
+
flexShrink: 0,
|
|
124
|
+
transition: `all ${z.normal}ms ${C.easeOut}`
|
|
125
|
+
}, P = {
|
|
126
|
+
flex: 1,
|
|
127
|
+
height: e === "horizontal" ? o.lineWidth : t[6],
|
|
128
|
+
width: e === "horizontal" ? void 0 : o.lineWidth,
|
|
129
|
+
backgroundColor: r === "completed" ? "var(--brycks-success-default)" : "var(--brycks-border-muted)",
|
|
130
|
+
marginLeft: e === "horizontal" ? t[2] : (o.indicator - o.lineWidth) / 2,
|
|
131
|
+
marginRight: e === "horizontal" ? t[2] : void 0,
|
|
132
|
+
marginTop: e === "vertical" ? t[1] : void 0,
|
|
133
|
+
marginBottom: e === "vertical" ? t[1] : void 0,
|
|
134
|
+
transition: `background-color ${z.normal}ms ${C.easeOut}`
|
|
135
|
+
}, H = {
|
|
136
|
+
display: "flex",
|
|
137
|
+
flexDirection: "column",
|
|
138
|
+
gap: t[0.5],
|
|
139
|
+
textAlign: e === "horizontal" ? "center" : "left",
|
|
140
|
+
minWidth: e === "horizontal" ? 80 : void 0,
|
|
141
|
+
paddingLeft: e === "vertical" ? t[3] : void 0,
|
|
142
|
+
flex: e === "vertical" ? 1 : void 0
|
|
143
|
+
}, M = {
|
|
144
|
+
fontSize: o.fontSize,
|
|
145
|
+
fontWeight: r === "current" ? 600 : 500,
|
|
146
|
+
color: c ? "var(--brycks-foreground-disabled)" : l ? "var(--brycks-error-default)" : r === "upcoming" ? "var(--brycks-foreground-muted)" : "var(--brycks-foreground-default)",
|
|
147
|
+
transition: `color ${z.fast}ms ${C.easeOut}`
|
|
148
|
+
}, T = {
|
|
149
|
+
fontSize: o.labelSize,
|
|
150
|
+
color: "var(--brycks-foreground-muted)",
|
|
151
|
+
lineHeight: 1.4
|
|
152
|
+
};
|
|
153
|
+
return /* @__PURE__ */ x(
|
|
154
|
+
"div",
|
|
155
|
+
{
|
|
156
|
+
ref: v,
|
|
157
|
+
role: "listitem",
|
|
158
|
+
"aria-current": r === "current" ? "step" : void 0,
|
|
159
|
+
className: I(
|
|
160
|
+
"brycks-step",
|
|
161
|
+
`brycks-step--${r}`,
|
|
162
|
+
l && "brycks-step--error",
|
|
163
|
+
c && "brycks-step--disabled",
|
|
164
|
+
g
|
|
165
|
+
),
|
|
166
|
+
style: A,
|
|
167
|
+
onClick: N,
|
|
168
|
+
...y,
|
|
169
|
+
children: [
|
|
170
|
+
/* @__PURE__ */ x("div", { style: O, children: [
|
|
171
|
+
/* @__PURE__ */ i("div", { style: B, children: n || (r === "completed" ? /* @__PURE__ */ i(J, {}) : /* @__PURE__ */ i("span", { children: p + 1 })) }),
|
|
172
|
+
!S && /* @__PURE__ */ i("div", { style: P, "aria-hidden": "true" })
|
|
173
|
+
] }),
|
|
174
|
+
/* @__PURE__ */ x("div", { style: H, children: [
|
|
175
|
+
/* @__PURE__ */ i("div", { style: M, children: h }),
|
|
176
|
+
a && /* @__PURE__ */ i("div", { style: T, children: a })
|
|
177
|
+
] })
|
|
178
|
+
]
|
|
179
|
+
}
|
|
180
|
+
);
|
|
181
|
+
});
|
|
182
|
+
Q.displayName = "Step";
|
|
183
|
+
export {
|
|
184
|
+
Q as Step,
|
|
185
|
+
K as Stepper
|
|
186
|
+
};
|
|
187
|
+
//# sourceMappingURL=Stepper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stepper.js","sources":["../../../../src/components/navigation/Stepper/Stepper.tsx"],"sourcesContent":["/**\n * Stepper Component\n *\n * A step indicator for multi-step processes like wizards and forms.\n * Shows progress and allows navigation between steps.\n *\n * @module components/navigation/Stepper\n */\n\nimport {\n forwardRef,\n createContext,\n useContext,\n type CSSProperties,\n type ReactNode,\n type HTMLAttributes,\n} from 'react'\nimport { cx } from '../../../utils/styles'\nimport { spacing, fontSizes, durations, easings } from '../../../design-system'\n\nexport type StepperSize = 'sm' | 'md' | 'lg'\nexport type StepperOrientation = 'horizontal' | 'vertical'\nexport type StepStatus = 'completed' | 'current' | 'upcoming'\n\ninterface StepperContextValue {\n size: StepperSize\n orientation: StepperOrientation\n currentStep: number\n totalSteps: number\n onStepClick?: (step: number) => void\n clickable: boolean\n}\n\nconst StepperContext = createContext<StepperContextValue | null>(null)\n\nfunction useStepperContext() {\n const context = useContext(StepperContext)\n if (!context) {\n throw new Error('Step components must be used within a Stepper')\n }\n return context\n}\n\nexport interface StepperProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Current active step (0-indexed) */\n currentStep: number\n /** Callback when step is clicked */\n onStepChange?: (step: number) => void\n /** Stepper size */\n size?: StepperSize\n /** Stepper orientation */\n orientation?: StepperOrientation\n /** Whether steps are clickable */\n clickable?: boolean\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst sizeConfig: Record<StepperSize, { indicator: number; fontSize: number; labelSize: number; gap: number; lineWidth: number }> = {\n sm: { indicator: spacing[6], fontSize: fontSizes.sm, labelSize: fontSizes.xs, gap: spacing[2], lineWidth: 2 },\n md: { indicator: spacing[8], fontSize: fontSizes.base, labelSize: fontSizes.sm, gap: spacing[3], lineWidth: 2 },\n lg: { indicator: spacing[10], fontSize: fontSizes.md, labelSize: fontSizes.base, gap: spacing[4], lineWidth: 3 },\n}\n\nfunction CheckIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M3.5 8l3 3 6-6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport const Stepper = forwardRef<HTMLDivElement, StepperProps>(function Stepper(\n {\n currentStep,\n onStepChange,\n size = 'md',\n orientation = 'horizontal',\n clickable = false,\n className,\n style,\n children,\n testId,\n ...props\n },\n ref\n) {\n const config = sizeConfig[size]\n const childCount = Array.isArray(children) ? children.length : 1\n\n const containerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: orientation === 'horizontal' ? 'row' : 'column',\n gap: orientation === 'horizontal' ? 0 : config.gap,\n alignItems: orientation === 'horizontal' ? 'flex-start' : 'stretch',\n ...style,\n }\n\n return (\n <StepperContext.Provider\n value={{\n size,\n orientation,\n currentStep,\n totalSteps: childCount,\n onStepClick: onStepChange,\n clickable,\n }}\n >\n <div\n ref={ref}\n role=\"navigation\"\n aria-label=\"Progress\"\n className={cx(\n 'brycks-stepper',\n `brycks-stepper--${size}`,\n `brycks-stepper--${orientation}`,\n className\n )}\n style={containerStyle}\n data-testid={testId}\n {...props}\n >\n {children}\n </div>\n </StepperContext.Provider>\n )\n})\n\nStepper.displayName = 'Stepper'\n\n// Step Component\nexport interface StepProps extends HTMLAttributes<HTMLDivElement> {\n /** Step index (auto-set by parent, or can be overridden) */\n index?: number\n /** Step title */\n title: string\n /** Step description */\n description?: string\n /** Custom icon (replaces number/check) */\n icon?: ReactNode\n /** Whether the step is disabled */\n disabled?: boolean\n /** Whether this step has an error */\n hasError?: boolean\n /** Custom class name */\n className?: string\n}\n\nexport const Step = forwardRef<HTMLDivElement, StepProps>(function Step(\n {\n index: propIndex,\n title,\n description,\n icon,\n disabled = false,\n hasError = false,\n className,\n style,\n ...props\n },\n ref\n) {\n const { size, orientation, currentStep, totalSteps, onStepClick, clickable } = useStepperContext()\n const config = sizeConfig[size]\n\n // Try to infer index from props or use 0\n const index = propIndex ?? 0\n const isLast = index === totalSteps - 1\n\n const status: StepStatus =\n index < currentStep ? 'completed' : index === currentStep ? 'current' : 'upcoming'\n\n const isClickable = clickable && !disabled && status !== 'current'\n\n const handleClick = () => {\n if (isClickable && onStepClick) {\n onStepClick(index)\n }\n }\n\n const stepStyle: CSSProperties = {\n display: 'flex',\n flexDirection: orientation === 'horizontal' ? 'column' : 'row',\n alignItems: orientation === 'horizontal' ? 'center' : 'flex-start',\n gap: config.gap,\n flex: orientation === 'horizontal' && !isLast ? 1 : undefined,\n cursor: isClickable ? 'pointer' : 'default',\n opacity: disabled ? 0.5 : 1,\n ...style,\n }\n\n const indicatorWrapperStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n flexDirection: orientation === 'horizontal' ? 'row' : 'column',\n gap: 0,\n flex: orientation === 'horizontal' && !isLast ? 1 : undefined,\n }\n\n const getIndicatorColor = (): string => {\n if (hasError) return 'var(--brycks-error-default)'\n if (status === 'completed') return 'var(--brycks-success-default)'\n if (status === 'current') return 'var(--brycks-primary-default)'\n return 'var(--brycks-border-default)'\n }\n\n const indicatorStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: config.indicator,\n height: config.indicator,\n borderRadius: '50%',\n backgroundColor:\n status === 'upcoming' ? 'var(--brycks-background-default)' : getIndicatorColor(),\n border:\n status === 'upcoming'\n ? `${config.lineWidth}px solid ${hasError ? 'var(--brycks-error-default)' : 'var(--brycks-border-default)'}`\n : 'none',\n color:\n status === 'upcoming'\n ? hasError\n ? 'var(--brycks-error-default)'\n : 'var(--brycks-foreground-muted)'\n : 'white',\n fontSize: config.labelSize,\n fontWeight: 600,\n flexShrink: 0,\n transition: `all ${durations.normal}ms ${easings.easeOut}`,\n }\n\n const lineStyle: CSSProperties = {\n flex: 1,\n height: orientation === 'horizontal' ? config.lineWidth : spacing[6],\n width: orientation === 'horizontal' ? undefined : config.lineWidth,\n backgroundColor:\n status === 'completed' ? 'var(--brycks-success-default)' : 'var(--brycks-border-muted)',\n marginLeft: orientation === 'horizontal' ? spacing[2] : (config.indicator - config.lineWidth) / 2,\n marginRight: orientation === 'horizontal' ? spacing[2] : undefined,\n marginTop: orientation === 'vertical' ? spacing[1] : undefined,\n marginBottom: orientation === 'vertical' ? spacing[1] : undefined,\n transition: `background-color ${durations.normal}ms ${easings.easeOut}`,\n }\n\n const contentStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n gap: spacing[0.5],\n textAlign: orientation === 'horizontal' ? 'center' : 'left',\n minWidth: orientation === 'horizontal' ? 80 : undefined,\n paddingLeft: orientation === 'vertical' ? spacing[3] : undefined,\n flex: orientation === 'vertical' ? 1 : undefined,\n }\n\n const titleStyle: CSSProperties = {\n fontSize: config.fontSize,\n fontWeight: status === 'current' ? 600 : 500,\n color:\n disabled\n ? 'var(--brycks-foreground-disabled)'\n : hasError\n ? 'var(--brycks-error-default)'\n : status === 'upcoming'\n ? 'var(--brycks-foreground-muted)'\n : 'var(--brycks-foreground-default)',\n transition: `color ${durations.fast}ms ${easings.easeOut}`,\n }\n\n const descriptionStyle: CSSProperties = {\n fontSize: config.labelSize,\n color: 'var(--brycks-foreground-muted)',\n lineHeight: 1.4,\n }\n\n return (\n <div\n ref={ref}\n role=\"listitem\"\n aria-current={status === 'current' ? 'step' : undefined}\n className={cx(\n 'brycks-step',\n `brycks-step--${status}`,\n hasError && 'brycks-step--error',\n disabled && 'brycks-step--disabled',\n className\n )}\n style={stepStyle}\n onClick={handleClick}\n {...props}\n >\n <div style={indicatorWrapperStyle}>\n <div style={indicatorStyle}>\n {icon ? (\n icon\n ) : status === 'completed' ? (\n <CheckIcon />\n ) : (\n <span>{index + 1}</span>\n )}\n </div>\n {!isLast && <div style={lineStyle} aria-hidden=\"true\" />}\n </div>\n <div style={contentStyle}>\n <div style={titleStyle}>{title}</div>\n {description && <div style={descriptionStyle}>{description}</div>}\n </div>\n </div>\n )\n})\n\nStep.displayName = 'Step'\n"],"names":["StepperContext","createContext","useStepperContext","context","useContext","sizeConfig","spacing","fontSizes","CheckIcon","jsx","Stepper","forwardRef","currentStep","onStepChange","size","orientation","clickable","className","style","children","testId","props","ref","config","childCount","containerStyle","cx","Step","propIndex","title","description","icon","disabled","hasError","totalSteps","onStepClick","index","isLast","status","isClickable","handleClick","stepStyle","indicatorWrapperStyle","getIndicatorColor","indicatorStyle","durations","easings","lineStyle","contentStyle","titleStyle","descriptionStyle","jsxs"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./navigation/Tabs/Tabs.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./navigation/Tabs/Tabs.cjs"),n=require("./navigation/Accordion/Accordion.cjs"),r=require("./navigation/Dropdown/Dropdown.cjs"),o=require("./navigation/Menu/Menu.cjs"),c=require("./navigation/Pagination/Pagination.cjs"),t=require("./navigation/Breadcrumb/Breadcrumb.cjs"),i=require("./navigation/Stepper/Stepper.cjs"),u=require("./navigation/ContextMenu/ContextMenu.cjs");exports.Tab=e.Tab;exports.TabList=e.TabList;exports.TabPanel=e.TabPanel;exports.TabPanels=e.TabPanels;exports.Tabs=e.Tabs;exports.Accordion=n.Accordion;exports.AccordionContent=n.AccordionContent;exports.AccordionItem=n.AccordionItem;exports.AccordionTrigger=n.AccordionTrigger;exports.Dropdown=r.Dropdown;exports.DropdownDivider=r.DropdownDivider;exports.DropdownItem=r.DropdownItem;exports.DropdownLabel=r.DropdownLabel;exports.Menu=o.Menu;exports.MenuDivider=o.MenuDivider;exports.MenuGroup=o.MenuGroup;exports.MenuItem=o.MenuItem;exports.Pagination=c.Pagination;exports.Breadcrumb=t.Breadcrumb;exports.BreadcrumbItem=t.BreadcrumbItem;exports.Step=i.Step;exports.Stepper=i.Stepper;exports.ContextMenu=u.ContextMenu;exports.useContextMenu=u.useContextMenu;
|
|
2
2
|
//# sourceMappingURL=navigation.cjs.map
|
|
@@ -1,29 +1,35 @@
|
|
|
1
|
-
import { Tab as e, TabList as n, TabPanel as t, TabPanels as
|
|
2
|
-
import { Accordion as
|
|
3
|
-
import { Dropdown as
|
|
4
|
-
import { Menu as
|
|
5
|
-
import { Pagination as
|
|
6
|
-
import { Breadcrumb as
|
|
1
|
+
import { Tab as e, TabList as n, TabPanel as t, TabPanels as p, Tabs as m } from "./navigation/Tabs/Tabs.js";
|
|
2
|
+
import { Accordion as d, AccordionContent as i, AccordionItem as c, AccordionTrigger as u } from "./navigation/Accordion/Accordion.js";
|
|
3
|
+
import { Dropdown as b, DropdownDivider as f, DropdownItem as D, DropdownLabel as M } from "./navigation/Dropdown/Dropdown.js";
|
|
4
|
+
import { Menu as s, MenuDivider as w, MenuGroup as A, MenuItem as I } from "./navigation/Menu/Menu.js";
|
|
5
|
+
import { Pagination as l } from "./navigation/Pagination/Pagination.js";
|
|
6
|
+
import { Breadcrumb as P, BreadcrumbItem as v } from "./navigation/Breadcrumb/Breadcrumb.js";
|
|
7
|
+
import { Step as L, Stepper as S } from "./navigation/Stepper/Stepper.js";
|
|
8
|
+
import { ContextMenu as h, useContextMenu as j } from "./navigation/ContextMenu/ContextMenu.js";
|
|
7
9
|
export {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
d as Accordion,
|
|
11
|
+
i as AccordionContent,
|
|
10
12
|
c as AccordionItem,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
u as AccordionTrigger,
|
|
14
|
+
P as Breadcrumb,
|
|
15
|
+
v as BreadcrumbItem,
|
|
16
|
+
h as ContextMenu,
|
|
17
|
+
b as Dropdown,
|
|
18
|
+
f as DropdownDivider,
|
|
16
19
|
D as DropdownItem,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
M as DropdownLabel,
|
|
21
|
+
s as Menu,
|
|
22
|
+
w as MenuDivider,
|
|
23
|
+
A as MenuGroup,
|
|
24
|
+
I as MenuItem,
|
|
25
|
+
l as Pagination,
|
|
26
|
+
L as Step,
|
|
27
|
+
S as Stepper,
|
|
23
28
|
e as Tab,
|
|
24
29
|
n as TabList,
|
|
25
30
|
t as TabPanel,
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
p as TabPanels,
|
|
32
|
+
m as Tabs,
|
|
33
|
+
j as useContextMenu
|
|
28
34
|
};
|
|
29
35
|
//# sourceMappingURL=navigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"navigation.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react/jsx-runtime"),p=require("react"),v=require("../../../utils/styles.cjs"),r=require("../../../design-system/tokens/spacing.cjs"),a=require("../../../design-system/primitives/sizing.cjs"),e=require("../../../design-system/tokens/typography.cjs"),m={sm:{fontSize:e.fontSizes.xs-1,padding:`${r.spacing[.5]}px ${a.componentPaddingY.sm}px`,height:r.spacing[4]+r.spacing[.5]},md:{fontSize:e.fontSizes.xs,padding:`${r.spacing[.5]+1}px ${a.componentPaddingX.xs}px`,height:r.spacing[5]+r.spacing[.5]},lg:{fontSize:e.fontSizes.sm,padding:`${r.spacing[1]}px ${a.componentPaddingY.lg}px`,height:r.spacing[6]+r.spacing[.5]}},C={neutral:{solid:{backgroundColor:"var(--brycks-foreground-default)",color:"var(--brycks-background-app)"},subtle:{backgroundColor:"var(--brycks-background-muted)",color:"var(--brycks-foreground-default)"},outline:{backgroundColor:"transparent",color:"var(--brycks-foreground-default)",borderColor:"var(--brycks-border-default)"}},primary:{solid:{backgroundColor:"var(--brycks-primary-default)",color:"var(--brycks-primary-foreground)"},subtle:{backgroundColor:"var(--brycks-primary-muted)",color:"var(--brycks-primary-hover)"},outline:{backgroundColor:"transparent",color:"var(--brycks-primary-default)",borderColor:"var(--brycks-primary-default)"}},accent:{solid:{backgroundColor:"var(--brycks-accent-default)",color:"var(--brycks-accent-foreground)"},subtle:{backgroundColor:"var(--brycks-accent-muted)",color:"var(--brycks-accent-hover)"},outline:{backgroundColor:"transparent",color:"var(--brycks-accent-default)",borderColor:"var(--brycks-accent-default)"}},success:{solid:{backgroundColor:"var(--brycks-success-default)",color:"var(--brycks-success-foreground)"},subtle:{backgroundColor:"var(--brycks-success-muted)",color:"var(--brycks-success-on-muted)"},outline:{backgroundColor:"transparent",color:"var(--brycks-success-default)",borderColor:"var(--brycks-success-default)"}},warning:{solid:{backgroundColor:"var(--brycks-warning-default)",color:"var(--brycks-warning-foreground)"},subtle:{backgroundColor:"var(--brycks-warning-muted)",color:"var(--brycks-warning-on-muted)"},outline:{backgroundColor:"transparent",color:"var(--brycks-warning-default)",borderColor:"var(--brycks-warning-default)"}},error:{solid:{backgroundColor:"var(--brycks-error-default)",color:"var(--brycks-error-foreground)"},subtle:{backgroundColor:"var(--brycks-error-muted)",color:"var(--brycks-error-on-muted)"},outline:{backgroundColor:"transparent",color:"var(--brycks-error-default)",borderColor:"var(--brycks-error-default)"}},info:{solid:{backgroundColor:"var(--brycks-info-default)",color:"var(--brycks-info-foreground)"},subtle:{backgroundColor:"var(--brycks-info-muted)",color:"var(--brycks-info-on-muted)"},outline:{backgroundColor:"transparent",color:"var(--brycks-info-default)",borderColor:"var(--brycks-info-default)"}}},s=p.forwardRef(function({variant:o="subtle",intent:c="neutral",size:n="md",className:t,style:l,testId:d,children:u,...b},i){const g=m[n],k=C[c][o],y={display:"inline-flex",alignItems:"center",justifyContent:"center",fontWeight:500,fontFamily:"var(--brycks-font-sans)",lineHeight:1,borderRadius:"var(--brycks-radius-full)",whiteSpace:"nowrap",border:o==="outline"?"1px solid":"none",...g,...k,...l};return f.jsx("span",{ref:i,className:v.cx("brycks-badge",`brycks-badge--${o}`,`brycks-badge--${c}`,`brycks-badge--${n}`,t),style:y,"data-testid":d,...b,children:u})});s.displayName="Badge";exports.Badge=s;
|
|
2
2
|
//# sourceMappingURL=Badge.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.cjs","sources":["../../../../src/components/utility/Badge/Badge.tsx"],"sourcesContent":["/**\r\n * Badge Component\r\n *\r\n * Small label for status, counts, or categorization.\r\n * Clean, minimal design with subtle color coding.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n type CSSProperties,\r\n type ReactNode,\r\n type HTMLAttributes,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport type BadgeVariant = 'solid' | 'subtle' | 'outline'\r\nexport type BadgeIntent = 'neutral' | 'primary' | 'accent' | 'success' | 'warning' | 'error' | 'info'\r\nexport type BadgeSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\r\n /** Visual variant */\r\n variant?: BadgeVariant\r\n /** Color intent */\r\n intent?: BadgeIntent\r\n /** Size */\r\n size?: BadgeSize\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n /** Badge content */\r\n children?: ReactNode\r\n}\r\n\r\nconst sizeStyles: Record<BadgeSize, CSSProperties> = {\r\n sm: { fontSize:
|
|
1
|
+
{"version":3,"file":"Badge.cjs","sources":["../../../../src/components/utility/Badge/Badge.tsx"],"sourcesContent":["/**\r\n * Badge Component\r\n *\r\n * Small label for status, counts, or categorization.\r\n * Clean, minimal design with subtle color coding.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n type CSSProperties,\r\n type ReactNode,\r\n type HTMLAttributes,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\nimport { spacing, fontSizes } from '../../../design-system'\r\nimport { componentPaddingX, componentPaddingY } from '../../../design-system/primitives'\r\n\r\nexport type BadgeVariant = 'solid' | 'subtle' | 'outline'\r\nexport type BadgeIntent = 'neutral' | 'primary' | 'accent' | 'success' | 'warning' | 'error' | 'info'\r\nexport type BadgeSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\r\n /** Visual variant */\r\n variant?: BadgeVariant\r\n /** Color intent */\r\n intent?: BadgeIntent\r\n /** Size */\r\n size?: BadgeSize\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n /** Badge content */\r\n children?: ReactNode\r\n}\r\n\r\nconst sizeStyles: Record<BadgeSize, CSSProperties> = {\r\n sm: { fontSize: fontSizes.xs - 1, padding: `${spacing[0.5]}px ${componentPaddingY.sm}px`, height: spacing[4] + spacing[0.5] },\r\n md: { fontSize: fontSizes.xs, padding: `${spacing[0.5] + 1}px ${componentPaddingX.xs}px`, height: spacing[5] + spacing[0.5] },\r\n lg: { fontSize: fontSizes.sm, padding: `${spacing[1]}px ${componentPaddingY.lg}px`, height: spacing[6] + spacing[0.5] },\r\n}\r\n\r\nconst intentColors: Record<BadgeIntent, Record<BadgeVariant, CSSProperties>> = {\r\n neutral: {\r\n solid: { backgroundColor: 'var(--brycks-foreground-default)', color: 'var(--brycks-background-app)' },\r\n subtle: { backgroundColor: 'var(--brycks-background-muted)', color: 'var(--brycks-foreground-default)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-foreground-default)', borderColor: 'var(--brycks-border-default)' },\r\n },\r\n primary: {\r\n solid: { backgroundColor: 'var(--brycks-primary-default)', color: 'var(--brycks-primary-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-primary-muted)', color: 'var(--brycks-primary-hover)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-primary-default)', borderColor: 'var(--brycks-primary-default)' },\r\n },\r\n accent: {\r\n solid: { backgroundColor: 'var(--brycks-accent-default)', color: 'var(--brycks-accent-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-accent-muted)', color: 'var(--brycks-accent-hover)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-accent-default)', borderColor: 'var(--brycks-accent-default)' },\r\n },\r\n success: {\r\n solid: { backgroundColor: 'var(--brycks-success-default)', color: 'var(--brycks-success-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-success-muted)', color: 'var(--brycks-success-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-success-default)', borderColor: 'var(--brycks-success-default)' },\r\n },\r\n warning: {\r\n solid: { backgroundColor: 'var(--brycks-warning-default)', color: 'var(--brycks-warning-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-warning-muted)', color: 'var(--brycks-warning-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-warning-default)', borderColor: 'var(--brycks-warning-default)' },\r\n },\r\n error: {\r\n solid: { backgroundColor: 'var(--brycks-error-default)', color: 'var(--brycks-error-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-error-muted)', color: 'var(--brycks-error-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-error-default)', borderColor: 'var(--brycks-error-default)' },\r\n },\r\n info: {\r\n solid: { backgroundColor: 'var(--brycks-info-default)', color: 'var(--brycks-info-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-info-muted)', color: 'var(--brycks-info-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-info-default)', borderColor: 'var(--brycks-info-default)' },\r\n },\r\n}\r\n\r\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\r\n {\r\n variant = 'subtle',\r\n intent = 'neutral',\r\n size = 'md',\r\n className,\r\n style,\r\n testId,\r\n children,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const sizeValue = sizeStyles[size]\r\n const colorValue = intentColors[intent][variant]\r\n\r\n const badgeStyle: CSSProperties = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontWeight: 500,\r\n fontFamily: 'var(--brycks-font-sans)',\r\n lineHeight: 1,\r\n borderRadius: 'var(--brycks-radius-full)',\r\n whiteSpace: 'nowrap',\r\n border: variant === 'outline' ? '1px solid' : 'none',\r\n ...sizeValue,\r\n ...colorValue,\r\n ...style,\r\n }\r\n\r\n return (\r\n <span\r\n ref={ref}\r\n className={cx(\r\n 'brycks-badge',\r\n `brycks-badge--${variant}`,\r\n `brycks-badge--${intent}`,\r\n `brycks-badge--${size}`,\r\n className\r\n )}\r\n style={badgeStyle}\r\n data-testid={testId}\r\n {...props}\r\n >\r\n {children}\r\n </span>\r\n )\r\n})\r\n\r\nBadge.displayName = 'Badge'\r\n"],"names":["sizeStyles","fontSizes","spacing","componentPaddingY","componentPaddingX","intentColors","Badge","forwardRef","variant","intent","size","className","style","testId","children","props","ref","sizeValue","colorValue","badgeStyle","jsx","cx"],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import { cx as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { jsx as g } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as f } from "react";
|
|
3
|
+
import { cx as v } from "../../../utils/styles.js";
|
|
4
|
+
import { spacing as r } from "../../../design-system/tokens/spacing.js";
|
|
5
|
+
import { componentPaddingY as n, componentPaddingX as m } from "../../../design-system/primitives/sizing.js";
|
|
6
|
+
import { fontSizes as a } from "../../../design-system/tokens/typography.js";
|
|
7
|
+
const p = {
|
|
8
|
+
sm: { fontSize: a.xs - 1, padding: `${r[0.5]}px ${n.sm}px`, height: r[4] + r[0.5] },
|
|
9
|
+
md: { fontSize: a.xs, padding: `${r[0.5] + 1}px ${m.xs}px`, height: r[5] + r[0.5] },
|
|
10
|
+
lg: { fontSize: a.sm, padding: `${r[1]}px ${n.lg}px`, height: r[6] + r[0.5] }
|
|
11
|
+
}, C = {
|
|
9
12
|
neutral: {
|
|
10
13
|
solid: { backgroundColor: "var(--brycks-foreground-default)", color: "var(--brycks-background-app)" },
|
|
11
14
|
subtle: { backgroundColor: "var(--brycks-background-muted)", color: "var(--brycks-foreground-default)" },
|
|
@@ -41,17 +44,17 @@ const g = {
|
|
|
41
44
|
subtle: { backgroundColor: "var(--brycks-info-muted)", color: "var(--brycks-info-on-muted)" },
|
|
42
45
|
outline: { backgroundColor: "transparent", color: "var(--brycks-info-default)", borderColor: "var(--brycks-info-default)" }
|
|
43
46
|
}
|
|
44
|
-
},
|
|
45
|
-
variant:
|
|
46
|
-
intent:
|
|
47
|
-
size:
|
|
48
|
-
className:
|
|
49
|
-
style:
|
|
50
|
-
testId:
|
|
51
|
-
children:
|
|
52
|
-
...
|
|
53
|
-
},
|
|
54
|
-
const
|
|
47
|
+
}, x = f(function({
|
|
48
|
+
variant: o = "subtle",
|
|
49
|
+
intent: e = "neutral",
|
|
50
|
+
size: c = "md",
|
|
51
|
+
className: s,
|
|
52
|
+
style: l,
|
|
53
|
+
testId: t,
|
|
54
|
+
children: d,
|
|
55
|
+
...u
|
|
56
|
+
}, b) {
|
|
57
|
+
const k = p[c], i = C[e][o], y = {
|
|
55
58
|
display: "inline-flex",
|
|
56
59
|
alignItems: "center",
|
|
57
60
|
justifyContent: "center",
|
|
@@ -60,31 +63,31 @@ const g = {
|
|
|
60
63
|
lineHeight: 1,
|
|
61
64
|
borderRadius: "var(--brycks-radius-full)",
|
|
62
65
|
whiteSpace: "nowrap",
|
|
63
|
-
border:
|
|
64
|
-
...
|
|
65
|
-
...
|
|
66
|
-
...
|
|
66
|
+
border: o === "outline" ? "1px solid" : "none",
|
|
67
|
+
...k,
|
|
68
|
+
...i,
|
|
69
|
+
...l
|
|
67
70
|
};
|
|
68
|
-
return /* @__PURE__ */
|
|
71
|
+
return /* @__PURE__ */ g(
|
|
69
72
|
"span",
|
|
70
73
|
{
|
|
71
|
-
ref:
|
|
72
|
-
className:
|
|
74
|
+
ref: b,
|
|
75
|
+
className: v(
|
|
73
76
|
"brycks-badge",
|
|
74
|
-
`brycks-badge--${r}`,
|
|
75
77
|
`brycks-badge--${o}`,
|
|
76
|
-
`brycks-badge--${
|
|
77
|
-
|
|
78
|
+
`brycks-badge--${e}`,
|
|
79
|
+
`brycks-badge--${c}`,
|
|
80
|
+
s
|
|
78
81
|
),
|
|
79
|
-
style:
|
|
80
|
-
"data-testid":
|
|
81
|
-
...
|
|
82
|
-
children:
|
|
82
|
+
style: y,
|
|
83
|
+
"data-testid": t,
|
|
84
|
+
...u,
|
|
85
|
+
children: d
|
|
83
86
|
}
|
|
84
87
|
);
|
|
85
88
|
});
|
|
86
|
-
|
|
89
|
+
x.displayName = "Badge";
|
|
87
90
|
export {
|
|
88
|
-
|
|
91
|
+
x as Badge
|
|
89
92
|
};
|
|
90
93
|
//# sourceMappingURL=Badge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sources":["../../../../src/components/utility/Badge/Badge.tsx"],"sourcesContent":["/**\r\n * Badge Component\r\n *\r\n * Small label for status, counts, or categorization.\r\n * Clean, minimal design with subtle color coding.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n type CSSProperties,\r\n type ReactNode,\r\n type HTMLAttributes,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport type BadgeVariant = 'solid' | 'subtle' | 'outline'\r\nexport type BadgeIntent = 'neutral' | 'primary' | 'accent' | 'success' | 'warning' | 'error' | 'info'\r\nexport type BadgeSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\r\n /** Visual variant */\r\n variant?: BadgeVariant\r\n /** Color intent */\r\n intent?: BadgeIntent\r\n /** Size */\r\n size?: BadgeSize\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n /** Badge content */\r\n children?: ReactNode\r\n}\r\n\r\nconst sizeStyles: Record<BadgeSize, CSSProperties> = {\r\n sm: { fontSize:
|
|
1
|
+
{"version":3,"file":"Badge.js","sources":["../../../../src/components/utility/Badge/Badge.tsx"],"sourcesContent":["/**\r\n * Badge Component\r\n *\r\n * Small label for status, counts, or categorization.\r\n * Clean, minimal design with subtle color coding.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n type CSSProperties,\r\n type ReactNode,\r\n type HTMLAttributes,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\nimport { spacing, fontSizes } from '../../../design-system'\r\nimport { componentPaddingX, componentPaddingY } from '../../../design-system/primitives'\r\n\r\nexport type BadgeVariant = 'solid' | 'subtle' | 'outline'\r\nexport type BadgeIntent = 'neutral' | 'primary' | 'accent' | 'success' | 'warning' | 'error' | 'info'\r\nexport type BadgeSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\r\n /** Visual variant */\r\n variant?: BadgeVariant\r\n /** Color intent */\r\n intent?: BadgeIntent\r\n /** Size */\r\n size?: BadgeSize\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n /** Badge content */\r\n children?: ReactNode\r\n}\r\n\r\nconst sizeStyles: Record<BadgeSize, CSSProperties> = {\r\n sm: { fontSize: fontSizes.xs - 1, padding: `${spacing[0.5]}px ${componentPaddingY.sm}px`, height: spacing[4] + spacing[0.5] },\r\n md: { fontSize: fontSizes.xs, padding: `${spacing[0.5] + 1}px ${componentPaddingX.xs}px`, height: spacing[5] + spacing[0.5] },\r\n lg: { fontSize: fontSizes.sm, padding: `${spacing[1]}px ${componentPaddingY.lg}px`, height: spacing[6] + spacing[0.5] },\r\n}\r\n\r\nconst intentColors: Record<BadgeIntent, Record<BadgeVariant, CSSProperties>> = {\r\n neutral: {\r\n solid: { backgroundColor: 'var(--brycks-foreground-default)', color: 'var(--brycks-background-app)' },\r\n subtle: { backgroundColor: 'var(--brycks-background-muted)', color: 'var(--brycks-foreground-default)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-foreground-default)', borderColor: 'var(--brycks-border-default)' },\r\n },\r\n primary: {\r\n solid: { backgroundColor: 'var(--brycks-primary-default)', color: 'var(--brycks-primary-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-primary-muted)', color: 'var(--brycks-primary-hover)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-primary-default)', borderColor: 'var(--brycks-primary-default)' },\r\n },\r\n accent: {\r\n solid: { backgroundColor: 'var(--brycks-accent-default)', color: 'var(--brycks-accent-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-accent-muted)', color: 'var(--brycks-accent-hover)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-accent-default)', borderColor: 'var(--brycks-accent-default)' },\r\n },\r\n success: {\r\n solid: { backgroundColor: 'var(--brycks-success-default)', color: 'var(--brycks-success-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-success-muted)', color: 'var(--brycks-success-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-success-default)', borderColor: 'var(--brycks-success-default)' },\r\n },\r\n warning: {\r\n solid: { backgroundColor: 'var(--brycks-warning-default)', color: 'var(--brycks-warning-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-warning-muted)', color: 'var(--brycks-warning-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-warning-default)', borderColor: 'var(--brycks-warning-default)' },\r\n },\r\n error: {\r\n solid: { backgroundColor: 'var(--brycks-error-default)', color: 'var(--brycks-error-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-error-muted)', color: 'var(--brycks-error-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-error-default)', borderColor: 'var(--brycks-error-default)' },\r\n },\r\n info: {\r\n solid: { backgroundColor: 'var(--brycks-info-default)', color: 'var(--brycks-info-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-info-muted)', color: 'var(--brycks-info-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-info-default)', borderColor: 'var(--brycks-info-default)' },\r\n },\r\n}\r\n\r\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\r\n {\r\n variant = 'subtle',\r\n intent = 'neutral',\r\n size = 'md',\r\n className,\r\n style,\r\n testId,\r\n children,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const sizeValue = sizeStyles[size]\r\n const colorValue = intentColors[intent][variant]\r\n\r\n const badgeStyle: CSSProperties = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontWeight: 500,\r\n fontFamily: 'var(--brycks-font-sans)',\r\n lineHeight: 1,\r\n borderRadius: 'var(--brycks-radius-full)',\r\n whiteSpace: 'nowrap',\r\n border: variant === 'outline' ? '1px solid' : 'none',\r\n ...sizeValue,\r\n ...colorValue,\r\n ...style,\r\n }\r\n\r\n return (\r\n <span\r\n ref={ref}\r\n className={cx(\r\n 'brycks-badge',\r\n `brycks-badge--${variant}`,\r\n `brycks-badge--${intent}`,\r\n `brycks-badge--${size}`,\r\n className\r\n )}\r\n style={badgeStyle}\r\n data-testid={testId}\r\n {...props}\r\n >\r\n {children}\r\n </span>\r\n )\r\n})\r\n\r\nBadge.displayName = 'Badge'\r\n"],"names":["sizeStyles","fontSizes","spacing","componentPaddingY","componentPaddingX","intentColors","Badge","forwardRef","variant","intent","size","className","style","testId","children","props","ref","sizeValue","colorValue","badgeStyle","jsx","cx"],"mappings":"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"}
|
package/dist/data.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
1
2
|
import { ForwardRefExoticComponent } from 'react';
|
|
2
3
|
import { HTMLAttributes } from 'react';
|
|
3
4
|
import { ReactNode } from 'react';
|
|
@@ -195,4 +196,119 @@ export declare type TableSize = 'sm' | 'md' | 'lg';
|
|
|
195
196
|
|
|
196
197
|
export declare type TableVariant = 'default' | 'striped' | 'bordered';
|
|
197
198
|
|
|
199
|
+
export declare interface TreeNode {
|
|
200
|
+
/** Unique identifier */
|
|
201
|
+
id: string;
|
|
202
|
+
/** Display label */
|
|
203
|
+
label: string;
|
|
204
|
+
/** Optional icon */
|
|
205
|
+
icon?: ReactNode;
|
|
206
|
+
/** Child nodes */
|
|
207
|
+
children?: TreeNode[];
|
|
208
|
+
/** Whether the node is disabled */
|
|
209
|
+
disabled?: boolean;
|
|
210
|
+
/** Additional data */
|
|
211
|
+
data?: unknown;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export declare const TreeView: ForwardRefExoticComponent<TreeViewProps & RefAttributes<HTMLUListElement>>;
|
|
215
|
+
|
|
216
|
+
export declare interface TreeViewProps {
|
|
217
|
+
/** Tree data */
|
|
218
|
+
data: TreeNode[];
|
|
219
|
+
/** Selected node IDs (controlled) */
|
|
220
|
+
selectedIds?: string[];
|
|
221
|
+
/** Default selected node IDs (uncontrolled) */
|
|
222
|
+
defaultSelectedIds?: string[];
|
|
223
|
+
/** Expanded node IDs (controlled) */
|
|
224
|
+
expandedIds?: string[];
|
|
225
|
+
/** Default expanded node IDs (uncontrolled) */
|
|
226
|
+
defaultExpandedIds?: string[];
|
|
227
|
+
/** Callback when selection changes */
|
|
228
|
+
onSelectionChange?: (selectedIds: string[]) => void;
|
|
229
|
+
/** Callback when expansion changes */
|
|
230
|
+
onExpansionChange?: (expandedIds: string[]) => void;
|
|
231
|
+
/** Callback when a node is clicked */
|
|
232
|
+
onNodeClick?: (node: TreeNode) => void;
|
|
233
|
+
/** Whether to allow multi-selection */
|
|
234
|
+
multiSelect?: boolean;
|
|
235
|
+
/** Component size */
|
|
236
|
+
size?: TreeViewSize;
|
|
237
|
+
/** Whether to show connecting lines */
|
|
238
|
+
showLines?: boolean;
|
|
239
|
+
/** Custom node renderer */
|
|
240
|
+
renderNode?: (node: TreeNode, isSelected: boolean, isExpanded: boolean) => ReactNode;
|
|
241
|
+
/** Label for accessibility */
|
|
242
|
+
'aria-label'?: string;
|
|
243
|
+
/** Custom class name */
|
|
244
|
+
className?: string;
|
|
245
|
+
/** Test ID */
|
|
246
|
+
testId?: string;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
export declare type TreeViewSize = 'sm' | 'md' | 'lg';
|
|
250
|
+
|
|
251
|
+
export declare const VariableHeightVirtualList: <T>(props: VariableHeightVirtualListProps<T> & {
|
|
252
|
+
ref?: React.ForwardedRef<HTMLDivElement>;
|
|
253
|
+
}) => React.ReactElement;
|
|
254
|
+
|
|
255
|
+
export declare interface VariableHeightVirtualListProps<T> {
|
|
256
|
+
/** Array of items to render */
|
|
257
|
+
items: T[];
|
|
258
|
+
/** Function to estimate item height (used for initial layout) */
|
|
259
|
+
estimateItemHeight: (index: number) => number;
|
|
260
|
+
/** Visible height of the container */
|
|
261
|
+
height: number;
|
|
262
|
+
/** Optional width of the container */
|
|
263
|
+
width?: number | string;
|
|
264
|
+
/** Number of extra items to render above/below viewport */
|
|
265
|
+
overscan?: number;
|
|
266
|
+
/** Render function for each item */
|
|
267
|
+
renderItem: (item: T, index: number, measureRef: (el: HTMLElement | null) => void) => ReactNode;
|
|
268
|
+
/** Custom class name */
|
|
269
|
+
className?: string;
|
|
270
|
+
/** Test ID */
|
|
271
|
+
testId?: string;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
export declare const VirtualList: <T>(props: VirtualListProps<T> & {
|
|
275
|
+
ref?: React.ForwardedRef<VirtualListHandle>;
|
|
276
|
+
}) => React.ReactElement;
|
|
277
|
+
|
|
278
|
+
export declare interface VirtualListHandle {
|
|
279
|
+
/** Scroll to a specific index */
|
|
280
|
+
scrollToIndex: (index: number, align?: 'start' | 'center' | 'end') => void;
|
|
281
|
+
/** Scroll to a specific offset */
|
|
282
|
+
scrollToOffset: (offset: number) => void;
|
|
283
|
+
/** Get current scroll position */
|
|
284
|
+
getScrollTop: () => number;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
export declare interface VirtualListProps<T> {
|
|
288
|
+
/** Array of items to render */
|
|
289
|
+
items: T[];
|
|
290
|
+
/** Height of each item in pixels */
|
|
291
|
+
itemHeight: number;
|
|
292
|
+
/** Visible height of the container */
|
|
293
|
+
height: number;
|
|
294
|
+
/** Optional width of the container */
|
|
295
|
+
width?: number | string;
|
|
296
|
+
/** Number of extra items to render above/below viewport for smoother scrolling */
|
|
297
|
+
overscan?: number;
|
|
298
|
+
/** Render function for each item */
|
|
299
|
+
renderItem: (item: T, index: number, style: CSSProperties) => ReactNode;
|
|
300
|
+
/** Callback when scroll position changes */
|
|
301
|
+
onScroll?: (scrollTop: number) => void;
|
|
302
|
+
/** Callback when reaching the end of the list */
|
|
303
|
+
onEndReached?: () => void;
|
|
304
|
+
/** Threshold in pixels before end to trigger onEndReached */
|
|
305
|
+
endReachedThreshold?: number;
|
|
306
|
+
/** Initial scroll position */
|
|
307
|
+
initialScrollTop?: number;
|
|
308
|
+
/** Custom class name */
|
|
309
|
+
className?: string;
|
|
310
|
+
/** Test ID */
|
|
311
|
+
testId?: string;
|
|
312
|
+
}
|
|
313
|
+
|
|
198
314
|
export { }
|