@tecsinapse/cortex-react 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,8 @@ const SelectTrigger = ({
11
11
  label,
12
12
  placeholder,
13
13
  disabled,
14
- multiLabelSelected
14
+ multiLabelSelected,
15
+ ...rest
15
16
  }) => {
16
17
  const { value, labelExtractor } = React.useContext(context.SelectContext);
17
18
  const _placeholder = React.useMemo(() => {
@@ -21,7 +22,18 @@ const SelectTrigger = ({
21
22
  return multiLabelSelected ? multiLabelSelected(value.length) : `${value.length} items selected`;
22
23
  return labelExtractor(value);
23
24
  }, [label, value]);
24
- return /* @__PURE__ */ React.createElement(index.Popover.Trigger, null, /* @__PURE__ */ React.createElement("button", { className: button(), disabled, role: "button" }, /* @__PURE__ */ React.createElement("span", { "data-testid": "select-placeholder" }, _placeholder), /* @__PURE__ */ React.createElement(io5.IoChevronDownOutline, null)));
25
+ const { className } = rest;
26
+ return /* @__PURE__ */ React.createElement(index.Popover.Trigger, null, /* @__PURE__ */ React.createElement(
27
+ "button",
28
+ {
29
+ className: button({ className }),
30
+ disabled,
31
+ role: "button",
32
+ ...rest
33
+ },
34
+ /* @__PURE__ */ React.createElement("span", { "data-testid": "select-placeholder" }, _placeholder),
35
+ /* @__PURE__ */ React.createElement(io5.IoChevronDownOutline, null)
36
+ ));
25
37
  };
26
38
 
27
39
  exports.SelectTrigger = SelectTrigger;
@@ -4,7 +4,18 @@ var React = require('react');
4
4
  var Node = require('./Node.js');
5
5
 
6
6
  const Root = ({ segmented = false, children }) => {
7
- const [selectedNode, setSelectedNode] = React.useState(null);
7
+ const initialSelectedIndex = React.useMemo(() => {
8
+ let initialIndex = null;
9
+ React.Children.forEach(children, (child, index) => {
10
+ if (React.isValidElement(child) && child.props.selected) {
11
+ initialIndex = index;
12
+ }
13
+ });
14
+ return initialIndex;
15
+ }, [children]);
16
+ const [selectedNode, setSelectedNode] = React.useState(
17
+ initialSelectedIndex
18
+ );
8
19
  const childrenCount = React.useMemo(
9
20
  () => React.Children.count(children),
10
21
  [children]
@@ -8,7 +8,7 @@ const groupButton = tailwindVariants.tv({
8
8
  inactive: "bg-white text-secondary-medium disabled:bg-secondary-light",
9
9
  firstButton: "first:rounded-l-mili first:border-r-0",
10
10
  lastButton: "last:rounded-r-mili last:border-l-0",
11
- container: "flex flex-row flex-1 h-[2rem] w-[500px]",
11
+ container: "flex flex-row flex-1 h-[2rem] w-fit",
12
12
  active: "text-white bg-secondary-medium"
13
13
  }
14
14
  });
@@ -9,7 +9,8 @@ const SelectTrigger = ({
9
9
  label,
10
10
  placeholder,
11
11
  disabled,
12
- multiLabelSelected
12
+ multiLabelSelected,
13
+ ...rest
13
14
  }) => {
14
15
  const { value, labelExtractor } = useContext(SelectContext);
15
16
  const _placeholder = useMemo(() => {
@@ -19,7 +20,18 @@ const SelectTrigger = ({
19
20
  return multiLabelSelected ? multiLabelSelected(value.length) : `${value.length} items selected`;
20
21
  return labelExtractor(value);
21
22
  }, [label, value]);
22
- return /* @__PURE__ */ React__default.createElement(Popover.Trigger, null, /* @__PURE__ */ React__default.createElement("button", { className: button(), disabled, role: "button" }, /* @__PURE__ */ React__default.createElement("span", { "data-testid": "select-placeholder" }, _placeholder), /* @__PURE__ */ React__default.createElement(IoChevronDownOutline, null)));
23
+ const { className } = rest;
24
+ return /* @__PURE__ */ React__default.createElement(Popover.Trigger, null, /* @__PURE__ */ React__default.createElement(
25
+ "button",
26
+ {
27
+ className: button({ className }),
28
+ disabled,
29
+ role: "button",
30
+ ...rest
31
+ },
32
+ /* @__PURE__ */ React__default.createElement("span", { "data-testid": "select-placeholder" }, _placeholder),
33
+ /* @__PURE__ */ React__default.createElement(IoChevronDownOutline, null)
34
+ ));
23
35
  };
24
36
 
25
37
  export { SelectTrigger };
@@ -1,8 +1,19 @@
1
- import React__default, { useState, useMemo, useCallback } from 'react';
1
+ import React__default, { useMemo, useState, useCallback } from 'react';
2
2
  import { Node } from './Node.js';
3
3
 
4
4
  const Root = ({ segmented = false, children }) => {
5
- const [selectedNode, setSelectedNode] = useState(null);
5
+ const initialSelectedIndex = useMemo(() => {
6
+ let initialIndex = null;
7
+ React__default.Children.forEach(children, (child, index) => {
8
+ if (React__default.isValidElement(child) && child.props.selected) {
9
+ initialIndex = index;
10
+ }
11
+ });
12
+ return initialIndex;
13
+ }, [children]);
14
+ const [selectedNode, setSelectedNode] = useState(
15
+ initialSelectedIndex
16
+ );
6
17
  const childrenCount = useMemo(
7
18
  () => React__default.Children.count(children),
8
19
  [children]
@@ -6,7 +6,7 @@ const groupButton = tv({
6
6
  inactive: "bg-white text-secondary-medium disabled:bg-secondary-light",
7
7
  firstButton: "first:rounded-l-mili first:border-r-0",
8
8
  lastButton: "last:rounded-r-mili last:border-l-0",
9
- container: "flex flex-row flex-1 h-[2rem] w-[500px]",
9
+ container: "flex flex-row flex-1 h-[2rem] w-fit",
10
10
  active: "text-white bg-secondary-medium"
11
11
  }
12
12
  });
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  import { SelectTriggerProps } from './types';
3
- export declare const SelectTrigger: ({ label, placeholder, disabled, multiLabelSelected, }: SelectTriggerProps) => JSX.Element;
3
+ export declare const SelectTrigger: ({ label, placeholder, disabled, multiLabelSelected, ...rest }: SelectTriggerProps) => JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  export declare const Select: {
3
3
  Root: <T>({ children, value, keyExtractor, labelExtractor, className, }: import("./types").SelectRootProps<T>) => JSX.Element;
4
- Trigger: ({ label, placeholder, disabled, multiLabelSelected, }: import("./types").SelectTriggerProps) => JSX.Element;
4
+ Trigger: ({ label, placeholder, disabled, multiLabelSelected, ...rest }: import("./types").SelectTriggerProps) => JSX.Element;
5
5
  Popover: ({ children }: import("./types").SelectPopoverProps) => JSX.Element;
6
6
  Options: <T_1>({ onSelect, options, }: import("./types").SelectOptionsProps<T_1>) => JSX.Element;
7
7
  GroupedOptions: <T_2>({ onSelect, groupedLabelExtractor, options, }: import("./types").SelectGroupedOptionsProps<T_2>) => JSX.Element;
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
2
  export interface ContentProps {
3
3
  children: ReactNode;
4
4
  className?: string;
@@ -46,7 +46,7 @@ export interface SelectRootProps<T> {
46
46
  labelExtractor: (value: T) => string;
47
47
  className?: string;
48
48
  }
49
- export interface SelectTriggerProps {
49
+ export interface SelectTriggerProps extends HTMLAttributes<HTMLButtonElement> {
50
50
  label: string;
51
51
  placeholder?: string;
52
52
  disabled?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tecsinapse/cortex-react",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "React components based in @tecsinapse/cortex-core",
5
5
  "license": "MIT",
6
6
  "main": "dist/esm/index.js",
@@ -48,5 +48,5 @@
48
48
  "react-dom": ">=18.0.0",
49
49
  "tailwind": ">=3.3.0"
50
50
  },
51
- "gitHead": "d2b72d7af61770fae8caacac311af9402b401e01"
51
+ "gitHead": "d233fba05a9e0c732d30d1da014379a96e9a8a95"
52
52
  }