mainstack-design-system 1.6.0 → 1.8.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.d.ts CHANGED
@@ -635,7 +635,9 @@ isError?: boolean;
635
635
  isSuccess?: boolean;
636
636
  value?: string | Array<string>;
637
637
  isOptionOpen?: boolean;
638
+ isCreatableSelect?: boolean;
638
639
  onOptionOpenChange?: (value: boolean) => void;
640
+ onOptionSelect?: (option?: SelectOptionType | Array<SelectOptionType>) => void;
639
641
  onValueChange?: (value: string | string[] | undefined) => void;
640
642
  } & ClassAttributes<HTMLDivElement> & HTMLAttributes<HTMLDivElement> & {
641
643
  isMultiSelect?: false;
@@ -648,7 +650,9 @@ isError?: boolean;
648
650
  isSuccess?: boolean;
649
651
  value?: string | Array<string>;
650
652
  isOptionOpen?: boolean;
653
+ isCreatableSelect?: boolean;
651
654
  onOptionOpenChange?: (value: boolean) => void;
655
+ onOptionSelect?: (option?: SelectOptionType | Array<SelectOptionType>) => void;
652
656
  onValueChange?: (value: string | string[] | undefined) => void;
653
657
  } & ClassAttributes<HTMLDivElement> & HTMLAttributes<HTMLDivElement> & {
654
658
  isMultiSelect?: true;
@@ -5773,7 +5777,7 @@ export declare const MetabolismIcon: ({ ...props }: VariableIconProps) => JSX.El
5773
5777
 
5774
5778
  export declare const MilitaryTechIcon: ({ variant, ...props }: VariableIconProps) => JSX.Element;
5775
5779
 
5776
- export declare const ModalBody: ForwardRefExoticComponent<Omit<ModalBodyProps, "ref"> & RefAttributes<unknown>>;
5780
+ export declare const ModalBody: ForwardRefExoticComponent<Omit<ModalBodyProps, "ref"> & RefAttributes<HTMLDivElement>>;
5777
5781
 
5778
5782
  export declare interface ModalBodyProps extends ComponentPropsWithRef<typeof DialogContent> {
5779
5783
  }
@@ -5812,9 +5816,9 @@ export declare const ModalGroup: {
5812
5816
  Root: ({ ...props }: ModalRootProps) => JSX.Element;
5813
5817
  Trigger: ForwardRefExoticComponent<Omit<ModalTriggerProps, "ref"> & RefAttributes<HTMLButtonElement>>;
5814
5818
  Overlay: ForwardRefExoticComponent<Omit<ModalOverlayProps, "ref"> & RefAttributes<HTMLDivElement>>;
5815
- Body: ForwardRefExoticComponent<Omit<ModalBodyProps, "ref"> & RefAttributes<unknown>>;
5816
- Portal: ForwardRefExoticComponent<ModalPortalProps & RefAttributes<unknown>>;
5817
- VisualSlot: ForwardRefExoticComponent<Omit<ModalVisualSlotProps, "ref"> & RefAttributes<unknown>>;
5819
+ Body: ForwardRefExoticComponent<Omit<ModalBodyProps, "ref"> & RefAttributes<HTMLDivElement>>;
5820
+ Portal: ({ ...props }: ModalPortalProps) => JSX.Element;
5821
+ VisualSlot: ForwardRefExoticComponent<Omit<ModalVisualSlotProps, "ref"> & RefAttributes<HTMLDivElement>>;
5818
5822
  ContentSlot: ForwardRefExoticComponent<Omit<ModalContentSlotProps, "ref"> & RefAttributes<HTMLDivElement>>;
5819
5823
  ContentMain: ForwardRefExoticComponent<Omit<ModalContentMainProps, "ref"> & RefAttributes<HTMLDivElement>>;
5820
5824
  ContentHeader: ForwardRefExoticComponent<Omit<ModalContentHeaderProps, "ref"> & RefAttributes<HTMLElement>>;
@@ -5828,7 +5832,7 @@ export declare const ModalOverlay: ForwardRefExoticComponent<Omit<ModalOverlayPr
5828
5832
  export declare interface ModalOverlayProps extends ComponentPropsWithRef<typeof DialogOverlay> {
5829
5833
  }
5830
5834
 
5831
- export declare const ModalPortal: ForwardRefExoticComponent<ModalPortalProps & RefAttributes<unknown>>;
5835
+ export declare const ModalPortal: ({ ...props }: ModalPortalProps) => JSX.Element;
5832
5836
 
5833
5837
  export declare interface ModalPortalProps extends ComponentPropsWithRef<typeof DialogPortal> {
5834
5838
  }
@@ -5843,7 +5847,7 @@ export declare const ModalTrigger: ForwardRefExoticComponent<Omit<ModalTriggerPr
5843
5847
  export declare interface ModalTriggerProps extends ComponentPropsWithRef<typeof DialogTrigger> {
5844
5848
  }
5845
5849
 
5846
- export declare const ModalVisualSlot: ForwardRefExoticComponent<Omit<ModalVisualSlotProps, "ref"> & RefAttributes<unknown>>;
5850
+ export declare const ModalVisualSlot: ForwardRefExoticComponent<Omit<ModalVisualSlotProps, "ref"> & RefAttributes<HTMLDivElement>>;
5847
5851
 
5848
5852
  export declare interface ModalVisualSlotProps extends ComponentPropsWithRef<"div"> {
5849
5853
  }
@@ -6287,7 +6291,9 @@ export declare const SelectGroup: {
6287
6291
  isSuccess?: boolean;
6288
6292
  value?: string | Array<string>;
6289
6293
  isOptionOpen?: boolean;
6294
+ isCreatableSelect?: boolean;
6290
6295
  onOptionOpenChange?: (value: boolean) => void;
6296
+ onOptionSelect?: (option?: SelectOptionType | Array<SelectOptionType>) => void;
6291
6297
  onValueChange?: (value: string | string[] | undefined) => void;
6292
6298
  } & ClassAttributes<HTMLDivElement> & HTMLAttributes<HTMLDivElement> & {
6293
6299
  isMultiSelect?: false;
@@ -6300,7 +6306,9 @@ export declare const SelectGroup: {
6300
6306
  isSuccess?: boolean;
6301
6307
  value?: string | Array<string>;
6302
6308
  isOptionOpen?: boolean;
6309
+ isCreatableSelect?: boolean;
6303
6310
  onOptionOpenChange?: (value: boolean) => void;
6311
+ onOptionSelect?: (option?: SelectOptionType | Array<SelectOptionType>) => void;
6304
6312
  onValueChange?: (value: string | string[] | undefined) => void;
6305
6313
  } & ClassAttributes<HTMLDivElement> & HTMLAttributes<HTMLDivElement> & {
6306
6314
  isMultiSelect?: true;
@@ -6311,7 +6319,10 @@ export declare const SelectGroup: {
6311
6319
  Options: ForwardRefExoticComponent<Omit<SelectOptionsProps, "ref"> & RefAttributes<HTMLDivElement>>;
6312
6320
  OptionItem: ForwardRefExoticComponent<Omit<SelectOptionItemProps, "ref"> & RefAttributes<HTMLDivElement>>;
6313
6321
  OptionItemWithCheckbox: ForwardRefExoticComponent<Omit<SelectOptionItemWithCheckboxProps, "ref"> & RefAttributes<HTMLDivElement>>;
6314
- OptionInputPreview: ForwardRefExoticComponent<Omit<SelectOptionInputPreviewProps, "ref"> & RefAttributes<HTMLDivElement>>;
6322
+ OptionInputPreview: {
6323
+ ({ children, ...props }: SelectOptionInputPreviewProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | ReactPortal | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | JSX.Element | null | undefined;
6324
+ displayName: string;
6325
+ };
6315
6326
  };
6316
6327
 
6317
6328
  export declare const SelectInputField: ForwardRefExoticComponent<Omit<SelectInputFieldProps, "ref"> & RefAttributes<HTMLInputElement>>;
@@ -6319,9 +6330,12 @@ export declare const SelectInputField: ForwardRefExoticComponent<Omit<SelectInpu
6319
6330
  export declare interface SelectInputFieldProps extends ComponentPropsWithRef<typeof InputField> {
6320
6331
  }
6321
6332
 
6322
- export declare const SelectOptionInputPreview: ForwardRefExoticComponent<Omit<SelectOptionInputPreviewProps, "ref"> & RefAttributes<HTMLDivElement>>;
6333
+ export declare const SelectOptionInputPreview: {
6334
+ ({ children, ...props }: SelectOptionInputPreviewProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | ReactPortal | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | JSX.Element | null | undefined;
6335
+ displayName: string;
6336
+ };
6323
6337
 
6324
- export declare interface SelectOptionInputPreviewProps extends Omit<ComponentPropsWithRef<"div">, "children"> {
6338
+ export declare interface SelectOptionInputPreviewProps extends Omit<ComponentPropsWithRef<typeof ChipRoot>, "children"> {
6325
6339
  children?: (options: {
6326
6340
  selectedOptions: Array<SelectOptionType>;
6327
6341
  onCancelSelectedOption: (item: SelectOptionType) => void;
@@ -6332,6 +6346,7 @@ export declare const SelectOptionItem: ForwardRefExoticComponent<Omit<SelectOpti
6332
6346
 
6333
6347
  export declare interface SelectOptionItemProps extends ComponentPropsWithRef<"div"> {
6334
6348
  value: string | undefined;
6349
+ isCreatableOption?: boolean;
6335
6350
  isDisabled?: boolean;
6336
6351
  isGroupLabel?: boolean;
6337
6352
  }
@@ -6380,7 +6395,9 @@ isError?: boolean;
6380
6395
  isSuccess?: boolean;
6381
6396
  value?: string | Array<string>;
6382
6397
  isOptionOpen?: boolean;
6398
+ isCreatableSelect?: boolean;
6383
6399
  onOptionOpenChange?: (value: boolean) => void;
6400
+ onOptionSelect?: (option?: SelectOptionType | Array<SelectOptionType>) => void;
6384
6401
  onValueChange?: (value: string | string[] | undefined) => void;
6385
6402
  } & ClassAttributes<HTMLDivElement> & HTMLAttributes<HTMLDivElement> & {
6386
6403
  isMultiSelect?: false;
@@ -6393,7 +6410,9 @@ isError?: boolean;
6393
6410
  isSuccess?: boolean;
6394
6411
  value?: string | Array<string>;
6395
6412
  isOptionOpen?: boolean;
6413
+ isCreatableSelect?: boolean;
6396
6414
  onOptionOpenChange?: (value: boolean) => void;
6415
+ onOptionSelect?: (option?: SelectOptionType | Array<SelectOptionType>) => void;
6397
6416
  onValueChange?: (value: string | string[] | undefined) => void;
6398
6417
  } & ClassAttributes<HTMLDivElement> & HTMLAttributes<HTMLDivElement> & {
6399
6418
  isMultiSelect?: true;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),t=require("./utils-scPUmbSO.cjs"),h=require("./mainstack-design-system584.cjs"),s=require("./index-BgzojN8c.cjs"),i=a.forwardRef(({className:c,children:m,...u},n)=>{const{options:r,isMultiSelect:b,inputValue:l,previousAction:o,isOptionOpen:f,selectedOption:p}=h.useSelectContext(),d=a.useMemo(()=>!l||o==="selection"||o==="idle"?r.array:r.array.filter(x=>x.label.toLocaleLowerCase().includes(l.toLocaleLowerCase())),[l,r,o]);return e.jsx("div",{className:t.cn("mds:flex mds:flex-col mds:gap-8 mds:p-8 mds:rounded-18 mds:bg-surface-neutral-l1 mds:border-border-interactive-neutral mds:border mds:shadow-200",c),ref:n,"data-slot":"select-options","data-select-options-opened":f,...u,children:e.jsxs(s.ScrollArea,{style:{"--scrollbar-size":"8px"},className:t.cn("mds:flex mds:flex-col mds:gap-8 mds:max-h-350"),ref:n,children:[e.jsx(s.ScrollAreaViewport,{className:"mds:h-full mds:w-full",children:e.jsxs("div",{"data-slot":"select-options-inner",className:"mds:flex mds:flex-col mds:gap-8",children:[m({options:d,selectedOption:p,isMultiSelect:!!b}),d.length===0&&e.jsx("p",{className:"body-extrasmall-medium mds:text-center",children:"No option found"})]})}),e.jsx(s.ScrollAreaScrollbar,{orientation:"vertical",className:"mds:flex mds:select-none mds:rounded-(--scrollbar-size) mds:touch-none mds:p-2 mds:w-(--scrollbar-size) mds:flex-col mds:transition-all mds:duration-200 mds:ease-out mds:bg-surface-neutral-l1 mds:hover:bg-interactive-secondary mds:hover:w-12",children:e.jsx(s.ScrollAreaThumb,{className:t.cn("mds:rounded-(--scrollbar-size) mds:bg-border-interactive-neutral-inverse-hover mds:relative","mds:before:content-[''] mds:before:absolute mds:before:top-1/2 mds:before:left-1/2 mds:before:-translate-1/2 mds:before:size-full mds:before:min-w-44 mds:before:min-h-44")})}),e.jsx(s.ScrollAreaCorner,{className:"mds:bg-border-interactive-neutral-inverse-hover"})]})})});i.displayName="SelectOptions";exports.SelectOptions=i;
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),t=require("./utils-scPUmbSO.cjs"),S=require("./mainstack-design-system584.cjs"),r=require("./index-BgzojN8c.cjs"),v=require("./mainstack-design-system464.cjs"),i=d.forwardRef(({className:c,children:m,...u},n)=>{const{options:l,isMultiSelect:b,inputValue:s,previousAction:o,isOptionOpen:p,selectedOption:f,isCreatableSelect:x}=S.useSelectContext(),a=d.useMemo(()=>!s||o==="selection"||o==="idle"?l.array:l.array.filter(h=>h.label.toLocaleLowerCase().includes(s.toLocaleLowerCase())),[s,l,o]);return e.jsx("div",{className:t.cn("mds:flex mds:flex-col mds:gap-8 mds:p-8 mds:rounded-18 mds:bg-surface-neutral-l1 mds:border-border-interactive-neutral mds:border mds:shadow-200",c),ref:n,"data-slot":"select-options","data-select-options-opened":p,...u,children:e.jsxs(r.ScrollArea,{style:{"--scrollbar-size":"8px"},className:t.cn("mds:flex mds:flex-col mds:gap-8 mds:max-h-350"),ref:n,children:[e.jsx(r.ScrollAreaViewport,{className:"mds:h-full mds:w-full",children:e.jsxs("div",{"data-slot":"select-options-inner",className:"mds:flex mds:flex-col mds:gap-8",children:[m({options:a,selectedOption:f,isMultiSelect:!!b}),a.length===0&&e.jsx(e.Fragment,{children:x&&s?e.jsxs(v.SelectOptionItem,{value:s,isCreatableOption:!0,children:['Create "',s,'"']}):e.jsx("p",{className:t.cn("body-extrasmall-medium","mds:text-center"),children:"No option found"})})]})}),e.jsx(r.ScrollAreaScrollbar,{orientation:"vertical",className:"mds:flex mds:select-none mds:rounded-(--scrollbar-size) mds:touch-none mds:p-2 mds:w-(--scrollbar-size) mds:flex-col mds:transition-all mds:duration-200 mds:ease-out mds:bg-surface-neutral-l1 mds:hover:bg-interactive-secondary mds:hover:w-12",children:e.jsx(r.ScrollAreaThumb,{className:t.cn("mds:rounded-(--scrollbar-size) mds:bg-border-interactive-neutral-inverse-hover mds:relative","mds:before:content-[''] mds:before:absolute mds:before:top-1/2 mds:before:left-1/2 mds:before:-translate-1/2 mds:before:size-full mds:before:min-w-44 mds:before:min-h-44")})}),e.jsx(r.ScrollAreaCorner,{className:"mds:bg-border-interactive-neutral-inverse-hover"})]})})});i.displayName="SelectOptions";exports.SelectOptions=i;
@@ -1,63 +1,78 @@
1
1
  'use client';
2
- import { jsx as e, jsxs as d } from "react/jsx-runtime";
3
- import { forwardRef as b, useMemo as h } from "react";
4
- import { c as l } from "./utils-Cs1D8Nxl.js";
5
- import { useSelectContext as x } from "./mainstack-design-system584.js";
6
- import { S as v, a as S, b as N, c as g, d as w } from "./index-CLUgda6x.js";
7
- const y = b(
8
- ({ className: m, children: n, ...i }, t) => {
2
+ import { jsx as e, jsxs as t, Fragment as h } from "react/jsx-runtime";
3
+ import { forwardRef as v, useMemo as x } from "react";
4
+ import { c as r } from "./utils-Cs1D8Nxl.js";
5
+ import { useSelectContext as S } from "./mainstack-design-system584.js";
6
+ import { S as g, a as N, b as w, c as C, d as O } from "./index-CLUgda6x.js";
7
+ import { SelectOptionItem as y } from "./mainstack-design-system464.js";
8
+ const A = v(
9
+ ({ className: m, children: i, ...n }, a) => {
9
10
  const {
10
- options: s,
11
+ options: o,
11
12
  isMultiSelect: c,
12
- inputValue: r,
13
- previousAction: o,
14
- isOptionOpen: f,
15
- selectedOption: u
16
- } = x(), a = h(() => !r || o === "selection" || o === "idle" ? s.array : s.array.filter((p) => p.label.toLocaleLowerCase().includes(r.toLocaleLowerCase())), [r, s, o]);
13
+ inputValue: s,
14
+ previousAction: l,
15
+ isOptionOpen: p,
16
+ selectedOption: u,
17
+ isCreatableSelect: f
18
+ } = S(), d = x(() => !s || l === "selection" || l === "idle" ? o.array : o.array.filter((b) => b.label.toLocaleLowerCase().includes(s.toLocaleLowerCase())), [s, o, l]);
17
19
  return /* @__PURE__ */ e(
18
20
  "div",
19
21
  {
20
- className: l(
22
+ className: r(
21
23
  "mds:flex mds:flex-col mds:gap-8 mds:p-8 mds:rounded-18 mds:bg-surface-neutral-l1 mds:border-border-interactive-neutral mds:border mds:shadow-200",
22
24
  m
23
25
  ),
24
- ref: t,
26
+ ref: a,
25
27
  "data-slot": "select-options",
26
- "data-select-options-opened": f,
27
- ...i,
28
- children: /* @__PURE__ */ d(
29
- v,
28
+ "data-select-options-opened": p,
29
+ ...n,
30
+ children: /* @__PURE__ */ t(
31
+ g,
30
32
  {
31
33
  style: {
32
34
  "--scrollbar-size": "8px"
33
35
  },
34
- className: l("mds:flex mds:flex-col mds:gap-8 mds:max-h-350"),
35
- ref: t,
36
+ className: r("mds:flex mds:flex-col mds:gap-8 mds:max-h-350"),
37
+ ref: a,
36
38
  children: [
37
- /* @__PURE__ */ e(S, { className: "mds:h-full mds:w-full", children: /* @__PURE__ */ d(
39
+ /* @__PURE__ */ e(N, { className: "mds:h-full mds:w-full", children: /* @__PURE__ */ t(
38
40
  "div",
39
41
  {
40
42
  "data-slot": "select-options-inner",
41
43
  className: "mds:flex mds:flex-col mds:gap-8",
42
44
  children: [
43
- n({
44
- options: a,
45
+ i({
46
+ options: d,
45
47
  selectedOption: u,
46
48
  isMultiSelect: !!c
47
49
  }),
48
- a.length === 0 && /* @__PURE__ */ e("p", { className: "body-extrasmall-medium mds:text-center", children: "No option found" })
50
+ d.length === 0 && /* @__PURE__ */ e(h, { children: f && s ? /* @__PURE__ */ t(y, { value: s, isCreatableOption: !0, children: [
51
+ 'Create "',
52
+ s,
53
+ '"'
54
+ ] }) : /* @__PURE__ */ e(
55
+ "p",
56
+ {
57
+ className: r(
58
+ "body-extrasmall-medium",
59
+ "mds:text-center"
60
+ ),
61
+ children: "No option found"
62
+ }
63
+ ) })
49
64
  ]
50
65
  }
51
66
  ) }),
52
67
  /* @__PURE__ */ e(
53
- N,
68
+ w,
54
69
  {
55
70
  orientation: "vertical",
56
71
  className: "mds:flex mds:select-none mds:rounded-(--scrollbar-size) mds:touch-none mds:p-2 mds:w-(--scrollbar-size) mds:flex-col mds:transition-all mds:duration-200 mds:ease-out mds:bg-surface-neutral-l1 mds:hover:bg-interactive-secondary mds:hover:w-12",
57
72
  children: /* @__PURE__ */ e(
58
- g,
73
+ C,
59
74
  {
60
- className: l(
75
+ className: r(
61
76
  "mds:rounded-(--scrollbar-size) mds:bg-border-interactive-neutral-inverse-hover mds:relative",
62
77
  "mds:before:content-[''] mds:before:absolute mds:before:top-1/2 mds:before:left-1/2 mds:before:-translate-1/2 mds:before:size-full mds:before:min-w-44 mds:before:min-h-44"
63
78
  )
@@ -65,7 +80,7 @@ const y = b(
65
80
  )
66
81
  }
67
82
  ),
68
- /* @__PURE__ */ e(w, { className: "mds:bg-border-interactive-neutral-inverse-hover" })
83
+ /* @__PURE__ */ e(O, { className: "mds:bg-border-interactive-neutral-inverse-hover" })
69
84
  ]
70
85
  }
71
86
  )
@@ -73,7 +88,7 @@ const y = b(
73
88
  );
74
89
  }
75
90
  );
76
- y.displayName = "SelectOptions";
91
+ A.displayName = "SelectOptions";
77
92
  export {
78
- y as SelectOptions
93
+ A as SelectOptions
79
94
  };
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react/jsx-runtime"),y=require("react"),j=require("./utils-scPUmbSO.cjs"),C=require("./mainstack-design-system584.cjs"),b=y.forwardRef(({value:e="",className:x,isGroupLabel:O,isDisabled:o,onClick:a,...S},A)=>{const{isOptionOpen:_,isMultiSelect:i,selectedOption:t,rootElementRef:d,options:g,setPreviousAction:h,setInputValue:l,onValueChange:r,onOptionOpenChange:I,setSelectedOption:c}=C.useSelectContext(),p=y.useMemo(()=>i&&Array.isArray(t)?t?.some(n=>e===n):!i&&!Array.isArray(t)?t===e:!1,[i,t,e]);return f.jsx("div",{"aria-disabled":o,className:" mds:aria-disabled:cursor-not-allowed",children:f.jsx("div",{role:"button","data-slot":"select-option-item",tabIndex:0,className:j.cn("body-extrasmall-medium","mds:py-8 mds:px-10 mds:cursor-pointer mds:text-left mds:rounded-12 mds:aria-disabled:pointer-events-none mds:aria-disabled:opacity-40 mds:hover:bg-interactive-secondary-hover",x),"aria-selected":p,"data-select-options-opened":_,ref:A,"aria-disabled":o||O,onClick:n=>{if(a&&a(n),!!e)if(h("selection"),i){let s=t;if(Array.isArray(t))if(s=[...t],p){const u=s.findIndex(q=>q===e);u>-1&&s.splice(u,1)}else s.push(e);else s=[e];if(c(s),l(""),Array.isArray(s)&&r&&r(s),!d.current)return null;const m=d.current.querySelector('[data-slot="select-input-field"]');m&&m.focus()}else r&&e&&r(e),l(g.map.get(e)?.label||""),c(e),I(!1)},...S})})});b.displayName="SelectOptionItem";exports.SelectOptionItem=b;
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react/jsx-runtime"),S=require("react"),N=require("./utils-scPUmbSO.cjs"),P=require("./mainstack-design-system584.cjs"),x=S.forwardRef(({value:e="",className:A,isGroupLabel:g,isDisabled:l,isCreatableOption:h,onClick:d,..._},I)=>{const{isOptionOpen:q,isMultiSelect:r,selectedOption:s,rootElementRef:p,isCreatableSelect:w,options:m,setOptions:C,setPreviousAction:j,setInputValue:f,onValueChange:n,onOptionSelect:o,onOptionOpenChange:R,setSelectedOption:u}=P.useSelectContext(),y=S.useMemo(()=>r&&Array.isArray(s)?s?.some(c=>e===c):!r&&!Array.isArray(s)?s===e:!1,[r,s,e]);return O.jsx("div",{"aria-disabled":l,className:" mds:aria-disabled:cursor-not-allowed",children:O.jsx("div",{role:"button","data-slot":"select-option-item",tabIndex:0,className:N.cn("body-extrasmall-medium","mds:py-8 mds:px-10 mds:cursor-pointer mds:text-left mds:rounded-12 mds:aria-disabled:pointer-events-none mds:aria-disabled:opacity-40 mds:hover:bg-interactive-secondary-hover",A),"aria-selected":y,"data-select-options-opened":q,ref:I,"aria-disabled":l||g,onClick:c=>{if(d&&d(c),!e)return;j("selection");let i=m;if(h&&w&&!i.map.has(e)){i={...m};const t={value:e,label:e};i.array.push(t),i.map.set(t.value,t),C(i)}if(r){let t=s;if(Array.isArray(s))if(t=[...s],y){const a=t.findIndex(M=>M===e);a>-1&&t.splice(a,1)}else t.push(e);else t=[e];if(u(t),f(""),Array.isArray(t)&&n&&n(t),Array.isArray(t)&&o&&o(t.map(a=>i.map.get(a))),!p.current)return null;const b=p.current.querySelector('[data-slot="select-input-field"]');b&&b.focus()}else n&&e&&n(e),o&&e&&o(i.map.get(e)),f(i.map.get(e)?.label||""),u(e),R(!1)},..._})})});x.displayName="SelectOptionItem";exports.SelectOptionItem=x;
@@ -1,77 +1,94 @@
1
1
  'use client';
2
- import { jsx as u } from "react/jsx-runtime";
3
- import { forwardRef as _, useMemo as w } from "react";
4
- import { c as C } from "./utils-Cs1D8Nxl.js";
5
- import { useSelectContext as N } from "./mainstack-design-system584.js";
6
- const M = _(
2
+ import { jsx as b } from "react/jsx-runtime";
3
+ import { forwardRef as R, useMemo as V } from "react";
4
+ import { c as j } from "./utils-Cs1D8Nxl.js";
5
+ import { useSelectContext as q } from "./mainstack-design-system584.js";
6
+ const E = R(
7
7
  ({
8
8
  value: e = "",
9
- className: y,
10
- isGroupLabel: b,
11
- isDisabled: n,
12
- onClick: a,
13
- ...x
14
- }, A) => {
9
+ className: A,
10
+ isGroupLabel: x,
11
+ isDisabled: p,
12
+ isCreatableOption: h,
13
+ onClick: l,
14
+ ...S
15
+ }, g) => {
15
16
  const {
16
- isOptionOpen: O,
17
- isMultiSelect: i,
18
- selectedOption: t,
19
- rootElementRef: d,
20
- options: h,
21
- setPreviousAction: S,
22
- setInputValue: l,
23
- onValueChange: s,
24
- onOptionOpenChange: I,
25
- setSelectedOption: c
26
- } = N(), m = w(() => i && Array.isArray(t) ? t?.some((o) => e === o) : !i && !Array.isArray(t) ? t === e : !1, [i, t, e]);
27
- return /* @__PURE__ */ u(
17
+ isOptionOpen: w,
18
+ isMultiSelect: s,
19
+ selectedOption: i,
20
+ rootElementRef: c,
21
+ isCreatableSelect: I,
22
+ options: m,
23
+ setOptions: C,
24
+ setPreviousAction: _,
25
+ setInputValue: f,
26
+ onValueChange: o,
27
+ onOptionSelect: n,
28
+ onOptionOpenChange: N,
29
+ setSelectedOption: y
30
+ } = q(), u = V(() => s && Array.isArray(i) ? i?.some((d) => e === d) : !s && !Array.isArray(i) ? i === e : !1, [s, i, e]);
31
+ return /* @__PURE__ */ b(
28
32
  "div",
29
33
  {
30
- "aria-disabled": n,
34
+ "aria-disabled": p,
31
35
  className: " mds:aria-disabled:cursor-not-allowed",
32
- children: /* @__PURE__ */ u(
36
+ children: /* @__PURE__ */ b(
33
37
  "div",
34
38
  {
35
39
  role: "button",
36
40
  "data-slot": "select-option-item",
37
41
  tabIndex: 0,
38
- className: C(
42
+ className: j(
39
43
  "body-extrasmall-medium",
40
44
  "mds:py-8 mds:px-10 mds:cursor-pointer mds:text-left mds:rounded-12 mds:aria-disabled:pointer-events-none mds:aria-disabled:opacity-40 mds:hover:bg-interactive-secondary-hover",
41
- y
45
+ A
42
46
  ),
43
- "aria-selected": m,
44
- "data-select-options-opened": O,
45
- ref: A,
46
- "aria-disabled": n || b,
47
- onClick: (o) => {
48
- if (a && a(o), !!e)
49
- if (S("selection"), i) {
50
- let r = t;
51
- if (Array.isArray(t))
52
- if (r = [...t], m) {
53
- const f = r.findIndex((g) => g === e);
54
- f > -1 && r.splice(f, 1);
55
- } else
56
- r.push(e);
57
- else
58
- r = [e];
59
- if (c(r), l(""), Array.isArray(r) && s && s(r), !d.current) return null;
60
- const p = d.current.querySelector(
61
- '[data-slot="select-input-field"]'
62
- );
63
- p && p.focus();
64
- } else
65
- s && e && s(e), l(h.map.get(e)?.label || ""), c(e), I(!1);
47
+ "aria-selected": u,
48
+ "data-select-options-opened": w,
49
+ ref: g,
50
+ "aria-disabled": p || x,
51
+ onClick: (d) => {
52
+ if (l && l(d), !e)
53
+ return;
54
+ _("selection");
55
+ let r = m;
56
+ if (h && I && !r.map.has(e)) {
57
+ r = { ...m };
58
+ const t = {
59
+ value: e,
60
+ label: e
61
+ };
62
+ r.array.push(t), r.map.set(t.value, t), C(r);
63
+ }
64
+ if (s) {
65
+ let t = i;
66
+ if (Array.isArray(i))
67
+ if (t = [...i], u) {
68
+ const a = t.findIndex((M) => M === e);
69
+ a > -1 && t.splice(a, 1);
70
+ } else
71
+ t.push(e);
72
+ else
73
+ t = [e];
74
+ if (y(t), f(""), Array.isArray(t) && o && o(t), Array.isArray(t) && n && n(
75
+ t.map((a) => r.map.get(a))
76
+ ), !c.current) return null;
77
+ const O = c.current.querySelector(
78
+ '[data-slot="select-input-field"]'
79
+ );
80
+ O && O.focus();
81
+ } else
82
+ o && e && o(e), n && e && n(r.map.get(e)), f(r.map.get(e)?.label || ""), y(e), N(!1);
66
83
  },
67
- ...x
84
+ ...S
68
85
  }
69
86
  )
70
87
  }
71
88
  );
72
89
  }
73
90
  );
74
- M.displayName = "SelectOptionItem";
91
+ E.displayName = "SelectOptionItem";
75
92
  export {
76
- M as SelectOptionItem
93
+ E as SelectOptionItem
77
94
  };
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),a=require("react"),d=require("./utils-scPUmbSO.cjs");require("./mainstack-design-system355.cjs");const x=require("./mainstack-design-system91.cjs");require("./player-BSON6quL.cjs");const b=require("./mainstack-design-system584.cjs"),A=require("./mainstack-design-system391.cjs");require("./mainstack-design-system392.cjs");require("./mainstack-design-system393.cjs");const S=require("./index-BV7A-WgT.cjs"),m=a.forwardRef(({className:p,children:o,...f},v)=>{const{selectedOption:e,isMultiSelect:n,options:s,setSelectedOption:c,onOptionOpenChange:l}=b.useSelectContext(),u=a.useCallback(r=>{if(!n||!Array.isArray(e))return e;let i=e;Array.isArray(e)&&(i=e.filter(g=>g!==r?.value)),c(i),l(!0)},[n,l,e,c]),y=a.useMemo(()=>!n||!Array.isArray(e)?[]:s.array.filter(r=>e.includes(r.value)),[n,s.array,e]);return!n||!Array.isArray(e)?null:o?o({selectedOptions:y,onCancelSelectedOption:u}):t.jsx(t.Fragment,{children:e.map(r=>t.jsxs("div",{"data-slot":"select-option-input-preview",ref:v,className:d.cn("mds:flex mds:gap-4 mds:justify-between mds:items-center mds:w-109 mds:h-32 mds:p-6 mds:rounded-full mds:bg-surface-neutral-l1 mds:border-border-interactive-neutral mds:border-2",p),...f,children:[s.map.get(r)?.imgSrc&&t.jsx(A.AvatarRoot,{size:24,className:"mds:min-w-24 mds:size-24 mds:min-h-24 mds:*:size-24",children:t.jsx(S.AvatarImage,{alt:"avatar",src:s.map.get(r)?.imgSrc||""})}),t.jsx("p",{className:d.cn("body-extrasmall-medium","mds:w-50 mds:truncate"),children:s.map.get(r)?.label}),t.jsx(x,{role:"button",variant:"filled",className:"mds:size-20 mds:cursor-pointer mds:text-primary",onClick:()=>{const i=s.map.get(r);i&&u(i)}})]},r))})});m.displayName="SelectOptionInputPreview";exports.SelectOptionInputPreview=m;
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),o=require("react");require("./mainstack-design-system355.cjs");const h=require("./mainstack-design-system91.cjs");require("./player-BSON6quL.cjs");const _=require("./utils-scPUmbSO.cjs"),y=require("./mainstack-design-system584.cjs"),S=require("./index-BV7A-WgT.cjs"),q=require("./mainstack-design-system421.cjs"),v=require("./mainstack-design-system422.cjs"),f=require("./mainstack-design-system420.cjs"),g=require("./mainstack-design-system419.cjs");require("./mainstack-design-system423.cjs");const u=({children:a,...m})=>{const{selectedOption:e,isMultiSelect:n,options:i,setSelectedOption:c,onOptionOpenChange:l}=y.useSelectContext(),p=o.useCallback(t=>{if(!n||!Array.isArray(e))return e;let s=e;Array.isArray(e)&&(s=e.filter(C=>C!==t?.value)),c(s),l(!0)},[n,l,e,c]),d=o.useMemo(()=>!n||!Array.isArray(e)?[]:i.array.filter(t=>e.includes(t.value)),[n,i.array,e]);return!n||!Array.isArray(e)?null:a?a({selectedOptions:d,onCancelSelectedOption:p}):r.jsx(r.Fragment,{children:e.map(t=>o.createElement(g.ChipRoot,{...m,key:t,"data-slot":"select-option-input-preview",size:"tiny",className:"mds:w-fit",onClick:()=>{const s=i.map.get(t);s&&p(s)}},i.map.get(t)?.imgSrc&&r.jsx(v.ChipAvatar,{size:24,className:"mds:min-w-24 mds:size-24 mds:min-h-24 mds:*:size-24",children:r.jsx(S.AvatarImage,{alt:"avatar",src:i.map.get(t)?.imgSrc||""})}),r.jsx(f.ChipLabel,{className:_.cn("body-extrasmall-medium","mds:w-50 mds:truncate mds:block"),children:i.map.get(t)?.label}),r.jsx(q.ChipSlot,{children:r.jsx(h,{className:"mds:h-20 mds:w-20",variant:"filled"})})))})};u.displayName="SelectOptionInputPreview";exports.SelectOptionInputPreview=u;
@@ -1,90 +1,84 @@
1
1
  'use client';
2
- import { jsx as i, Fragment as v, jsxs as g } from "react/jsx-runtime";
3
- import { forwardRef as A, useCallback as w, useMemo as b } from "react";
4
- import { c as d } from "./utils-Cs1D8Nxl.js";
2
+ import { jsx as i, Fragment as f } from "react/jsx-runtime";
3
+ import { useCallback as u, useMemo as y, createElement as A } from "react";
5
4
  import "./mainstack-design-system355.js";
6
- import O from "./mainstack-design-system91.js";
5
+ import h from "./mainstack-design-system91.js";
7
6
  import "./player-BXrBN0bS.js";
8
- import { useSelectContext as S } from "./mainstack-design-system584.js";
9
- import { AvatarRoot as x } from "./mainstack-design-system391.js";
10
- import "./mainstack-design-system392.js";
11
- import "./mainstack-design-system393.js";
12
- import { A as h } from "./index-CY9H_w64.js";
13
- const C = A(
14
- ({ className: p, children: m, ...c }, u) => {
15
- const {
16
- selectedOption: e,
17
- isMultiSelect: s,
18
- options: t,
19
- setSelectedOption: o,
20
- onOptionOpenChange: n
21
- } = S(), l = w(
22
- (r) => {
23
- if (!s || !Array.isArray(e))
24
- return e;
25
- let a = e;
26
- Array.isArray(e) && (a = e.filter(
27
- (y) => y !== r?.value
28
- )), o(a), n(!0);
29
- },
30
- [s, n, e, o]
31
- ), f = b(() => !s || !Array.isArray(e) ? [] : t.array.filter(
32
- (r) => e.includes(r.value)
33
- ), [s, t.array, e]);
34
- return !s || !Array.isArray(e) ? null : m ? m({
35
- selectedOptions: f,
36
- onCancelSelectedOption: l
37
- }) : /* @__PURE__ */ i(v, { children: e.map((r) => /* @__PURE__ */ g(
38
- "div",
7
+ import { c as v } from "./utils-Cs1D8Nxl.js";
8
+ import { useSelectContext as C } from "./mainstack-design-system584.js";
9
+ import { A as g } from "./index-CY9H_w64.js";
10
+ import { ChipSlot as w } from "./mainstack-design-system421.js";
11
+ import { ChipAvatar as S } from "./mainstack-design-system422.js";
12
+ import { ChipLabel as O } from "./mainstack-design-system420.js";
13
+ import { ChipRoot as b } from "./mainstack-design-system419.js";
14
+ import "./mainstack-design-system423.js";
15
+ const N = ({
16
+ children: s,
17
+ ...p
18
+ }) => {
19
+ const {
20
+ selectedOption: e,
21
+ isMultiSelect: a,
22
+ options: t,
23
+ setSelectedOption: m,
24
+ onOptionOpenChange: n
25
+ } = C(), l = u(
26
+ (r) => {
27
+ if (!a || !Array.isArray(e))
28
+ return e;
29
+ let o = e;
30
+ Array.isArray(e) && (o = e.filter(
31
+ (d) => d !== r?.value
32
+ )), m(o), n(!0);
33
+ },
34
+ [a, n, e, m]
35
+ ), c = y(() => !a || !Array.isArray(e) ? [] : t.array.filter(
36
+ (r) => e.includes(r.value)
37
+ ), [a, t.array, e]);
38
+ return !a || !Array.isArray(e) ? null : s ? s({
39
+ selectedOptions: c,
40
+ onCancelSelectedOption: l
41
+ }) : /* @__PURE__ */ i(f, { children: e.map((r) => /* @__PURE__ */ A(
42
+ b,
43
+ {
44
+ ...p,
45
+ key: r,
46
+ "data-slot": "select-option-input-preview",
47
+ size: "tiny",
48
+ className: "mds:w-fit",
49
+ onClick: () => {
50
+ const o = t.map.get(r);
51
+ o && l(o);
52
+ }
53
+ },
54
+ t.map.get(r)?.imgSrc && /* @__PURE__ */ i(
55
+ S,
39
56
  {
40
- "data-slot": "select-option-input-preview",
41
- ref: u,
42
- className: d(
43
- "mds:flex mds:gap-4 mds:justify-between mds:items-center mds:w-109 mds:h-32 mds:p-6 mds:rounded-full mds:bg-surface-neutral-l1 mds:border-border-interactive-neutral mds:border-2",
44
- p
57
+ size: 24,
58
+ className: "mds:min-w-24 mds:size-24 mds:min-h-24 mds:*:size-24",
59
+ children: /* @__PURE__ */ i(
60
+ g,
61
+ {
62
+ alt: "avatar",
63
+ src: t.map.get(r)?.imgSrc || ""
64
+ }
65
+ )
66
+ }
67
+ ),
68
+ /* @__PURE__ */ i(
69
+ O,
70
+ {
71
+ className: v(
72
+ "body-extrasmall-medium",
73
+ "mds:w-50 mds:truncate mds:block"
45
74
  ),
46
- ...c,
47
- children: [
48
- t.map.get(r)?.imgSrc && /* @__PURE__ */ i(
49
- x,
50
- {
51
- size: 24,
52
- className: "mds:min-w-24 mds:size-24 mds:min-h-24 mds:*:size-24",
53
- children: /* @__PURE__ */ i(
54
- h,
55
- {
56
- alt: "avatar",
57
- src: t.map.get(r)?.imgSrc || ""
58
- }
59
- )
60
- }
61
- ),
62
- /* @__PURE__ */ i(
63
- "p",
64
- {
65
- className: d("body-extrasmall-medium", "mds:w-50 mds:truncate"),
66
- children: t.map.get(r)?.label
67
- }
68
- ),
69
- /* @__PURE__ */ i(
70
- O,
71
- {
72
- role: "button",
73
- variant: "filled",
74
- className: "mds:size-20 mds:cursor-pointer mds:text-primary",
75
- onClick: () => {
76
- const a = t.map.get(r);
77
- a && l(a);
78
- }
79
- }
80
- )
81
- ]
82
- },
83
- r
84
- )) });
85
- }
86
- );
87
- C.displayName = "SelectOptionInputPreview";
75
+ children: t.map.get(r)?.label
76
+ }
77
+ ),
78
+ /* @__PURE__ */ i(w, { children: /* @__PURE__ */ i(h, { className: "mds:h-20 mds:w-20", variant: "filled" }) })
79
+ )) });
80
+ };
81
+ N.displayName = "SelectOptionInputPreview";
88
82
  export {
89
- C as SelectOptionInputPreview
83
+ N as SelectOptionInputPreview
90
84
  };
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),e=require("./index-HSoR75mY.cjs"),n=require("react"),a=require("./utils-scPUmbSO.cjs"),l=require("./index-DvzX668K.cjs"),s=n.forwardRef(({children:m,className:t,...o})=>d.jsx("div",{className:"mds:fixed mds:w-full mds:h-full mds:flex mds:justify-center mds:top-0 mds:left-0 mds:items-end mds:z-100 mds:md:items-center ",children:d.jsxs(e.DialogContent,{"data-slot":"modal-body",className:a.cn("mds:group/Modal-body mds:flex-1 mds:flex mds:will-change-transform mds:max-h-[90dvh] mds:max-w-980 mds:shadow-600 mds:rounded-t-20 mds:overflow-hidden mds:bg-surface-neutral-l1 mds:animate-content-scale-out mds:data-[state=open]:animate-content-scale-in mds:md:rounded-20 mds:md:mx-20 ",t),...o,children:[m,d.jsx(l.VisuallyHidden,{children:d.jsx(e.DialogDescription,{})})]})}));s.displayName="ModalBody";exports.ModalBody=s;
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),e=require("./index-HSoR75mY.cjs"),a=require("react"),l=require("./utils-scPUmbSO.cjs"),i=require("./index-DvzX668K.cjs"),s=a.forwardRef(({children:m,className:t,...o},n)=>d.jsx("div",{className:"mds:fixed mds:w-full mds:h-full mds:flex mds:justify-center mds:top-0 mds:left-0 mds:items-end mds:z-100 mds:md:items-center ",children:d.jsxs(e.DialogContent,{ref:n,"data-slot":"modal-body",className:l.cn("mds:group/Modal-body mds:flex-1 mds:flex mds:will-change-transform mds:max-h-[90dvh] mds:max-w-980 mds:shadow-600 mds:rounded-t-20 mds:overflow-hidden mds:bg-surface-neutral-l1 mds:animate-content-scale-out mds:data-[state=open]:animate-content-scale-in mds:md:rounded-20 mds:md:mx-20 ",t),...o,children:[m,d.jsx(i.VisuallyHidden,{children:d.jsx(e.DialogDescription,{})})]})}));s.displayName="ModalBody";exports.ModalBody=s;