@bigbinary/neeto-atoms 1.0.76 → 1.0.78

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.
@@ -1,9 +1,13 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { forwardRef, useId } from 'react';
2
+ import { forwardRef, useId, useCallback } from 'react';
3
3
  import { Slider as Slider$1 } from './primitives/Slider.js';
4
4
  import { c as cn } from './utils-BJnb9o5c.js';
5
5
  import { Field, FieldLabel, FieldContent, FieldError, FieldDescription } from './primitives/Field.js';
6
6
 
7
+ const toArray = (value) => {
8
+ if (value === void 0) return void 0;
9
+ return Array.isArray(value) ? value : [value];
10
+ };
7
11
  const Slider = forwardRef(
8
12
  ({
9
13
  label,
@@ -14,6 +18,10 @@ const Slider = forwardRef(
14
18
  labelProps,
15
19
  disabled,
16
20
  id: idProp,
21
+ value,
22
+ defaultValue,
23
+ onValueChange,
24
+ onValueCommit,
17
25
  ...otherProps
18
26
  }, ref) => {
19
27
  const generatedId = useId();
@@ -22,6 +30,19 @@ const Slider = forwardRef(
22
30
  const helpTextId = `helpText_${id}`;
23
31
  const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null].filter(Boolean).join(" ") || void 0;
24
32
  const hasField = !!(label || error || helpText);
33
+ const inputShapeIsScalar = value !== void 0 ? !Array.isArray(value) : defaultValue !== void 0 ? !Array.isArray(defaultValue) : false;
34
+ const unwrap = useCallback(
35
+ (next) => inputShapeIsScalar ? next[0] : next,
36
+ [inputShapeIsScalar]
37
+ );
38
+ const handleValueChange = useCallback(
39
+ (next) => onValueChange?.(unwrap(next)),
40
+ [onValueChange, unwrap]
41
+ );
42
+ const handleValueCommit = useCallback(
43
+ (next) => onValueCommit?.(unwrap(next)),
44
+ [onValueCommit, unwrap]
45
+ );
25
46
  const slider = /* @__PURE__ */ jsx(
26
47
  Slider$1,
27
48
  {
@@ -32,6 +53,10 @@ const Slider = forwardRef(
32
53
  "aria-describedby": ariaDescribedBy,
33
54
  "aria-label": !label ? void 0 : label,
34
55
  className: cn(!hasField && className),
56
+ value: toArray(value),
57
+ defaultValue: toArray(defaultValue),
58
+ onValueChange: onValueChange ? handleValueChange : void 0,
59
+ onValueCommit: onValueCommit ? handleValueCommit : void 0,
35
60
  ...otherProps
36
61
  }
37
62
  );
@@ -62,4 +87,4 @@ const Slider = forwardRef(
62
87
  Slider.displayName = "Slider";
63
88
 
64
89
  export { Slider as S };
65
- //# sourceMappingURL=Slider-DNcH5X7b.js.map
90
+ //# sourceMappingURL=Slider-Bokg8-oi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider-Bokg8-oi.js","sources":["../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useId } from \"react\";\n\nimport { Slider as PrimitiveSlider } from \"src/primitives/Slider\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\ntype SliderValue = number | number[];\n\ntype PrimitiveSliderProps = React.ComponentProps<typeof PrimitiveSlider>;\n\nexport interface SliderProps extends Omit<\n PrimitiveSliderProps,\n \"value\" | \"defaultValue\" | \"onValueChange\" | \"onValueCommit\"\n> {\n /** Current value. Pass a number for a single-thumb slider or an array for a range slider. */\n value?: SliderValue;\n /** Default value (uncontrolled). Shape mirrors `value`. */\n defaultValue?: SliderValue;\n /** Called on every change. Emits a number if `value`/`defaultValue` was a number, an array otherwise. */\n onValueChange?: (value: SliderValue) => void;\n /** Called when the user stops dragging. Emits a number if `value`/`defaultValue` was a number, an array otherwise. */\n onValueCommit?: (value: SliderValue) => void;\n /** Label displayed above the slider. */\n label?: string;\n /** Error message displayed below the slider. */\n error?: string;\n /** Help text displayed below the slider. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Shows a required indicator next to the label. */\n required?: boolean;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Props forwarded to the FieldLabel element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n}\n\nconst toArray = (value: SliderValue | undefined): number[] | undefined => {\n if (value === undefined) return undefined;\n return Array.isArray(value) ? value : [value];\n};\n\nconst Slider = forwardRef<\n React.ComponentRef<typeof PrimitiveSlider>,\n SliderProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n className,\n labelProps,\n disabled,\n id: idProp,\n value,\n defaultValue,\n onValueChange,\n onValueCommit,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const hasField = !!(label || error || helpText);\n\n const inputShapeIsScalar =\n value !== undefined\n ? !Array.isArray(value)\n : defaultValue !== undefined\n ? !Array.isArray(defaultValue)\n : false;\n\n const unwrap = useCallback(\n (next: number[]): SliderValue =>\n inputShapeIsScalar ? (next[0] as number) : next,\n [inputShapeIsScalar]\n );\n\n const handleValueChange = useCallback(\n (next: number[]) => onValueChange?.(unwrap(next)),\n [onValueChange, unwrap]\n );\n\n const handleValueCommit = useCallback(\n (next: number[]) => onValueCommit?.(unwrap(next)),\n [onValueCommit, unwrap]\n );\n\n const slider = (\n <PrimitiveSlider\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-label={!label ? undefined : label}\n className={cn(!hasField && className)}\n value={toArray(value)}\n defaultValue={toArray(defaultValue)}\n onValueChange={onValueChange ? handleValueChange : undefined}\n onValueCommit={onValueCommit ? handleValueCommit : undefined}\n {...otherProps}\n />\n );\n\n if (!hasField) {\n return slider;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {label && (\n <FieldLabel htmlFor={id} {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {slider}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport { Slider };\n"],"names":["PrimitiveSlider"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { createContext, forwardRef, useContext } from 'react';
3
+ import { Link } from 'react-router-dom';
3
4
  import { c as cn } from './utils-BJnb9o5c.js';
4
5
  import { r as renderIcon } from './renderIcon-C6twJSqH.js';
5
6
  import { Tabs as Tabs$1, TabsList, TabsTrigger, TabsContent } from './primitives/Tabs.js';
@@ -33,18 +34,31 @@ const TabsListComponent = forwardRef(
33
34
  );
34
35
  TabsListComponent.displayName = "Tabs.List";
35
36
  const TabsItemComponent = forwardRef(
36
- ({ icon, className, children, ...otherProps }, ref) => {
37
+ ({ icon, className, children, to, ...otherProps }, ref) => {
37
38
  const size = useContext(TabsSizeContext);
39
+ const content = icon ? /* @__PURE__ */ jsxs(Fragment, { children: [
40
+ renderIcon(icon, size === "lg" ? "size-5" : "size-4"),
41
+ children
42
+ ] }) : children;
43
+ if (to !== void 0) {
44
+ return /* @__PURE__ */ jsx(
45
+ TabsTrigger,
46
+ {
47
+ asChild: true,
48
+ ref,
49
+ className: cn(SIZE_CLASSES[size], icon && "gap-1.5", className),
50
+ ...otherProps,
51
+ children: /* @__PURE__ */ jsx(Link, { to, children: content })
52
+ }
53
+ );
54
+ }
38
55
  return /* @__PURE__ */ jsx(
39
56
  TabsTrigger,
40
57
  {
41
58
  ref,
42
59
  className: cn(SIZE_CLASSES[size], icon && "gap-1.5", className),
43
60
  ...otherProps,
44
- children: icon ? /* @__PURE__ */ jsxs(Fragment, { children: [
45
- renderIcon(icon, size === "lg" ? "size-5" : "size-4"),
46
- children
47
- ] }) : children
61
+ children: content
48
62
  }
49
63
  );
50
64
  }
@@ -61,4 +75,4 @@ const Tabs = Object.assign(TabsRoot, {
61
75
  });
62
76
 
63
77
  export { Tabs as T };
64
- //# sourceMappingURL=Tabs-BqlZLpHc.js.map
78
+ //# sourceMappingURL=Tabs-BCUdAnva.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs-BCUdAnva.js","sources":["../src/components/Tabs/constants.ts","../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport const SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nexport const LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\nexport const TabsSizeContext = createContext<TabsSize>(\"default\");\n","import React, { forwardRef, useContext } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport {\n Tabs as PrimitiveTabs,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n TabsContent as PrimitiveTabsContent,\n} from \"src/primitives/Tabs\";\n\nimport { SIZE_CLASSES, LIST_HEIGHT, TabsSizeContext } from \"./constants\";\n\ntype LinkTo = React.ComponentProps<typeof Link>[\"to\"];\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {\n /** Size of tab triggers. Applied to all Tabs.Item children. */\n size?: TabsSize;\n}\n\ntype TabsListProps = React.ComponentProps<typeof PrimitiveTabsList>;\n\ninterface TabsItemProps extends React.ComponentProps<\n typeof PrimitiveTabsTrigger\n> {\n /** Icon component, element, or class-name string rendered before the label. */\n icon?: IconProp;\n /** When set, the trigger renders as a react-router-dom Link to this path. */\n to?: LinkTo;\n}\n\ntype TabsContentProps = React.ComponentProps<typeof PrimitiveTabsContent>;\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n ({ size = \"default\", children, ...props }, ref) => (\n <TabsSizeContext.Provider value={size}>\n <PrimitiveTabs ref={ref} {...props}>\n {children}\n </PrimitiveTabs>\n </TabsSizeContext.Provider>\n )\n);\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsListComponent = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsList\n ref={ref}\n className={cn(LIST_HEIGHT[size], className)}\n {...props}\n />\n );\n }\n);\nTabsListComponent.displayName = \"Tabs.List\";\n\nconst TabsItemComponent = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({ icon, className, children, to, ...otherProps }, ref) => {\n const size = useContext(TabsSizeContext);\n const content = icon ? (\n <>\n {renderIcon(icon, size === \"lg\" ? \"size-5\" : \"size-4\")}\n {children}\n </>\n ) : (\n children\n );\n\n if (to !== undefined) {\n return (\n <PrimitiveTabsTrigger\n asChild\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n <Link to={to}>{content}</Link>\n </PrimitiveTabsTrigger>\n );\n }\n\n return (\n <PrimitiveTabsTrigger\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n {content}\n </PrimitiveTabsTrigger>\n );\n }\n);\nTabsItemComponent.displayName = \"Tabs.Item\";\n\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["PrimitiveTabs","PrimitiveTabsList","PrimitiveTabsTrigger","PrimitiveTabsContent"],"mappings":";;;;;;;AAIO,MAAM,YAAA,GAAyC;AAAA,EACpD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,WAAA,GAAwC;AAAA,EACnD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,eAAA,GAAkB,cAAwB,SAAS,CAAA;;ACsBhE,MAAM,QAAA,GAAW,UAAA;AAAA,EACf,CAAC,EAAE,IAAA,GAAO,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBACzC,GAAA,CAAC,gBAAgB,QAAA,EAAhB,EAAyB,OAAO,IAAA,EAC/B,QAAA,kBAAA,GAAA,CAACA,UAAc,GAAA,EAAW,GAAG,KAAA,EAC1B,QAAA,EACH,CAAA,EACF;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,MAAA;AAEvB,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChC,IAAA,MAAM,IAAA,GAAO,WAAW,eAAe,CAAA;AAEvC,IAAA,uBACE,GAAA;AAAA,MAACC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,WAAA,CAAY,IAAI,GAAG,SAAS,CAAA;AAAA,QACzC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,UAAU,EAAA,EAAI,GAAG,UAAA,EAAW,EAAG,GAAA,KAAQ;AACzD,IAAA,MAAM,IAAA,GAAO,WAAW,eAAe,CAAA;AACvC,IAAA,MAAM,OAAA,GAAU,uBACd,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,UAAA,CAAW,IAAA,EAAM,IAAA,KAAS,IAAA,GAAO,QAAA,GAAW,QAAQ,CAAA;AAAA,MACpD;AAAA,KAAA,EACH,CAAA,GAEA,QAAA;AAGF,IAAA,IAAI,OAAO,MAAA,EAAW;AACpB,MAAA,uBACE,GAAA;AAAA,QAACC,WAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAO,IAAA;AAAA,UACP,GAAA;AAAA,UACA,WAAW,EAAA,CAAG,YAAA,CAAa,IAAI,CAAA,EAAG,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,UAC7D,GAAG,UAAA;AAAA,UAEJ,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAS,QAAA,EAAA,OAAA,EAAQ;AAAA;AAAA,OACzB;AAAA,IAEJ;AAEA,IAAA,uBACE,GAAA;AAAA,MAACA,WAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAA,CAAG,YAAA,CAAa,IAAI,CAAA,EAAG,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,QAC7D,GAAG,UAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,oBAAA,GAAuB,UAAA;AAAA,EAC3B,CAAC,KAAA,EAAO,GAAA,yBAASC,WAAA,EAAA,EAAqB,GAAA,EAAW,GAAG,KAAA,EAAO;AAC7D,CAAA;AACA,oBAAA,CAAqB,WAAA,GAAc,cAAA;AAEnC,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EACnC,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,iBAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -6,6 +6,10 @@ var primitives_Slider = require('./primitives/Slider.js');
6
6
  var utils = require('./utils-BhM0B89p.js');
7
7
  var primitives_Field = require('./primitives/Field.js');
8
8
 
9
+ const toArray = (value) => {
10
+ if (value === void 0) return void 0;
11
+ return Array.isArray(value) ? value : [value];
12
+ };
9
13
  const Slider = React.forwardRef(
10
14
  ({
11
15
  label,
@@ -16,6 +20,10 @@ const Slider = React.forwardRef(
16
20
  labelProps,
17
21
  disabled,
18
22
  id: idProp,
23
+ value,
24
+ defaultValue,
25
+ onValueChange,
26
+ onValueCommit,
19
27
  ...otherProps
20
28
  }, ref) => {
21
29
  const generatedId = React.useId();
@@ -24,6 +32,19 @@ const Slider = React.forwardRef(
24
32
  const helpTextId = `helpText_${id}`;
25
33
  const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null].filter(Boolean).join(" ") || void 0;
26
34
  const hasField = !!(label || error || helpText);
35
+ const inputShapeIsScalar = value !== void 0 ? !Array.isArray(value) : defaultValue !== void 0 ? !Array.isArray(defaultValue) : false;
36
+ const unwrap = React.useCallback(
37
+ (next) => inputShapeIsScalar ? next[0] : next,
38
+ [inputShapeIsScalar]
39
+ );
40
+ const handleValueChange = React.useCallback(
41
+ (next) => onValueChange?.(unwrap(next)),
42
+ [onValueChange, unwrap]
43
+ );
44
+ const handleValueCommit = React.useCallback(
45
+ (next) => onValueCommit?.(unwrap(next)),
46
+ [onValueCommit, unwrap]
47
+ );
27
48
  const slider = /* @__PURE__ */ jsxRuntime.jsx(
28
49
  primitives_Slider.Slider,
29
50
  {
@@ -34,6 +55,10 @@ const Slider = React.forwardRef(
34
55
  "aria-describedby": ariaDescribedBy,
35
56
  "aria-label": !label ? void 0 : label,
36
57
  className: utils.cn(!hasField && className),
58
+ value: toArray(value),
59
+ defaultValue: toArray(defaultValue),
60
+ onValueChange: onValueChange ? handleValueChange : void 0,
61
+ onValueCommit: onValueCommit ? handleValueCommit : void 0,
37
62
  ...otherProps
38
63
  }
39
64
  );
@@ -64,4 +89,4 @@ const Slider = React.forwardRef(
64
89
  Slider.displayName = "Slider";
65
90
 
66
91
  exports.Slider = Slider;
67
- //# sourceMappingURL=Slider-ICf2eQ6p.js.map
92
+ //# sourceMappingURL=Slider-CRmd_VMs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider-CRmd_VMs.js","sources":["../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useId } from \"react\";\n\nimport { Slider as PrimitiveSlider } from \"src/primitives/Slider\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\ntype SliderValue = number | number[];\n\ntype PrimitiveSliderProps = React.ComponentProps<typeof PrimitiveSlider>;\n\nexport interface SliderProps extends Omit<\n PrimitiveSliderProps,\n \"value\" | \"defaultValue\" | \"onValueChange\" | \"onValueCommit\"\n> {\n /** Current value. Pass a number for a single-thumb slider or an array for a range slider. */\n value?: SliderValue;\n /** Default value (uncontrolled). Shape mirrors `value`. */\n defaultValue?: SliderValue;\n /** Called on every change. Emits a number if `value`/`defaultValue` was a number, an array otherwise. */\n onValueChange?: (value: SliderValue) => void;\n /** Called when the user stops dragging. Emits a number if `value`/`defaultValue` was a number, an array otherwise. */\n onValueCommit?: (value: SliderValue) => void;\n /** Label displayed above the slider. */\n label?: string;\n /** Error message displayed below the slider. */\n error?: string;\n /** Help text displayed below the slider. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Shows a required indicator next to the label. */\n required?: boolean;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Props forwarded to the FieldLabel element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n}\n\nconst toArray = (value: SliderValue | undefined): number[] | undefined => {\n if (value === undefined) return undefined;\n return Array.isArray(value) ? value : [value];\n};\n\nconst Slider = forwardRef<\n React.ComponentRef<typeof PrimitiveSlider>,\n SliderProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n className,\n labelProps,\n disabled,\n id: idProp,\n value,\n defaultValue,\n onValueChange,\n onValueCommit,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const hasField = !!(label || error || helpText);\n\n const inputShapeIsScalar =\n value !== undefined\n ? !Array.isArray(value)\n : defaultValue !== undefined\n ? !Array.isArray(defaultValue)\n : false;\n\n const unwrap = useCallback(\n (next: number[]): SliderValue =>\n inputShapeIsScalar ? (next[0] as number) : next,\n [inputShapeIsScalar]\n );\n\n const handleValueChange = useCallback(\n (next: number[]) => onValueChange?.(unwrap(next)),\n [onValueChange, unwrap]\n );\n\n const handleValueCommit = useCallback(\n (next: number[]) => onValueCommit?.(unwrap(next)),\n [onValueCommit, unwrap]\n );\n\n const slider = (\n <PrimitiveSlider\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-label={!label ? undefined : label}\n className={cn(!hasField && className)}\n value={toArray(value)}\n defaultValue={toArray(defaultValue)}\n onValueChange={onValueChange ? handleValueChange : undefined}\n onValueCommit={onValueCommit ? handleValueCommit : undefined}\n {...otherProps}\n />\n );\n\n if (!hasField) {\n return slider;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {label && (\n <FieldLabel htmlFor={id} {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {slider}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport { Slider };\n"],"names":["forwardRef","useId","useCallback","jsx","PrimitiveSlider","cn","jsxs","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
+ var reactRouterDom = require('react-router-dom');
5
6
  var utils = require('./utils-BhM0B89p.js');
6
7
  var renderIcon = require('./renderIcon-BRrpZu9a.js');
7
8
  var primitives_Tabs = require('./primitives/Tabs.js');
@@ -35,18 +36,31 @@ const TabsListComponent = React.forwardRef(
35
36
  );
36
37
  TabsListComponent.displayName = "Tabs.List";
37
38
  const TabsItemComponent = React.forwardRef(
38
- ({ icon, className, children, ...otherProps }, ref) => {
39
+ ({ icon, className, children, to, ...otherProps }, ref) => {
39
40
  const size = React.useContext(TabsSizeContext);
41
+ const content = icon ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
42
+ renderIcon.renderIcon(icon, size === "lg" ? "size-5" : "size-4"),
43
+ children
44
+ ] }) : children;
45
+ if (to !== void 0) {
46
+ return /* @__PURE__ */ jsxRuntime.jsx(
47
+ primitives_Tabs.TabsTrigger,
48
+ {
49
+ asChild: true,
50
+ ref,
51
+ className: utils.cn(SIZE_CLASSES[size], icon && "gap-1.5", className),
52
+ ...otherProps,
53
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Link, { to, children: content })
54
+ }
55
+ );
56
+ }
40
57
  return /* @__PURE__ */ jsxRuntime.jsx(
41
58
  primitives_Tabs.TabsTrigger,
42
59
  {
43
60
  ref,
44
61
  className: utils.cn(SIZE_CLASSES[size], icon && "gap-1.5", className),
45
62
  ...otherProps,
46
- children: icon ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
47
- renderIcon.renderIcon(icon, size === "lg" ? "size-5" : "size-4"),
48
- children
49
- ] }) : children
63
+ children: content
50
64
  }
51
65
  );
52
66
  }
@@ -63,4 +77,4 @@ const Tabs = Object.assign(TabsRoot, {
63
77
  });
64
78
 
65
79
  exports.Tabs = Tabs;
66
- //# sourceMappingURL=Tabs-pr4xwu6s.js.map
80
+ //# sourceMappingURL=Tabs-COMRjTVU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs-COMRjTVU.js","sources":["../../src/components/Tabs/constants.ts","../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport const SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nexport const LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\nexport const TabsSizeContext = createContext<TabsSize>(\"default\");\n","import React, { forwardRef, useContext } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport {\n Tabs as PrimitiveTabs,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n TabsContent as PrimitiveTabsContent,\n} from \"src/primitives/Tabs\";\n\nimport { SIZE_CLASSES, LIST_HEIGHT, TabsSizeContext } from \"./constants\";\n\ntype LinkTo = React.ComponentProps<typeof Link>[\"to\"];\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {\n /** Size of tab triggers. Applied to all Tabs.Item children. */\n size?: TabsSize;\n}\n\ntype TabsListProps = React.ComponentProps<typeof PrimitiveTabsList>;\n\ninterface TabsItemProps extends React.ComponentProps<\n typeof PrimitiveTabsTrigger\n> {\n /** Icon component, element, or class-name string rendered before the label. */\n icon?: IconProp;\n /** When set, the trigger renders as a react-router-dom Link to this path. */\n to?: LinkTo;\n}\n\ntype TabsContentProps = React.ComponentProps<typeof PrimitiveTabsContent>;\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n ({ size = \"default\", children, ...props }, ref) => (\n <TabsSizeContext.Provider value={size}>\n <PrimitiveTabs ref={ref} {...props}>\n {children}\n </PrimitiveTabs>\n </TabsSizeContext.Provider>\n )\n);\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsListComponent = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsList\n ref={ref}\n className={cn(LIST_HEIGHT[size], className)}\n {...props}\n />\n );\n }\n);\nTabsListComponent.displayName = \"Tabs.List\";\n\nconst TabsItemComponent = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({ icon, className, children, to, ...otherProps }, ref) => {\n const size = useContext(TabsSizeContext);\n const content = icon ? (\n <>\n {renderIcon(icon, size === \"lg\" ? \"size-5\" : \"size-4\")}\n {children}\n </>\n ) : (\n children\n );\n\n if (to !== undefined) {\n return (\n <PrimitiveTabsTrigger\n asChild\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n <Link to={to}>{content}</Link>\n </PrimitiveTabsTrigger>\n );\n }\n\n return (\n <PrimitiveTabsTrigger\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n {content}\n </PrimitiveTabsTrigger>\n );\n }\n);\nTabsItemComponent.displayName = \"Tabs.Item\";\n\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["createContext","forwardRef","jsx","PrimitiveTabs","useContext","PrimitiveTabsList","cn","jsxs","Fragment","renderIcon","PrimitiveTabsTrigger","Link","PrimitiveTabsContent"],"mappings":";;;;;;;;;AAIO,MAAM,YAAA,GAAyC;AAAA,EACpD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,WAAA,GAAwC;AAAA,EACnD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,eAAA,GAAkBA,oBAAwB,SAAS,CAAA;;ACsBhE,MAAM,QAAA,GAAWC,gBAAA;AAAA,EACf,CAAC,EAAE,IAAA,GAAO,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBACzCC,cAAA,CAAC,gBAAgB,QAAA,EAAhB,EAAyB,OAAO,IAAA,EAC/B,QAAA,kBAAAA,cAAA,CAACC,wBAAc,GAAA,EAAW,GAAG,KAAA,EAC1B,QAAA,EACH,CAAA,EACF;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,MAAA;AAEvB,MAAM,iBAAA,GAAoBF,gBAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChC,IAAA,MAAM,IAAA,GAAOG,iBAAW,eAAe,CAAA;AAEvC,IAAA,uBACEF,cAAA;AAAA,MAACG,wBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,QAAA,CAAG,WAAA,CAAY,IAAI,GAAG,SAAS,CAAA;AAAA,QACzC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,iBAAA,GAAoBL,gBAAA;AAAA,EACxB,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,UAAU,EAAA,EAAI,GAAG,UAAA,EAAW,EAAG,GAAA,KAAQ;AACzD,IAAA,MAAM,IAAA,GAAOG,iBAAW,eAAe,CAAA;AACvC,IAAA,MAAM,OAAA,GAAU,uBACdG,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAAC,qBAAA,CAAW,IAAA,EAAM,IAAA,KAAS,IAAA,GAAO,QAAA,GAAW,QAAQ,CAAA;AAAA,MACpD;AAAA,KAAA,EACH,CAAA,GAEA,QAAA;AAGF,IAAA,IAAI,OAAO,MAAA,EAAW;AACpB,MAAA,uBACEP,cAAA;AAAA,QAACQ,2BAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAO,IAAA;AAAA,UACP,GAAA;AAAA,UACA,WAAWJ,QAAA,CAAG,YAAA,CAAa,IAAI,CAAA,EAAG,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,UAC7D,GAAG,UAAA;AAAA,UAEJ,QAAA,kBAAAJ,cAAA,CAACS,mBAAA,EAAA,EAAK,EAAA,EAAS,QAAA,EAAA,OAAA,EAAQ;AAAA;AAAA,OACzB;AAAA,IAEJ;AAEA,IAAA,uBACET,cAAA;AAAA,MAACQ,2BAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAWJ,QAAA,CAAG,YAAA,CAAa,IAAI,CAAA,EAAG,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,QAC7D,GAAG,UAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,oBAAA,GAAuBL,gBAAA;AAAA,EAC3B,CAAC,KAAA,EAAO,GAAA,oCAASW,2BAAA,EAAA,EAAqB,GAAA,EAAW,GAAG,KAAA,EAAO;AAC7D,CAAA;AACA,oBAAA,CAAqB,WAAA,GAAc,cAAA;AAEnC,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EACnC,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,iBAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var Slider = require('../Slider-ICf2eQ6p.js');
3
+ var Slider = require('../Slider-CRmd_VMs.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('../primitives/Slider.js');
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var Tabs = require('../Tabs-pr4xwu6s.js');
3
+ var Tabs = require('../Tabs-COMRjTVU.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
+ require('react-router-dom');
6
7
  require('../utils-BhM0B89p.js');
7
8
  require('../renderIcon-BRrpZu9a.js');
8
9
  require('../primitives/Tabs.js');
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Tabs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -23,11 +23,11 @@ var Progress = require('../Progress-yBpMAzIU.js');
23
23
  var RadioGroup = require('../RadioGroup-6mpFVQr8.js');
24
24
  var Select = require('../Select-DA4PZAwd.js');
25
25
  var Sheet = require('../Sheet-By1W1pFD.js');
26
- var Slider = require('../Slider-ICf2eQ6p.js');
26
+ var Slider = require('../Slider-CRmd_VMs.js');
27
27
  var Spinner = require('../Spinner-DzNBz8al.js');
28
28
  var Stepper = require('../Stepper-DZb25oBH.js');
29
29
  var Switch = require('../Switch-bY6bZw78.js');
30
- var Tabs = require('../Tabs-pr4xwu6s.js');
30
+ var Tabs = require('../Tabs-COMRjTVU.js');
31
31
  var Textarea = require('../Textarea-yWv-66yX.js');
32
32
  var TimePicker = require('../TimePicker-Bj3C0mHS.js');
33
33
  var TimePickerPanel = require('../TimePickerPanel-DX6cjrSN.js');
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var formik = require('formik');
6
6
  var ramda = require('ramda');
7
- var Slider = require('../Slider-ICf2eQ6p.js');
7
+ var Slider = require('../Slider-CRmd_VMs.js');
8
8
  require('../primitives/Slider.js');
9
9
  require('../utils-BhM0B89p.js');
10
10
  require('../index-EyWRfsCG.js');
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sources":["../../../src/formik/Slider.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { useField, useFormikContext, getIn } from \"formik\";\nimport { dissoc } from \"ramda\";\n\nimport { Slider, SliderProps } from \"src/components/Slider\";\n\nexport interface FormikSliderProps extends Omit<\n SliderProps,\n \"name\" | \"onChange\"\n> {\n /** Formik field name. */\n name: string;\n /** Callback fired when the value changes. Also supports onChange for compatibility. */\n onChange?: (value: number[]) => void;\n}\n\nconst FormikSlider = forwardRef<\n React.ComponentRef<typeof Slider>,\n FormikSliderProps\n>(\n (\n {\n name,\n onValueChange: onValueChangeProp,\n onChange: onChangeProp,\n ...otherProps\n },\n ref\n ) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n const { status = {}, setStatus } = useFormikContext();\n const fieldStatus = getIn(status, name);\n\n return (\n <Slider\n ref={ref}\n error={meta.error || fieldStatus || \"\"}\n name={field.name}\n value={field.value}\n onBlur={() => setTouched(true)}\n onValueChange={(value: number[]) => {\n setStatus(dissoc(name, status));\n setValue(value);\n onValueChangeProp?.(value);\n onChangeProp?.(value);\n }}\n {...otherProps}\n />\n );\n }\n);\n\nFormikSlider.displayName = \"FormikSlider\";\n\nexport { FormikSlider };\n"],"names":["forwardRef","useField","useFormikContext","getIn","jsx","Slider","dissoc"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAeA,gBAAA;AAAA,EAInB,CACE;AAAA,IACE,IAAA;AAAA,IACA,aAAA,EAAe,iBAAA;AAAA,IACf,QAAA,EAAU,YAAA;AAAA,IACV,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,CAAC,OAAO,IAAA,EAAM,EAAE,UAAU,UAAA,EAAY,CAAA,GAAIC,eAAA,CAAS,IAAI,CAAA;AAC7D,IAAA,MAAM,EAAE,MAAA,GAAS,EAAC,EAAG,SAAA,KAAcC,uBAAA,EAAiB;AACpD,IAAA,MAAM,WAAA,GAAcC,YAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAEtC,IAAA,uBACEC,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,WAAA,IAAe,EAAA;AAAA,QACpC,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,MAAA,EAAQ,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,QAC7B,aAAA,EAAe,CAAC,KAAA,KAAoB;AAClC,UAAA,SAAA,CAAUC,YAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AAC9B,UAAA,QAAA,CAAS,KAAK,CAAA;AACd,UAAA,iBAAA,GAAoB,KAAK,CAAA;AACzB,UAAA,YAAA,GAAe,KAAK,CAAA;AAAA,QACtB,CAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
1
+ {"version":3,"file":"Slider.js","sources":["../../../src/formik/Slider.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { useField, useFormikContext, getIn } from \"formik\";\nimport { dissoc } from \"ramda\";\n\nimport { Slider, SliderProps } from \"src/components/Slider\";\n\ntype SliderValue = number | number[];\n\nexport interface FormikSliderProps extends Omit<\n SliderProps,\n \"name\" | \"onChange\"\n> {\n /** Formik field name. */\n name: string;\n /** Callback fired when the value changes. Also supports onChange for compatibility. */\n onChange?: (value: SliderValue) => void;\n}\n\nconst FormikSlider = forwardRef<\n React.ComponentRef<typeof Slider>,\n FormikSliderProps\n>(\n (\n {\n name,\n onValueChange: onValueChangeProp,\n onChange: onChangeProp,\n ...otherProps\n },\n ref\n ) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n const { status = {}, setStatus } = useFormikContext();\n const fieldStatus = getIn(status, name);\n\n return (\n <Slider\n ref={ref}\n error={meta.error || fieldStatus || \"\"}\n name={field.name}\n value={field.value}\n onBlur={() => setTouched(true)}\n onValueChange={(value: SliderValue) => {\n setStatus(dissoc(name, status));\n setValue(value);\n onValueChangeProp?.(value);\n onChangeProp?.(value);\n }}\n {...otherProps}\n />\n );\n }\n);\n\nFormikSlider.displayName = \"FormikSlider\";\n\nexport { FormikSlider };\n"],"names":["forwardRef","useField","useFormikContext","getIn","jsx","Slider","dissoc"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAM,YAAA,GAAeA,gBAAA;AAAA,EAInB,CACE;AAAA,IACE,IAAA;AAAA,IACA,aAAA,EAAe,iBAAA;AAAA,IACf,QAAA,EAAU,YAAA;AAAA,IACV,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,CAAC,OAAO,IAAA,EAAM,EAAE,UAAU,UAAA,EAAY,CAAA,GAAIC,eAAA,CAAS,IAAI,CAAA;AAC7D,IAAA,MAAM,EAAE,MAAA,GAAS,EAAC,EAAG,SAAA,KAAcC,uBAAA,EAAiB;AACpD,IAAA,MAAM,WAAA,GAAcC,YAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAEtC,IAAA,uBACEC,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,WAAA,IAAe,EAAA;AAAA,QACpC,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,MAAA,EAAQ,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,QAC7B,aAAA,EAAe,CAAC,KAAA,KAAuB;AACrC,UAAA,SAAA,CAAUC,YAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AAC9B,UAAA,QAAA,CAAS,KAAK,CAAA;AACd,UAAA,iBAAA,GAAoB,KAAK,CAAA;AACzB,UAAA,YAAA,GAAe,KAAK,CAAA;AAAA,QACtB,CAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
@@ -82,7 +82,7 @@ require('../index-BY6wgiQV.js');
82
82
  require('../primitives/Label.js');
83
83
  require('../Switch-bY6bZw78.js');
84
84
  require('../primitives/Switch.js');
85
- require('../Slider-ICf2eQ6p.js');
85
+ require('../Slider-CRmd_VMs.js');
86
86
  require('../primitives/Slider.js');
87
87
  require('../index-EyWRfsCG.js');
88
88
  require('../TreeSelect-qLtRIP-s.js');
package/dist/cjs/index.js CHANGED
@@ -28,11 +28,11 @@ var Progress = require('./Progress-yBpMAzIU.js');
28
28
  var RadioGroup = require('./RadioGroup-6mpFVQr8.js');
29
29
  var Select = require('./Select-DA4PZAwd.js');
30
30
  var Sheet = require('./Sheet-By1W1pFD.js');
31
- var Slider = require('./Slider-ICf2eQ6p.js');
31
+ var Slider = require('./Slider-CRmd_VMs.js');
32
32
  var Spinner = require('./Spinner-DzNBz8al.js');
33
33
  var Stepper = require('./Stepper-DZb25oBH.js');
34
34
  var Switch = require('./Switch-bY6bZw78.js');
35
- var Tabs = require('./Tabs-pr4xwu6s.js');
35
+ var Tabs = require('./Tabs-COMRjTVU.js');
36
36
  var Textarea = require('./Textarea-yWv-66yX.js');
37
37
  var TimePicker = require('./TimePicker-Bj3C0mHS.js');
38
38
  var Toastr = require('./Toastr-CQ-R8VcZ.js');
@@ -1,7 +1,17 @@
1
1
  import React from "react";
2
2
  import { Slider as PrimitiveSlider } from "src/primitives/Slider";
3
3
  import { FieldLabel } from "src/primitives/Field";
4
- export interface SliderProps extends React.ComponentProps<typeof PrimitiveSlider> {
4
+ type SliderValue = number | number[];
5
+ type PrimitiveSliderProps = React.ComponentProps<typeof PrimitiveSlider>;
6
+ export interface SliderProps extends Omit<PrimitiveSliderProps, "value" | "defaultValue" | "onValueChange" | "onValueCommit"> {
7
+ /** Current value. Pass a number for a single-thumb slider or an array for a range slider. */
8
+ value?: SliderValue;
9
+ /** Default value (uncontrolled). Shape mirrors `value`. */
10
+ defaultValue?: SliderValue;
11
+ /** Called on every change. Emits a number if `value`/`defaultValue` was a number, an array otherwise. */
12
+ onValueChange?: (value: SliderValue) => void;
13
+ /** Called when the user stops dragging. Emits a number if `value`/`defaultValue` was a number, an array otherwise. */
14
+ onValueCommit?: (value: SliderValue) => void;
5
15
  /** Label displayed above the slider. */
6
16
  label?: string;
7
17
  /** Error message displayed below the slider. */
@@ -1,4 +1,4 @@
1
- export { S as Slider } from '../Slider-DNcH5X7b.js';
1
+ export { S as Slider } from '../Slider-Bokg8-oi.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../primitives/Slider.js';
@@ -1,6 +1,8 @@
1
1
  import React from "react";
2
+ import { Link } from "react-router-dom";
2
3
  import { type IconProp } from "src/shared/renderIcon";
3
4
  import { Tabs as PrimitiveTabs, TabsTrigger as PrimitiveTabsTrigger } from "src/primitives/Tabs";
5
+ type LinkTo = React.ComponentProps<typeof Link>["to"];
4
6
  type TabsSize = "default" | "lg";
5
7
  export interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {
6
8
  /** Size of tab triggers. Applied to all Tabs.Item children. */
@@ -9,6 +11,8 @@ export interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {
9
11
  interface TabsItemProps extends React.ComponentProps<typeof PrimitiveTabsTrigger> {
10
12
  /** Icon component, element, or class-name string rendered before the label. */
11
13
  icon?: IconProp;
14
+ /** When set, the trigger renders as a react-router-dom Link to this path. */
15
+ to?: LinkTo;
12
16
  }
13
17
  declare const Tabs: React.ForwardRefExoticComponent<Omit<TabsProps, "ref"> & React.RefAttributes<HTMLDivElement>> & {
14
18
  List: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-tabs").TabsListProps & React.RefAttributes<HTMLDivElement> & import("class-variance-authority").VariantProps<(props?: ({
@@ -1,6 +1,7 @@
1
- export { T as Tabs } from '../Tabs-BqlZLpHc.js';
1
+ export { T as Tabs } from '../Tabs-BCUdAnva.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
+ import 'react-router-dom';
4
5
  import '../utils-BJnb9o5c.js';
5
6
  import '../renderIcon-C6twJSqH.js';
6
7
  import '../primitives/Tabs.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Tabs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -21,11 +21,11 @@ export { P as Progress } from '../Progress-DURemsl_.js';
21
21
  export { R as RadioGroup } from '../RadioGroup-BRAVPPc3.js';
22
22
  export { S as Select } from '../Select-ChcG9Sse.js';
23
23
  export { S as Sheet } from '../Sheet-Bw8GVQPS.js';
24
- export { S as Slider } from '../Slider-DNcH5X7b.js';
24
+ export { S as Slider } from '../Slider-Bokg8-oi.js';
25
25
  export { S as Spinner } from '../Spinner-DgV3mILN.js';
26
26
  export { S as Stepper } from '../Stepper-7OpfOfas.js';
27
27
  export { S as Switch } from '../Switch-b4ZAjhRy.js';
28
- export { T as Tabs } from '../Tabs-BqlZLpHc.js';
28
+ export { T as Tabs } from '../Tabs-BCUdAnva.js';
29
29
  export { T as Textarea } from '../Textarea-B2Uhx-Yy.js';
30
30
  export { T as TimePicker } from '../TimePicker-CNz4odcf.js';
31
31
  export { T as TimePickerPanel } from '../TimePickerPanel--KDX5QwS.js';
@@ -1,10 +1,11 @@
1
1
  import React from "react";
2
2
  import { SliderProps } from "src/components/Slider";
3
+ type SliderValue = number | number[];
3
4
  export interface FormikSliderProps extends Omit<SliderProps, "name" | "onChange"> {
4
5
  /** Formik field name. */
5
6
  name: string;
6
7
  /** Callback fired when the value changes. Also supports onChange for compatibility. */
7
- onChange?: (value: number[]) => void;
8
+ onChange?: (value: SliderValue) => void;
8
9
  }
9
10
  declare const FormikSlider: React.ForwardRefExoticComponent<Omit<FormikSliderProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
10
11
  export { FormikSlider };
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { useField, useFormikContext, getIn } from 'formik';
4
4
  import { dissoc } from 'ramda';
5
- import { S as Slider } from '../Slider-DNcH5X7b.js';
5
+ import { S as Slider } from '../Slider-Bokg8-oi.js';
6
6
  import '../primitives/Slider.js';
7
7
  import '../utils-BJnb9o5c.js';
8
8
  import '../index-BfAAoDv6.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sources":["../../src/formik/Slider.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { useField, useFormikContext, getIn } from \"formik\";\nimport { dissoc } from \"ramda\";\n\nimport { Slider, SliderProps } from \"src/components/Slider\";\n\nexport interface FormikSliderProps extends Omit<\n SliderProps,\n \"name\" | \"onChange\"\n> {\n /** Formik field name. */\n name: string;\n /** Callback fired when the value changes. Also supports onChange for compatibility. */\n onChange?: (value: number[]) => void;\n}\n\nconst FormikSlider = forwardRef<\n React.ComponentRef<typeof Slider>,\n FormikSliderProps\n>(\n (\n {\n name,\n onValueChange: onValueChangeProp,\n onChange: onChangeProp,\n ...otherProps\n },\n ref\n ) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n const { status = {}, setStatus } = useFormikContext();\n const fieldStatus = getIn(status, name);\n\n return (\n <Slider\n ref={ref}\n error={meta.error || fieldStatus || \"\"}\n name={field.name}\n value={field.value}\n onBlur={() => setTouched(true)}\n onValueChange={(value: number[]) => {\n setStatus(dissoc(name, status));\n setValue(value);\n onValueChangeProp?.(value);\n onChangeProp?.(value);\n }}\n {...otherProps}\n />\n );\n }\n);\n\nFormikSlider.displayName = \"FormikSlider\";\n\nexport { FormikSlider };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAe,UAAA;AAAA,EAInB,CACE;AAAA,IACE,IAAA;AAAA,IACA,aAAA,EAAe,iBAAA;AAAA,IACf,QAAA,EAAU,YAAA;AAAA,IACV,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,CAAC,OAAO,IAAA,EAAM,EAAE,UAAU,UAAA,EAAY,CAAA,GAAI,QAAA,CAAS,IAAI,CAAA;AAC7D,IAAA,MAAM,EAAE,MAAA,GAAS,EAAC,EAAG,SAAA,KAAc,gBAAA,EAAiB;AACpD,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAEtC,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,WAAA,IAAe,EAAA;AAAA,QACpC,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,MAAA,EAAQ,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,QAC7B,aAAA,EAAe,CAAC,KAAA,KAAoB;AAClC,UAAA,SAAA,CAAU,MAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AAC9B,UAAA,QAAA,CAAS,KAAK,CAAA;AACd,UAAA,iBAAA,GAAoB,KAAK,CAAA;AACzB,UAAA,YAAA,GAAe,KAAK,CAAA;AAAA,QACtB,CAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
1
+ {"version":3,"file":"Slider.js","sources":["../../src/formik/Slider.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { useField, useFormikContext, getIn } from \"formik\";\nimport { dissoc } from \"ramda\";\n\nimport { Slider, SliderProps } from \"src/components/Slider\";\n\ntype SliderValue = number | number[];\n\nexport interface FormikSliderProps extends Omit<\n SliderProps,\n \"name\" | \"onChange\"\n> {\n /** Formik field name. */\n name: string;\n /** Callback fired when the value changes. Also supports onChange for compatibility. */\n onChange?: (value: SliderValue) => void;\n}\n\nconst FormikSlider = forwardRef<\n React.ComponentRef<typeof Slider>,\n FormikSliderProps\n>(\n (\n {\n name,\n onValueChange: onValueChangeProp,\n onChange: onChangeProp,\n ...otherProps\n },\n ref\n ) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n const { status = {}, setStatus } = useFormikContext();\n const fieldStatus = getIn(status, name);\n\n return (\n <Slider\n ref={ref}\n error={meta.error || fieldStatus || \"\"}\n name={field.name}\n value={field.value}\n onBlur={() => setTouched(true)}\n onValueChange={(value: SliderValue) => {\n setStatus(dissoc(name, status));\n setValue(value);\n onValueChangeProp?.(value);\n onChangeProp?.(value);\n }}\n {...otherProps}\n />\n );\n }\n);\n\nFormikSlider.displayName = \"FormikSlider\";\n\nexport { FormikSlider };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAM,YAAA,GAAe,UAAA;AAAA,EAInB,CACE;AAAA,IACE,IAAA;AAAA,IACA,aAAA,EAAe,iBAAA;AAAA,IACf,QAAA,EAAU,YAAA;AAAA,IACV,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,CAAC,OAAO,IAAA,EAAM,EAAE,UAAU,UAAA,EAAY,CAAA,GAAI,QAAA,CAAS,IAAI,CAAA;AAC7D,IAAA,MAAM,EAAE,MAAA,GAAS,EAAC,EAAG,SAAA,KAAc,gBAAA,EAAiB;AACpD,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAEtC,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,WAAA,IAAe,EAAA;AAAA,QACpC,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,MAAA,EAAQ,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,QAC7B,aAAA,EAAe,CAAC,KAAA,KAAuB;AACrC,UAAA,SAAA,CAAU,MAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AAC9B,UAAA,QAAA,CAAS,KAAK,CAAA;AACd,UAAA,iBAAA,GAAoB,KAAK,CAAA;AACzB,UAAA,YAAA,GAAe,KAAK,CAAA;AAAA,QACtB,CAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
@@ -80,7 +80,7 @@ import '../index-d0BBQf5t.js';
80
80
  import '../primitives/Label.js';
81
81
  import '../Switch-b4ZAjhRy.js';
82
82
  import '../primitives/Switch.js';
83
- import '../Slider-DNcH5X7b.js';
83
+ import '../Slider-Bokg8-oi.js';
84
84
  import '../primitives/Slider.js';
85
85
  import '../index-BfAAoDv6.js';
86
86
  import '../TreeSelect-BwF2rY6f.js';
package/dist/index.js CHANGED
@@ -27,11 +27,11 @@ export { P as Progress } from './Progress-DURemsl_.js';
27
27
  export { R as RadioGroup } from './RadioGroup-BRAVPPc3.js';
28
28
  export { S as Select } from './Select-ChcG9Sse.js';
29
29
  export { S as Sheet } from './Sheet-Bw8GVQPS.js';
30
- export { S as Slider } from './Slider-DNcH5X7b.js';
30
+ export { S as Slider } from './Slider-Bokg8-oi.js';
31
31
  export { S as Spinner } from './Spinner-DgV3mILN.js';
32
32
  export { S as Stepper } from './Stepper-7OpfOfas.js';
33
33
  export { S as Switch } from './Switch-b4ZAjhRy.js';
34
- export { T as Tabs } from './Tabs-BqlZLpHc.js';
34
+ export { T as Tabs } from './Tabs-BCUdAnva.js';
35
35
  export { T as Textarea } from './Textarea-B2Uhx-Yy.js';
36
36
  export { T as TimePicker } from './TimePicker-CNz4odcf.js';
37
37
  export { T as Toastr } from './Toastr-tmAtpmwv.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-atoms",
3
- "version": "1.0.76",
3
+ "version": "1.0.78",
4
4
  "author": "BigBinary",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"Slider-DNcH5X7b.js","sources":["../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { Slider as PrimitiveSlider } from \"src/primitives/Slider\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\nexport interface SliderProps extends React.ComponentProps<\n typeof PrimitiveSlider\n> {\n /** Label displayed above the slider. */\n label?: string;\n /** Error message displayed below the slider. */\n error?: string;\n /** Help text displayed below the slider. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Shows a required indicator next to the label. */\n required?: boolean;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Props forwarded to the FieldLabel element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n}\n\nconst Slider = forwardRef<\n React.ComponentRef<typeof PrimitiveSlider>,\n SliderProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n className,\n labelProps,\n disabled,\n id: idProp,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const hasField = !!(label || error || helpText);\n\n const slider = (\n <PrimitiveSlider\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-label={!label ? undefined : label}\n className={cn(!hasField && className)}\n {...otherProps}\n />\n );\n\n if (!hasField) {\n return slider;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {label && (\n <FieldLabel htmlFor={id} {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {slider}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport { Slider };\n"],"names":["PrimitiveSlider"],"mappings":";;;;;;AA6BA,MAAM,MAAA,GAAS,UAAA;AAAA,EAIb,CACE;AAAA,IACE,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,EAAA,EAAI,MAAA;AAAA,IACJ,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,cAAc,KAAA,EAAM;AAC1B,IAAA,MAAM,KAAK,MAAA,IAAU,WAAA;AACrB,IAAA,MAAM,OAAA,GAAU,SAAS,EAAE,CAAA,CAAA;AAC3B,IAAA,MAAM,UAAA,GAAa,YAAY,EAAE,CAAA,CAAA;AAEjC,IAAA,MAAM,eAAA,GACJ,CAAC,KAAA,GAAQ,OAAA,GAAU,MAAM,QAAA,GAAW,UAAA,GAAa,IAAI,CAAA,CAClD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAElB,IAAA,MAAM,QAAA,GAAW,CAAC,EAAE,KAAA,IAAS,KAAA,IAAS,QAAA,CAAA;AAEtC,IAAA,MAAM,MAAA,mBACJ,GAAA;AAAA,MAACA,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,QACzB,kBAAA,EAAkB,eAAA;AAAA,QAClB,YAAA,EAAY,CAAC,KAAA,GAAQ,MAAA,GAAY,KAAA;AAAA,QACjC,SAAA,EAAW,EAAA,CAAG,CAAC,QAAA,IAAY,SAAS,CAAA;AAAA,QACnC,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,QACzB,SAAA;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,IAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAS,EAAA,EAAK,GAAG,UAAA,EAC1B,QAAA,EAAA;AAAA,YAAA,KAAA;AAAA,YACA,4BACC,GAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAU,oBAAmB,QAAA,EAAA,GAAA,EAEtD;AAAA,WAAA,EAEJ,CAAA;AAAA,+BAED,YAAA,EAAA,EACE,QAAA,EAAA;AAAA,YAAA,MAAA;AAAA,YACA,CAAC,CAAC,KAAA,wBAAU,UAAA,EAAA,EAAW,EAAA,EAAI,SAAU,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,YAC3C,QAAA,oBACC,GAAA,CAAC,gBAAA,EAAA,EAAiB,EAAA,EAAI,YAAa,QAAA,EAAA,QAAA,EAAS;AAAA,WAAA,EAEhD;AAAA;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tabs-BqlZLpHc.js","sources":["../src/components/Tabs/constants.ts","../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport const SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nexport const LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\nexport const TabsSizeContext = createContext<TabsSize>(\"default\");\n","import React, { forwardRef, useContext } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport {\n Tabs as PrimitiveTabs,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n TabsContent as PrimitiveTabsContent,\n} from \"src/primitives/Tabs\";\n\nimport { SIZE_CLASSES, LIST_HEIGHT, TabsSizeContext } from \"./constants\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {\n /** Size of tab triggers. Applied to all Tabs.Item children. */\n size?: TabsSize;\n}\n\ntype TabsListProps = React.ComponentProps<typeof PrimitiveTabsList>;\n\ninterface TabsItemProps extends React.ComponentProps<\n typeof PrimitiveTabsTrigger\n> {\n /** Icon component, element, or class-name string rendered before the label. */\n icon?: IconProp;\n}\n\ntype TabsContentProps = React.ComponentProps<typeof PrimitiveTabsContent>;\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n ({ size = \"default\", children, ...props }, ref) => (\n <TabsSizeContext.Provider value={size}>\n <PrimitiveTabs ref={ref} {...props}>\n {children}\n </PrimitiveTabs>\n </TabsSizeContext.Provider>\n )\n);\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsListComponent = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsList\n ref={ref}\n className={cn(LIST_HEIGHT[size], className)}\n {...props}\n />\n );\n }\n);\nTabsListComponent.displayName = \"Tabs.List\";\n\nconst TabsItemComponent = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({ icon, className, children, ...otherProps }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsTrigger\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n {icon ? (\n <>\n {renderIcon(icon, size === \"lg\" ? \"size-5\" : \"size-4\")}\n {children}\n </>\n ) : (\n children\n )}\n </PrimitiveTabsTrigger>\n );\n }\n);\nTabsItemComponent.displayName = \"Tabs.Item\";\n\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["PrimitiveTabs","PrimitiveTabsList","PrimitiveTabsTrigger","PrimitiveTabsContent"],"mappings":";;;;;;AAIO,MAAM,YAAA,GAAyC;AAAA,EACpD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,WAAA,GAAwC;AAAA,EACnD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,eAAA,GAAkB,cAAwB,SAAS,CAAA;;ACiBhE,MAAM,QAAA,GAAW,UAAA;AAAA,EACf,CAAC,EAAE,IAAA,GAAO,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBACzC,GAAA,CAAC,gBAAgB,QAAA,EAAhB,EAAyB,OAAO,IAAA,EAC/B,QAAA,kBAAA,GAAA,CAACA,UAAc,GAAA,EAAW,GAAG,KAAA,EAC1B,QAAA,EACH,CAAA,EACF;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,MAAA;AAEvB,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChC,IAAA,MAAM,IAAA,GAAO,WAAW,eAAe,CAAA;AAEvC,IAAA,uBACE,GAAA;AAAA,MAACC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,WAAA,CAAY,IAAI,GAAG,SAAS,CAAA;AAAA,QACzC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,UAAU,GAAG,UAAA,IAAc,GAAA,KAAQ;AACrD,IAAA,MAAM,IAAA,GAAO,WAAW,eAAe,CAAA;AAEvC,IAAA,uBACE,GAAA;AAAA,MAACC,WAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAA,CAAG,YAAA,CAAa,IAAI,CAAA,EAAG,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,QAC7D,GAAG,UAAA;AAAA,QAEH,iCACC,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,UAAA,CAAW,IAAA,EAAM,IAAA,KAAS,IAAA,GAAO,QAAA,GAAW,QAAQ,CAAA;AAAA,UACpD;AAAA,SAAA,EACH,CAAA,GAEA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,oBAAA,GAAuB,UAAA;AAAA,EAC3B,CAAC,KAAA,EAAO,GAAA,yBAASC,WAAA,EAAA,EAAqB,GAAA,EAAW,GAAG,KAAA,EAAO;AAC7D,CAAA;AACA,oBAAA,CAAqB,WAAA,GAAc,cAAA;AAEnC,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EACnC,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,iBAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Slider-ICf2eQ6p.js","sources":["../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { Slider as PrimitiveSlider } from \"src/primitives/Slider\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\nexport interface SliderProps extends React.ComponentProps<\n typeof PrimitiveSlider\n> {\n /** Label displayed above the slider. */\n label?: string;\n /** Error message displayed below the slider. */\n error?: string;\n /** Help text displayed below the slider. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Shows a required indicator next to the label. */\n required?: boolean;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Props forwarded to the FieldLabel element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n}\n\nconst Slider = forwardRef<\n React.ComponentRef<typeof PrimitiveSlider>,\n SliderProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n className,\n labelProps,\n disabled,\n id: idProp,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const hasField = !!(label || error || helpText);\n\n const slider = (\n <PrimitiveSlider\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-label={!label ? undefined : label}\n className={cn(!hasField && className)}\n {...otherProps}\n />\n );\n\n if (!hasField) {\n return slider;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {label && (\n <FieldLabel htmlFor={id} {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {slider}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport { Slider };\n"],"names":["forwardRef","useId","jsx","PrimitiveSlider","cn","jsxs","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":";;;;;;;;AA6BA,MAAM,MAAA,GAASA,gBAAA;AAAA,EAIb,CACE;AAAA,IACE,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,EAAA,EAAI,MAAA;AAAA,IACJ,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,cAAcC,WAAA,EAAM;AAC1B,IAAA,MAAM,KAAK,MAAA,IAAU,WAAA;AACrB,IAAA,MAAM,OAAA,GAAU,SAAS,EAAE,CAAA,CAAA;AAC3B,IAAA,MAAM,UAAA,GAAa,YAAY,EAAE,CAAA,CAAA;AAEjC,IAAA,MAAM,eAAA,GACJ,CAAC,KAAA,GAAQ,OAAA,GAAU,MAAM,QAAA,GAAW,UAAA,GAAa,IAAI,CAAA,CAClD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAElB,IAAA,MAAM,QAAA,GAAW,CAAC,EAAE,KAAA,IAAS,KAAA,IAAS,QAAA,CAAA;AAEtC,IAAA,MAAM,MAAA,mBACJC,cAAA;AAAA,MAACC,wBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,QACzB,kBAAA,EAAkB,eAAA;AAAA,QAClB,YAAA,EAAY,CAAC,KAAA,GAAQ,MAAA,GAAY,KAAA;AAAA,QACjC,SAAA,EAAWC,QAAA,CAAG,CAAC,QAAA,IAAY,SAAS,CAAA;AAAA,QACnC,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,uBACEC,eAAA;AAAA,MAACC,sBAAA;AAAA,MAAA;AAAA,QACC,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,QACzB,SAAA;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,KAAA,oBACCD,eAAA,CAACE,2BAAA,EAAA,EAAW,OAAA,EAAS,EAAA,EAAK,GAAG,UAAA,EAC1B,QAAA,EAAA;AAAA,YAAA,KAAA;AAAA,YACA,4BACCL,cAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAU,oBAAmB,QAAA,EAAA,GAAA,EAEtD;AAAA,WAAA,EAEJ,CAAA;AAAA,0CAEDM,6BAAA,EAAA,EACE,QAAA,EAAA;AAAA,YAAA,MAAA;AAAA,YACA,CAAC,CAAC,KAAA,mCAAUC,2BAAA,EAAA,EAAW,EAAA,EAAI,SAAU,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,YAC3C,QAAA,oBACCP,cAAA,CAACQ,iCAAA,EAAA,EAAiB,EAAA,EAAI,YAAa,QAAA,EAAA,QAAA,EAAS;AAAA,WAAA,EAEhD;AAAA;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tabs-pr4xwu6s.js","sources":["../../src/components/Tabs/constants.ts","../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport const SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nexport const LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\nexport const TabsSizeContext = createContext<TabsSize>(\"default\");\n","import React, { forwardRef, useContext } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport {\n Tabs as PrimitiveTabs,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n TabsContent as PrimitiveTabsContent,\n} from \"src/primitives/Tabs\";\n\nimport { SIZE_CLASSES, LIST_HEIGHT, TabsSizeContext } from \"./constants\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {\n /** Size of tab triggers. Applied to all Tabs.Item children. */\n size?: TabsSize;\n}\n\ntype TabsListProps = React.ComponentProps<typeof PrimitiveTabsList>;\n\ninterface TabsItemProps extends React.ComponentProps<\n typeof PrimitiveTabsTrigger\n> {\n /** Icon component, element, or class-name string rendered before the label. */\n icon?: IconProp;\n}\n\ntype TabsContentProps = React.ComponentProps<typeof PrimitiveTabsContent>;\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n ({ size = \"default\", children, ...props }, ref) => (\n <TabsSizeContext.Provider value={size}>\n <PrimitiveTabs ref={ref} {...props}>\n {children}\n </PrimitiveTabs>\n </TabsSizeContext.Provider>\n )\n);\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsListComponent = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsList\n ref={ref}\n className={cn(LIST_HEIGHT[size], className)}\n {...props}\n />\n );\n }\n);\nTabsListComponent.displayName = \"Tabs.List\";\n\nconst TabsItemComponent = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({ icon, className, children, ...otherProps }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsTrigger\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n {icon ? (\n <>\n {renderIcon(icon, size === \"lg\" ? \"size-5\" : \"size-4\")}\n {children}\n </>\n ) : (\n children\n )}\n </PrimitiveTabsTrigger>\n );\n }\n);\nTabsItemComponent.displayName = \"Tabs.Item\";\n\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["createContext","forwardRef","jsx","PrimitiveTabs","useContext","PrimitiveTabsList","cn","PrimitiveTabsTrigger","jsxs","Fragment","renderIcon","PrimitiveTabsContent"],"mappings":";;;;;;;;AAIO,MAAM,YAAA,GAAyC;AAAA,EACpD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,WAAA,GAAwC;AAAA,EACnD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,eAAA,GAAkBA,oBAAwB,SAAS,CAAA;;ACiBhE,MAAM,QAAA,GAAWC,gBAAA;AAAA,EACf,CAAC,EAAE,IAAA,GAAO,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBACzCC,cAAA,CAAC,gBAAgB,QAAA,EAAhB,EAAyB,OAAO,IAAA,EAC/B,QAAA,kBAAAA,cAAA,CAACC,wBAAc,GAAA,EAAW,GAAG,KAAA,EAC1B,QAAA,EACH,CAAA,EACF;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,MAAA;AAEvB,MAAM,iBAAA,GAAoBF,gBAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChC,IAAA,MAAM,IAAA,GAAOG,iBAAW,eAAe,CAAA;AAEvC,IAAA,uBACEF,cAAA;AAAA,MAACG,wBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,QAAA,CAAG,WAAA,CAAY,IAAI,GAAG,SAAS,CAAA;AAAA,QACzC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,iBAAA,GAAoBL,gBAAA;AAAA,EACxB,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,UAAU,GAAG,UAAA,IAAc,GAAA,KAAQ;AACrD,IAAA,MAAM,IAAA,GAAOG,iBAAW,eAAe,CAAA;AAEvC,IAAA,uBACEF,cAAA;AAAA,MAACK,2BAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAWD,QAAA,CAAG,YAAA,CAAa,IAAI,CAAA,EAAG,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,QAC7D,GAAG,UAAA;AAAA,QAEH,iCACCE,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAAC,qBAAA,CAAW,IAAA,EAAM,IAAA,KAAS,IAAA,GAAO,QAAA,GAAW,QAAQ,CAAA;AAAA,UACpD;AAAA,SAAA,EACH,CAAA,GAEA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,oBAAA,GAAuBT,gBAAA;AAAA,EAC3B,CAAC,KAAA,EAAO,GAAA,oCAASU,2BAAA,EAAA,EAAqB,GAAA,EAAW,GAAG,KAAA,EAAO;AAC7D,CAAA;AACA,oBAAA,CAAqB,WAAA,GAAc,cAAA;AAEnC,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EACnC,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,iBAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC;;;;"}