eidos-ui 3.6.2 → 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/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 {
@@ -2854,15 +2854,18 @@ kbd.eidos-cmd-kbd {
2854
2854
  padding: 0;
2855
2855
  display: flex;
2856
2856
  flex-wrap: wrap;
2857
- gap: var(--spacing-xs);
2857
+ gap: var(--spacing-sm);
2858
+ font-weight: var(--font-weight-semibold);
2859
+ font-family: var(--font-family-mono);
2860
+ line-height: 1;
2858
2861
  }
2859
2862
 
2860
2863
  .eidos-message-attachment-link {
2861
2864
  display: flex;
2862
2865
  align-items: center;
2863
- gap: var(--spacing-xs);
2864
- padding: var(--spacing-xs) var(--spacing-sm);
2865
- border: 1px solid var(--gray-200);
2866
+ gap: var(--spacing-sm);
2867
+ padding: var(--spacing-sm);
2868
+ border: 1px solid var(--gray-500);
2866
2869
  border-radius: var(--border-radius-sm);
2867
2870
  background: var(--white);
2868
2871
  font-size: var(--font-size-xs);
@@ -2875,11 +2878,12 @@ kbd.eidos-cmd-kbd {
2875
2878
  height: 12px;
2876
2879
  flex-shrink: 0;
2877
2880
  }
2878
- .eidos-message-attachment-link:hover {
2879
- border-color: var(--gray-300);
2881
+
2882
+ a.eidos-message-attachment-link:hover {
2883
+ border-color: var(--gray-600);
2880
2884
  background: var(--gray-50);
2881
2885
  }
2882
- .eidos-message-attachment-link:focus-visible {
2886
+ a.eidos-message-attachment-link:focus-visible {
2883
2887
  outline: none;
2884
2888
  box-shadow: inset 0 0 0 2px var(--primary-color);
2885
2889
  }
@@ -2891,6 +2895,7 @@ kbd.eidos-cmd-kbd {
2891
2895
  }
2892
2896
 
2893
2897
  .eidos-message-attachment-size {
2898
+ margin-left: var(--spacing-md);
2894
2899
  color: var(--text-muted);
2895
2900
  flex-shrink: 0;
2896
2901
  }
@@ -3080,9 +3085,13 @@ kbd.eidos-cmd-kbd {
3080
3085
  }
3081
3086
  .eidos-message--chat.eidos-message--own .eidos-message-attachment-link {
3082
3087
  background: rgba(var(--black-rgb), 0.18);
3083
- border-color: rgba(var(--white-rgb), 0.35);
3088
+ border-color: var(--primary-contrast);
3084
3089
  color: inherit;
3085
3090
  }
3091
+ .eidos-message--chat.eidos-message--own a.eidos-message-attachment-link:hover {
3092
+ background: rgba(var(--black-rgb), 0.3);
3093
+ border-color: var(--primary-contrast);
3094
+ }
3086
3095
  .eidos-message--chat.eidos-message--own .eidos-message-attachment-size {
3087
3096
  color: inherit;
3088
3097
  }
@@ -3240,6 +3249,9 @@ kbd.eidos-cmd-kbd {
3240
3249
  min-width: 0;
3241
3250
  }
3242
3251
 
3252
+ .eidos-message--comment .eidos-message-header .eidos-message-time {
3253
+ margin-left: auto;
3254
+ }
3243
3255
  .eidos-message--comment .eidos-message-bubble {
3244
3256
  padding: var(--spacing-sm) var(--spacing-md);
3245
3257
  border: 1px solid var(--gray-200);
@@ -7513,6 +7525,45 @@ kbd.eidos-cmd-kbd {
7513
7525
  transform: rotate(360deg);
7514
7526
  }
7515
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
+
7516
7567
  .eidos-stepper {
7517
7568
  display: flex;
7518
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";
@@ -151,7 +154,7 @@ import {
151
154
  Chat,
152
155
  CommentThread,
153
156
  MessageComposer
154
- } from "./chunk-2JW3WSBF.js";
157
+ } from "./chunk-SNRRF64M.js";
155
158
  import {
156
159
  Skeleton
157
160
  } from "./chunk-Y55M34RQ.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.2",
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",