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 CHANGED
@@ -103,6 +103,7 @@ These are the same groups used in Storybook, so the README and the docs sidebar
103
103
  - Button
104
104
  - ButtonGroup
105
105
  - SplitButton
106
+ - SplitChip
106
107
  - Avatar
107
108
  - Badge
108
109
  - Card
@@ -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 };
@@ -1,27 +1,9 @@
1
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
-
5
- type ChipVariantProps = 'filled' | 'outlined' | 'text';
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, type ChipColorProps, type ChipProps, type ChipVariantProps, type TextChipProps };
9
+ export { Chip, ChipProps };
@@ -1,27 +1,9 @@
1
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
-
5
- type ChipVariantProps = 'filled' | 'outlined' | 'text';
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, type ChipColorProps, type ChipProps, type ChipVariantProps, type TextChipProps };
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 _chunkHFZ5FKRGcjs = require('./chunk-HFZ5FKRG.cjs');
53
+ var _chunkPCTHJZROcjs = require('./chunk-PCTHJZRO.cjs');
51
54
 
52
55
 
53
- var _chunkIXZMKIV5cjs = require('./chunk-IXZMKIV5.cjs');
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
- 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.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;
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
@@ -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,itIAAC","file":"/home/runner/work/eidos-ui/eidos-ui/dist/index.cjs"}
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, ChipColorProps, ChipProps, ChipVariantProps, TextChipProps } from './chip/index.cjs';
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, ChipColorProps, ChipProps, ChipVariantProps, TextChipProps } from './chip/index.js';
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,11 @@
1
+ import {
2
+ SplitChip
3
+ } from "../chunk-L7I5NEGI.js";
4
+ import "../chunk-GWHZFX2H.js";
5
+ import "../chunk-JNY7TUDS.js";
6
+ import "../chunk-RHHZRTWM.js";
7
+ import "../chunk-5WRI5ZAA.js";
8
+ export {
9
+ SplitChip
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eidos-ui",
3
- "version": "3.6.3",
3
+ "version": "3.7.0",
4
4
  "description": "A modern React component library with TypeScript and SCSS",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",