@b3-crow/ui-kit 0.0.36 → 0.0.37

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.
@@ -3,7 +3,9 @@ interface EmailTagInputProps {
3
3
  onEmailsChange: (emails: string[]) => void;
4
4
  error?: string;
5
5
  onInvalidEmail?: (email: string) => void;
6
+ onInputChange?: (value: string) => void;
7
+ children?: React.ReactNode;
6
8
  }
7
- export declare function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, }: EmailTagInputProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, onInputChange, children, }: EmailTagInputProps): import("react/jsx-runtime").JSX.Element;
8
10
  export {};
9
11
  //# sourceMappingURL=EmailTagInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmailTagInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/EmailTagInput.tsx"],"names":[],"mappings":"AAKA,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAMD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,cAAc,EACd,KAAK,EACL,cAAc,GACf,EAAE,kBAAkB,2CA8FpB"}
1
+ {"version":3,"file":"EmailTagInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/EmailTagInput.tsx"],"names":[],"mappings":"AAMA,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAMD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,cAAc,EACd,KAAK,EACL,cAAc,EACd,aAAa,EACb,QAAQ,GACT,EAAE,kBAAkB,2CAqGpB"}
@@ -3,10 +3,28 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState } from 'react';
4
4
  import { LuX } from 'react-icons/lu';
5
5
  const isValidEmail = (email) => {
6
- return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
6
+ return /^[^\s@]+@[^\s@][^\s.@]*\.[^\s@]+$/.test(email);
7
7
  };
8
- export function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, }) {
8
+ export function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, onInputChange, children, }) {
9
9
  const [inputValue, setInputValue] = useState('');
10
+ const addEmail = () => {
11
+ const trimmedEmail = inputValue.trim();
12
+ if (trimmedEmail && !emails.includes(trimmedEmail)) {
13
+ if (isValidEmail(trimmedEmail)) {
14
+ onEmailsChange([...emails, trimmedEmail]);
15
+ setInputValue('');
16
+ onInputChange?.('');
17
+ }
18
+ else {
19
+ onInvalidEmail?.(trimmedEmail);
20
+ setInputValue('');
21
+ onInputChange?.('');
22
+ }
23
+ }
24
+ };
25
+ const removeEmail = (index) => {
26
+ onEmailsChange(emails.filter((_, i) => i !== index));
27
+ };
10
28
  const handleKeyDown = (e) => {
11
29
  if (e.key === 'Enter') {
12
30
  e.preventDefault();
@@ -26,36 +44,24 @@ export function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, }
26
44
  if (isValidEmail(emailToAdd)) {
27
45
  onEmailsChange([...emails, emailToAdd]);
28
46
  setInputValue('');
47
+ onInputChange?.('');
29
48
  }
30
49
  else {
31
50
  onInvalidEmail?.(emailToAdd);
32
51
  setInputValue('');
52
+ onInputChange?.('');
33
53
  }
34
54
  }
35
55
  else {
36
56
  setInputValue('');
57
+ onInputChange?.('');
37
58
  }
38
59
  }
39
60
  else {
40
61
  setInputValue(value);
62
+ onInputChange?.(value);
41
63
  }
42
64
  };
43
- const addEmail = () => {
44
- const trimmedEmail = inputValue.trim();
45
- if (trimmedEmail && !emails.includes(trimmedEmail)) {
46
- if (isValidEmail(trimmedEmail)) {
47
- onEmailsChange([...emails, trimmedEmail]);
48
- setInputValue('');
49
- }
50
- else {
51
- onInvalidEmail?.(trimmedEmail);
52
- setInputValue('');
53
- }
54
- }
55
- };
56
- const removeEmail = (index) => {
57
- onEmailsChange(emails.filter((_, i) => i !== index));
58
- };
59
- return (_jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-xs font-medium text-gray-300 ml-1 block", children: "Email addresses" }), _jsxs("div", { className: `w-full bg-white/5 border ${error ? 'border-red-500/30' : 'border-white/5'} rounded-2xl px-3 py-2 flex flex-wrap gap-2 focus-within:border-violet-500/30 transition-colors shadow-inner min-h-[52px] items-center`, children: [emails.map((email, index) => (_jsxs("span", { className: "bg-violet-500/20 border border-violet-500/20 text-violet-100 text-[11px] font-medium px-2 py-0.5 rounded-md flex items-center gap-1", children: [email, _jsx("button", { type: "button", onClick: () => removeEmail(index), className: "hover:text-white text-violet-300 focus:outline-none flex items-center", children: _jsx(LuX, { className: "w-3 h-3" }) })] }, index))), _jsx("input", { type: "text", value: inputValue, onChange: handleChange, onKeyDown: handleKeyDown, className: "bg-transparent border-none focus:ring-0 focus:outline-none text-sm p-0 text-gray-300 placeholder:text-gray-600 flex-grow min-w-[120px] h-6", placeholder: emails.length === 0 ? 'name@company.com' : '' })] }), _jsx("p", { className: "text-[10px] text-gray-500 ml-1", children: "Press Enter, Space, or Comma to add multiple emails." }), error && _jsx("p", { className: "text-[10px] text-red-400 ml-1", children: error })] }));
65
+ return (_jsxs("div", { className: "space-y-2 relative", children: [_jsx("label", { className: "text-xs font-medium text-gray-300 ml-1 block", children: "Email addresses" }), _jsxs("div", { className: `w-full bg-white/5 border ${error ? 'border-red-500/30' : 'border-white/5'} rounded-2xl px-3 py-2 flex flex-wrap gap-2 focus-within:border-violet-500/30 transition-colors shadow-inner min-h-[52px] items-center`, children: [emails.map((email, index) => (_jsxs("span", { className: "bg-violet-500/20 border border-violet-500/20 text-violet-100 text-[11px] font-medium px-2 py-0.5 rounded-md flex items-center gap-1", children: [email, _jsx("button", { type: "button", onClick: () => removeEmail(index), className: "hover:text-white text-violet-300 focus:outline-none flex items-center", children: _jsx(LuX, { className: "w-3 h-3" }) })] }, index))), _jsx("input", { type: "text", value: inputValue, onChange: handleChange, onKeyDown: handleKeyDown, className: "bg-transparent border-none focus:ring-0 focus:outline-none text-sm p-0 text-gray-300 placeholder:text-gray-600 flex-grow min-w-[120px] h-6", placeholder: emails.length === 0 ? 'name@company.com' : '' })] }), children, _jsx("p", { className: "text-[10px] text-gray-500 ml-1", children: "Press Enter, Space, or Comma to add multiple emails." }), error && _jsx("p", { className: "text-[10px] text-red-400 ml-1", children: error })] }));
60
66
  }
61
67
  //# sourceMappingURL=EmailTagInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmailTagInput.js","sourceRoot":"","sources":["../../../src/components/inputs/EmailTagInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAiB,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AASrC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAW,EAAE;IAC9C,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,cAAc,EACd,KAAK,EACL,cAAc,GACK;IACnB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEjD,MAAM,aAAa,GAAG,CAAC,CAAkC,EAAE,EAAE;QAC3D,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,QAAQ,EAAE,CAAC;QACb,CAAC;aAAM,IACL,CAAC,CAAC,GAAG,KAAK,WAAW;YACrB,UAAU,KAAK,EAAE;YACjB,MAAM,CAAC,MAAM,GAAG,CAAC,EACjB,CAAC;YACD,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC9D,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE7B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC7B,cAAc,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;oBACxC,aAAa,CAAC,EAAE,CAAC,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACN,cAAc,EAAE,CAAC,UAAU,CAAC,CAAC;oBAC7B,aAAa,CAAC,EAAE,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACnD,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,cAAc,CAAC,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC1C,aAAa,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,cAAc,EAAE,CAAC,YAAY,CAAC,CAAC;gBAC/B,aAAa,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE;QACpC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,gBAAO,SAAS,EAAC,8CAA8C,gCAEvD,EACR,eACE,SAAS,EAAE,4BACT,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAChC,wIAAwI,aAEvI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5B,gBAEE,SAAS,EAAC,qIAAqI,aAE9I,KAAK,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EACjC,SAAS,EAAC,uEAAuE,YAEjF,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,GAAG,GACpB,KAVJ,KAAK,CAWL,CACR,CAAC,EACF,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAC,4IAA4I,EACtJ,WAAW,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAC1D,IACE,EACN,YAAG,SAAS,EAAC,gCAAgC,qEAEzC,EACH,KAAK,IAAI,YAAG,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAK,IAC9D,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"EmailTagInput.js","sourceRoot":"","sources":["../../../src/components/inputs/EmailTagInput.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export interface SegmentedControlOption<T extends string = string> {
3
3
  value: T;
4
4
  }
5
5
  export interface SegmentedControlProps<T extends string = string> {
6
- options: [SegmentedControlOption<T>, SegmentedControlOption<T>];
6
+ options: SegmentedControlOption<T>[];
7
7
  defaultValue?: T;
8
8
  value?: T;
9
9
  onChange?: (value: T) => void;
@@ -12,5 +12,5 @@ export interface SegmentedControlProps<T extends string = string> {
12
12
  className?: string;
13
13
  size?: 'sm' | 'md' | 'lg';
14
14
  }
15
- export declare function SegmentedControl<T extends string = string>({ options, defaultValue, value: controlledValue, onChange, label, description, className, size, }: SegmentedControlProps<T>): import("react/jsx-runtime").JSX.Element;
15
+ export declare function SegmentedControl<T extends string = string>({ options, defaultValue, value: controlledValue, onChange, label, description, className, size, }: SegmentedControlProps<T>): import("react/jsx-runtime").JSX.Element | null;
16
16
  //# sourceMappingURL=SegmentedControl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/components/layout/SegmentedControl.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC9D,OAAO,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAC1D,OAAO,EACP,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAc,EACd,IAAW,GACZ,EAAE,qBAAqB,CAAC,CAAC,CAAC,2CAoE1B"}
1
+ {"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/components/layout/SegmentedControl.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC9D,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAC1D,OAAO,EACP,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAc,EACd,IAAW,GACZ,EAAE,qBAAqB,CAAC,CAAC,CAAC,kDA0D1B"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { cn } from '../../lib/utils';
4
4
  export function SegmentedControl({ options, defaultValue, value: controlledValue, onChange, label, description, className = '', size = 'md', }) {
5
- const [internalValue, setInternalValue] = useState(defaultValue ?? options[0].value);
5
+ const [internalValue, setInternalValue] = useState(defaultValue ?? options[0]?.value);
6
6
  const selected = controlledValue ?? internalValue;
7
7
  const handleToggle = (value) => {
8
8
  if (controlledValue === undefined) {
@@ -15,10 +15,10 @@ export function SegmentedControl({ options, defaultValue, value: controlledValue
15
15
  md: 'px-5 py-1.5 text-sm',
16
16
  lg: 'px-7 py-2 text-base',
17
17
  };
18
- return (_jsxs("div", { className: cn('flex flex-col items-center gap-2', className), children: [label && (_jsx("span", { className: "text-xs uppercase tracking-wider text-gray-500 font-medium", children: label })), _jsxs("div", { role: "radiogroup", "aria-label": label, className: "flex items-center bg-white/[0.03] border border-white/10 rounded-full p-1 relative", children: [_jsx("button", { type: "button", role: "radio", "aria-checked": selected === options[0].value, onClick: () => handleToggle(options[0].value), className: cn('font-medium transition-colors rounded-full relative z-10', sizeStyles[size], selected === options[0].value
19
- ? 'text-white bg-white/10 shadow-sm'
20
- : 'text-gray-400 hover:text-white'), children: options[0].label }), _jsx("button", { type: "button", role: "radio", "aria-checked": selected === options[1].value, onClick: () => handleToggle(options[1].value), className: cn('font-medium transition-colors rounded-full relative z-10', sizeStyles[size], selected === options[1].value
21
- ? 'text-white bg-white/10 shadow-sm'
22
- : 'text-gray-400 hover:text-white'), children: options[1].label })] }), description && (_jsx("span", { className: "text-[10px] text-violet-400/80", children: description }))] }));
18
+ if (!options || options.length === 0)
19
+ return null;
20
+ return (_jsxs("div", { className: cn('flex flex-col items-center gap-2', className), children: [label && (_jsx("span", { className: "text-xs uppercase tracking-wider text-gray-500 font-medium", children: label })), _jsx("div", { role: "radiogroup", "aria-label": label, className: "flex items-center bg-white/[0.03] border border-white/10 rounded-full p-1 relative", children: options.map(option => (_jsx("button", { type: "button", role: "radio", "aria-checked": selected === option.value, onClick: () => handleToggle(option.value), className: cn('font-medium transition-colors rounded-full relative z-10', sizeStyles[size], selected === option.value
21
+ ? 'text-white bg-white/10 shadow-sm'
22
+ : 'text-gray-400 hover:text-white'), children: option.label }, option.value))) }), description && (_jsx("span", { className: "text-[10px] text-violet-400/80", children: description }))] }));
23
23
  }
24
24
  //# sourceMappingURL=SegmentedControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../../../src/components/layout/SegmentedControl.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAkBrC,MAAM,UAAU,gBAAgB,CAA4B,EAC1D,OAAO,EACP,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,IAAI,GACc;IACzB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CACjC,CAAC;IAEF,MAAM,QAAQ,GAAG,eAAe,IAAI,aAAa,CAAC;IAElD,MAAM,YAAY,GAAG,CAAC,KAAQ,EAAE,EAAE;QAChC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,mBAAmB;QACvB,EAAE,EAAE,qBAAqB;QACzB,EAAE,EAAE,qBAAqB;KAC1B,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,aAC9D,KAAK,IAAI,CACR,eAAM,SAAS,EAAC,4DAA4D,YACzE,KAAK,GACD,CACR,EACD,eACE,IAAI,EAAC,YAAY,gBACL,KAAK,EACjB,SAAS,EAAC,oFAAoF,aAE9F,iBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAC3C,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAC7C,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,UAAU,CAAC,IAAI,CAAC,EAChB,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;4BAC3B,CAAC,CAAC,kCAAkC;4BACpC,CAAC,CAAC,gCAAgC,CACrC,YAEA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GACV,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAC3C,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAC7C,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,UAAU,CAAC,IAAI,CAAC,EAChB,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;4BAC3B,CAAC,CAAC,kCAAkC;4BACpC,CAAC,CAAC,gCAAgC,CACrC,YAEA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GACV,IACL,EACL,WAAW,IAAI,CACd,eAAM,SAAS,EAAC,gCAAgC,YAAE,WAAW,GAAQ,CACtE,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../../../src/components/layout/SegmentedControl.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAkBrC,MAAM,UAAU,gBAAgB,CAA4B,EAC1D,OAAO,EACP,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,IAAI,GACc;IACzB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAClC,CAAC;IAEF,MAAM,QAAQ,GAAG,eAAe,IAAI,aAAa,CAAC;IAElD,MAAM,YAAY,GAAG,CAAC,KAAQ,EAAE,EAAE;QAChC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,mBAAmB;QACvB,EAAE,EAAE,qBAAqB;QACzB,EAAE,EAAE,qBAAqB;KAC1B,CAAC;IAEF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElD,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,aAC9D,KAAK,IAAI,CACR,eAAM,SAAS,EAAC,4DAA4D,YACzE,KAAK,GACD,CACR,EACD,cACE,IAAI,EAAC,YAAY,gBACL,KAAK,EACjB,SAAS,EAAC,oFAAoF,YAE7F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACrB,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,QAAQ,KAAK,MAAM,CAAC,KAAK,EACvC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,UAAU,CAAC,IAAI,CAAC,EAChB,QAAQ,KAAK,MAAM,CAAC,KAAK;wBACvB,CAAC,CAAC,kCAAkC;wBACpC,CAAC,CAAC,gCAAgC,CACrC,YAEA,MAAM,CAAC,KAAK,IAbR,MAAM,CAAC,KAAK,CAcV,CACV,CAAC,GACE,EACL,WAAW,IAAI,CACd,eAAM,SAAS,EAAC,gCAAgC,YAAE,WAAW,GAAQ,CACtE,IACG,CACP,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@b3-crow/ui-kit",
3
- "version": "0.0.36",
3
+ "version": "0.0.37",
4
4
  "description": "CROW-B3 UI Kit",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",