eidos-ui 3.6.3 → 3.7.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/README.md +1 -0
- package/dist/Chip.types-B6y3Wifa.d.cts +24 -0
- package/dist/Chip.types-COQfx2Ru.d.ts +24 -0
- package/dist/chip/index.d.cts +5 -23
- package/dist/chip/index.d.ts +5 -23
- package/dist/chunk-L7I5NEGI.js +82 -0
- package/dist/chunk-L7I5NEGI.js.map +1 -0
- package/dist/chunk-PCTHJZRO.cjs +82 -0
- package/dist/chunk-PCTHJZRO.cjs.map +1 -0
- package/dist/index.cjs +7 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +59 -20
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +7 -3
- package/dist/split-chip/index.cjs +11 -0
- package/dist/split-chip/index.cjs.map +1 -0
- package/dist/split-chip/index.d.cts +67 -0
- package/dist/split-chip/index.d.ts +67 -0
- package/dist/split-chip/index.js +11 -0
- package/dist/split-chip/index.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { I as IconType } from './renderIcon-C2lEMMzb.cjs';
|
|
2
|
+
import { C as ComponentSizeProps } from './sizes-DM6Rrrgq.cjs';
|
|
3
|
+
|
|
4
|
+
type ChipVariantProps = 'filled' | 'outlined' | 'text';
|
|
5
|
+
type ChipColorProps = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info';
|
|
6
|
+
interface BaseChipProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onClick'> {
|
|
7
|
+
variant?: ChipVariantProps;
|
|
8
|
+
color?: ChipColorProps;
|
|
9
|
+
size?: ComponentSizeProps;
|
|
10
|
+
fullWidth?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
tooltip?: string;
|
|
13
|
+
className?: string;
|
|
14
|
+
onClick?: () => void;
|
|
15
|
+
onRemove?: () => void;
|
|
16
|
+
}
|
|
17
|
+
interface TextChipProps extends BaseChipProps {
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
preIcon?: IconType;
|
|
20
|
+
posIcon?: IconType;
|
|
21
|
+
}
|
|
22
|
+
type ChipProps = TextChipProps;
|
|
23
|
+
|
|
24
|
+
export type { ChipColorProps as C, TextChipProps as T, ChipProps as a, ChipVariantProps as b };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { I as IconType } from './renderIcon-C2lEMMzb.js';
|
|
2
|
+
import { C as ComponentSizeProps } from './sizes-DM6Rrrgq.js';
|
|
3
|
+
|
|
4
|
+
type ChipVariantProps = 'filled' | 'outlined' | 'text';
|
|
5
|
+
type ChipColorProps = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info';
|
|
6
|
+
interface BaseChipProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onClick'> {
|
|
7
|
+
variant?: ChipVariantProps;
|
|
8
|
+
color?: ChipColorProps;
|
|
9
|
+
size?: ComponentSizeProps;
|
|
10
|
+
fullWidth?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
tooltip?: string;
|
|
13
|
+
className?: string;
|
|
14
|
+
onClick?: () => void;
|
|
15
|
+
onRemove?: () => void;
|
|
16
|
+
}
|
|
17
|
+
interface TextChipProps extends BaseChipProps {
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
preIcon?: IconType;
|
|
20
|
+
posIcon?: IconType;
|
|
21
|
+
}
|
|
22
|
+
type ChipProps = TextChipProps;
|
|
23
|
+
|
|
24
|
+
export type { ChipColorProps as C, TextChipProps as T, ChipProps as a, ChipVariantProps as b };
|
package/dist/chip/index.d.cts
CHANGED
|
@@ -1,27 +1,9 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
type ChipColorProps = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info';
|
|
7
|
-
interface BaseChipProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onClick'> {
|
|
8
|
-
variant?: ChipVariantProps;
|
|
9
|
-
color?: ChipColorProps;
|
|
10
|
-
size?: ComponentSizeProps;
|
|
11
|
-
fullWidth?: boolean;
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
tooltip?: string;
|
|
14
|
-
className?: string;
|
|
15
|
-
onClick?: () => void;
|
|
16
|
-
onRemove?: () => void;
|
|
17
|
-
}
|
|
18
|
-
interface TextChipProps extends BaseChipProps {
|
|
19
|
-
children: React.ReactNode;
|
|
20
|
-
preIcon?: IconType;
|
|
21
|
-
posIcon?: IconType;
|
|
22
|
-
}
|
|
23
|
-
type ChipProps = TextChipProps;
|
|
2
|
+
import { a as ChipProps } from '../Chip.types-B6y3Wifa.cjs';
|
|
3
|
+
export { C as ChipColorProps, b as ChipVariantProps, T as TextChipProps } from '../Chip.types-B6y3Wifa.cjs';
|
|
4
|
+
import '../renderIcon-C2lEMMzb.cjs';
|
|
5
|
+
import '../sizes-DM6Rrrgq.cjs';
|
|
24
6
|
|
|
25
7
|
declare const Chip: React__default.FC<ChipProps>;
|
|
26
8
|
|
|
27
|
-
export { Chip,
|
|
9
|
+
export { Chip, ChipProps };
|
package/dist/chip/index.d.ts
CHANGED
|
@@ -1,27 +1,9 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
type ChipColorProps = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info';
|
|
7
|
-
interface BaseChipProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onClick'> {
|
|
8
|
-
variant?: ChipVariantProps;
|
|
9
|
-
color?: ChipColorProps;
|
|
10
|
-
size?: ComponentSizeProps;
|
|
11
|
-
fullWidth?: boolean;
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
tooltip?: string;
|
|
14
|
-
className?: string;
|
|
15
|
-
onClick?: () => void;
|
|
16
|
-
onRemove?: () => void;
|
|
17
|
-
}
|
|
18
|
-
interface TextChipProps extends BaseChipProps {
|
|
19
|
-
children: React.ReactNode;
|
|
20
|
-
preIcon?: IconType;
|
|
21
|
-
posIcon?: IconType;
|
|
22
|
-
}
|
|
23
|
-
type ChipProps = TextChipProps;
|
|
2
|
+
import { a as ChipProps } from '../Chip.types-COQfx2Ru.js';
|
|
3
|
+
export { C as ChipColorProps, b as ChipVariantProps, T as TextChipProps } from '../Chip.types-COQfx2Ru.js';
|
|
4
|
+
import '../renderIcon-C2lEMMzb.js';
|
|
5
|
+
import '../sizes-DM6Rrrgq.js';
|
|
24
6
|
|
|
25
7
|
declare const Chip: React__default.FC<ChipProps>;
|
|
26
8
|
|
|
27
|
-
export { Chip,
|
|
9
|
+
export { Chip, ChipProps };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Chip
|
|
3
|
+
} from "./chunk-GWHZFX2H.js";
|
|
4
|
+
|
|
5
|
+
// src/components/SplitChip/SplitChip.utils.ts
|
|
6
|
+
var hasVisibleBorder = (segment) => segment.variant === "outlined" || segment.disabled;
|
|
7
|
+
var resolveSegmentEdges = (segments, showDividers) => {
|
|
8
|
+
const edges = segments.map(() => ({ joinedStart: false, joinedEnd: false, divided: false }));
|
|
9
|
+
for (let i = 0; i < segments.length - 1; i++) {
|
|
10
|
+
const a = hasVisibleBorder(segments[i]);
|
|
11
|
+
const b = hasVisibleBorder(segments[i + 1]);
|
|
12
|
+
const sameOutline = segments[i].disabled === segments[i + 1].disabled;
|
|
13
|
+
if (a && b) {
|
|
14
|
+
edges[i].joinedEnd = !showDividers && sameOutline;
|
|
15
|
+
edges[i + 1].joinedStart = true;
|
|
16
|
+
} else if (a) {
|
|
17
|
+
edges[i + 1].joinedStart = true;
|
|
18
|
+
} else if (b) {
|
|
19
|
+
edges[i].joinedEnd = true;
|
|
20
|
+
} else {
|
|
21
|
+
edges[i].joinedEnd = true;
|
|
22
|
+
edges[i + 1].joinedStart = !showDividers;
|
|
23
|
+
edges[i + 1].divided = showDividers;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return edges;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// src/components/SplitChip/SplitChip.component.tsx
|
|
30
|
+
import { jsx } from "react/jsx-runtime";
|
|
31
|
+
var SplitChip = ({
|
|
32
|
+
segments,
|
|
33
|
+
variant = "filled",
|
|
34
|
+
color = "primary",
|
|
35
|
+
size = "md",
|
|
36
|
+
disabled = false,
|
|
37
|
+
showDividers = false,
|
|
38
|
+
className = "",
|
|
39
|
+
...rest
|
|
40
|
+
}) => {
|
|
41
|
+
const classes = [
|
|
42
|
+
"eidos-split-chip",
|
|
43
|
+
`eidos-split-chip--${size}`,
|
|
44
|
+
showDividers && "eidos-split-chip--dividers",
|
|
45
|
+
disabled && "eidos-split-chip--disabled",
|
|
46
|
+
className
|
|
47
|
+
].filter(Boolean).join(" ");
|
|
48
|
+
const lastIndex = segments.length - 1;
|
|
49
|
+
const resolved = segments.map((segment) => ({
|
|
50
|
+
variant: segment.variant ?? variant,
|
|
51
|
+
disabled: disabled || !!segment.disabled
|
|
52
|
+
}));
|
|
53
|
+
const edges = resolveSegmentEdges(resolved, showDividers);
|
|
54
|
+
return /* @__PURE__ */ jsx("div", { className: classes, ...rest, children: segments.map((segment, index) => /* @__PURE__ */ jsx(
|
|
55
|
+
Chip,
|
|
56
|
+
{
|
|
57
|
+
variant: resolved[index].variant,
|
|
58
|
+
color: segment.color ?? color,
|
|
59
|
+
size,
|
|
60
|
+
disabled: resolved[index].disabled,
|
|
61
|
+
onClick: segment.onClick,
|
|
62
|
+
tooltip: segment.tooltip,
|
|
63
|
+
preIcon: segment.preIcon,
|
|
64
|
+
posIcon: segment.posIcon,
|
|
65
|
+
className: [
|
|
66
|
+
"eidos-split-chip__segment",
|
|
67
|
+
index === 0 && "eidos-split-chip__segment--first",
|
|
68
|
+
index === lastIndex && "eidos-split-chip__segment--last",
|
|
69
|
+
edges[index].joinedStart && "eidos-split-chip__segment--joined-start",
|
|
70
|
+
edges[index].joinedEnd && "eidos-split-chip__segment--joined-end",
|
|
71
|
+
edges[index].divided && "eidos-split-chip__segment--divided"
|
|
72
|
+
].filter(Boolean).join(" "),
|
|
73
|
+
children: segment.label
|
|
74
|
+
},
|
|
75
|
+
segment.id
|
|
76
|
+
)) });
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export {
|
|
80
|
+
SplitChip
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=chunk-L7I5NEGI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/SplitChip/SplitChip.utils.ts","../src/components/SplitChip/SplitChip.component.tsx"],"sourcesContent":["import type { ChipVariantProps } from '../Chip/Chip.types';\n\nexport interface SeamSegment {\n variant: ChipVariantProps;\n disabled: boolean;\n}\n\nexport interface SegmentEdges {\n /** Drop the leading (left) border. */\n joinedStart: boolean;\n /** Drop the trailing (right) border. */\n joinedEnd: boolean;\n /** Draw a divider as the leading border, in the segment's own colour. */\n divided: boolean;\n}\n\n/**\n * A segment \"owns\" a visible border when it is `outlined`, or when it is\n * disabled - the disabled Chip style paints a grey border on every variant.\n * `filled` and `text` borders are transparent.\n */\nconst hasVisibleBorder = (segment: SeamSegment) =>\n segment.variant === 'outlined' || segment.disabled;\n\n/**\n * Decides, per seam, which of the two neighbouring edges survives.\n *\n * Each seam is resolved from **both** sides at once. The first version decided\n * each edge from one side only (\"drop it if the neighbour is not `text`\"),\n * which broke two ways: an `outlined` segment beside a disabled one dropped\n * its edge while the disabled segment dropped its own too, leaving the seam\n * open; and with dividers, an `outlined` segment gave up its own border to a\n * divider drawn in the *neighbour's* colour.\n *\n * The rules, for a seam between A (left) and B (right):\n *\n * - Both have visible borders: if they are the same kind (both enabled\n * `outlined`, or both disabled), seamless by default - both edges drop, so\n * the run reads as one outline. With dividers, or when the kinds differ,\n * A's own edge is the seam and B's drops.\n * - Only one has a visible border: that edge is the seam; the other drops, so\n * there is never a double line and never an open side.\n * - Neither has one: both drop; with dividers, B draws one in its own colour.\n */\nexport const resolveSegmentEdges = (\n segments: SeamSegment[],\n showDividers: boolean,\n): SegmentEdges[] => {\n const edges = segments.map(() => ({ joinedStart: false, joinedEnd: false, divided: false }));\n\n for (let i = 0; i < segments.length - 1; i++) {\n const a = hasVisibleBorder(segments[i]);\n const b = hasVisibleBorder(segments[i + 1]);\n // Two borders only merge into one outline when they are the same kind:\n // both enabled `outlined`, or both disabled. An outlined segment beside a\n // disabled one would otherwise lose the seam against a near-white surface.\n const sameOutline = segments[i].disabled === segments[i + 1].disabled;\n\n if (a && b) {\n edges[i].joinedEnd = !showDividers && sameOutline;\n edges[i + 1].joinedStart = true;\n } else if (a) {\n edges[i + 1].joinedStart = true;\n } else if (b) {\n edges[i].joinedEnd = true;\n } else {\n edges[i].joinedEnd = true;\n edges[i + 1].joinedStart = !showDividers;\n edges[i + 1].divided = showDividers;\n }\n }\n\n return edges;\n};\n","import React from 'react';\nimport { Chip } from '../Chip/Chip.component';\nimport type { SplitChipProps } from './SplitChip.types';\nimport { resolveSegmentEdges } from './SplitChip.utils';\n\n/**\n * SplitChip - one chip split into independent segments, each with its own\n * label, variant, colour and optional click handler.\n *\n * Every segment is a real `Chip`, the same way `SplitButton` is built from\n * `Button`, so variants, sizes, icons, tooltips, disabled styling and the\n * \"hover only when clickable\" rule cannot drift between the two. This\n * component only adds the join: collapsed inner borders, radii on the outer\n * ends, and optional dividers.\n *\n * @example\n * ```tsx\n * <SplitChip\n * segments={[\n * { id: 'label', label: 'Status', variant: 'outlined' },\n * { id: 'value', label: 'Open', color: 'success', onClick: openFilter },\n * ]}\n * />\n * ```\n */\nexport const SplitChip: React.FC<SplitChipProps> = ({\n segments,\n variant = 'filled',\n color = 'primary',\n size = 'md',\n disabled = false,\n showDividers = false,\n className = '',\n ...rest\n}) => {\n const classes = [\n 'eidos-split-chip',\n `eidos-split-chip--${size}`,\n showDividers && 'eidos-split-chip--dividers',\n disabled && 'eidos-split-chip--disabled',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const lastIndex = segments.length - 1;\n const resolved = segments.map((segment) => ({\n variant: segment.variant ?? variant,\n disabled: disabled || !!segment.disabled,\n }));\n const edges = resolveSegmentEdges(resolved, showDividers);\n\n return (\n <div className={classes} {...rest}>\n {segments.map((segment, index) => (\n <Chip\n key={segment.id}\n variant={resolved[index].variant}\n color={segment.color ?? color}\n size={size}\n disabled={resolved[index].disabled}\n onClick={segment.onClick}\n tooltip={segment.tooltip}\n preIcon={segment.preIcon}\n posIcon={segment.posIcon}\n // Position comes from the index, not `:first-child`/`:last-child`:\n // a segment with a `tooltip` is wrapped in the Tooltip's trigger\n // `div`, so the chip is no longer a direct child of this container\n // and structural pseudo-classes would round the wrong corners.\n className={[\n 'eidos-split-chip__segment',\n index === 0 && 'eidos-split-chip__segment--first',\n index === lastIndex && 'eidos-split-chip__segment--last',\n edges[index].joinedStart && 'eidos-split-chip__segment--joined-start',\n edges[index].joinedEnd && 'eidos-split-chip__segment--joined-end',\n edges[index].divided && 'eidos-split-chip__segment--divided',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {segment.label}\n </Chip>\n ))}\n </div>\n );\n};\n"],"mappings":";;;;;AAqBA,IAAM,mBAAmB,CAAC,YACxB,QAAQ,YAAY,cAAc,QAAQ;AAsBrC,IAAM,sBAAsB,CACjC,UACA,iBACmB;AACnB,QAAM,QAAQ,SAAS,IAAI,OAAO,EAAE,aAAa,OAAO,WAAW,OAAO,SAAS,MAAM,EAAE;AAE3F,WAAS,IAAI,GAAG,IAAI,SAAS,SAAS,GAAG,KAAK;AAC5C,UAAM,IAAI,iBAAiB,SAAS,CAAC,CAAC;AACtC,UAAM,IAAI,iBAAiB,SAAS,IAAI,CAAC,CAAC;AAI1C,UAAM,cAAc,SAAS,CAAC,EAAE,aAAa,SAAS,IAAI,CAAC,EAAE;AAE7D,QAAI,KAAK,GAAG;AACV,YAAM,CAAC,EAAE,YAAY,CAAC,gBAAgB;AACtC,YAAM,IAAI,CAAC,EAAE,cAAc;AAAA,IAC7B,WAAW,GAAG;AACZ,YAAM,IAAI,CAAC,EAAE,cAAc;AAAA,IAC7B,WAAW,GAAG;AACZ,YAAM,CAAC,EAAE,YAAY;AAAA,IACvB,OAAO;AACL,YAAM,CAAC,EAAE,YAAY;AACrB,YAAM,IAAI,CAAC,EAAE,cAAc,CAAC;AAC5B,YAAM,IAAI,CAAC,EAAE,UAAU;AAAA,IACzB;AAAA,EACF;AAEA,SAAO;AACT;;;AClBQ;AA9BD,IAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,GAAG;AACL,MAAM;AACJ,QAAM,UAAU;AAAA,IACd;AAAA,IACA,qBAAqB,IAAI;AAAA,IACzB,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ;AAAA,EACF,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,QAAM,YAAY,SAAS,SAAS;AACpC,QAAM,WAAW,SAAS,IAAI,CAAC,aAAa;AAAA,IAC1C,SAAS,QAAQ,WAAW;AAAA,IAC5B,UAAU,YAAY,CAAC,CAAC,QAAQ;AAAA,EAClC,EAAE;AACF,QAAM,QAAQ,oBAAoB,UAAU,YAAY;AAExD,SACE,oBAAC,SAAI,WAAW,SAAU,GAAG,MAC1B,mBAAS,IAAI,CAAC,SAAS,UACtB;AAAA,IAAC;AAAA;AAAA,MAEC,SAAS,SAAS,KAAK,EAAE;AAAA,MACzB,OAAO,QAAQ,SAAS;AAAA,MACxB;AAAA,MACA,UAAU,SAAS,KAAK,EAAE;AAAA,MAC1B,SAAS,QAAQ;AAAA,MACjB,SAAS,QAAQ;AAAA,MACjB,SAAS,QAAQ;AAAA,MACjB,SAAS,QAAQ;AAAA,MAKjB,WAAW;AAAA,QACT;AAAA,QACA,UAAU,KAAK;AAAA,QACf,UAAU,aAAa;AAAA,QACvB,MAAM,KAAK,EAAE,eAAe;AAAA,QAC5B,MAAM,KAAK,EAAE,aAAa;AAAA,QAC1B,MAAM,KAAK,EAAE,WAAW;AAAA,MAC1B,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MAEV,kBAAQ;AAAA;AAAA,IAxBJ,QAAQ;AAAA,EAyBf,CACD,GACH;AAEJ;","names":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
|
+
|
|
3
|
+
var _chunkTTLFY76Jcjs = require('./chunk-TTLFY76J.cjs');
|
|
4
|
+
|
|
5
|
+
// src/components/SplitChip/SplitChip.utils.ts
|
|
6
|
+
var hasVisibleBorder = (segment) => segment.variant === "outlined" || segment.disabled;
|
|
7
|
+
var resolveSegmentEdges = (segments, showDividers) => {
|
|
8
|
+
const edges = segments.map(() => ({ joinedStart: false, joinedEnd: false, divided: false }));
|
|
9
|
+
for (let i = 0; i < segments.length - 1; i++) {
|
|
10
|
+
const a = hasVisibleBorder(segments[i]);
|
|
11
|
+
const b = hasVisibleBorder(segments[i + 1]);
|
|
12
|
+
const sameOutline = segments[i].disabled === segments[i + 1].disabled;
|
|
13
|
+
if (a && b) {
|
|
14
|
+
edges[i].joinedEnd = !showDividers && sameOutline;
|
|
15
|
+
edges[i + 1].joinedStart = true;
|
|
16
|
+
} else if (a) {
|
|
17
|
+
edges[i + 1].joinedStart = true;
|
|
18
|
+
} else if (b) {
|
|
19
|
+
edges[i].joinedEnd = true;
|
|
20
|
+
} else {
|
|
21
|
+
edges[i].joinedEnd = true;
|
|
22
|
+
edges[i + 1].joinedStart = !showDividers;
|
|
23
|
+
edges[i + 1].divided = showDividers;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return edges;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// src/components/SplitChip/SplitChip.component.tsx
|
|
30
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
31
|
+
var SplitChip = ({
|
|
32
|
+
segments,
|
|
33
|
+
variant = "filled",
|
|
34
|
+
color = "primary",
|
|
35
|
+
size = "md",
|
|
36
|
+
disabled = false,
|
|
37
|
+
showDividers = false,
|
|
38
|
+
className = "",
|
|
39
|
+
...rest
|
|
40
|
+
}) => {
|
|
41
|
+
const classes = [
|
|
42
|
+
"eidos-split-chip",
|
|
43
|
+
`eidos-split-chip--${size}`,
|
|
44
|
+
showDividers && "eidos-split-chip--dividers",
|
|
45
|
+
disabled && "eidos-split-chip--disabled",
|
|
46
|
+
className
|
|
47
|
+
].filter(Boolean).join(" ");
|
|
48
|
+
const lastIndex = segments.length - 1;
|
|
49
|
+
const resolved = segments.map((segment) => ({
|
|
50
|
+
variant: _nullishCoalesce(segment.variant, () => ( variant)),
|
|
51
|
+
disabled: disabled || !!segment.disabled
|
|
52
|
+
}));
|
|
53
|
+
const edges = resolveSegmentEdges(resolved, showDividers);
|
|
54
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: classes, ...rest, children: segments.map((segment, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
55
|
+
_chunkTTLFY76Jcjs.Chip,
|
|
56
|
+
{
|
|
57
|
+
variant: resolved[index].variant,
|
|
58
|
+
color: _nullishCoalesce(segment.color, () => ( color)),
|
|
59
|
+
size,
|
|
60
|
+
disabled: resolved[index].disabled,
|
|
61
|
+
onClick: segment.onClick,
|
|
62
|
+
tooltip: segment.tooltip,
|
|
63
|
+
preIcon: segment.preIcon,
|
|
64
|
+
posIcon: segment.posIcon,
|
|
65
|
+
className: [
|
|
66
|
+
"eidos-split-chip__segment",
|
|
67
|
+
index === 0 && "eidos-split-chip__segment--first",
|
|
68
|
+
index === lastIndex && "eidos-split-chip__segment--last",
|
|
69
|
+
edges[index].joinedStart && "eidos-split-chip__segment--joined-start",
|
|
70
|
+
edges[index].joinedEnd && "eidos-split-chip__segment--joined-end",
|
|
71
|
+
edges[index].divided && "eidos-split-chip__segment--divided"
|
|
72
|
+
].filter(Boolean).join(" "),
|
|
73
|
+
children: segment.label
|
|
74
|
+
},
|
|
75
|
+
segment.id
|
|
76
|
+
)) });
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
exports.SplitChip = SplitChip;
|
|
82
|
+
//# sourceMappingURL=chunk-PCTHJZRO.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/chunk-PCTHJZRO.cjs","../src/components/SplitChip/SplitChip.utils.ts","../src/components/SplitChip/SplitChip.component.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACiBA,IAAM,iBAAA,EAAmB,CAAC,OAAA,EAAA,GACxB,OAAA,CAAQ,QAAA,IAAY,WAAA,GAAc,OAAA,CAAQ,QAAA;AAsBrC,IAAM,oBAAA,EAAsB,CACjC,QAAA,EACA,YAAA,EAAA,GACmB;AACnB,EAAA,MAAM,MAAA,EAAQ,QAAA,CAAS,GAAA,CAAI,CAAA,EAAA,GAAA,CAAO,EAAE,WAAA,EAAa,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,OAAA,EAAS,MAAM,CAAA,CAAE,CAAA;AAE3F,EAAA,IAAA,CAAA,IAAS,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,QAAA,CAAS,OAAA,EAAS,CAAA,EAAG,CAAA,EAAA,EAAK;AAC5C,IAAA,MAAM,EAAA,EAAI,gBAAA,CAAiB,QAAA,CAAS,CAAC,CAAC,CAAA;AACtC,IAAA,MAAM,EAAA,EAAI,gBAAA,CAAiB,QAAA,CAAS,EAAA,EAAI,CAAC,CAAC,CAAA;AAI1C,IAAA,MAAM,YAAA,EAAc,QAAA,CAAS,CAAC,CAAA,CAAE,SAAA,IAAa,QAAA,CAAS,EAAA,EAAI,CAAC,CAAA,CAAE,QAAA;AAE7D,IAAA,GAAA,CAAI,EAAA,GAAK,CAAA,EAAG;AACV,MAAA,KAAA,CAAM,CAAC,CAAA,CAAE,UAAA,EAAY,CAAC,aAAA,GAAgB,WAAA;AACtC,MAAA,KAAA,CAAM,EAAA,EAAI,CAAC,CAAA,CAAE,YAAA,EAAc,IAAA;AAAA,IAC7B,EAAA,KAAA,GAAA,CAAW,CAAA,EAAG;AACZ,MAAA,KAAA,CAAM,EAAA,EAAI,CAAC,CAAA,CAAE,YAAA,EAAc,IAAA;AAAA,IAC7B,EAAA,KAAA,GAAA,CAAW,CAAA,EAAG;AACZ,MAAA,KAAA,CAAM,CAAC,CAAA,CAAE,UAAA,EAAY,IAAA;AAAA,IACvB,EAAA,KAAO;AACL,MAAA,KAAA,CAAM,CAAC,CAAA,CAAE,UAAA,EAAY,IAAA;AACrB,MAAA,KAAA,CAAM,EAAA,EAAI,CAAC,CAAA,CAAE,YAAA,EAAc,CAAC,YAAA;AAC5B,MAAA,KAAA,CAAM,EAAA,EAAI,CAAC,CAAA,CAAE,QAAA,EAAU,YAAA;AAAA,IACzB;AAAA,EACF;AAEA,EAAA,OAAO,KAAA;AACT,CAAA;AD9CA;AACA;AE2BQ,+CAAA;AA9BD,IAAM,UAAA,EAAsC,CAAC;AAAA,EAClD,QAAA;AAAA,EACA,QAAA,EAAU,QAAA;AAAA,EACV,MAAA,EAAQ,SAAA;AAAA,EACR,KAAA,EAAO,IAAA;AAAA,EACP,SAAA,EAAW,KAAA;AAAA,EACX,aAAA,EAAe,KAAA;AAAA,EACf,UAAA,EAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAAA,GAAM;AACJ,EAAA,MAAM,QAAA,EAAU;AAAA,IACd,kBAAA;AAAA,IACA,CAAA,kBAAA,EAAqB,IAAI,CAAA,CAAA;AACT,IAAA;AACJ,IAAA;AACZ,IAAA;AAGS,EAAA;AAEgB,EAAA;AACD,EAAA;AACP,IAAA;AACO,IAAA;AACxB,EAAA;AACY,EAAA;AAGX,EAAA;AAEI,IAAA;AAAA,IAAA;AAEwB,MAAA;AACC,MAAA;AACxB,MAAA;AACwB,MAAA;AACP,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AAKN,MAAA;AACT,QAAA;AACe,QAAA;AACL,QAAA;AACG,QAAA;AACA,QAAA;AACA,QAAA;AAGP,MAAA;AAEC,MAAA;AAAA,IAAA;AAxBI,IAAA;AA2BnB,EAAA;AAEJ;AFR8B;AACA;AACA;AACA","file":"/home/runner/work/eidos-ui/eidos-ui/dist/chunk-PCTHJZRO.cjs","sourcesContent":[null,"import type { ChipVariantProps } from '../Chip/Chip.types';\n\nexport interface SeamSegment {\n variant: ChipVariantProps;\n disabled: boolean;\n}\n\nexport interface SegmentEdges {\n /** Drop the leading (left) border. */\n joinedStart: boolean;\n /** Drop the trailing (right) border. */\n joinedEnd: boolean;\n /** Draw a divider as the leading border, in the segment's own colour. */\n divided: boolean;\n}\n\n/**\n * A segment \"owns\" a visible border when it is `outlined`, or when it is\n * disabled - the disabled Chip style paints a grey border on every variant.\n * `filled` and `text` borders are transparent.\n */\nconst hasVisibleBorder = (segment: SeamSegment) =>\n segment.variant === 'outlined' || segment.disabled;\n\n/**\n * Decides, per seam, which of the two neighbouring edges survives.\n *\n * Each seam is resolved from **both** sides at once. The first version decided\n * each edge from one side only (\"drop it if the neighbour is not `text`\"),\n * which broke two ways: an `outlined` segment beside a disabled one dropped\n * its edge while the disabled segment dropped its own too, leaving the seam\n * open; and with dividers, an `outlined` segment gave up its own border to a\n * divider drawn in the *neighbour's* colour.\n *\n * The rules, for a seam between A (left) and B (right):\n *\n * - Both have visible borders: if they are the same kind (both enabled\n * `outlined`, or both disabled), seamless by default - both edges drop, so\n * the run reads as one outline. With dividers, or when the kinds differ,\n * A's own edge is the seam and B's drops.\n * - Only one has a visible border: that edge is the seam; the other drops, so\n * there is never a double line and never an open side.\n * - Neither has one: both drop; with dividers, B draws one in its own colour.\n */\nexport const resolveSegmentEdges = (\n segments: SeamSegment[],\n showDividers: boolean,\n): SegmentEdges[] => {\n const edges = segments.map(() => ({ joinedStart: false, joinedEnd: false, divided: false }));\n\n for (let i = 0; i < segments.length - 1; i++) {\n const a = hasVisibleBorder(segments[i]);\n const b = hasVisibleBorder(segments[i + 1]);\n // Two borders only merge into one outline when they are the same kind:\n // both enabled `outlined`, or both disabled. An outlined segment beside a\n // disabled one would otherwise lose the seam against a near-white surface.\n const sameOutline = segments[i].disabled === segments[i + 1].disabled;\n\n if (a && b) {\n edges[i].joinedEnd = !showDividers && sameOutline;\n edges[i + 1].joinedStart = true;\n } else if (a) {\n edges[i + 1].joinedStart = true;\n } else if (b) {\n edges[i].joinedEnd = true;\n } else {\n edges[i].joinedEnd = true;\n edges[i + 1].joinedStart = !showDividers;\n edges[i + 1].divided = showDividers;\n }\n }\n\n return edges;\n};\n","import React from 'react';\nimport { Chip } from '../Chip/Chip.component';\nimport type { SplitChipProps } from './SplitChip.types';\nimport { resolveSegmentEdges } from './SplitChip.utils';\n\n/**\n * SplitChip - one chip split into independent segments, each with its own\n * label, variant, colour and optional click handler.\n *\n * Every segment is a real `Chip`, the same way `SplitButton` is built from\n * `Button`, so variants, sizes, icons, tooltips, disabled styling and the\n * \"hover only when clickable\" rule cannot drift between the two. This\n * component only adds the join: collapsed inner borders, radii on the outer\n * ends, and optional dividers.\n *\n * @example\n * ```tsx\n * <SplitChip\n * segments={[\n * { id: 'label', label: 'Status', variant: 'outlined' },\n * { id: 'value', label: 'Open', color: 'success', onClick: openFilter },\n * ]}\n * />\n * ```\n */\nexport const SplitChip: React.FC<SplitChipProps> = ({\n segments,\n variant = 'filled',\n color = 'primary',\n size = 'md',\n disabled = false,\n showDividers = false,\n className = '',\n ...rest\n}) => {\n const classes = [\n 'eidos-split-chip',\n `eidos-split-chip--${size}`,\n showDividers && 'eidos-split-chip--dividers',\n disabled && 'eidos-split-chip--disabled',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const lastIndex = segments.length - 1;\n const resolved = segments.map((segment) => ({\n variant: segment.variant ?? variant,\n disabled: disabled || !!segment.disabled,\n }));\n const edges = resolveSegmentEdges(resolved, showDividers);\n\n return (\n <div className={classes} {...rest}>\n {segments.map((segment, index) => (\n <Chip\n key={segment.id}\n variant={resolved[index].variant}\n color={segment.color ?? color}\n size={size}\n disabled={resolved[index].disabled}\n onClick={segment.onClick}\n tooltip={segment.tooltip}\n preIcon={segment.preIcon}\n posIcon={segment.posIcon}\n // Position comes from the index, not `:first-child`/`:last-child`:\n // a segment with a `tooltip` is wrapped in the Tooltip's trigger\n // `div`, so the chip is no longer a direct child of this container\n // and structural pseudo-classes would round the wrong corners.\n className={[\n 'eidos-split-chip__segment',\n index === 0 && 'eidos-split-chip__segment--first',\n index === lastIndex && 'eidos-split-chip__segment--last',\n edges[index].joinedStart && 'eidos-split-chip__segment--joined-start',\n edges[index].joinedEnd && 'eidos-split-chip__segment--joined-end',\n edges[index].divided && 'eidos-split-chip__segment--divided',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {segment.label}\n </Chip>\n ))}\n </div>\n );\n};\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -6,6 +6,9 @@ var _chunkXKQMEVODcjs = require('./chunk-XKQMEVOD.cjs');
|
|
|
6
6
|
var _chunkRUDXHT76cjs = require('./chunk-RUDXHT76.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
var _chunkIXZMKIV5cjs = require('./chunk-IXZMKIV5.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
9
12
|
var _chunk3ZRFOKDMcjs = require('./chunk-3ZRFOKDM.cjs');
|
|
10
13
|
|
|
11
14
|
|
|
@@ -47,10 +50,10 @@ var _chunkOZZHOEN5cjs = require('./chunk-OZZHOEN5.cjs');
|
|
|
47
50
|
var _chunkXERBOFYZcjs = require('./chunk-XERBOFYZ.cjs');
|
|
48
51
|
|
|
49
52
|
|
|
50
|
-
var
|
|
53
|
+
var _chunkPCTHJZROcjs = require('./chunk-PCTHJZRO.cjs');
|
|
51
54
|
|
|
52
55
|
|
|
53
|
-
var
|
|
56
|
+
var _chunkHFZ5FKRGcjs = require('./chunk-HFZ5FKRG.cjs');
|
|
54
57
|
|
|
55
58
|
|
|
56
59
|
var _chunkVHO6JPRRcjs = require('./chunk-VHO6JPRR.cjs');
|
|
@@ -301,5 +304,6 @@ require('./chunk-DZUJEN5N.cjs');
|
|
|
301
304
|
|
|
302
305
|
|
|
303
306
|
|
|
304
|
-
|
|
307
|
+
|
|
308
|
+
exports.Accordion = _chunkEAJGSXEWcjs.Accordion; exports.AccordionItem = _chunkEAJGSXEWcjs.AccordionItem; exports.Alert = _chunk3RWZC6OWcjs.Alert; exports.Avatar = _chunkQ3GNKF74cjs.Avatar; exports.AvatarGroup = _chunkQ3GNKF74cjs.AvatarGroup; exports.Badge = _chunk3ETWFS2Ncjs.Badge; exports.Breadcrumb = _chunk5O73AALPcjs.Breadcrumb; exports.Button = _chunkDA375AI6cjs.Button; exports.ButtonGroup = _chunk2ROKOO22cjs.ButtonGroup; exports.Calendar = _chunk6JHVXWDVcjs.Calendar; exports.Card = _chunkV5RS3JZNcjs.Card; exports.Chat = _chunkO2BECFXJcjs.Chat; exports.Checkbox = _chunkYJNQLH2Lcjs.Checkbox; exports.Chip = _chunkTTLFY76Jcjs.Chip; exports.ColorPicker = _chunkKBQD4JLKcjs.ColorPicker; exports.Combobox = _chunk4AO5RKV5cjs.Combobox; exports.CommandPalette = _chunk2T7ZMMH5cjs.CommandPalette; exports.CommentThread = _chunkO2BECFXJcjs.CommentThread; exports.ContextMenu = _chunkHNGFRRVZcjs.ContextMenu; exports.DataGrid = _chunk66UQTF57cjs.DataGrid; exports.DatePicker = _chunk6JHVXWDVcjs.DatePicker; exports.Divider = _chunk366R4GKRcjs.Divider; exports.Drawer = _chunkDU5JKTHKcjs.Drawer; exports.Dropdown = _chunkKIZVY57Hcjs.Dropdown; exports.DropdownProvider = _chunkKIZVY57Hcjs.DropdownProvider; exports.EmptyState = _chunkKV3V2CPHcjs.EmptyState; exports.FONT_ACCEPT = _chunkRJVHR45Icjs.FONT_ACCEPT; exports.FileUpload = _chunkXRVRGRC3cjs.FileUpload; exports.Footer = _chunkPTBBY4ZXcjs.Footer; exports.Header = _chunk3KBBJZHKcjs.Header; exports.IconButton = _chunkDA375AI6cjs.IconButton; exports.IdentityHeader = _chunk3KBBJZHKcjs.IdentityHeader; exports.InlineEdit = _chunkI6M6CVI2cjs.InlineEdit; exports.Input = _chunk7VJCGKVPcjs.Input; exports.Kbd = _chunkKVIL4EP4cjs.Kbd; exports.Menu = _chunkJ76JHN7Jcjs.Menu; exports.MenuPanel = _chunkJ76JHN7Jcjs.MenuPanel; exports.MessageComposer = _chunkO2BECFXJcjs.MessageComposer; exports.Modal = _chunk4JSTBA4Fcjs.Modal; exports.Navigation = _chunkV4BZWBZTcjs.Navigation; exports.NumberInput = _chunkTC5IC6OPcjs.NumberInput; exports.OTPInput = _chunkVHO6JPRRcjs.OTPInput; exports.PageLayout = _chunkHEXAY6DEcjs.PageLayout; exports.Pagination = _chunkKREHT4AQcjs.Pagination; exports.Pill = _chunkEQ6BNPTLcjs.Pill; exports.Popover = _chunkVQGLVBPLcjs.Popover; exports.Progress = _chunkV2S6XWIQcjs.Progress; exports.Radio = _chunkKPMIIGHHcjs.Radio; exports.RadioGroup = _chunkKPMIIGHHcjs.RadioGroup; exports.SegmentedControl = _chunkJPYJQ4TFcjs.SegmentedControl; exports.Select = _chunkXZLSHEHEcjs.Select; exports.Skeleton = _chunkIGFR5TEScjs.Skeleton; exports.Slider = _chunkOZZHOEN5cjs.Slider; exports.SnackbarContainer = _chunkXERBOFYZcjs.SnackbarContainer; exports.SnackbarProvider = _chunkXERBOFYZcjs.SnackbarProvider; exports.Spinner = _chunkTROYIUDHcjs.Spinner; exports.SplitButton = _chunkLQXFXXMJcjs.SplitButton; exports.SplitChip = _chunkPCTHJZROcjs.SplitChip; exports.Stepper = _chunkHFZ5FKRGcjs.Stepper; exports.Switch = _chunkIXZMKIV5cjs.Switch; exports.Tab = _chunkNOQF7UQ5cjs.Tab; exports.TabPanel = _chunkNOQF7UQ5cjs.TabPanel; exports.Table = _chunk3ZRFOKDMcjs.Table; exports.TableFiltersDropdown = _chunkPMSENLOAcjs.TableFiltersDropdown; exports.Tabs = _chunkNOQF7UQ5cjs.Tabs; exports.TagInput = _chunkZMRINZIOcjs.TagInput; exports.Textarea = _chunk7BFODYNLcjs.Textarea; exports.ThemeEditor = _chunk36JFXFM2cjs.ThemeEditor; exports.ThemeProvider = _chunkRJVHR45Icjs.ThemeProvider; exports.TimeInput = _chunk6JHVXWDVcjs.TimeInput; exports.Timeline = _chunkZMDZGL5Acjs.Timeline; exports.Toolbar = _chunkJCKGAAPZcjs.Toolbar; exports.Tooltip = _chunkBEOECPVJcjs.Tooltip; exports.TreeView = _chunkXKQMEVODcjs.TreeView; exports.VirtualList = _chunkRUDXHT76cjs.VirtualList; exports.defaultTheme = _chunkRJVHR45Icjs.defaultTheme; exports.familyNameFromFile = _chunkRJVHR45Icjs.familyNameFromFile; exports.isFontAvailable = _chunkRJVHR45Icjs.isFontAvailable; exports.isFontStackAvailable = _chunkRJVHR45Icjs.isFontStackAvailable; exports.registerFontFace = _chunkRJVHR45Icjs.registerFontFace; exports.registerFontFile = _chunkRJVHR45Icjs.registerFontFile; exports.renderIcon = _chunk35LGEPLPcjs.renderIcon; exports.toFontStack = _chunkRJVHR45Icjs.toFontStack; exports.useDropdownContext = _chunkKIZVY57Hcjs.useDropdownContext; exports.useSnackbar = _chunkXERBOFYZcjs.useSnackbar; exports.useSnackbarContext = _chunkXERBOFYZcjs.useSnackbarContext; exports.useTheme = _chunkRJVHR45Icjs.useTheme;
|
|
305
309
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,kwIAAC","file":"/home/runner/work/eidos-ui/eidos-ui/dist/index.cjs"}
|
package/dist/index.css
CHANGED
|
@@ -1582,49 +1582,49 @@ svg.lucide {
|
|
|
1582
1582
|
background-color: var(--primary-color);
|
|
1583
1583
|
color: var(--primary-contrast);
|
|
1584
1584
|
}
|
|
1585
|
-
.eidos-chip--filled:hover:not(.eidos-chip--disabled) {
|
|
1585
|
+
.eidos-chip--filled.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1586
1586
|
background-color: var(--primary-dark);
|
|
1587
1587
|
}
|
|
1588
1588
|
.eidos-chip--filled.eidos-chip--primary {
|
|
1589
1589
|
background-color: var(--primary-color);
|
|
1590
1590
|
color: var(--primary-contrast);
|
|
1591
1591
|
}
|
|
1592
|
-
.eidos-chip--filled.eidos-chip--primary:hover:not(.eidos-chip--disabled) {
|
|
1592
|
+
.eidos-chip--filled.eidos-chip--primary.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1593
1593
|
background-color: var(--primary-dark);
|
|
1594
1594
|
}
|
|
1595
1595
|
.eidos-chip--filled.eidos-chip--secondary {
|
|
1596
1596
|
background-color: var(--secondary-color);
|
|
1597
1597
|
color: var(--secondary-contrast);
|
|
1598
1598
|
}
|
|
1599
|
-
.eidos-chip--filled.eidos-chip--secondary:hover:not(.eidos-chip--disabled) {
|
|
1599
|
+
.eidos-chip--filled.eidos-chip--secondary.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1600
1600
|
background-color: var(--secondary-dark);
|
|
1601
1601
|
}
|
|
1602
1602
|
.eidos-chip--filled.eidos-chip--success {
|
|
1603
1603
|
background-color: var(--success-color);
|
|
1604
1604
|
color: var(--success-contrast);
|
|
1605
1605
|
}
|
|
1606
|
-
.eidos-chip--filled.eidos-chip--success:hover:not(.eidos-chip--disabled) {
|
|
1606
|
+
.eidos-chip--filled.eidos-chip--success.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1607
1607
|
background-color: var(--success-dark);
|
|
1608
1608
|
}
|
|
1609
1609
|
.eidos-chip--filled.eidos-chip--danger {
|
|
1610
1610
|
background-color: var(--danger-color);
|
|
1611
1611
|
color: var(--danger-contrast);
|
|
1612
1612
|
}
|
|
1613
|
-
.eidos-chip--filled.eidos-chip--danger:hover:not(.eidos-chip--disabled) {
|
|
1613
|
+
.eidos-chip--filled.eidos-chip--danger.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1614
1614
|
background-color: var(--danger-dark);
|
|
1615
1615
|
}
|
|
1616
1616
|
.eidos-chip--filled.eidos-chip--warning {
|
|
1617
1617
|
background-color: var(--warning-color);
|
|
1618
1618
|
color: var(--warning-contrast);
|
|
1619
1619
|
}
|
|
1620
|
-
.eidos-chip--filled.eidos-chip--warning:hover:not(.eidos-chip--disabled) {
|
|
1620
|
+
.eidos-chip--filled.eidos-chip--warning.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1621
1621
|
background-color: var(--warning-dark);
|
|
1622
1622
|
}
|
|
1623
1623
|
.eidos-chip--filled.eidos-chip--info {
|
|
1624
1624
|
background-color: var(--info-color);
|
|
1625
1625
|
color: var(--info-contrast);
|
|
1626
1626
|
}
|
|
1627
|
-
.eidos-chip--filled.eidos-chip--info:hover:not(.eidos-chip--disabled) {
|
|
1627
|
+
.eidos-chip--filled.eidos-chip--info.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1628
1628
|
background-color: var(--info-dark);
|
|
1629
1629
|
}
|
|
1630
1630
|
.eidos-chip--outlined {
|
|
@@ -1632,49 +1632,49 @@ svg.lucide {
|
|
|
1632
1632
|
border: 1px solid var(--primary-color);
|
|
1633
1633
|
color: var(--primary-color);
|
|
1634
1634
|
}
|
|
1635
|
-
.eidos-chip--outlined:hover:not(.eidos-chip--disabled) {
|
|
1635
|
+
.eidos-chip--outlined.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1636
1636
|
background-color: rgba(var(--primary-rgb), 0.05);
|
|
1637
1637
|
}
|
|
1638
1638
|
.eidos-chip--outlined.eidos-chip--primary {
|
|
1639
1639
|
border-color: var(--primary-color);
|
|
1640
1640
|
color: var(--primary-color);
|
|
1641
1641
|
}
|
|
1642
|
-
.eidos-chip--outlined.eidos-chip--primary:hover:not(.eidos-chip--disabled) {
|
|
1642
|
+
.eidos-chip--outlined.eidos-chip--primary.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1643
1643
|
background-color: rgba(var(--primary-rgb), 0.05);
|
|
1644
1644
|
}
|
|
1645
1645
|
.eidos-chip--outlined.eidos-chip--secondary {
|
|
1646
1646
|
border-color: var(--secondary-color);
|
|
1647
1647
|
color: var(--secondary-color);
|
|
1648
1648
|
}
|
|
1649
|
-
.eidos-chip--outlined.eidos-chip--secondary:hover:not(.eidos-chip--disabled) {
|
|
1649
|
+
.eidos-chip--outlined.eidos-chip--secondary.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1650
1650
|
background-color: rgba(var(--secondary-rgb), 0.05);
|
|
1651
1651
|
}
|
|
1652
1652
|
.eidos-chip--outlined.eidos-chip--success {
|
|
1653
1653
|
border-color: var(--success-color);
|
|
1654
1654
|
color: var(--success-color);
|
|
1655
1655
|
}
|
|
1656
|
-
.eidos-chip--outlined.eidos-chip--success:hover:not(.eidos-chip--disabled) {
|
|
1656
|
+
.eidos-chip--outlined.eidos-chip--success.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1657
1657
|
background-color: rgba(var(--success-rgb), 0.05);
|
|
1658
1658
|
}
|
|
1659
1659
|
.eidos-chip--outlined.eidos-chip--danger {
|
|
1660
1660
|
border-color: var(--danger-color);
|
|
1661
1661
|
color: var(--danger-color);
|
|
1662
1662
|
}
|
|
1663
|
-
.eidos-chip--outlined.eidos-chip--danger:hover:not(.eidos-chip--disabled) {
|
|
1663
|
+
.eidos-chip--outlined.eidos-chip--danger.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1664
1664
|
background-color: rgba(var(--danger-rgb), 0.05);
|
|
1665
1665
|
}
|
|
1666
1666
|
.eidos-chip--outlined.eidos-chip--warning {
|
|
1667
1667
|
border-color: var(--warning-color);
|
|
1668
1668
|
color: var(--warning-color);
|
|
1669
1669
|
}
|
|
1670
|
-
.eidos-chip--outlined.eidos-chip--warning:hover:not(.eidos-chip--disabled) {
|
|
1670
|
+
.eidos-chip--outlined.eidos-chip--warning.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1671
1671
|
background-color: rgba(var(--warning-rgb), 0.05);
|
|
1672
1672
|
}
|
|
1673
1673
|
.eidos-chip--outlined.eidos-chip--info {
|
|
1674
1674
|
border-color: var(--info-color);
|
|
1675
1675
|
color: var(--info-color);
|
|
1676
1676
|
}
|
|
1677
|
-
.eidos-chip--outlined.eidos-chip--info:hover:not(.eidos-chip--disabled) {
|
|
1677
|
+
.eidos-chip--outlined.eidos-chip--info.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1678
1678
|
background-color: rgba(var(--info-rgb), 0.05);
|
|
1679
1679
|
}
|
|
1680
1680
|
.eidos-chip--text {
|
|
@@ -1684,37 +1684,37 @@ svg.lucide {
|
|
|
1684
1684
|
.eidos-chip--text.eidos-chip--primary {
|
|
1685
1685
|
color: var(--primary-color);
|
|
1686
1686
|
}
|
|
1687
|
-
.eidos-chip--text.eidos-chip--primary:hover:not(.eidos-chip--disabled) {
|
|
1687
|
+
.eidos-chip--text.eidos-chip--primary.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1688
1688
|
background-color: rgba(var(--primary-rgb), 0.1);
|
|
1689
1689
|
}
|
|
1690
1690
|
.eidos-chip--text.eidos-chip--secondary {
|
|
1691
1691
|
color: var(--secondary-color);
|
|
1692
1692
|
}
|
|
1693
|
-
.eidos-chip--text.eidos-chip--secondary:hover:not(.eidos-chip--disabled) {
|
|
1693
|
+
.eidos-chip--text.eidos-chip--secondary.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1694
1694
|
background-color: rgba(var(--secondary-rgb), 0.1);
|
|
1695
1695
|
}
|
|
1696
1696
|
.eidos-chip--text.eidos-chip--success {
|
|
1697
1697
|
color: var(--success-color);
|
|
1698
1698
|
}
|
|
1699
|
-
.eidos-chip--text.eidos-chip--success:hover:not(.eidos-chip--disabled) {
|
|
1699
|
+
.eidos-chip--text.eidos-chip--success.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1700
1700
|
background-color: rgba(var(--success-rgb), 0.1);
|
|
1701
1701
|
}
|
|
1702
1702
|
.eidos-chip--text.eidos-chip--danger {
|
|
1703
1703
|
color: var(--danger-color);
|
|
1704
1704
|
}
|
|
1705
|
-
.eidos-chip--text.eidos-chip--danger:hover:not(.eidos-chip--disabled) {
|
|
1705
|
+
.eidos-chip--text.eidos-chip--danger.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1706
1706
|
background-color: rgba(var(--danger-rgb), 0.1);
|
|
1707
1707
|
}
|
|
1708
1708
|
.eidos-chip--text.eidos-chip--warning {
|
|
1709
1709
|
color: var(--warning-color);
|
|
1710
1710
|
}
|
|
1711
|
-
.eidos-chip--text.eidos-chip--warning:hover:not(.eidos-chip--disabled) {
|
|
1711
|
+
.eidos-chip--text.eidos-chip--warning.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1712
1712
|
background-color: rgba(var(--warning-rgb), 0.1);
|
|
1713
1713
|
}
|
|
1714
1714
|
.eidos-chip--text.eidos-chip--info {
|
|
1715
1715
|
color: var(--info-color);
|
|
1716
1716
|
}
|
|
1717
|
-
.eidos-chip--text.eidos-chip--info:hover:not(.eidos-chip--disabled) {
|
|
1717
|
+
.eidos-chip--text.eidos-chip--info.eidos-chip--clickable:hover:not(.eidos-chip--disabled) {
|
|
1718
1718
|
background-color: rgba(var(--info-rgb), 0.1);
|
|
1719
1719
|
}
|
|
1720
1720
|
.eidos-chip--disabled {
|
|
@@ -7525,6 +7525,45 @@ a.eidos-message-attachment-link:focus-visible {
|
|
|
7525
7525
|
transform: rotate(360deg);
|
|
7526
7526
|
}
|
|
7527
7527
|
}
|
|
7528
|
+
.eidos-split-chip {
|
|
7529
|
+
display: inline-flex;
|
|
7530
|
+
align-items: stretch;
|
|
7531
|
+
max-width: 100%;
|
|
7532
|
+
}
|
|
7533
|
+
.eidos-split-chip > .eidos-tooltip-trigger {
|
|
7534
|
+
display: flex;
|
|
7535
|
+
align-items: stretch;
|
|
7536
|
+
min-width: 0;
|
|
7537
|
+
}
|
|
7538
|
+
.eidos-split-chip .eidos-split-chip__segment {
|
|
7539
|
+
border-radius: 0;
|
|
7540
|
+
}
|
|
7541
|
+
.eidos-split-chip .eidos-split-chip__segment--joined-start {
|
|
7542
|
+
border-left-width: 0;
|
|
7543
|
+
}
|
|
7544
|
+
.eidos-split-chip .eidos-split-chip__segment--joined-end {
|
|
7545
|
+
border-right-width: 0;
|
|
7546
|
+
}
|
|
7547
|
+
.eidos-split-chip .eidos-split-chip__segment--divided {
|
|
7548
|
+
border-left: 1px solid currentColor;
|
|
7549
|
+
}
|
|
7550
|
+
.eidos-split-chip .eidos-split-chip__segment--first {
|
|
7551
|
+
border-top-left-radius: var(--border-radius-sm);
|
|
7552
|
+
border-bottom-left-radius: var(--border-radius-sm);
|
|
7553
|
+
}
|
|
7554
|
+
.eidos-split-chip .eidos-split-chip__segment--last {
|
|
7555
|
+
border-top-right-radius: var(--border-radius-sm);
|
|
7556
|
+
border-bottom-right-radius: var(--border-radius-sm);
|
|
7557
|
+
}
|
|
7558
|
+
.eidos-split-chip .eidos-split-chip__segment.eidos-chip--clickable {
|
|
7559
|
+
min-width: 24px;
|
|
7560
|
+
justify-content: center;
|
|
7561
|
+
}
|
|
7562
|
+
.eidos-split-chip .eidos-split-chip__segment:focus-visible {
|
|
7563
|
+
outline: none;
|
|
7564
|
+
box-shadow: inset 0 0 0 2px var(--primary-color);
|
|
7565
|
+
}
|
|
7566
|
+
|
|
7528
7567
|
.eidos-stepper {
|
|
7529
7568
|
display: flex;
|
|
7530
7569
|
width: 100%;
|
package/dist/index.d.cts
CHANGED
|
@@ -40,7 +40,9 @@ export { S as SegmentedControlColorProps, a as SegmentedControlProps, b as Segme
|
|
|
40
40
|
export { SplitButton, SplitButtonOption, SplitButtonProps } from './split-button/index.cjs';
|
|
41
41
|
export { ContextMenu, ContextMenuProps } from './context-menu/index.cjs';
|
|
42
42
|
export { Tooltip, TooltipProps } from './tooltip/index.cjs';
|
|
43
|
-
export { Chip
|
|
43
|
+
export { Chip } from './chip/index.cjs';
|
|
44
|
+
export { C as ChipColorProps, a as ChipProps, b as ChipVariantProps, T as TextChipProps } from './Chip.types-B6y3Wifa.cjs';
|
|
45
|
+
export { SplitChip, SplitChipProps, SplitChipSegment } from './split-chip/index.cjs';
|
|
44
46
|
export { Divider, DividerProps } from './divider/index.cjs';
|
|
45
47
|
export { Spinner, SpinnerColorProps, SpinnerProps } from './spinner/index.cjs';
|
|
46
48
|
export { Dropdown, DropdownPosition, DropdownProps, DropdownProvider, DropdownState, NestedDropdownItem, useDropdownContext } from './dropdown/index.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -40,7 +40,9 @@ export { S as SegmentedControlColorProps, a as SegmentedControlProps, b as Segme
|
|
|
40
40
|
export { SplitButton, SplitButtonOption, SplitButtonProps } from './split-button/index.js';
|
|
41
41
|
export { ContextMenu, ContextMenuProps } from './context-menu/index.js';
|
|
42
42
|
export { Tooltip, TooltipProps } from './tooltip/index.js';
|
|
43
|
-
export { Chip
|
|
43
|
+
export { Chip } from './chip/index.js';
|
|
44
|
+
export { C as ChipColorProps, a as ChipProps, b as ChipVariantProps, T as TextChipProps } from './Chip.types-COQfx2Ru.js';
|
|
45
|
+
export { SplitChip, SplitChipProps, SplitChipSegment } from './split-chip/index.js';
|
|
44
46
|
export { Divider, DividerProps } from './divider/index.js';
|
|
45
47
|
export { Spinner, SpinnerColorProps, SpinnerProps } from './spinner/index.js';
|
|
46
48
|
export { Dropdown, DropdownPosition, DropdownProps, DropdownProvider, DropdownState, NestedDropdownItem, useDropdownContext } from './dropdown/index.js';
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
VirtualList
|
|
6
6
|
} from "./chunk-H2RS6Z6Q.js";
|
|
7
|
+
import {
|
|
8
|
+
Switch
|
|
9
|
+
} from "./chunk-7HEUWGYW.js";
|
|
7
10
|
import {
|
|
8
11
|
Table
|
|
9
12
|
} from "./chunk-RHFD2Z5V.js";
|
|
@@ -45,12 +48,12 @@ import {
|
|
|
45
48
|
useSnackbar,
|
|
46
49
|
useSnackbarContext
|
|
47
50
|
} from "./chunk-MPIVBAMY.js";
|
|
51
|
+
import {
|
|
52
|
+
SplitChip
|
|
53
|
+
} from "./chunk-L7I5NEGI.js";
|
|
48
54
|
import {
|
|
49
55
|
Stepper
|
|
50
56
|
} from "./chunk-3LBWAUCR.js";
|
|
51
|
-
import {
|
|
52
|
-
Switch
|
|
53
|
-
} from "./chunk-7HEUWGYW.js";
|
|
54
57
|
import {
|
|
55
58
|
OTPInput
|
|
56
59
|
} from "./chunk-U233KQZX.js";
|
|
@@ -272,6 +275,7 @@ export {
|
|
|
272
275
|
SnackbarProvider,
|
|
273
276
|
Spinner,
|
|
274
277
|
SplitButton,
|
|
278
|
+
SplitChip,
|
|
275
279
|
Stepper,
|
|
276
280
|
Switch,
|
|
277
281
|
Tab,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkPCTHJZROcjs = require('../chunk-PCTHJZRO.cjs');
|
|
4
|
+
require('../chunk-TTLFY76J.cjs');
|
|
5
|
+
require('../chunk-BEOECPVJ.cjs');
|
|
6
|
+
require('../chunk-35LGEPLP.cjs');
|
|
7
|
+
require('../chunk-DZUJEN5N.cjs');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.SplitChip = _chunkPCTHJZROcjs.SplitChip;
|
|
11
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/split-chip/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACF,gDAAC","file":"/home/runner/work/eidos-ui/eidos-ui/dist/split-chip/index.cjs"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { I as IconType } from '../renderIcon-C2lEMMzb.cjs';
|
|
3
|
+
import { C as ComponentSizeProps } from '../sizes-DM6Rrrgq.cjs';
|
|
4
|
+
import { b as ChipVariantProps, C as ChipColorProps } from '../Chip.types-B6y3Wifa.cjs';
|
|
5
|
+
|
|
6
|
+
interface SplitChipSegment {
|
|
7
|
+
/** Stable, unique key for the segment. */
|
|
8
|
+
id: string;
|
|
9
|
+
/** Content of the segment. */
|
|
10
|
+
label: React.ReactNode;
|
|
11
|
+
/** Visual style of this segment. Falls back to the `SplitChip`'s `variant`. */
|
|
12
|
+
variant?: ChipVariantProps;
|
|
13
|
+
/** Colour of this segment. Falls back to the `SplitChip`'s `color`. */
|
|
14
|
+
color?: ChipColorProps;
|
|
15
|
+
/**
|
|
16
|
+
* Makes the segment a button with hover and press feedback. A segment
|
|
17
|
+
* without it is static: no pointer cursor, no hover state.
|
|
18
|
+
*/
|
|
19
|
+
onClick?: () => void;
|
|
20
|
+
/** Icon before the label. Lucide component or icon name. */
|
|
21
|
+
preIcon?: IconType;
|
|
22
|
+
/** Icon after the label. Lucide component or icon name. */
|
|
23
|
+
posIcon?: IconType;
|
|
24
|
+
/** Tooltip shown when this segment is hovered or focused. */
|
|
25
|
+
tooltip?: string;
|
|
26
|
+
/** Disables this segment only. */
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
}
|
|
29
|
+
interface SplitChipProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'color'> {
|
|
30
|
+
/** The segments, rendered left to right as one joined chip. */
|
|
31
|
+
segments: SplitChipSegment[];
|
|
32
|
+
/** Default visual style for segments that do not set their own. */
|
|
33
|
+
variant?: ChipVariantProps;
|
|
34
|
+
/** Default colour for segments that do not set their own. */
|
|
35
|
+
color?: ChipColorProps;
|
|
36
|
+
/** Size of every segment. */
|
|
37
|
+
size?: ComponentSizeProps;
|
|
38
|
+
/** Disables every segment. */
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
/** Draws a 1px divider between adjacent segments. */
|
|
41
|
+
showDividers?: boolean;
|
|
42
|
+
className?: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* SplitChip - one chip split into independent segments, each with its own
|
|
47
|
+
* label, variant, colour and optional click handler.
|
|
48
|
+
*
|
|
49
|
+
* Every segment is a real `Chip`, the same way `SplitButton` is built from
|
|
50
|
+
* `Button`, so variants, sizes, icons, tooltips, disabled styling and the
|
|
51
|
+
* "hover only when clickable" rule cannot drift between the two. This
|
|
52
|
+
* component only adds the join: collapsed inner borders, radii on the outer
|
|
53
|
+
* ends, and optional dividers.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```tsx
|
|
57
|
+
* <SplitChip
|
|
58
|
+
* segments={[
|
|
59
|
+
* { id: 'label', label: 'Status', variant: 'outlined' },
|
|
60
|
+
* { id: 'value', label: 'Open', color: 'success', onClick: openFilter },
|
|
61
|
+
* ]}
|
|
62
|
+
* />
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
declare const SplitChip: React__default.FC<SplitChipProps>;
|
|
66
|
+
|
|
67
|
+
export { SplitChip, type SplitChipProps, type SplitChipSegment };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { I as IconType } from '../renderIcon-C2lEMMzb.js';
|
|
3
|
+
import { C as ComponentSizeProps } from '../sizes-DM6Rrrgq.js';
|
|
4
|
+
import { b as ChipVariantProps, C as ChipColorProps } from '../Chip.types-COQfx2Ru.js';
|
|
5
|
+
|
|
6
|
+
interface SplitChipSegment {
|
|
7
|
+
/** Stable, unique key for the segment. */
|
|
8
|
+
id: string;
|
|
9
|
+
/** Content of the segment. */
|
|
10
|
+
label: React.ReactNode;
|
|
11
|
+
/** Visual style of this segment. Falls back to the `SplitChip`'s `variant`. */
|
|
12
|
+
variant?: ChipVariantProps;
|
|
13
|
+
/** Colour of this segment. Falls back to the `SplitChip`'s `color`. */
|
|
14
|
+
color?: ChipColorProps;
|
|
15
|
+
/**
|
|
16
|
+
* Makes the segment a button with hover and press feedback. A segment
|
|
17
|
+
* without it is static: no pointer cursor, no hover state.
|
|
18
|
+
*/
|
|
19
|
+
onClick?: () => void;
|
|
20
|
+
/** Icon before the label. Lucide component or icon name. */
|
|
21
|
+
preIcon?: IconType;
|
|
22
|
+
/** Icon after the label. Lucide component or icon name. */
|
|
23
|
+
posIcon?: IconType;
|
|
24
|
+
/** Tooltip shown when this segment is hovered or focused. */
|
|
25
|
+
tooltip?: string;
|
|
26
|
+
/** Disables this segment only. */
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
}
|
|
29
|
+
interface SplitChipProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'color'> {
|
|
30
|
+
/** The segments, rendered left to right as one joined chip. */
|
|
31
|
+
segments: SplitChipSegment[];
|
|
32
|
+
/** Default visual style for segments that do not set their own. */
|
|
33
|
+
variant?: ChipVariantProps;
|
|
34
|
+
/** Default colour for segments that do not set their own. */
|
|
35
|
+
color?: ChipColorProps;
|
|
36
|
+
/** Size of every segment. */
|
|
37
|
+
size?: ComponentSizeProps;
|
|
38
|
+
/** Disables every segment. */
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
/** Draws a 1px divider between adjacent segments. */
|
|
41
|
+
showDividers?: boolean;
|
|
42
|
+
className?: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* SplitChip - one chip split into independent segments, each with its own
|
|
47
|
+
* label, variant, colour and optional click handler.
|
|
48
|
+
*
|
|
49
|
+
* Every segment is a real `Chip`, the same way `SplitButton` is built from
|
|
50
|
+
* `Button`, so variants, sizes, icons, tooltips, disabled styling and the
|
|
51
|
+
* "hover only when clickable" rule cannot drift between the two. This
|
|
52
|
+
* component only adds the join: collapsed inner borders, radii on the outer
|
|
53
|
+
* ends, and optional dividers.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```tsx
|
|
57
|
+
* <SplitChip
|
|
58
|
+
* segments={[
|
|
59
|
+
* { id: 'label', label: 'Status', variant: 'outlined' },
|
|
60
|
+
* { id: 'value', label: 'Open', color: 'success', onClick: openFilter },
|
|
61
|
+
* ]}
|
|
62
|
+
* />
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
declare const SplitChip: React__default.FC<SplitChipProps>;
|
|
66
|
+
|
|
67
|
+
export { SplitChip, type SplitChipProps, type SplitChipSegment };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|