index.mjs 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. import $jFibJ$babelruntimehelpersesmextends from "@babel/runtime/helpers/esm/extends";
  2. import $jFibJ$react from "react";
  3. import {createContextScope as $jFibJ$createContextScope} from "@radix-ui/react-context";
  4. import {Primitive as $jFibJ$Primitive} from "@radix-ui/react-primitive";
  5. import {createRovingFocusGroupScope as $jFibJ$createRovingFocusGroupScope, Root as $jFibJ$Root, Item as $jFibJ$Item} from "@radix-ui/react-roving-focus";
  6. import {Toggle as $jFibJ$Toggle} from "@radix-ui/react-toggle";
  7. import {useControllableState as $jFibJ$useControllableState} from "@radix-ui/react-use-controllable-state";
  8. import {useDirection as $jFibJ$useDirection} from "@radix-ui/react-direction";
  9. /* -------------------------------------------------------------------------------------------------
  10. * ToggleGroup
  11. * -----------------------------------------------------------------------------------------------*/ const $6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME = 'ToggleGroup';
  12. const [$6c1fd9e6a8969628$var$createToggleGroupContext, $6c1fd9e6a8969628$export$d1c7c4bcd9f26dd4] = $jFibJ$createContextScope($6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME, [
  13. $jFibJ$createRovingFocusGroupScope
  14. ]);
  15. const $6c1fd9e6a8969628$var$useRovingFocusGroupScope = $jFibJ$createRovingFocusGroupScope();
  16. const $6c1fd9e6a8969628$export$af3ec21f6cfb5e30 = /*#__PURE__*/ $jFibJ$react.forwardRef((props, forwardedRef)=>{
  17. const { type: type , ...toggleGroupProps } = props;
  18. if (type === 'single') {
  19. const singleProps = toggleGroupProps;
  20. return /*#__PURE__*/ $jFibJ$react.createElement($6c1fd9e6a8969628$var$ToggleGroupImplSingle, $jFibJ$babelruntimehelpersesmextends({}, singleProps, {
  21. ref: forwardedRef
  22. }));
  23. }
  24. if (type === 'multiple') {
  25. const multipleProps = toggleGroupProps;
  26. return /*#__PURE__*/ $jFibJ$react.createElement($6c1fd9e6a8969628$var$ToggleGroupImplMultiple, $jFibJ$babelruntimehelpersesmextends({}, multipleProps, {
  27. ref: forwardedRef
  28. }));
  29. }
  30. throw new Error(`Missing prop \`type\` expected on \`${$6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME}\``);
  31. });
  32. /*#__PURE__*/ Object.assign($6c1fd9e6a8969628$export$af3ec21f6cfb5e30, {
  33. displayName: $6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME
  34. });
  35. /* -----------------------------------------------------------------------------------------------*/ const [$6c1fd9e6a8969628$var$ToggleGroupValueProvider, $6c1fd9e6a8969628$var$useToggleGroupValueContext] = $6c1fd9e6a8969628$var$createToggleGroupContext($6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME);
  36. const $6c1fd9e6a8969628$var$ToggleGroupImplSingle = /*#__PURE__*/ $jFibJ$react.forwardRef((props, forwardedRef)=>{
  37. const { value: valueProp , defaultValue: defaultValue , onValueChange: onValueChange = ()=>{} , ...toggleGroupSingleProps } = props;
  38. const [value, setValue] = $jFibJ$useControllableState({
  39. prop: valueProp,
  40. defaultProp: defaultValue,
  41. onChange: onValueChange
  42. });
  43. return /*#__PURE__*/ $jFibJ$react.createElement($6c1fd9e6a8969628$var$ToggleGroupValueProvider, {
  44. scope: props.__scopeToggleGroup,
  45. type: "single",
  46. value: value ? [
  47. value
  48. ] : [],
  49. onItemActivate: setValue,
  50. onItemDeactivate: $jFibJ$react.useCallback(()=>setValue('')
  51. , [
  52. setValue
  53. ])
  54. }, /*#__PURE__*/ $jFibJ$react.createElement($6c1fd9e6a8969628$var$ToggleGroupImpl, $jFibJ$babelruntimehelpersesmextends({}, toggleGroupSingleProps, {
  55. ref: forwardedRef
  56. })));
  57. });
  58. const $6c1fd9e6a8969628$var$ToggleGroupImplMultiple = /*#__PURE__*/ $jFibJ$react.forwardRef((props, forwardedRef)=>{
  59. const { value: valueProp , defaultValue: defaultValue , onValueChange: onValueChange = ()=>{} , ...toggleGroupMultipleProps } = props;
  60. const [value1 = [], setValue] = $jFibJ$useControllableState({
  61. prop: valueProp,
  62. defaultProp: defaultValue,
  63. onChange: onValueChange
  64. });
  65. const handleButtonActivate = $jFibJ$react.useCallback((itemValue)=>setValue((prevValue = [])=>[
  66. ...prevValue,
  67. itemValue
  68. ]
  69. )
  70. , [
  71. setValue
  72. ]);
  73. const handleButtonDeactivate = $jFibJ$react.useCallback((itemValue)=>setValue((prevValue = [])=>prevValue.filter((value)=>value !== itemValue
  74. )
  75. )
  76. , [
  77. setValue
  78. ]);
  79. return /*#__PURE__*/ $jFibJ$react.createElement($6c1fd9e6a8969628$var$ToggleGroupValueProvider, {
  80. scope: props.__scopeToggleGroup,
  81. type: "multiple",
  82. value: value1,
  83. onItemActivate: handleButtonActivate,
  84. onItemDeactivate: handleButtonDeactivate
  85. }, /*#__PURE__*/ $jFibJ$react.createElement($6c1fd9e6a8969628$var$ToggleGroupImpl, $jFibJ$babelruntimehelpersesmextends({}, toggleGroupMultipleProps, {
  86. ref: forwardedRef
  87. })));
  88. });
  89. /*#__PURE__*/ Object.assign($6c1fd9e6a8969628$export$af3ec21f6cfb5e30, {
  90. displayName: $6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME
  91. });
  92. /* -----------------------------------------------------------------------------------------------*/ const [$6c1fd9e6a8969628$var$ToggleGroupContext, $6c1fd9e6a8969628$var$useToggleGroupContext] = $6c1fd9e6a8969628$var$createToggleGroupContext($6c1fd9e6a8969628$var$TOGGLE_GROUP_NAME);
  93. const $6c1fd9e6a8969628$var$ToggleGroupImpl = /*#__PURE__*/ $jFibJ$react.forwardRef((props, forwardedRef)=>{
  94. const { __scopeToggleGroup: __scopeToggleGroup , disabled: disabled = false , rovingFocus: rovingFocus = true , orientation: orientation , dir: dir , loop: loop = true , ...toggleGroupProps } = props;
  95. const rovingFocusGroupScope = $6c1fd9e6a8969628$var$useRovingFocusGroupScope(__scopeToggleGroup);
  96. const direction = $jFibJ$useDirection(dir);
  97. const commonProps = {
  98. role: 'group',
  99. dir: direction,
  100. ...toggleGroupProps
  101. };
  102. return /*#__PURE__*/ $jFibJ$react.createElement($6c1fd9e6a8969628$var$ToggleGroupContext, {
  103. scope: __scopeToggleGroup,
  104. rovingFocus: rovingFocus,
  105. disabled: disabled
  106. }, rovingFocus ? /*#__PURE__*/ $jFibJ$react.createElement($jFibJ$Root, $jFibJ$babelruntimehelpersesmextends({
  107. asChild: true
  108. }, rovingFocusGroupScope, {
  109. orientation: orientation,
  110. dir: direction,
  111. loop: loop
  112. }), /*#__PURE__*/ $jFibJ$react.createElement($jFibJ$Primitive.div, $jFibJ$babelruntimehelpersesmextends({}, commonProps, {
  113. ref: forwardedRef
  114. }))) : /*#__PURE__*/ $jFibJ$react.createElement($jFibJ$Primitive.div, $jFibJ$babelruntimehelpersesmextends({}, commonProps, {
  115. ref: forwardedRef
  116. })));
  117. });
  118. /* -------------------------------------------------------------------------------------------------
  119. * ToggleGroupItem
  120. * -----------------------------------------------------------------------------------------------*/ const $6c1fd9e6a8969628$var$ITEM_NAME = 'ToggleGroupItem';
  121. const $6c1fd9e6a8969628$export$b453109e13abe10b = /*#__PURE__*/ $jFibJ$react.forwardRef((props, forwardedRef)=>{
  122. const valueContext = $6c1fd9e6a8969628$var$useToggleGroupValueContext($6c1fd9e6a8969628$var$ITEM_NAME, props.__scopeToggleGroup);
  123. const context = $6c1fd9e6a8969628$var$useToggleGroupContext($6c1fd9e6a8969628$var$ITEM_NAME, props.__scopeToggleGroup);
  124. const rovingFocusGroupScope = $6c1fd9e6a8969628$var$useRovingFocusGroupScope(props.__scopeToggleGroup);
  125. const pressed = valueContext.value.includes(props.value);
  126. const disabled = context.disabled || props.disabled;
  127. const commonProps = {
  128. ...props,
  129. pressed: pressed,
  130. disabled: disabled
  131. };
  132. const ref = $jFibJ$react.useRef(null);
  133. return context.rovingFocus ? /*#__PURE__*/ $jFibJ$react.createElement($jFibJ$Item, $jFibJ$babelruntimehelpersesmextends({
  134. asChild: true
  135. }, rovingFocusGroupScope, {
  136. focusable: !disabled,
  137. active: pressed,
  138. ref: ref
  139. }), /*#__PURE__*/ $jFibJ$react.createElement($6c1fd9e6a8969628$var$ToggleGroupItemImpl, $jFibJ$babelruntimehelpersesmextends({}, commonProps, {
  140. ref: forwardedRef
  141. }))) : /*#__PURE__*/ $jFibJ$react.createElement($6c1fd9e6a8969628$var$ToggleGroupItemImpl, $jFibJ$babelruntimehelpersesmextends({}, commonProps, {
  142. ref: forwardedRef
  143. }));
  144. });
  145. /*#__PURE__*/ Object.assign($6c1fd9e6a8969628$export$b453109e13abe10b, {
  146. displayName: $6c1fd9e6a8969628$var$ITEM_NAME
  147. });
  148. /* -----------------------------------------------------------------------------------------------*/ const $6c1fd9e6a8969628$var$ToggleGroupItemImpl = /*#__PURE__*/ $jFibJ$react.forwardRef((props, forwardedRef)=>{
  149. const { __scopeToggleGroup: __scopeToggleGroup , value: value , ...itemProps } = props;
  150. const valueContext = $6c1fd9e6a8969628$var$useToggleGroupValueContext($6c1fd9e6a8969628$var$ITEM_NAME, __scopeToggleGroup);
  151. const singleProps = {
  152. role: 'radio',
  153. 'aria-checked': props.pressed,
  154. 'aria-pressed': undefined
  155. };
  156. const typeProps = valueContext.type === 'single' ? singleProps : undefined;
  157. return /*#__PURE__*/ $jFibJ$react.createElement($jFibJ$Toggle, $jFibJ$babelruntimehelpersesmextends({}, typeProps, itemProps, {
  158. ref: forwardedRef,
  159. onPressedChange: (pressed)=>{
  160. if (pressed) valueContext.onItemActivate(value);
  161. else valueContext.onItemDeactivate(value);
  162. }
  163. }));
  164. });
  165. /* -----------------------------------------------------------------------------------------------*/ const $6c1fd9e6a8969628$export$be92b6f5f03c0fe9 = $6c1fd9e6a8969628$export$af3ec21f6cfb5e30;
  166. const $6c1fd9e6a8969628$export$6d08773d2e66f8f2 = $6c1fd9e6a8969628$export$b453109e13abe10b;
  167. export {$6c1fd9e6a8969628$export$d1c7c4bcd9f26dd4 as createToggleGroupScope, $6c1fd9e6a8969628$export$af3ec21f6cfb5e30 as ToggleGroup, $6c1fd9e6a8969628$export$b453109e13abe10b as ToggleGroupItem, $6c1fd9e6a8969628$export$be92b6f5f03c0fe9 as Root, $6c1fd9e6a8969628$export$6d08773d2e66f8f2 as Item};
  168. //# sourceMappingURL=index.mjs.map