@overmap-ai/blocks 1.0.40-improvements.1 → 1.0.40-improvements.2

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.
@@ -0,0 +1,6 @@
1
+ import { ComponentPropsWithRef } from 'react';
2
+ import * as RadixRadioGroup from "@radix-ui/react-radio-group";
3
+ export interface RatingItemProps extends Omit<ComponentPropsWithRef<typeof RadixRadioGroup.Item>, "value"> {
4
+ value: number;
5
+ }
6
+ export declare const RatingItem: import('react').NamedExoticComponent<RatingItemProps>;
@@ -0,0 +1,5 @@
1
+ import { ComponentPropsWithRef } from 'react';
2
+ import * as RadixRadioGroup from "@radix-ui/react-radio-group";
3
+ export interface RatingItemIndicatorProps extends ComponentPropsWithRef<typeof RadixRadioGroup.Indicator> {
4
+ }
5
+ export declare const RatingItemIndicator: import('react').NamedExoticComponent<RatingItemIndicatorProps>;
@@ -0,0 +1,8 @@
1
+ import { ComponentPropsWithRef } from 'react';
2
+ import * as RadixRadioGroup from "@radix-ui/react-radio-group";
3
+ export interface RatingRootProps extends Omit<ComponentPropsWithRef<typeof RadixRadioGroup.Root>, "defaultValue" | "value" | "onValueChange"> {
4
+ defaultValue?: number;
5
+ value?: number | null;
6
+ onValueChange?: (value: number) => void;
7
+ }
8
+ export declare const RatingRoot: import('react').NamedExoticComponent<RatingRootProps>;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export interface IRatingRootContext {
3
+ value: number | null;
4
+ }
5
+ export declare const RatingRootContext: import('react').Context<IRatingRootContext>;
6
+ export interface IRatingItemContext {
7
+ value: number;
8
+ }
9
+ export declare const RatingItemContext: import('react').Context<IRatingItemContext>;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export * from './Item';
3
+ export * from './ItemIndicator';
4
+ export * from './Root';
5
+ export declare const Rating: {
6
+ Item: import('react').NamedExoticComponent<import('./Item').RatingItemProps>;
7
+ ItemIndicator: import('react').NamedExoticComponent<import('./ItemIndicator').RatingItemIndicatorProps>;
8
+ Root: import('react').NamedExoticComponent<import('./Root').RatingRootProps>;
9
+ };
package/dist/blocks.js CHANGED
@@ -4702,6 +4702,65 @@ const RadioGroup = {
4702
4702
  Item: RadioGroupItem,
4703
4703
  Root: RadioGroupRoot
4704
4704
  };
4705
+ const RatingRootContext = createContext({});
4706
+ const RatingItemContext = createContext({});
4707
+ const RatingItem = memo((props) => {
4708
+ const { ref, children, value, ...rest } = props;
4709
+ const { value: activeValue } = use(RatingRootContext);
4710
+ const active = !!activeValue && value <= activeValue;
4711
+ const contextValue = useMemo(() => ({ value }), [value]);
4712
+ return /* @__PURE__ */ jsx(RadixRadioGroup.Item, { ref, value: value.toString(), "data-active": active, ...rest, children: /* @__PURE__ */ jsx(RatingItemContext, { value: contextValue, children }) });
4713
+ });
4714
+ RatingItem.displayName = "RatingItem";
4715
+ const RatingItemIndicator = memo((props) => {
4716
+ const { ref, children, forceMount, ...rest } = props;
4717
+ const { value: activeValue } = use(RatingRootContext);
4718
+ const { value } = use(RatingItemContext);
4719
+ const active = !!activeValue && value <= activeValue;
4720
+ return /* @__PURE__ */ jsx(
4721
+ RadixRadioGroup.Indicator,
4722
+ {
4723
+ ref,
4724
+ forceMount: forceMount ?? (active || void 0),
4725
+ "data-active": active,
4726
+ ...rest,
4727
+ children
4728
+ }
4729
+ );
4730
+ });
4731
+ RatingItemIndicator.displayName = "RatingItemIndicator";
4732
+ const RatingRoot = memo((props) => {
4733
+ const { ref, children, defaultValue, value: controlledValue, onValueChange, ...rest } = props;
4734
+ const [value, setValue] = useControlledState(defaultValue ?? null, controlledValue, onValueChange);
4735
+ const handleValueChange = useCallback(
4736
+ (value2) => {
4737
+ setValue(parseInt(value2));
4738
+ },
4739
+ [setValue]
4740
+ );
4741
+ const contextValue = useMemo(
4742
+ () => ({
4743
+ value
4744
+ }),
4745
+ [value]
4746
+ );
4747
+ return /* @__PURE__ */ jsx(
4748
+ RadixRadioGroup.Root,
4749
+ {
4750
+ ref,
4751
+ value: value ? value.toString() : null,
4752
+ onValueChange: handleValueChange,
4753
+ ...rest,
4754
+ children: /* @__PURE__ */ jsx(RatingRootContext, { value: contextValue, children })
4755
+ }
4756
+ );
4757
+ });
4758
+ RatingRoot.displayName = "RatingRoot";
4759
+ const Rating = {
4760
+ Item: RatingItem,
4761
+ ItemIndicator: RatingItemIndicator,
4762
+ Root: RatingRoot
4763
+ };
4705
4764
  const segmentedControlRootCva = cva(
4706
4765
  ["shrink-0", "transition-colors", "inline-flex", "box-border", "min-w-max", "text-center"],
4707
4766
  {
@@ -6595,6 +6654,10 @@ export {
6595
6654
  RadioGroupIndicator,
6596
6655
  RadioGroupItem,
6597
6656
  RadioGroupRoot,
6657
+ Rating,
6658
+ RatingItem,
6659
+ RatingItemIndicator,
6660
+ RatingRoot,
6598
6661
  SegmentedControl,
6599
6662
  SegmentedControlItem,
6600
6663
  SegmentedControlRoot,