softable-pixels-web 1.2.10 → 1.2.12
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.
- package/dist/ColorPicker-Dc83Om7x.js.map +1 -1
- package/dist/ContextMenu-CRd1Fgl0.js.map +1 -1
- package/dist/{DatePicker-QLL-43NJ.js → DatePicker-Bl7pIrHR.js} +128 -25
- package/dist/DatePicker-Bl7pIrHR.js.map +1 -0
- package/dist/{IconButton-qBhQj30V.js → IconButton-BGiieVPY.js} +3 -3
- package/dist/IconButton-BGiieVPY.js.map +1 -0
- package/dist/{Input-D9FPPcEO.js → Input-7PrKudvj.js} +2 -2
- package/dist/{Input-D9FPPcEO.js.map → Input-7PrKudvj.js.map} +1 -1
- package/dist/{MaskModule-B9d_CLgH.js → MaskModule-CQXVHDuV.js} +168 -3
- package/dist/MaskModule-CQXVHDuV.js.map +1 -0
- package/dist/Popover-DwxxEmVF.js.map +1 -1
- package/dist/Select-D5EznEQW.js.map +1 -1
- package/dist/{TabSwitch-BrFTSD3N.js → TabSwitch-DIHCG0vJ.js} +5 -3
- package/dist/TabSwitch-DIHCG0vJ.js.map +1 -0
- package/dist/base-popover.d.ts +3 -3
- package/dist/breadcrumb.d.ts +1 -1
- package/dist/button.d.ts +2 -2
- package/dist/checkbox.d.ts +2 -2
- package/dist/color-picker.d.ts +1 -1
- package/dist/context-menu.d.ts +1 -1
- package/dist/date-picker.d.ts +1 -1
- package/dist/date-picker.js +2 -1
- package/dist/icon-button.d.ts +1 -1
- package/dist/icon-button.js +1 -1
- package/dist/{index-Cx7UfQsD.d.ts → index-2hmoLtaJ.d.ts} +6 -5
- package/dist/{index-duKRdLdx.d.ts → index-BnNahlXB.d.ts} +4 -2
- package/dist/{index-BSRlF4M0.d.ts → index-Bxm90oSp.d.ts} +5 -4
- package/dist/{index-4OeaL4BA.d.ts → index-CLVlLUW1.d.ts} +2 -2
- package/dist/{index-BoDAFJKA.d.ts → index-Cg9O1rrv.d.ts} +5 -5
- package/dist/{index-yetEYul3.d.ts → index-ClRmImX5.d.ts} +2 -2
- package/dist/{index-Y5DBdVde.d.ts → index-CsubfLNp.d.ts} +14 -3
- package/dist/{index-B-QrzzEt.d.ts → index-CtH8kbOn.d.ts} +3 -3
- package/dist/{index-GDD7A_-t.d.ts → index-DHTU_QTw.d.ts} +3 -3
- package/dist/{index-BsuIAPD6.d.ts → index-DWfxn3wg.d.ts} +3 -3
- package/dist/{index-DZ68m68y.d.ts → index-Glw8jQ-T.d.ts} +6 -2
- package/dist/{index-DPF3Lmsv.d.ts → index-WFi4Q5f-.d.ts} +2 -2
- package/dist/{index-c9Jj2h1z.d.ts → index-ftKfqd7S.d.ts} +2 -1
- package/dist/{index-ece25l8L.d.ts → index-kc3NqscD.d.ts} +3 -3
- package/dist/{index-CMdalYHP.d.ts → index-y5WY0xGq.d.ts} +5 -5
- package/dist/index.d.ts +17 -17
- package/dist/index.js +5 -5
- package/dist/input.d.ts +1 -1
- package/dist/input.js +2 -2
- package/dist/mask-modules.d.ts +1 -1
- package/dist/mask-modules.js +1 -1
- package/dist/popover.d.ts +2 -2
- package/dist/select.d.ts +2 -2
- package/dist/skeleton.d.ts +1 -1
- package/dist/tab-switch.d.ts +1 -1
- package/dist/tab-switch.js +1 -1
- package/dist/text-area.d.ts +1 -1
- package/dist/{types-CRiyrGtn.d.ts → types-1ZNOd7Tt.d.ts} +3 -2
- package/dist/{types-Cb6hrEtg.d.ts → types-Dr8EuEht.d.ts} +2 -2
- package/dist/typography.d.ts +1 -1
- package/dist/{useThemedStyles-BVQKnv5r.d.ts → useThemedStyles-B9fVE7Wy.d.ts} +2 -25
- package/package.json +1 -1
- package/dist/DatePicker-QLL-43NJ.js.map +0 -1
- package/dist/IconButton-qBhQj30V.js.map +0 -1
- package/dist/MaskModule-B9d_CLgH.js.map +0 -1
- package/dist/TabSwitch-BrFTSD3N.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import "./types-
|
|
2
|
-
import { t as Button } from "./index-
|
|
3
|
-
import { t as IconButton } from "./index-
|
|
4
|
-
import { n as types_d_exports$1, t as ColorPicker } from "./index-
|
|
5
|
-
import { n as types_d_exports$3, t as DatePicker } from "./index-
|
|
6
|
-
import { n as Locale, r as MaskType, t as MaskModule } from "./index-
|
|
7
|
-
import { t as Input } from "./index-
|
|
1
|
+
import "./types-Dr8EuEht.js";
|
|
2
|
+
import { t as Button } from "./index-DWfxn3wg.js";
|
|
3
|
+
import { t as IconButton } from "./index-BnNahlXB.js";
|
|
4
|
+
import { n as types_d_exports$1, t as ColorPicker } from "./index-kc3NqscD.js";
|
|
5
|
+
import { n as types_d_exports$3, t as DatePicker } from "./index-CsubfLNp.js";
|
|
6
|
+
import { n as Locale, r as MaskType, t as MaskModule } from "./index-ftKfqd7S.js";
|
|
7
|
+
import { t as Input } from "./index-y5WY0xGq.js";
|
|
8
8
|
import { t as SearchInput } from "./index-CHvftTxv.js";
|
|
9
|
-
import { n as types_d_exports$5, t as Select } from "./index-
|
|
10
|
-
import { n as types_d_exports$4 } from "./types-
|
|
11
|
-
import { t as TextArea } from "./index-
|
|
12
|
-
import { t as Popover } from "./index-
|
|
13
|
-
import { t as BasePopover } from "./index-
|
|
14
|
-
import { t as Breadcrumb } from "./index-
|
|
15
|
-
import { t as Skeleton } from "./index-
|
|
9
|
+
import { n as types_d_exports$5, t as Select } from "./index-Cg9O1rrv.js";
|
|
10
|
+
import { n as types_d_exports$4 } from "./types-1ZNOd7Tt.js";
|
|
11
|
+
import { t as TextArea } from "./index-2hmoLtaJ.js";
|
|
12
|
+
import { t as Popover } from "./index-ClRmImX5.js";
|
|
13
|
+
import { t as BasePopover } from "./index-WFi4Q5f-.js";
|
|
14
|
+
import { t as Breadcrumb } from "./index-DHTU_QTw.js";
|
|
15
|
+
import { t as Skeleton } from "./index-CtH8kbOn.js";
|
|
16
16
|
import { t as CheckItem } from "./index-D3HezA0l.js";
|
|
17
|
-
import { t as Checkbox } from "./index-
|
|
17
|
+
import { t as Checkbox } from "./index-CLVlLUW1.js";
|
|
18
18
|
import { r as types_d_exports } from "./types-DaDG9cRW.js";
|
|
19
19
|
import { Chip } from "./chip.js";
|
|
20
20
|
import { t as ChipList } from "./index-CRG-GDQG.js";
|
|
21
|
-
import { n as types_d_exports$2, t as ContextMenu } from "./index-
|
|
21
|
+
import { n as types_d_exports$2, t as ContextMenu } from "./index-Bxm90oSp.js";
|
|
22
22
|
import { InfoSummary, InfoSummaryItem, InfoSummaryProps } from "./info-summary.js";
|
|
23
23
|
import { t as Switch } from "./index-JY4VS1B7.js";
|
|
24
|
-
import { n as SwitchOption, r as TabSwitchProps, t as TabSwitch } from "./index-
|
|
24
|
+
import { n as SwitchOption, r as TabSwitchProps, t as TabSwitch } from "./index-Glw8jQ-T.js";
|
|
25
25
|
import { Typography } from "./typography.js";
|
|
26
26
|
import { a as ThemeName, c as ThemeRegistry, i as ThemeMode, l as ThemeTokens, n as useTheme, o as ThemePersistence, r as ThemeContextData, s as ThemeProviderProps, t as ThemeProvider } from "./index-vh_aAfJM.js";
|
|
27
27
|
import { useDismiss } from "./use-dismiss.js";
|
package/dist/index.js
CHANGED
|
@@ -6,9 +6,9 @@ import { n as types_exports$4, t as Popover } from "./Popover-DwxxEmVF.js";
|
|
|
6
6
|
import "./Icon-Ded27Khw.js";
|
|
7
7
|
import { t as Typography } from "./Typography-DOmGYHd6.js";
|
|
8
8
|
import { t as Checkbox } from "./Checkbox-Dn8CtTOP.js";
|
|
9
|
-
import { n as types_exports$3, t as DatePicker } from "./DatePicker-
|
|
9
|
+
import { n as types_exports$3, t as DatePicker } from "./DatePicker-Bl7pIrHR.js";
|
|
10
10
|
import { n as useTheme, t as ThemeProvider } from "./ThemeContext-CeJlZRoI.js";
|
|
11
|
-
import { t as TabSwitch } from "./TabSwitch-
|
|
11
|
+
import { t as TabSwitch } from "./TabSwitch-DIHCG0vJ.js";
|
|
12
12
|
import { t as CheckItem } from "./CheckItem-DzRbPRpC.js";
|
|
13
13
|
import { t as InfoSummary } from "./InfoSummary-CKymtoj5.js";
|
|
14
14
|
import { t as BasePopover } from "./BasePopover-BvMT9rNx.js";
|
|
@@ -19,9 +19,9 @@ import "./ErrorMessage-W0yfhfJP.js";
|
|
|
19
19
|
import { t as ChipList } from "./ChipList-oW8sQ9EC.js";
|
|
20
20
|
import "./Loader-DD_kbMHz.js";
|
|
21
21
|
import { t as Button } from "./Button-CxAl6MNt.js";
|
|
22
|
-
import { t as IconButton } from "./IconButton-
|
|
23
|
-
import { n as MaskType, r as MaskModule, t as Locale } from "./MaskModule-
|
|
24
|
-
import { t as Input } from "./Input-
|
|
22
|
+
import { t as IconButton } from "./IconButton-BGiieVPY.js";
|
|
23
|
+
import { n as MaskType, r as MaskModule, t as Locale } from "./MaskModule-CQXVHDuV.js";
|
|
24
|
+
import { t as Input } from "./Input-7PrKudvj.js";
|
|
25
25
|
import { n as types_exports$5, t as Select } from "./Select-D5EznEQW.js";
|
|
26
26
|
import { t as TextArea } from "./TextArea-Cd9ybdiN.js";
|
|
27
27
|
import { t as SearchInput } from "./SearchInput-DzFRhAYc.js";
|
package/dist/input.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Input } from "./index-
|
|
1
|
+
import { t as Input } from "./index-y5WY0xGq.js";
|
|
2
2
|
export { Input };
|
package/dist/input.js
CHANGED
|
@@ -3,7 +3,7 @@ import "./Icon-Ded27Khw.js";
|
|
|
3
3
|
import "./Typography-DOmGYHd6.js";
|
|
4
4
|
import "./Label-DYeW5MAo.js";
|
|
5
5
|
import "./ErrorMessage-W0yfhfJP.js";
|
|
6
|
-
import "./MaskModule-
|
|
7
|
-
import { t as Input } from "./Input-
|
|
6
|
+
import "./MaskModule-CQXVHDuV.js";
|
|
7
|
+
import { t as Input } from "./Input-7PrKudvj.js";
|
|
8
8
|
|
|
9
9
|
export { Input };
|
package/dist/mask-modules.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as Locale, r as MaskType, t as MaskModule } from "./index-
|
|
1
|
+
import { n as Locale, r as MaskType, t as MaskModule } from "./index-ftKfqd7S.js";
|
|
2
2
|
export { Locale, MaskModule, MaskType };
|
package/dist/mask-modules.js
CHANGED
package/dist/popover.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as types_d_exports } from "./types-
|
|
2
|
-
import { t as Popover } from "./index-
|
|
1
|
+
import { n as types_d_exports } from "./types-1ZNOd7Tt.js";
|
|
2
|
+
import { t as Popover } from "./index-ClRmImX5.js";
|
|
3
3
|
export { Popover, types_d_exports as PopoverTypes };
|
package/dist/select.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as types_d_exports, t as Select } from "./index-
|
|
2
|
-
import "./types-
|
|
1
|
+
import { n as types_d_exports, t as Select } from "./index-Cg9O1rrv.js";
|
|
2
|
+
import "./types-1ZNOd7Tt.js";
|
|
3
3
|
export { Select, types_d_exports as SelectTypes };
|
package/dist/skeleton.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Skeleton } from "./index-
|
|
1
|
+
import { t as Skeleton } from "./index-CtH8kbOn.js";
|
|
2
2
|
export { Skeleton };
|
package/dist/tab-switch.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as SwitchOption, r as TabSwitchProps, t as TabSwitch } from "./index-
|
|
1
|
+
import { n as SwitchOption, r as TabSwitchProps, t as TabSwitch } from "./index-Glw8jQ-T.js";
|
|
2
2
|
export { SwitchOption, TabSwitch, TabSwitchProps };
|
package/dist/tab-switch.js
CHANGED
package/dist/text-area.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as TextArea } from "./index-
|
|
1
|
+
import { t as TextArea } from "./index-2hmoLtaJ.js";
|
|
2
2
|
export { TextArea };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { i as PaddingProps } from "./styleProps-B2q_-j9h.js";
|
|
2
|
+
import { r as TypeStyles } from "./useThemedStyles-B9fVE7Wy.js";
|
|
2
3
|
import { t as FloatingOptions } from "./types-C4eY6XF3.js";
|
|
3
4
|
import { MouseEvent, MouseEventHandler, ReactNode, RefObject } from "react";
|
|
4
5
|
|
|
@@ -51,8 +52,8 @@ interface PopoverProps extends PaddingProps {
|
|
|
51
52
|
widthTrigger: number;
|
|
52
53
|
}) => ReactNode;
|
|
53
54
|
trigger?: (props: PopoverTriggerRenderProps) => ReactNode;
|
|
54
|
-
styles?:
|
|
55
|
+
styles?: TypeStyles<typeof createPopoverStyles>;
|
|
55
56
|
}
|
|
56
57
|
//#endregion
|
|
57
58
|
export { types_d_exports as n, PopoverProps as t };
|
|
58
|
-
//# sourceMappingURL=types-
|
|
59
|
+
//# sourceMappingURL=types-1ZNOd7Tt.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as TextProps, r as MarginProps } from "./styleProps-B2q_-j9h.js";
|
|
2
|
-
import {
|
|
2
|
+
import { r as TypeStyles, t as SlotStyle } from "./useThemedStyles-B9fVE7Wy.js";
|
|
3
3
|
import { ElementType, PropsWithChildren } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/commons/toolkit/Typography/style.d.ts
|
|
@@ -46,4 +46,4 @@ type TextAlign = 'left' | 'center' | 'right' | 'justify';
|
|
|
46
46
|
type TypographyVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'b1' | 'b2' | 'b3' | 'caption' | 'legal';
|
|
47
47
|
//#endregion
|
|
48
48
|
export { TypographyVariant as n, TypographyProps as t };
|
|
49
|
-
//# sourceMappingURL=types-
|
|
49
|
+
//# sourceMappingURL=types-Dr8EuEht.d.ts.map
|
package/dist/typography.d.ts
CHANGED
|
@@ -82,29 +82,6 @@ type StylesFactoryAny = (...args: any[]) => StyleMap;
|
|
|
82
82
|
* A map of partial style maps.
|
|
83
83
|
*/
|
|
84
84
|
type TypeStyles<TFactory extends StylesFactoryAny> = Partial<{ [K in keyof ReturnType<TFactory>]: SlotStyle }>;
|
|
85
|
-
/**
|
|
86
|
-
* Creates a partial version of the return type of a style factory function.
|
|
87
|
-
*
|
|
88
|
-
* This utility type is useful for defining style overrides, allowing consumers
|
|
89
|
-
* to provide only a subset of the styles returned by a given function.
|
|
90
|
-
*
|
|
91
|
-
* @template T - A function type that returns a styles object.
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* ```ts
|
|
95
|
-
* const createInputStyles = () => ({
|
|
96
|
-
* container: '...',
|
|
97
|
-
* input: '...'
|
|
98
|
-
* });
|
|
99
|
-
*
|
|
100
|
-
* type InputStylesOverride = StylesOf<typeof createInputStyles>;
|
|
101
|
-
* // {
|
|
102
|
-
* // container?: string;
|
|
103
|
-
* // input?: string;
|
|
104
|
-
* // }
|
|
105
|
-
* ```
|
|
106
|
-
*/
|
|
107
|
-
type StylesOf<T extends (...args: any) => any> = Partial<ReturnType<T>>;
|
|
108
85
|
//#endregion
|
|
109
|
-
export {
|
|
110
|
-
//# sourceMappingURL=useThemedStyles-
|
|
86
|
+
export { StyleMap as n, TypeStyles as r, SlotStyle as t };
|
|
87
|
+
//# sourceMappingURL=useThemedStyles-B9fVE7Wy.d.ts.map
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker-QLL-43NJ.js","names":["CalendarDay: React.FC<CalendarDayProps>","CalendarMonth: React.FC<CalendarMonthProps>","NavButton: React.FC<NavButtonProps>","CalendarHeader: React.FC<Props>","DateTimeInput: React.FC<DateTimeInputProps>","DateTimeControl: React.FC<DateTimeControlProps>","days","Calendar: React.FC<CalendarProps>","DatePickerTrigger","DatePicker: React.FC<DatePickerProps>"],"sources":["../src/utils/functions/capitalize.ts","../src/components/commons/toolkit/Calendar/components/CalendarMonth/components/CalendarDay/utils.ts","../src/components/commons/toolkit/Calendar/components/CalendarMonth/components/CalendarDay/styles.ts","../src/components/commons/toolkit/Calendar/components/CalendarMonth/components/CalendarDay/index.tsx","../src/components/commons/toolkit/Calendar/components/CalendarMonth/constants.ts","../src/components/commons/toolkit/Calendar/components/CalendarMonth/index.tsx","../src/components/commons/toolkit/Calendar/components/CalendarHeader/components/NavButton/styles.ts","../src/components/commons/toolkit/Calendar/components/CalendarHeader/components/NavButton/index.tsx","../src/components/commons/toolkit/Calendar/components/CalendarHeader/utils.ts","../src/components/commons/toolkit/Calendar/components/CalendarHeader/styles.ts","../src/components/commons/toolkit/Calendar/components/CalendarHeader/index.tsx","../src/components/commons/toolkit/Calendar/components/DateTimeControl/components/DateTimeInput/styles.ts","../src/components/commons/toolkit/Calendar/components/DateTimeControl/components/DateTimeInput/index.tsx","../src/components/commons/toolkit/Calendar/components/DateTimeControl/styles.ts","../src/components/commons/toolkit/Calendar/components/DateTimeControl/index.tsx","../src/components/commons/toolkit/Calendar/hooks/useCalendar.ts","../src/components/commons/toolkit/Calendar/styles.ts","../src/components/commons/toolkit/Calendar/index.tsx","../src/components/commons/inputs/DatePicker/components/DatePickerTrigger/styles.ts","../src/components/commons/inputs/DatePicker/components/DatePickerTrigger/index.tsx","../src/components/commons/inputs/DatePicker/hooks/useDatePicker.ts","../src/components/commons/inputs/DatePicker/styles.ts","../src/components/commons/inputs/DatePicker/types.ts","../src/components/commons/inputs/DatePicker/index.tsx"],"sourcesContent":["export function capitalize(text: string) {\n if (!text) return ''\n return text.charAt(0).toUpperCase() + text.slice(1)\n}\n","// External Libraries\nimport {\n format,\n isBefore,\n isSameDay,\n startOfDay,\n isSameMonth,\n isWithinInterval\n} from 'date-fns'\nimport { ptBR } from 'date-fns/locale'\n\n// Types\nimport type { PickedDate } from '../../../../types'\n\ninterface DayMetadataParams {\n day: Date\n currentMonth: Date\n selection?: PickedDate\n disablePastDates?: boolean\n}\n\nexport function getDayMetadata(params: DayMetadataParams) {\n const { day, currentMonth, selection, disablePastDates } = params\n\n const startOfToday = startOfDay(new Date())\n const isPastDate = isBefore(day, startOfToday)\n const isOutsideMonth = !isSameMonth(day, currentMonth)\n const isDisabled = isOutsideMonth || (disablePastDates && isPastDate) || false\n\n if (!selection) {\n const ariaLabel = getAriaLabel(day, {\n isDisabled,\n isBetween: false,\n isSelected: false\n })\n\n return {\n ariaLabel,\n isDisabled,\n isSelected: false,\n isBetween: false,\n isRangeEnd: false,\n isRangeStart: false\n }\n }\n\n const { start, end } = selection\n\n const isRangeStart = start ? isSameDay(day, start) : false\n const isRangeEnd = end ? isSameDay(day, end) : false\n\n const isBetween =\n start && end\n ? isWithinInterval(startOfDay(day), {\n start: startOfDay(start),\n end: startOfDay(end)\n })\n : false\n const isSelected = isRangeStart || isRangeEnd\n\n const ariaLabel = getAriaLabel(day, { isSelected, isBetween, isDisabled })\n\n return {\n ariaLabel,\n isBetween,\n isDisabled,\n isSelected,\n isRangeEnd,\n isRangeStart\n }\n}\n\nfunction getAriaLabel(\n day: Date,\n options: { isSelected: boolean; isBetween: boolean; isDisabled: boolean }\n) {\n const { isSelected, isBetween, isDisabled } = options\n const baseLabel = format(day, \"d 'de' MMMM 'de' yyyy\", { locale: ptBR })\n\n if (isSelected) return `${baseLabel}, selecionado`\n if (isBetween) return `${baseLabel}, dentro do intervalo`\n if (isDisabled) return `${baseLabel}, indisponível`\n\n return baseLabel\n}\n","import type { CalendarDayProps } from './types'\nimport { styled } from '@hooks/useThemedStyles/types'\n\ninterface StylesProps extends CalendarDayProps {\n isBetween: boolean\n isSelected: boolean\n isRangeStart: boolean\n isRangeEnd: boolean\n isDisabled: boolean\n}\n\nexport function createCalendarDayStyles(params: StylesProps) {\n return styled({\n container: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n\n backgroundColor: getContainerBackgroundColor(params),\n\n borderTopLeftRadius: getContainerBorderLeft(params),\n borderBottomLeftRadius: getContainerBorderLeft(params),\n borderTopRightRadius: getContainerBorderRight(params),\n borderBottomRightRadius: getContainerBorderRight(params)\n },\n\n button: {\n display: 'flex',\n width: '2.2rem',\n height: '2.2rem',\n alignItems: 'center',\n justifyContent: 'center',\n\n backgroundColor: getButtonBackgroundColor(params),\n borderRadius: getButtonBorderRadius(params),\n\n transition: 'all 200ms ease-in-out',\n cursor: params.isDisabled ? 'not-allowed' : 'pointer',\n opacity: params.isDisabled ? 0.5 : 1,\n\n __rules: {\n '&:hover': {\n opacity: '0.85'\n },\n '&:disabled': {\n opacity: '0.5',\n cursor: 'not-allowed'\n }\n }\n }\n })\n}\n\nfunction getContainerBackgroundColor({ isBetween }: StylesProps): string {\n if (isBetween) {\n return 'rgba(14, 178, 76, 0.1)'\n }\n\n return 'transparent'\n}\n\nfunction getContainerBorderLeft({ isRangeStart }: StylesProps) {\n return isRangeStart ? '50%' : '0'\n}\n\nfunction getContainerBorderRight({ isRangeEnd }: StylesProps) {\n return isRangeEnd ? '50%' : '0'\n}\n\nfunction getButtonBackgroundColor({\n isSelected,\n isRangeStart,\n isRangeEnd\n}: StylesProps): string {\n if (isSelected || isRangeStart || isRangeEnd) {\n return 'var(--px-btn-filled-bg)'\n }\n\n return 'transparent'\n}\n\nfunction getButtonBorderRadius({\n isBetween,\n isRangeStart,\n isRangeEnd\n}: StylesProps): string {\n if (isBetween && !isRangeStart && !isRangeEnd) {\n return '0'\n }\n\n return '50%'\n}\n","// External Libraries\nimport type React from 'react'\nimport { useMemo } from 'react'\n\n// Components\nimport { Typography } from '@components/commons/toolkit/Typography'\n\n// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Utils\nimport { getDayMetadata } from './utils'\n\n// Types\nimport type { CalendarDayProps } from './types'\n\n// Styles\nimport { createCalendarDayStyles } from './styles'\n\nexport const CalendarDay: React.FC<CalendarDayProps> = props => {\n // Constants\n const { day, currentMonth, selection, disablePastDates, onClick } = props\n const dayConfig = useMemo(\n () => getDayMetadata({ day, selection, currentMonth, disablePastDates }),\n [day, selection, currentMonth, disablePastDates]\n )\n\n // Hooks\n const { styles, classes } = useThemedStyles(\n { ...props, ...dayConfig },\n createCalendarDayStyles,\n {\n applyCommonProps: true\n }\n )\n\n // Functions\n function handleClick() {\n onClick(day)\n }\n\n return (\n <div style={styles.container}>\n <button\n type=\"button\"\n style={styles.button}\n className={classes.button}\n disabled={dayConfig.isDisabled}\n aria-label={dayConfig.ariaLabel}\n onClick={handleClick}\n >\n <Typography\n variant=\"b2\"\n color={dayConfig.isSelected ? 'white' : 'var(--px-text-secondary)'}\n fontWeight={\n dayConfig.isSelected || dayConfig.isBetween ? 'medium' : 'regular'\n }\n >\n {day.getDate()}\n </Typography>\n </button>\n </div>\n )\n}\n","export const WEEK_DAYS = [\n { short: 'D', full: 'Domingo' },\n { short: 'S', full: 'Segunda' },\n { short: 'T', full: 'Terça' },\n { short: 'Q', full: 'Quarta' },\n { short: 'Q', full: 'Quinta' },\n { short: 'S', full: 'Sexta' },\n { short: 'S', full: 'Sábado' }\n] as const\n","// External Libraries\nimport type React from 'react'\n\n// Components\nimport { CalendarDay } from './components/CalendarDay'\nimport { Typography } from '@components/commons/toolkit/Typography'\n\n// Utils\nimport { WEEK_DAYS } from './constants'\n\n// Types\nimport type { CalendarMonthProps } from './types'\n\nexport const CalendarMonth: React.FC<CalendarMonthProps> = props => {\n // Constants\n const currentMonth = props.days.length\n ? props.days[Math.floor(props.days.length / 2)]\n : new Date()\n\n // Functions\n function renderWeekDays() {\n return WEEK_DAYS.map(day => (\n <div\n key={day.full}\n className=\"w-10 h-10 flex items-center justify-center\"\n >\n <Typography variant=\"b2\" className=\"text-tx-primary\">\n {day.short}\n </Typography>\n </div>\n ))\n }\n\n return (\n <div>\n <div className=\"grid [grid-template-columns:repeat(7,_2.5rem)]\">\n {renderWeekDays()}\n </div>\n\n <div className=\"grid [grid-template-columns:repeat(7,_2.5rem)] gap-y-1\">\n {props.days.map(day => (\n <CalendarDay\n day={day}\n key={day.toISOString()}\n selection={props.selection}\n currentMonth={currentMonth}\n disablePastDates={props.disablePastDates}\n onClick={props.onDayClick}\n />\n ))}\n </div>\n </div>\n )\n}\n","import { styled } from '@hooks/useThemedStyles/types'\nimport type { NavButtonProps } from './types'\n\nexport function createNavButtonStyles(_props: NavButtonProps) {\n return styled({\n container: {\n display: 'flex',\n\n cursor: 'pointer',\n padding: '0.125rem',\n\n borderRadius: '50%',\n transition: 'background-color 0.2s ease-out',\n rotate: _props.next ? '180deg' : '0deg',\n\n __rules: {\n '&:hover': {\n backgroundColor: 'var(--color-gray-50)'\n }\n }\n }\n })\n}\n","// External Libraries\nimport type React from 'react'\n\n// Components\nimport { Icon } from '@components/commons/toolkit/Icon'\n\n// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { NavButtonProps } from './types'\n\n// Styles\nimport { createNavButtonStyles } from './styles'\n\nexport const NavButton: React.FC<NavButtonProps> = ({\n visible = true,\n ...props\n}) => {\n // Hooks\n\n const { styles, classes } = useThemedStyles(\n { visible, ...props },\n createNavButtonStyles,\n {\n applyCommonProps: true,\n pick: p => [p.next, p.visible]\n }\n )\n\n if (!visible) return null\n\n return (\n <button\n type=\"button\"\n style={styles.container}\n className={classes.container}\n onClick={props.onClick}\n >\n <Icon name={props.icon} color=\"var(--color-gray-400)\" />\n </button>\n )\n}\n","// External Libraries\nimport { isBefore, startOfMonth, startOfYear } from 'date-fns'\n\ninterface NavMetadataParams {\n currentDate: Date\n isDualView: boolean\n position: 'left' | 'right'\n disablePastDates?: boolean\n}\n\nexport function getNavMetadata(params: NavMetadataParams) {\n const { currentDate, isDualView, position, disablePastDates } = params\n const today = new Date()\n\n const hasPrevMonthAvailable =\n !disablePastDates ||\n isBefore(startOfMonth(today), startOfMonth(currentDate))\n\n const hasPrevYearAvailable =\n !disablePastDates || isBefore(startOfYear(today), startOfYear(currentDate))\n\n const showPrevButtons = !isDualView\n ? hasPrevMonthAvailable || hasPrevYearAvailable\n : position !== 'right'\n\n const showNextButtons = !isDualView ? true : position !== 'left'\n\n return {\n showPrevButtons,\n showNextButtons,\n hasPrevYearAvailable,\n hasPrevMonthAvailable\n }\n}\n","import { styled } from '@hooks/useThemedStyles/types'\nimport type { CalendarHeaderProps } from './types'\n\nexport function createCalendarHeaderStyles(_props: CalendarHeaderProps) {\n return styled({\n container: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingBlock: '0.375rem'\n },\n\n leftButtonsContainer: {\n display: 'flex',\n\n alignItems: 'center',\n gap: '0.25rem'\n },\n\n rightButtonsContainer: {\n display: 'flex',\n\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: '0.25rem'\n }\n })\n}\n","// External Libraries\nimport type React from 'react'\nimport { format } from 'date-fns'\nimport { ptBR } from 'date-fns/locale'\n\n// Components\nimport { NavButton } from './components/NavButton'\nimport { Typography } from '@components/commons/toolkit/Typography'\n\n// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Utils\nimport { getNavMetadata } from './utils'\nimport { capitalize } from '@utils/functions'\n\n// Types\nimport type { CalendarNavAction } from '../../types'\n\n// Styles\nimport { createCalendarHeaderStyles } from './styles'\n\ninterface Props {\n currentDate: Date\n isDualView: boolean\n position: 'left' | 'right'\n disablePastDates?: boolean\n onNavAction: (action: CalendarNavAction) => void\n}\n\nexport const CalendarHeader: React.FC<Props> = props => {\n // Constants\n const { onNavAction, ...rest } = props\n const {\n showPrevButtons,\n showNextButtons,\n hasPrevYearAvailable,\n hasPrevMonthAvailable\n } = getNavMetadata(rest)\n\n // Hooks\n const { styles } = useThemedStyles(props, createCalendarHeaderStyles, {\n applyCommonProps: true,\n pick: p => [p.currentDate, p.isDualView, p.position]\n })\n\n // Functions\n function renderMonthName() {\n const name = format(rest.currentDate, 'MMMM yyyy', { locale: ptBR })\n return capitalize(name)\n }\n\n return (\n <div style={styles.container}>\n {showPrevButtons ? (\n <div style={styles.leftButtonsContainer}>\n <NavButton\n icon=\"chevrons-left\"\n visible={hasPrevMonthAvailable}\n onClick={() => onNavAction('prev-month')}\n />\n\n <NavButton\n icon=\"chevrons-double-left\"\n visible={hasPrevYearAvailable}\n onClick={() => onNavAction('prev-year')}\n />\n </div>\n ) : (\n <div />\n )}\n\n <Typography variant=\"b2\" align=\"center\" fontWeight=\"semibold\">\n {renderMonthName()}\n </Typography>\n\n {showNextButtons ? (\n <div style={styles.rightButtonsContainer}>\n <NavButton\n next\n icon=\"chevrons-double-left\"\n onClick={() => onNavAction('next-year')}\n />\n\n <NavButton\n next\n icon=\"chevrons-left\"\n onClick={() => onNavAction('next-month')}\n />\n </div>\n ) : (\n <div />\n )}\n </div>\n )\n}\n","import type { DateTimeInputProps } from './types'\nimport { styled } from '@hooks/useThemedStyles/types'\n\nexport function createDateTimeInputStyles(_props: DateTimeInputProps) {\n return styled({\n container: {\n width: '100%',\n height: '2.5rem',\n\n display: 'flex',\n alignItems: 'center',\n\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: '0.5rem',\n padding: '0.625rem 0.875rem',\n boxShadow: 'var(--px-shadow-default)',\n borderColor: 'var(--px-border-primary)',\n\n __rules: {\n '&:focus-within': {\n outlineOffset: '-1px',\n outline: '2px solid var(--px-color-primary)'\n }\n }\n },\n\n content: {\n flex: 1,\n\n display: 'flex',\n alignItems: 'center',\n columnGap: '0.25rem'\n },\n\n wrapper: {\n flex: 1,\n minWidth: 0,\n display: 'flex',\n alignItems: 'center',\n\n gap: '0.5rem'\n },\n\n divider: {\n border: 0,\n width: '1px',\n height: '1rem',\n\n marginInline: '0.5rem',\n backgroundColor: 'var(--px-border-primary)'\n },\n\n input: {\n flex: 1,\n width: '100%',\n minWidth: 0,\n fontWeight: 500,\n fontSize: '1rem',\n lineHeight: '1.5rem',\n fontFamily: 'inherit',\n color: 'var(--px-text-primary)',\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n __rules: {\n '&:disabled': {\n cursor: 'not-allowed'\n },\n '&:focus': {\n outline: 'none'\n },\n '&::placeholder': {\n fontWeight: 400,\n color: 'var(--px-text-secondary)'\n }\n }\n }\n })\n}\n","// External Libraries\nimport type React from 'react'\n\n// Components\nimport { Icon } from '@components/commons/toolkit/Icon'\n\n// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { DateTimeInputProps } from './types'\n\n// Styles\nimport { createDateTimeInputStyles } from './styles'\n\nexport const DateTimeInput: React.FC<DateTimeInputProps> = props => {\n const { styles, classes } = useThemedStyles(\n props,\n createDateTimeInputStyles,\n {\n applyCommonProps: true,\n pick: p => [p.value]\n }\n )\n\n return (\n <div style={styles.container} className={classes.container}>\n <div style={styles.content}>\n <div style={styles.wrapper}>\n <Icon\n size=\"sm\"\n name=\"general-calendar\"\n color=\"var(--px-text-disabled)\"\n />\n\n <input size={1} style={styles.input} className={classes.input} />\n </div>\n\n <hr style={styles.divider} />\n\n <div style={styles.wrapper}>\n <Icon\n size=\"sm\"\n name=\"general-clock\"\n color=\"var(--px-text-disabled)\"\n />\n\n <input size={1} style={styles.input} className={classes.input} />\n </div>\n </div>\n </div>\n )\n}\n","// Types\nimport type { DateTimeControlProps } from './types'\nimport type { StyleMap } from '@hooks/useThemedStyles/types'\n\n// Hooks\nimport { styled } from '@hooks/useThemedStyles/types'\n\nexport function createDateTimeControlStyles(\n _props: DateTimeControlProps\n): StyleMap {\n return styled({\n container: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n\n gap: '0.5rem'\n }\n })\n}\n","// External Libraries\nimport type React from 'react'\n\n// Components\nimport { DateTimeInput } from './components/DateTimeInput'\n\n// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { DateTimeControlProps } from './types'\n\n// Styles\nimport { createDateTimeControlStyles } from './styles'\n\nexport const DateTimeControl: React.FC<DateTimeControlProps> = props => {\n // Hooks\n const { styles } = useThemedStyles(props, createDateTimeControlStyles, {\n applyCommonProps: true,\n pick: p => [p.value, p.selectionMode]\n })\n\n // Functions\n function handleStartDateChange(date: string) {\n const { value, onChange } = props\n\n onChange({ ...value, start: date })\n }\n\n function handleEndDateChange(date: string) {\n const { value, onChange } = props\n\n if (!value?.start) return\n\n onChange({ ...value, end: date })\n }\n\n return (\n <div style={styles.container}>\n <DateTimeInput\n value={props.value?.start ?? ''}\n onChange={handleStartDateChange}\n />\n\n {props.selectionMode === 'range' ? (\n <DateTimeInput\n value={props?.value?.end}\n onChange={handleEndDateChange}\n />\n ) : null}\n </div>\n )\n}\n","// External Libraries\nimport {\n addDays,\n addYears,\n addMonths,\n endOfWeek,\n endOfMonth,\n startOfWeek,\n startOfMonth,\n eachDayOfInterval\n} from 'date-fns'\nimport { useMemo, useState } from 'react'\n\n// Types\nimport type { CalendarNavAction } from '../types'\n\nexport function useCalendar(initialDate = new Date()) {\n // States\n const [currentDate, setCurrentDate] = useState(initialDate)\n\n // Constants\n const days = useMemo(() => {\n const start = startOfWeek(startOfMonth(currentDate), { weekStartsOn: 0 })\n const end = endOfWeek(endOfMonth(currentDate), { weekStartsOn: 0 })\n let days = eachDayOfInterval({ start, end })\n\n if (days.length < 42) {\n const diff = 42 - days.length\n const last = end\n\n const extraDays = Array.from({ length: diff }, (_, i) =>\n addDays(last, i + 1)\n )\n\n days = [...days, ...extraDays]\n }\n\n return days\n }, [currentDate])\n\n // Functions\n function handleNavAction(action: CalendarNavAction) {\n switch (action) {\n case 'next-month':\n setCurrentDate(prev => addMonths(prev, 1))\n break\n\n case 'prev-month':\n setCurrentDate(prev => addMonths(prev, -1))\n break\n\n case 'next-year':\n setCurrentDate(prev => addYears(prev, 1))\n break\n\n case 'prev-year':\n setCurrentDate(prev => addYears(prev, -1))\n break\n }\n }\n\n return { currentDate, days, handleNavAction, setCurrentDate }\n}\n","import type { CalendarProps } from './types'\nimport { styled } from '@hooks/useThemedStyles/types'\n\nexport function createCalendarStyles(props: CalendarProps) {\n return styled({\n container: {\n display: 'flex',\n alignItems: 'center'\n },\n monthContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.75rem',\n padding: '0.75rem 1rem'\n },\n timeContainer: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5rem'\n }\n })\n}\n","// External Libraries\nimport type React from 'react'\nimport { useEffect } from 'react'\nimport { addMonths, isAfter, isSameDay, parseISO } from 'date-fns'\n\n// Components\nimport { CalendarMonth } from './components/CalendarMonth'\nimport { CalendarHeader } from './components/CalendarHeader'\nimport { DateTimeControl } from './components/DateTimeControl'\n\n// Hooks\nimport { useCalendar } from './hooks/useCalendar'\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { CalendarProps } from './types'\n\n// Styles\nimport { createCalendarStyles } from './styles'\n\nexport const Calendar: React.FC<CalendarProps> = props => {\n // Hooks\n const mainCalendar = useCalendar()\n const secondaryCalendar = useCalendar(addMonths(mainCalendar.currentDate, 1))\n const { styles } = useThemedStyles(props, createCalendarStyles, {\n applyCommonProps: true,\n pick: p => [p.viewMode]\n })\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n secondaryCalendar.setCurrentDate(addMonths(mainCalendar.currentDate, 1))\n }, [mainCalendar.currentDate])\n\n // Functions\n function handleSelect(day: Date) {\n const { value, selectionMode, onChange } = props\n\n if (selectionMode === 'single') {\n onChange({ start: day.toISOString() })\n } else {\n const start = value?.start ? parseISO(value.start) : null\n const end = value?.end ? parseISO(value.end) : null\n\n if (!start || (start && end)) {\n onChange({ start: day.toISOString(), end: undefined })\n } else if (start && !end) {\n const [from, to] =\n isAfter(day, start) || isSameDay(day, start)\n ? [start, day]\n : [day, start]\n\n onChange({ start: from.toISOString(), end: to.toISOString() })\n }\n }\n }\n\n return (\n <div style={styles.container}>\n <div style={styles.monthContainer}>\n <CalendarHeader\n position=\"left\"\n currentDate={mainCalendar.currentDate}\n isDualView={props.viewMode === 'double'}\n disablePastDates={props.disablePastDates}\n onNavAction={mainCalendar.handleNavAction}\n />\n\n {props.isDateTimePicker ? (\n <DateTimeControl\n value={props.value}\n selectionMode={props.selectionMode}\n onChange={props.onChange}\n />\n ) : null}\n\n <CalendarMonth\n selection={props.value}\n days={mainCalendar.days}\n disablePastDates={props.disablePastDates}\n onDayClick={handleSelect}\n />\n </div>\n\n {props.viewMode === 'double' ? (\n <div style={styles.monthContainer}>\n <CalendarHeader\n isDualView\n position=\"right\"\n currentDate={secondaryCalendar.currentDate}\n disablePastDates={props.disablePastDates}\n onNavAction={mainCalendar.handleNavAction}\n />\n\n <CalendarMonth\n selection={props.value}\n days={secondaryCalendar.days}\n disablePastDates={props.disablePastDates}\n onDayClick={handleSelect}\n />\n </div>\n ) : null}\n </div>\n )\n}\n","import { styled } from '@hooks/useThemedStyles/types'\nimport type { DatePickerTriggerProps } from './types'\n\nexport function createDatePickerTriggerStyles(props: DatePickerTriggerProps) {\n return styled({\n container: {\n width: '100%',\n\n display: 'flex',\n flexDirection: 'column',\n\n gap: '0.5rem',\n\n opacity: props.disabled ? 0.5 : 1,\n cursor: props.disabled ? 'not-allowed' : 'pointer'\n },\n button: {\n width: '100%',\n\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n\n gap: '0.5rem',\n borderRadius: '0.5rem',\n padding: '0.625rem 0.875rem',\n\n border: props.errorMessage\n ? '1px solid var(--px-color-error)'\n : '1px solid var(--px-border-primary)',\n\n __rules: {\n '&:hover': {\n boxShadow: 'var(--px-shadow-default)',\n borderColor: 'var(--px-color-primary)'\n },\n '&:focus-within': {\n outlineOffset: '-1px',\n outline: props.errorMessage\n ? '2px solid var(--px-color-error)'\n : `2px solid var(--px-color-primary)`\n }\n }\n }\n })\n}\n","// External Libraries\nimport { format } from 'date-fns'\nimport { forwardRef, useId } from 'react'\n\n// Components\nimport { Icon } from '@components/commons/toolkit/Icon'\nimport { Label } from '@components/commons/toolkit/Label'\nimport { Typography } from '@components/commons/toolkit/Typography'\n\n// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { DatePickerTriggerProps } from './types'\n\n// Styles\nimport { createDatePickerTriggerStyles } from './styles'\n\nexport const DatePickerTrigger = forwardRef<\n HTMLButtonElement,\n DatePickerTriggerProps\n>(function DatePickerTrigger({ dateFormat = 'dd/MM/yyyy', ...props }, ref) {\n // Hooks\n const inputId = useId()\n const { styles, classes } = useThemedStyles(\n props,\n createDatePickerTriggerStyles,\n {\n pick: p => [p.disabled, p.errorMessage],\n applyCommonProps: true,\n commonSlot: 'container'\n }\n )\n\n // Constants\n const { label, value, disabled, required, placeholder, onClick } = props\n const hasValue = !!value?.start\n\n // Functions\n function renderDate() {\n if (!hasValue) return placeholder ?? 'Selecione uma data'\n\n const { start, end } = value\n\n const startDate = format(start, dateFormat)\n const endDate = end ? format(end, dateFormat) : ''\n\n return `${startDate}${endDate ? ` - ${endDate}` : ''}`\n }\n\n return (\n <div style={styles.container}>\n <Label\n label={label}\n htmlFor={inputId}\n required={required}\n requiredColor=\"var(--color-error)\"\n />\n\n <button\n ref={ref}\n type=\"button\"\n disabled={disabled}\n style={styles.button}\n aria-labelledby={inputId}\n aria-expanded={props.ariaExpanded}\n className={classes.button}\n onClick={onClick}\n >\n <div className=\"flex items-center gap-2\">\n <Icon\n size=\"sm\"\n name=\"general-calendar\"\n color=\"var(--px-text-primary)\"\n />\n\n <Typography variant=\"b1\" className=\"font-normal\">\n {renderDate()}\n </Typography>\n </div>\n\n <Icon\n size=\"sm\"\n color=\"var(--px-text-primary)\"\n name={props.ariaExpanded ? 'chevrons-up' : 'chevrons-down'}\n />\n </button>\n\n {props.errorMessage ? (\n <Typography\n variant=\"b2\"\n fontSize=\"0.75rem\"\n fontWeight=\"regular\"\n color=\"var(--px-color-error)\"\n >\n {props.errorMessage}\n </Typography>\n ) : null}\n </div>\n )\n})\n","// External Libraries\nimport { useState } from 'react'\n\n// Types\nimport type { DatePickerProps } from '../types'\nimport type { PickedDate } from '@components/commons/toolkit/Calendar/types'\n\nexport function useDatePicker(params: DatePickerProps) {\n // States\n const [isOpen, setOpen] = useState(false)\n const [selectedDate, setSelectedDate] = useState<PickedDate>()\n\n // Functions\n function toggleDialog(status: boolean) {\n if (status) {\n setSelectedDate(params.value)\n }\n\n setOpen(status)\n }\n\n function handleDateChange(value: PickedDate) {\n setSelectedDate(value)\n }\n\n function handleConfirmClick() {\n if (!selectedDate) return\n\n setOpen(false)\n params.onChange(selectedDate)\n }\n\n return {\n isOpen,\n selectedDate,\n toggleDialog,\n handleDateChange,\n handleConfirmClick\n }\n}\n","import { styled } from '@hooks/useThemedStyles/types'\nimport type { DatePickerProps } from './types'\n\nexport function createDatePickerStyles(props: DatePickerProps) {\n return styled({\n container: {\n width: '100%'\n },\n\n divider: {\n border: 0,\n display: 'flex',\n marginBlock: '0.1rem',\n borderTop: '1px solid var(--px-border-primary)'\n },\n\n buttonsContainer: {\n width: '100%',\n display: 'flex',\n\n alignItems: 'center',\n justifyContent: props.viewMode === 'single' ? 'center' : 'flex-end',\n\n gap: '0.75rem',\n padding: '0.5rem'\n }\n })\n}\n","import type {\n PickedDate,\n CalendarViewMode,\n CalendarSelectionMode\n} from '@components/commons/toolkit/Calendar/types'\n\nexport interface DatePickerProps {\n label: string\n value: PickedDate\n\n isDateTimePicker?: boolean\n\n required?: boolean\n disabled?: boolean\n placeholder?: string\n errorMessage?: string\n disablePastDates?: boolean\n scrollContainerId: string\n viewMode?: CalendarViewMode\n selectionMode?: CalendarSelectionMode\n\n dateFormat?: string\n onChange: (value: PickedDate) => void\n}\n","// External Libraries\nimport type React from 'react'\n\n// Components\nimport { Button } from '@components/commons/buttons/Button'\nimport { Calendar } from '@components/commons/toolkit/Calendar'\nimport { DatePickerTrigger } from './components/DatePickerTrigger'\nimport { BasePopover } from '@components/commons/structure/BasePopover'\n\n// Hooks\nimport { useDatePicker } from './hooks/useDatePicker'\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { DatePickerProps } from './types'\nimport type { PopoverTriggerRenderProps } from '@components/commons/toolkit/Popover/types'\n\n// Styles\nimport { createDatePickerStyles } from './styles'\n\nexport * as DatePickerTypes from './types'\n\nexport const DatePicker: React.FC<DatePickerProps> = props => {\n // Hooks\n const {\n isOpen,\n selectedDate,\n toggleDialog,\n handleDateChange,\n handleConfirmClick\n } = useDatePicker(props)\n const { styles } = useThemedStyles(props, createDatePickerStyles, {\n pick: p => [\n p.value,\n p.disabled,\n p.viewMode,\n p.errorMessage,\n p.disablePastDates\n ],\n applyCommonProps: true,\n commonSlot: 'container'\n })\n\n // Constants\n const isSingleMode = props.viewMode === 'single'\n\n // Functions\n function renderTrigger({\n ref,\n ariaExpanded,\n onClick\n }: PopoverTriggerRenderProps) {\n return (\n <DatePickerTrigger\n {...props}\n ref={ref as any}\n ariaExpanded={ariaExpanded}\n onClick={onClick}\n />\n )\n }\n\n return (\n <div style={styles.container}>\n <BasePopover\n open={isOpen}\n maxWidth=\"fit-content\"\n minWidth=\"fit-content\"\n maxHeight=\"fit-content\"\n trigger={renderTrigger}\n onOpenChange={toggleDialog}\n floatingOptions={{\n strategy: 'fixed',\n placement: 'bottom-start',\n scrollContainerId: props.scrollContainerId\n }}\n >\n <Calendar\n value={selectedDate}\n viewMode={props.viewMode ?? 'double'}\n isDateTimePicker={props.isDateTimePicker}\n disablePastDates={props.disablePastDates}\n selectionMode={props.selectionMode ?? 'range'}\n onChange={handleDateChange}\n />\n\n {isSingleMode ? <hr style={styles.divider} /> : null}\n\n <div style={styles.buttonsContainer}>\n <Button\n size=\"sm\"\n type=\"button\"\n label=\"Cancelar\"\n variant=\"outlined\"\n fullWidth={isSingleMode}\n onClick={() => toggleDialog(false)}\n />\n\n <Button\n type=\"button\"\n label=\"Aplicar\"\n variant=\"filled\"\n fullWidth={isSingleMode}\n onClick={handleConfirmClick}\n />\n </div>\n </BasePopover>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton-qBhQj30V.js","names":["IconButton: React.FC<IconButtonProps>"],"sources":["../src/components/commons/buttons/IconButton/styles.ts","../src/components/commons/buttons/IconButton/index.tsx"],"sourcesContent":["// Types\nimport type {\n IconButtonSize,\n IconButtonProps,\n IconButtonVariant\n} from './types'\nimport { styled } from '@hooks/useThemedStyles/types'\n\nexport function createIconButtonStyles(props: IconButtonProps) {\n const {\n variant = 'outlined',\n size = 'md',\n borderColor,\n backgroundColor\n } = props\n\n return styled({\n button: {\n ...getSize(size),\n\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n\n cursor: 'pointer',\n userSelect: 'none',\n\n borderRadius: 'var(--px-radius-lg)',\n border: getBorder(variant, borderColor),\n backgroundColor: getBackgroundColor(variant, backgroundColor),\n boxShadow: 'var(--px-shadow-xs)',\n\n __rules: {\n '&:hover': {\n opacity: '0.85 !important'\n },\n\n '&:disabled': {\n opacity: '0.5',\n cursor: 'not-allowed'\n },\n\n '&:focus': {\n outlineOffset: '2px',\n outline: '2px solid var(--px-color-primary) !important'\n }\n }\n }\n })\n}\n\nfunction getSize(size: IconButtonSize) {\n switch (size) {\n case 'lg':\n return { minHeight: '3.25rem', minWidth: '3.25rem' }\n case 'md':\n return { minHeight: '2.75rem', minWidth: '2.75rem' }\n case 'sm':\n return { minHeight: '2.25rem', minWidth: '2.25rem' }\n case 'xs':\n return { minHeight: '1.75rem', minWidth: '1.75rem' }\n default:\n return { minHeight: size, minWidth: size }\n }\n}\n\nfunction getBackgroundColor(\n variant?: IconButtonVariant,\n color?: string\n): string {\n if (color) return color\n\n if (variant === 'filled') return 'var(--px-btn-filled-bg)'\n\n if (variant === 'outlined') return 'transparent'\n\n if (variant === 'ghost') return 'transparent'\n\n return 'var(--px-btn-outlined-bg)'\n}\n\nfunction getBorder(variant?: IconButtonVariant, color?: string): string {\n if (color) return `1px solid ${color}`\n\n if (variant === 'filled') return '1px solid var(--px-btn-filled-bg)'\n\n if (variant === 'outlined') return '1px solid var(--px-border-primary)'\n\n if (variant === 'ghost') return 'none'\n\n return '1px solid var(--px-color-primary)'\n}\n","// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { IconButtonProps } from './types'\n\n// Styles\nimport { createIconButtonStyles } from './styles'\n\nexport const IconButton: React.FC<IconButtonProps> = props => {\n // Constants\n const disabled = props.isDisabled || props.isLoading\n\n // Hooks\n const { styles, classes } = useThemedStyles(props, createIconButtonStyles, {\n pick: p => [p.size, p.variant, p.borderColor, p.backgroundColor],\n override: props.styles,\n applyCommonProps: true,\n commonSlot: 'button'\n })\n\n return (\n <button\n disabled={disabled}\n aria-busy={props.isLoading}\n type=\"button\"\n className={classes.button}\n style={styles.button}\n onClick={props.onClick}\n >\n {props.icon}\n </button>\n )\n}\n"],"mappings":";;;;AAQA,SAAgB,uBAAuB,OAAwB;CAC7D,MAAM,EACJ,UAAU,YACV,OAAO,MACP,aACA,oBACE;AAEJ,QAAO,OAAO,EACZ,QAAQ;EACN,GAAG,QAAQ,KAAK;EAEhB,SAAS;EACT,YAAY;EACZ,gBAAgB;EAEhB,QAAQ;EACR,YAAY;EAEZ,cAAc;EACd,QAAQ,UAAU,SAAS,YAAY;EACvC,iBAAiB,mBAAmB,SAAS,gBAAgB;EAC7D,WAAW;EAEX,SAAS;GACP,WAAW,EACT,SAAS,mBACV;GAED,cAAc;IACZ,SAAS;IACT,QAAQ;IACT;GAED,WAAW;IACT,eAAe;IACf,SAAS;IACV;GACF;EACF,EACF,CAAC;;AAGJ,SAAS,QAAQ,MAAsB;AACrC,SAAQ,MAAR;EACE,KAAK,KACH,QAAO;GAAE,WAAW;GAAW,UAAU;GAAW;EACtD,KAAK,KACH,QAAO;GAAE,WAAW;GAAW,UAAU;GAAW;EACtD,KAAK,KACH,QAAO;GAAE,WAAW;GAAW,UAAU;GAAW;EACtD,KAAK,KACH,QAAO;GAAE,WAAW;GAAW,UAAU;GAAW;EACtD,QACE,QAAO;GAAE,WAAW;GAAM,UAAU;GAAM;;;AAIhD,SAAS,mBACP,SACA,OACQ;AACR,KAAI,MAAO,QAAO;AAElB,KAAI,YAAY,SAAU,QAAO;AAEjC,KAAI,YAAY,WAAY,QAAO;AAEnC,KAAI,YAAY,QAAS,QAAO;AAEhC,QAAO;;AAGT,SAAS,UAAU,SAA6B,OAAwB;AACtE,KAAI,MAAO,QAAO,aAAa;AAE/B,KAAI,YAAY,SAAU,QAAO;AAEjC,KAAI,YAAY,WAAY,QAAO;AAEnC,KAAI,YAAY,QAAS,QAAO;AAEhC,QAAO;;;;;ACjFT,MAAaA,cAAwC,UAAS;CAE5D,MAAM,WAAW,MAAM,cAAc,MAAM;CAG3C,MAAM,EAAE,QAAQ,YAAY,gBAAgB,OAAO,wBAAwB;EACzE,OAAM,MAAK;GAAC,EAAE;GAAM,EAAE;GAAS,EAAE;GAAa,EAAE;GAAgB;EAChE,UAAU,MAAM;EAChB,kBAAkB;EAClB,YAAY;EACb,CAAC;AAEF,QACE,oBAAC;EACW;EACV,aAAW,MAAM;EACjB,MAAK;EACL,WAAW,QAAQ;EACnB,OAAO,OAAO;EACd,SAAS,MAAM;YAEd,MAAM;GACA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MaskModule-B9d_CLgH.js","names":["locales: LocaleRegistry"],"sources":["../src/services/MaskModule/MaskModule.ts","../src/services/MaskModule/enums.ts","../src/services/MaskModule/base/maskUtils.ts","../src/services/MaskModule/base/BaseMask.ts","../src/services/MaskModule/locales/br/masks/CpfMask.ts","../src/services/MaskModule/locales/br/masks/CnpjMask.ts","../src/services/MaskModule/locales/br/masks/DateMask.ts","../src/services/MaskModule/locales/br/masks/PhoneMask.ts","../src/services/MaskModule/locales/br/masks/FloatMask.ts","../src/services/MaskModule/locales/br/masks/MoneyMask.ts","../src/services/MaskModule/locales/br/masks/IntegerMask.ts","../src/services/MaskModule/locales/br/masks/ZipCodeMask.ts","../src/services/MaskModule/types.ts","../src/services/MaskModule/locales/br/masks/DocumentMask.ts","../src/services/MaskModule/locales/br/masks/NumericSymbolMask.ts","../src/services/MaskModule/base/BaseValidator.ts","../src/services/MaskModule/locales/br/validators/CpfValidator.ts","../src/services/MaskModule/locales/br/validators/CnpjValidator.ts","../src/services/MaskModule/locales/br/validators/DateValidator.ts","../src/services/MaskModule/locales/br/validators/PhoneValidator.ts","../src/services/MaskModule/locales/br/validators/FloatValidator.ts","../src/services/MaskModule/locales/br/validators/MoneyValidator.ts","../src/services/MaskModule/locales/br/validators/IntegerValidator.ts","../src/services/MaskModule/locales/br/validators/ZipCodeValidator.ts","../src/services/MaskModule/locales/br/validators/DocumentValidator.ts","../src/services/MaskModule/locales/br/validators/NumericSymbolValidator.ts","../src/services/MaskModule/locales/br/registerMasks.ts","../src/services/MaskModule/index.ts"],"sourcesContent":["// Types\nimport type { Locale, MaskType } from './enums'\nimport type { BaseMask } from './base/BaseMask'\nimport type { BaseValidator } from './base/BaseValidator'\n\ntype MaskRegistry = {\n masks: Record<MaskType, BaseMask>\n validators: Record<MaskType, BaseValidator>\n}\n\ntype LocaleRegistry = Record<Locale, MaskRegistry>\n\nconst locales: LocaleRegistry = {} as LocaleRegistry\n\nfunction ensureLocale(locale: Locale): void {\n if (!locales[locale]) {\n locales[locale] = { masks: {}, validators: {} } as LocaleRegistry[Locale]\n }\n}\n\nexport const MaskModule = {\n registerMask(locale: Locale, type: MaskType, mask: BaseMask): void {\n ensureLocale(locale)\n locales[locale].masks[type] = mask\n },\n\n registerValidator(\n locale: Locale,\n type: MaskType,\n validator: BaseValidator\n ): void {\n ensureLocale(locale)\n locales[locale].validators[type] = validator\n },\n\n getMask(locale: Locale, type: MaskType): BaseMask | undefined {\n return locales[locale]?.masks[type]\n },\n\n getValidator(locale: Locale, type: MaskType): BaseValidator | undefined {\n return locales[locale]?.validators[type]\n },\n\n reset(): void {\n Object.keys(locales).forEach(locale => {\n delete locales[locale as Locale]\n })\n }\n}\n","/**\n * Supported locales (country + language region).\n *\n * Extend this enum as needed for new countries.\n */\nexport enum Locale {\n BR = 'pt-BR', // Brazil\n US = 'en-US', // United States\n AR = 'es-AR' // Argentina\n}\n\n/**\n * Types of masks supported in the system.\n *\n * Add new types as needed for different data formats.\n */\nexport const MaskType = {\n CPF: 'CPF',\n CNPJ: 'CNPJ',\n DOCUMENT: 'DOCUMENT',\n PHONE: 'PHONE',\n DATE: 'DATE',\n FLOAT: 'FLOAT',\n INTEGER: 'INTEGER',\n MONEY: 'MONEY',\n ZIP_CODE: 'ZIP_CODE',\n NUMERIC_SYMBOL: 'NUMERIC_SYMBOL'\n} as const\n\nexport type MaskType = (typeof MaskType)[keyof typeof MaskType]\n","/**\n * Removes all non-numeric characters from a string.\n * @param value - Input string.\n * @returns String containing only digits.\n */\nexport function onlyDigits(value: string): string {\n if (value == null) return ''\n return value.replace(/\\D/g, '')\n}\n\n/**\n * Applies the mask progressively according to the available characters.\n *\n * Alphanumeric characters (letters and digits) in the pattern will be replaced\n * by characters from the input `value`, in order. Non-alphanumeric characters\n * (e.g. `.`, `-`, `/`) are treated as static parts of the mask.\n *\n * Examples:\n *\n * applyPattern('12345', 'XXX.XXX.XXX-XX') -> '123.45'\n *\n * applyPattern('AB1234', 'AA-NN.NN') -> 'AB-12.34'\n *\n * applyPattern('12345678901', 'XXX.XXX.XXX-XX') -> '123.456.789-01'\n *\n * @param value - raw input string (partial or complete)\n * @param pattern - mask pattern where alphanumeric characters are placeholders\n * @returns partially formatted string\n */\nexport function applyPattern(value: string, pattern: string): string {\n if (value == null) return ''\n if (pattern == null) return value\n\n let result = ''\n let digitIndex = 0\n\n for (let i = 0; i < pattern.length; i++) {\n const char = pattern[i]\n\n if (/[a-zA-Z0-9]/.test(char)) {\n if (digitIndex < value.length) {\n result += value[digitIndex++]\n } else {\n break // No more digits available, stop applying more mask\n }\n } else {\n // Fixed mask character\n if (digitIndex < value.length) result += char\n }\n }\n\n return result\n}\n\n/**\n * Checks whether a string matches a regular expression.\n * @param value - Input string.\n * @param regex - Regular expression to test.\n * @returns Boolean indicating whether it matches.\n */\nexport function matchesPattern(value: string, regex: RegExp): boolean {\n return regex.test(value)\n}\n\n/**\n * Limits the length of a string to a maximum.\n * @param value - Input string.\n * @param maxLength - Maximum length allowed.\n * @returns Truncated string if longer than maxLength.\n */\nexport function limitLength(value: string, maxLength?: number): string {\n if (value == null) return ''\n if (maxLength === undefined) return value\n return value.slice(0, maxLength)\n}\n\n/**\n * Checks if a string meets min and max length constraints.\n * @param value - Input string.\n * @param min - Minimum length (optional).\n * @param max - Maximum length (optional).\n * @returns Boolean indicating whether the length is valid.\n */\nexport function isValidLength(\n value: string,\n min?: number,\n max?: number\n): boolean {\n if (value == null) return false\n\n if (min !== undefined && value.length < min) return false\n if (max !== undefined && value.length > max) return false\n return true\n}\n","import type { Mask } from '../types'\nimport { onlyDigits } from './maskUtils'\n\n/**\n * Abstract class that provides default behavior for most masks.\n * - Implements unmask() by removing all non-numeric characters.\n * - Supports optional maxLength and minLength constraints.\n */\nexport abstract class BaseMask implements Mask {\n /**\n * Maximum length of the masked string (optional).\n */\n maxLength?: number\n\n /**\n * Minimum length of the masked string (optional).\n */\n minLength?: number\n\n constructor(minLength?: number, maxLength?: number) {\n this.maxLength = maxLength\n this.minLength = minLength\n }\n\n /**\n * Removes all non-numeric characters from a string.\n * @param value - Masked or unmasked string.\n * @returns Plain string with digits only.\n */\n unmask(value: string): string {\n return onlyDigits(value)\n }\n\n /**\n * Must be implemented by each concrete mask class.\n * Applies the mask format to the input string.\n * @param value - Raw string.\n * @returns Masked string.\n */\n abstract format(value: string): string\n}\n","import { BaseMask } from '../../../base/BaseMask'\nimport { applyPattern, limitLength, onlyDigits } from '../../../base/maskUtils'\n\nexport const CPF_PATTERN = 'XXX.XXX.XXX-XX'\n\nexport class CpfMask extends BaseMask {\n constructor() {\n const length = CPF_PATTERN.length\n super(length, length)\n }\n\n format(value: string): string {\n const digits = onlyDigits(value)\n const formatted = applyPattern(digits, CPF_PATTERN)\n\n return limitLength(formatted, this.maxLength)\n }\n}\n","import { BaseMask } from '../../../base/BaseMask'\nimport { applyPattern, limitLength, onlyDigits } from '../../../base/maskUtils'\n\nexport const CNPJ_PATTERN = 'XX.XXX.XXX/XXXX-XX'\n\nexport class CnpjMask extends BaseMask {\n constructor() {\n const length = CNPJ_PATTERN.length\n super(length, length)\n }\n\n format(value: string): string {\n const digits = onlyDigits(value)\n const formatted = applyPattern(digits, CNPJ_PATTERN)\n\n return limitLength(formatted, this.maxLength)\n }\n}\n","import { BaseMask } from '../../../base/BaseMask'\nimport { limitLength, onlyDigits } from '../../../base/maskUtils'\n\nconst DATE_PATTERN = 'DD/MM/YYYY'\n\nexport class DateMask extends BaseMask {\n constructor() {\n const length = DATE_PATTERN.length\n super(length, length)\n }\n\n format(value: string): string {\n const digits = onlyDigits(value)\n\n let day = digits.slice(0, 2)\n let month = digits.slice(2, 4)\n let year = digits.slice(4, 8)\n\n // Clamp day (01–31)\n if (day.length === 2) {\n const parsed = parseInt(day)\n if (parsed > 31) day = '31'\n else if (parsed < 1) day = '01'\n }\n\n // Clamp month (01–12)\n if (month.length === 2) {\n const parsed = parseInt(month)\n if (parsed > 12) month = '12'\n else if (parsed < 1) month = '01'\n }\n\n // Clamp year (>= 0000)\n if (year.length === 4) {\n const parsed = parseInt(year)\n if (parsed < 0) year = '0000'\n }\n\n // Rebuild progressively\n let result = ''\n if (day) result += day\n if (month) result += `/${month}`\n if (year) result += `/${year}`\n\n return limitLength(result, this.maxLength)\n }\n}\n","import { BaseMask } from '../../../base/BaseMask'\nimport { limitLength, onlyDigits } from '../../../base/maskUtils'\n\n/**\n * Formats a Brazilian phone number progressively:\n * (XX) XXXXX-XXXX or (XX) XXXX-XXXX depending on length.\n */\nexport class PhoneMask extends BaseMask {\n constructor(maxLength = 15) {\n super(14, maxLength) // 14 (fixo) or 15 (celular)\n }\n\n format(value: string): string {\n const digits = limitLength(onlyDigits(value), this.maxLength)\n if (!digits) return ''\n\n // DDD\n if (digits.length < 3) return `(${digits}`\n\n const ddd = digits.slice(0, 2)\n const rest = digits.slice(2)\n\n // Fixo: 8 dígitos / Celular: 9 dígitos\n if (rest.length <= 4) {\n return `(${ddd}) ${rest}`\n } else if (rest.length <= 8) {\n const part1 = rest.slice(0, 4)\n const part2 = rest.slice(4)\n return `(${ddd}) ${part1}${part2 ? `-${part2}` : ''}`\n } else {\n const part1 = rest.slice(0, 5)\n const part2 = rest.slice(5)\n return `(${ddd}) ${part1}-${part2}`\n }\n }\n}\n","import { BaseMask } from '../../../base/BaseMask'\nimport { onlyDigits, limitLength } from '../../../base/maskUtils'\n\n/**\n * Automatically formats a numeric input as a float using comma as decimal separator.\n *\n * Ignores user-entered punctuation and inserts the comma based on configured decimal places.\n */\nexport class FloatMask extends BaseMask {\n private maxDecimalPlaces: number\n\n constructor(decimalDigits = 2, maxLength = 20) {\n super(1, maxLength)\n this.maxDecimalPlaces = decimalDigits\n }\n\n format(value: string): string {\n const rawDigits = onlyDigits(value)\n const digits = limitLength(rawDigits, this.maxLength)\n\n if (!digits) return ''\n\n const length = digits.length\n\n // If the string is shorter than or equal to the number of decimal places, prefix with zeros\n if (length <= this.maxDecimalPlaces) {\n const padded = digits.padStart(this.maxDecimalPlaces + 1, '0')\n const intPart = padded.slice(0, padded.length - this.maxDecimalPlaces)\n const decimalPart = padded.slice(-this.maxDecimalPlaces)\n return `${intPart},${decimalPart}`\n }\n\n const intPart = digits.slice(0, length - this.maxDecimalPlaces)\n const decimalPart = digits.slice(-this.maxDecimalPlaces)\n const intFormatted = this.formatThousands(intPart)\n\n return `${intFormatted},${decimalPart}`\n }\n\n /**\n * Adds dot thousand separators to a string of digits.\n * Example: \"1234567\" => \"1.234.567\"\n */\n private formatThousands(value: string): string {\n return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.')\n }\n}\n","import { BaseMask } from '../../../base/BaseMask'\nimport { onlyDigits } from '../../../base/maskUtils'\n\n/**\n * Formats input as currency, with thousand separator, decimal comma,\n * optional prefix (e.g. R$, $), and support for negatives.\n *\n * Examples:\n * - \"123456\" → \"R$ 1.234,56\"\n * - \"-123\" → \"R$ -1,23\"\n */\nexport class MoneyMask extends BaseMask {\n private maxDecimalPlaces: number\n private prefix: string\n private allowNegative: boolean\n\n constructor({\n prefix = 'R$',\n maxDecimalPlaces = 2,\n allowNegative = true,\n maxLength = 20\n }: {\n prefix?: string\n maxDecimalPlaces?: number\n allowNegative?: boolean\n maxLength?: number\n } = {}) {\n super(1, maxLength)\n this.prefix = prefix\n this.maxDecimalPlaces = maxDecimalPlaces\n this.allowNegative = allowNegative\n }\n\n format(value: string): string {\n if (!value) return ''\n\n const isNegative = this.allowNegative && value.trim().startsWith('-')\n const digits = onlyDigits(value).slice(0, this.maxLength)\n\n if (!digits) {\n return isNegative\n ? `${this.prefix} -0,${'0'.repeat(this.maxDecimalPlaces)}`\n : `${this.prefix} 0,${'0'.repeat(this.maxDecimalPlaces)}`\n }\n\n const len = digits.length\n\n // Ex: 3 digits, 2 decimals → '003' => '0,03'\n if (len <= this.maxDecimalPlaces) {\n const padded = digits.padStart(this.maxDecimalPlaces + 1, '0')\n const intPart = padded.slice(0, padded.length - this.maxDecimalPlaces)\n const decimalPart = padded.slice(-this.maxDecimalPlaces)\n return `${this.prefix} ${isNegative ? '-' : ''}${intPart},${decimalPart}`\n }\n\n const intRaw = digits.slice(0, len - this.maxDecimalPlaces)\n const decimal = digits.slice(-this.maxDecimalPlaces)\n const intFormatted = this.formatThousands(intRaw)\n\n return `${this.prefix} ${isNegative ? '-' : ''}${intFormatted},${decimal}`\n }\n\n private formatThousands(value: string): string {\n return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.')\n }\n}\n","import { BaseMask } from '../../../base/BaseMask'\nimport { limitLength, onlyDigits } from '../../../base/maskUtils'\n\n/**\n * Formats integers, allowing only digits.\n */\nexport class IntegerMask extends BaseMask {\n constructor(maxLength = 15) {\n super(1, maxLength)\n }\n\n format(value: string): string {\n const digits = onlyDigits(value)\n return limitLength(digits, this.maxLength)\n }\n}\n","import { BaseMask } from '../../../base/BaseMask'\nimport { applyPattern, limitLength, onlyDigits } from '../../../base/maskUtils'\n\nexport const ZIP_CODE_PATTERN = 'XXXXX-XXX'\n\nexport class ZipCodeMask extends BaseMask {\n constructor() {\n const length = ZIP_CODE_PATTERN.length\n super(length, length)\n }\n\n format(value: string): string {\n const digits = onlyDigits(value)\n const formatted = applyPattern(digits, ZIP_CODE_PATTERN)\n\n return limitLength(formatted, this.maxLength)\n }\n}\n","/**\n * Represents a generic mask.\n *\n * A mask is responsible for formatting and unformatting (removing formatting) from a value.\n */\nexport interface Mask {\n /**\n * Optional minimum length of the masked string.\n */\n minLength?: number\n\n /**\n * Optional maximum length of the masked string.\n */\n maxLength?: number\n\n /**\n * Formats a plain string into a masked format.\n * @param value - Raw string (e.g., \"12345678901\").\n * @returns Masked string (e.g., \"123.456.789-01\").\n */\n format(value: string): string\n\n /**\n * Removes all mask characters from a formatted string.\n * @param value - Masked string (e.g., \"123.456.789-01\").\n * @returns Unmasked string (e.g., \"12345678901\").\n */\n unmask(value: string): string\n}\n\n/**\n * Represents a validator for a masked value.\n *\n * A validator checks whether a masked value is valid based on rules.\n */\nexport interface Validator {\n /**\n * Validates whether the input value is valid.\n * @param value - Masked string.\n * @returns `true` if valid, `false` otherwise.\n */\n validate(value: string): boolean\n}\n\n/**\n * Mode of document mask and validator.\n *\n * - AUTO: Automatically detect based on length.\n * - CPF: Force CPF.\n * - CNPJ: Force CNPJ.\n */\nexport enum DocumentMode {\n CPF = 'cpf',\n CNPJ = 'cnpj',\n AUTO = 'auto'\n}\n","import { CpfMask } from './CpfMask'\nimport { CnpjMask } from './CnpjMask'\nimport { BaseMask } from '../../../base/BaseMask'\nimport { onlyDigits } from '../../../base/maskUtils'\nimport { DocumentMode } from '../../../types'\n\nexport class DocumentMask extends BaseMask {\n private cpfMask = new CpfMask()\n private cnpjMask = new CnpjMask()\n private mode: DocumentMode\n\n constructor(mode: DocumentMode = DocumentMode.AUTO) {\n super()\n this.mode = mode\n }\n\n format(value: string): string {\n const digits = onlyDigits(value)\n const mode = this.resolveMode(digits)\n\n if (mode === DocumentMode.CPF) {\n return this.cpfMask.format(digits)\n }\n\n if (mode === DocumentMode.CNPJ) {\n return this.cnpjMask.format(digits)\n }\n\n return digits\n }\n\n private resolveMode(digits: string): DocumentMode.CPF | DocumentMode.CNPJ {\n if (this.mode === DocumentMode.CPF) return DocumentMode.CPF\n if (this.mode === DocumentMode.CNPJ) return DocumentMode.CNPJ\n\n return digits.length <= 11 ? DocumentMode.CPF : DocumentMode.CNPJ\n }\n}\n","import { BaseMask } from '../../../base/BaseMask'\nimport { limitLength } from '../../../base/maskUtils'\n\nexport class NumericSymbolMask extends BaseMask {\n constructor(maxLength = 25) {\n super(1, maxLength)\n }\n\n format(value: string): string {\n if (value == null) return ''\n\n const result = value.replace(/[^\\d.,/-]/g, '')\n return limitLength(result, this.maxLength)\n }\n}\n","import type { Validator } from '../types'\n\n/**\n * Abstract class providing common validation utilities.\n * - Supports regex validation.\n * - Supports min and max length validation.\n */\nexport abstract class BaseValidator implements Validator {\n protected pattern?: RegExp\n protected minLength?: number\n protected maxLength?: number\n\n constructor(options?: {\n pattern?: RegExp\n minLength?: number\n maxLength?: number\n }) {\n this.pattern = options?.pattern\n this.minLength = options?.minLength\n this.maxLength = options?.maxLength\n }\n\n /**\n * Validates the input value based on:\n * - Pattern matching (if defined)\n * - Min length (if defined)\n * - Max length (if defined)\n *\n * Override this method if you need custom validation logic.\n *\n * @param value - Value to validate (usually masked string)\n * @returns true if valid, false otherwise\n */\n validate(value: string): boolean {\n if (value == null) return false\n\n const length = value.length\n\n if (this.minLength !== undefined && length < this.minLength) {\n return false\n }\n\n if (this.maxLength !== undefined && length > this.maxLength) {\n return false\n }\n\n if (this.pattern && !this.pattern.test(value)) return false\n\n return true\n }\n}\n","import { CPF_PATTERN } from '../masks/CpfMask'\nimport { BaseValidator } from '../../../base/BaseValidator'\n\nexport class CpfValidator extends BaseValidator {\n constructor() {\n const length = CPF_PATTERN.length\n super({ minLength: length, maxLength: length })\n }\n\n validate(value: string): boolean {\n if (value == null) return false\n\n return isCpfValid(value)\n }\n}\n\n/**\n * Validates if a CPF (Brazilian tax ID) is valid.\n *\n * This function:\n * - Removes any non-digit characters (dots, dashes, spaces).\n * - Checks if CPF has 11 digits.\n * - Rejects CPFs where all digits are the same (e.g., '11111111111').\n * - Performs CPF check digit validation (standard algorithm).\n *\n * @param inputCPF - CPF as a string, can be formatted (e.g., \"123.456.789-09\").\n * @returns true if CPF is valid, false otherwise.\n */\nfunction isCpfValid(inputCPF: string): boolean {\n // Remove dots, dashes, and spaces\n const cpfOnlyNumbers = inputCPF.replace(/[\\s.-]/g, '')\n\n // CPF must be exactly 11 digits\n if (cpfOnlyNumbers.length !== 11) return false\n\n // Check if all digits are the same (invalid CPF)\n if (/^(\\d)\\1{10}$/.test(cpfOnlyNumbers)) return false\n\n // Validate first check digit\n let sum = 0\n for (let i = 0; i < 9; i++) {\n sum += parseInt(cpfOnlyNumbers.charAt(i)) * (10 - i)\n }\n\n let firstCheckDigit = (sum * 10) % 11\n if (firstCheckDigit === 10 || firstCheckDigit === 11) firstCheckDigit = 0\n if (firstCheckDigit !== parseInt(cpfOnlyNumbers.charAt(9))) return false\n\n // Validate second check digit\n sum = 0\n for (let i = 0; i < 10; i++) {\n sum += parseInt(cpfOnlyNumbers.charAt(i)) * (11 - i)\n }\n\n let secondCheckDigit = (sum * 10) % 11\n if (secondCheckDigit === 10 || secondCheckDigit === 11) secondCheckDigit = 0\n if (secondCheckDigit !== parseInt(cpfOnlyNumbers.charAt(10))) return false\n\n return true\n}\n","import { CNPJ_PATTERN } from '../masks/CnpjMask'\nimport { BaseValidator } from '../../../base/BaseValidator'\n\nexport class CnpjValidator extends BaseValidator {\n constructor() {\n const length = CNPJ_PATTERN.length\n super({ minLength: length, maxLength: length })\n }\n\n validate(value: string): boolean {\n if (value == null) return false\n\n return isCnpjValid(value)\n }\n}\n\n/**\n * Validates whether a given CNPJ number is valid.\n * @param cnpj The CNPJ number as a string.\n * @returns True if valid, false otherwise.\n */\nfunction isCnpjValid(cnpj: string): boolean {\n if (!cnpj) return false\n\n // Remove any non-digit characters\n const cleanedCnpj = cnpj.replace(/[^\\d]+/g, '')\n\n // CNPJ must be exactly 14 digits\n if (cleanedCnpj.length !== 14) return false\n\n // Reject CNPJs with all identical digits (e.g., 00000000000000)\n if (/^(\\d)\\1{13}$/.test(cleanedCnpj)) return false\n\n // Extract the base CNPJ and the two check digits\n const baseCnpj = cleanedCnpj.slice(0, 12)\n const checkDigits = cleanedCnpj.slice(12)\n\n // Calculate first check digit\n const firstSum = calculateCnpjWeightedSum(baseCnpj, 12, 5)\n const firstCheckDigit = calculateCnpjCheckDigit(firstSum)\n\n if (firstCheckDigit !== Number(checkDigits.charAt(0))) {\n return false\n }\n\n // Calculate second check digit (base + first check digit)\n const secondSum = calculateCnpjWeightedSum(baseCnpj + firstCheckDigit, 13, 6)\n const secondCheckDigit = calculateCnpjCheckDigit(secondSum)\n\n if (secondCheckDigit !== Number(checkDigits.charAt(1))) {\n return false\n }\n\n return true\n}\n\n/**\n * Calculates the weighted sum for CNPJ verification digits.\n * @param numbers The numeric string of the CNPJ.\n * @param size The number of digits to consider for the calculation.\n * @param position The starting multiplier position (5 or 6).\n * @returns The weighted sum.\n */\nfunction calculateCnpjWeightedSum(\n numbers: string,\n size: number,\n position: number\n): number {\n let sum = 0\n\n for (let i = 0; i < size; i++) {\n sum += Number(numbers.charAt(i)) * position\n position--\n\n if (position < 2) {\n position = 9\n }\n }\n\n return sum\n}\n\n/**\n * Calculates the verification digit based on the weighted sum.\n * @param sum The weighted sum.\n * @returns The verification digit (0-9).\n */\nfunction calculateCnpjCheckDigit(sum: number): number {\n const remainder = sum % 11\n return remainder < 2 ? 0 : 11 - remainder\n}\n","import { BaseValidator } from '../../../base/BaseValidator'\n\n/**\n * Validator for dates in the format dd/mm/yyyy.\n *\n * Ensures the format is correct and the date is valid in the calendar (e.g. 30/02 is invalid).\n */\nexport class DateValidator extends BaseValidator {\n constructor() {\n super({\n minLength: 10,\n maxLength: 10,\n pattern: /^\\d{2}\\/\\d{2}\\/\\d{4}$/ // Strictly requires dd/mm/yyyy format\n })\n }\n\n override validate(value: string): boolean {\n if (!super.validate(value)) return false\n\n const [dayStr, monthStr, yearStr] = value.split('/')\n const day = parseInt(dayStr, 10)\n const month = parseInt(monthStr, 10)\n const year = parseInt(yearStr, 10)\n\n const date = new Date(year, month - 1, day)\n\n return (\n date.getFullYear() === year &&\n date.getMonth() === month - 1 &&\n date.getDate() === day\n )\n }\n}\n","import { BaseValidator } from '../../../base/BaseValidator'\n\n/**\n * Validates a Brazilian phone number with optional mobile or landline support.\n */\nexport class PhoneValidator extends BaseValidator {\n private allowedDDDs: string[]\n\n constructor({\n allowMobile = true,\n allowLandline = true,\n allowedDDDs = Array.from({ length: 89 }, (_, i) => `${i + 11}`), // 11–99\n minLength,\n maxLength\n }: {\n allowMobile?: boolean\n allowLandline?: boolean\n allowedDDDs?: string[]\n minLength?: number\n maxLength?: number\n } = {}) {\n const mobileRegex = /^\\(?(\\d{2})\\)?\\s?\\d{5}-?\\d{4}$/ // (11) 98765-4321\n const landlineRegex = /^\\(?(\\d{2})\\)?\\s?\\d{4}-?\\d{4}$/ // (11) 3456-7890\n\n const pattern =\n allowMobile && allowLandline\n ? /^\\(?\\d{2}\\)?\\s?(\\d{4,5})-?\\d{4}$/\n : allowMobile\n ? mobileRegex\n : landlineRegex\n\n super({ pattern, minLength, maxLength })\n\n this.allowedDDDs = allowedDDDs\n }\n\n validate(value: string): boolean {\n if (!super.validate(value)) return false\n\n const digits = value.replace(/\\D/g, '')\n if (digits.length !== 10 && digits.length !== 11) return false\n\n const ddd = digits.slice(0, 2)\n return this.allowedDDDs.includes(ddd)\n }\n}\n","import { BaseValidator } from '../../../base/BaseValidator'\n\nexport class FloatValidator extends BaseValidator {\n constructor(maxDecimalPlaces = 3, minLength = 1, maxLength = 20) {\n const decimalRegex = new RegExp(`^\\\\d+(,\\\\d{1,${maxDecimalPlaces}})?$`)\n\n super({\n pattern: decimalRegex,\n minLength,\n maxLength\n })\n }\n}\n","import { BaseValidator } from '../../../base/BaseValidator'\n\n/**\n * Validates formatted currency strings.\n *\n * Supports optional prefix, negative values, and comma decimal separator.\n */\nexport class MoneyValidator extends BaseValidator {\n constructor({\n prefix = 'R$',\n maxDecimalPlaces = 2,\n allowNegative = true,\n minLength,\n maxLength\n }: {\n prefix?: string\n maxDecimalPlaces?: number\n allowNegative?: boolean\n minLength?: number\n maxLength?: number\n } = {}) {\n // Escape prefix for regex (if it has symbols)\n const escapedPrefix = prefix.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\n // Matches: R$ -1.234,56\n const pattern = new RegExp(\n `^${escapedPrefix}\\\\s?${allowNegative ? '-?' : ''}\\\\d{1,3}(\\\\.\\\\d{3})*(,\\\\d{1,${maxDecimalPlaces}})?$`\n )\n\n super({\n pattern,\n minLength,\n maxLength\n })\n }\n}\n","import { BaseValidator } from '../../../base/BaseValidator'\n\nexport class IntegerValidator extends BaseValidator {\n constructor(minLength = 1, maxLength = 15) {\n super({\n pattern: /^\\d+$/,\n minLength,\n maxLength\n })\n }\n}\n","import { ZIP_CODE_PATTERN } from '../masks/ZipCodeMask'\nimport { BaseValidator } from '../../../base/BaseValidator'\n\nexport class ZipCodeValidator extends BaseValidator {\n constructor() {\n const length = ZIP_CODE_PATTERN.length\n super({ minLength: length, maxLength: length })\n }\n\n validate(value: string): boolean {\n if (value == null) return false\n\n if (this.minLength !== undefined && value.length < this.minLength)\n return false\n\n if (this.maxLength !== undefined && value.length > this.maxLength)\n return false\n\n return true\n }\n}\n","import { CpfValidator } from './CpfValidator'\nimport { CnpjValidator } from './CnpjValidator'\nimport { BaseValidator } from '../../../base/BaseValidator'\nimport { onlyDigits } from '../../../base/maskUtils'\nimport { DocumentMode } from '../../../types'\n\nexport class DocumentValidator extends BaseValidator {\n private cpfValidator = new CpfValidator()\n private cnpjValidator = new CnpjValidator()\n private mode: DocumentMode\n\n constructor(mode: DocumentMode = DocumentMode.AUTO) {\n super()\n this.mode = mode\n }\n\n validate(value: string): boolean {\n const digits = onlyDigits(value)\n const type = this.resolveType(digits)\n\n if (type === DocumentMode.CPF) {\n return this.cpfValidator.validate(value)\n }\n\n if (type === DocumentMode.CNPJ) {\n return this.cnpjValidator.validate(value)\n }\n\n return false\n }\n\n private resolveType(digits: string): DocumentMode.CPF | DocumentMode.CNPJ {\n if (this.mode === DocumentMode.CPF) return DocumentMode.CPF\n if (this.mode === DocumentMode.CNPJ) return DocumentMode.CNPJ\n\n return digits.length <= 11 ? DocumentMode.CPF : DocumentMode.CNPJ\n }\n}\n","import { BaseValidator } from '../../../base/BaseValidator'\n\nexport class NumericSymbolValidator extends BaseValidator {\n constructor(minLength = 1, maxLength = 25) {\n super({\n pattern: /^[\\d.,/-]+$/,\n minLength,\n maxLength\n })\n }\n}\n","import { MaskModule } from '../../MaskModule'\nimport { MaskType, Locale } from '../../enums'\n\nimport { CpfMask } from './masks/CpfMask'\nimport { CnpjMask } from './masks/CnpjMask'\nimport { DateMask } from './masks/DateMask'\nimport { PhoneMask } from './masks/PhoneMask'\nimport { FloatMask } from './masks/FloatMask'\nimport { MoneyMask } from './masks/MoneyMask'\nimport { IntegerMask } from './masks/IntegerMask'\nimport { ZipCodeMask } from './masks/ZipCodeMask'\nimport { DocumentMask } from './masks/DocumentMask'\nimport { NumericSymbolMask } from './masks/NumericSymbolMask'\n\nimport { CpfValidator } from './validators/CpfValidator'\nimport { CnpjValidator } from './validators/CnpjValidator'\nimport { DateValidator } from './validators/DateValidator'\nimport { PhoneValidator } from './validators/PhoneValidator'\nimport { FloatValidator } from './validators/FloatValidator'\nimport { MoneyValidator } from './validators/MoneyValidator'\nimport { IntegerValidator } from './validators/IntegerValidator'\nimport { ZipCodeValidator } from './validators/ZipCodeValidator'\nimport { DocumentValidator } from './validators/DocumentValidator'\nimport { NumericSymbolValidator } from './validators/NumericSymbolValidator'\n\nexport function registerBrMasks() {\n MaskModule.registerMask(Locale.BR, MaskType.CPF, new CpfMask())\n MaskModule.registerValidator(Locale.BR, MaskType.CPF, new CpfValidator())\n\n MaskModule.registerMask(Locale.BR, MaskType.CNPJ, new CnpjMask())\n MaskModule.registerValidator(Locale.BR, MaskType.CNPJ, new CnpjValidator())\n\n MaskModule.registerMask(Locale.BR, MaskType.DOCUMENT, new DocumentMask())\n MaskModule.registerValidator(\n Locale.BR,\n MaskType.DOCUMENT,\n new DocumentValidator()\n )\n\n MaskModule.registerMask(Locale.BR, MaskType.PHONE, new PhoneMask())\n MaskModule.registerValidator(Locale.BR, MaskType.PHONE, new PhoneValidator())\n\n MaskModule.registerMask(Locale.BR, MaskType.DATE, new DateMask())\n MaskModule.registerValidator(Locale.BR, MaskType.DATE, new DateValidator())\n\n MaskModule.registerMask(Locale.BR, MaskType.FLOAT, new FloatMask())\n MaskModule.registerValidator(Locale.BR, MaskType.FLOAT, new FloatValidator())\n\n MaskModule.registerMask(Locale.BR, MaskType.INTEGER, new IntegerMask())\n MaskModule.registerValidator(\n Locale.BR,\n MaskType.INTEGER,\n new IntegerValidator()\n )\n\n MaskModule.registerMask(Locale.BR, MaskType.MONEY, new MoneyMask())\n MaskModule.registerValidator(Locale.BR, MaskType.MONEY, new MoneyValidator())\n\n MaskModule.registerMask(\n Locale.BR,\n MaskType.NUMERIC_SYMBOL,\n new NumericSymbolMask()\n )\n MaskModule.registerValidator(\n Locale.BR,\n MaskType.NUMERIC_SYMBOL,\n new NumericSymbolValidator()\n )\n\n MaskModule.registerMask(Locale.BR, MaskType.ZIP_CODE, new ZipCodeMask())\n MaskModule.registerValidator(\n Locale.BR,\n MaskType.ZIP_CODE,\n new ZipCodeValidator()\n )\n}\n","import { registerBrMasks } from './locales/br/registerMasks'\n\nexport * from './enums'\nexport * from './MaskModule'\n\n// Register default locales\nregisterBrMasks()\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabSwitch-BrFTSD3N.js","names":[],"sources":["../src/components/commons/toolkit/TabSwitch/components/TabSwitchItem/styles.ts","../src/components/commons/toolkit/TabSwitch/components/TabSwitchItem/index.tsx","../src/components/commons/toolkit/TabSwitch/styles.ts","../src/components/commons/toolkit/TabSwitch/index.tsx"],"sourcesContent":["// External Libraries\nimport { styled } from '@hooks/useThemedStyles/types'\n\ninterface Params {\n disabled?: boolean\n selected?: boolean\n selectedColor?: string\n variant: 'default' | 'underline'\n}\n\nexport function createTabSwitchItemStyles({\n variant,\n disabled,\n selected,\n selectedColor\n}: Params) {\n const accent = selectedColor ?? 'var(--px-color-primary)'\n\n return styled({\n item: {\n minHeight: '1.25rem',\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 4,\n background: 'transparent',\n border: 0,\n padding: '8px 10px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.5 : 1,\n userSelect: 'none',\n whiteSpace: 'nowrap',\n __rules: { '& > p': { zIndex: 1 } }\n },\n\n selectedBg:\n variant === 'default'\n ? {\n position: 'absolute',\n inset: 0,\n borderRadius: 6,\n border: '1px solid var(--px-border-primary)',\n background: selected ? accent : 'transparent'\n }\n : {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: -2,\n height: 2,\n background: selected ? accent : 'transparent'\n }\n })\n}\n","// External Libraries\nimport { motion } from 'framer-motion'\n\n// Components\nimport { Typography } from '@components/commons/toolkit/Typography'\n\n// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Types\nimport type { SwitchOption } from '../../types'\n\n// Styles\nimport { createTabSwitchItemStyles } from './styles'\n\ntype Props<T> = {\n option: SwitchOption<T>\n selected: boolean\n layoutId?: string\n disabled?: boolean\n selectedColor?: string\n selectedLabelColor?: string\n variant: 'default' | 'underline'\n onClick: (value: T) => void\n}\n\nexport const SwitchItem = <T,>(props: Props<T>) => {\n const { option, disabled, selected, layoutId, onClick } = props\n\n const { styles, classes } = useThemedStyles(\n props,\n createTabSwitchItemStyles,\n {\n pick: p => [p.variant, p.selectedColor, p.selectedLabelColor, p.selected]\n }\n )\n\n const isDisabled = disabled || option.disabled\n\n return (\n <button\n type=\"button\"\n style={styles.item}\n className={classes.item}\n tabIndex={isDisabled ? -1 : 0}\n onClick={() => !isDisabled && onClick(option.value)}\n >\n {selected ? (\n <motion.div\n layoutId={layoutId || 'pixel-tabswitch-selected'}\n style={styles.selectedBg}\n />\n ) : null}\n\n {option.icon ? (\n <span style={{ display: 'inline-flex' }}>{option.icon}</span>\n ) : null}\n\n <Typography variant=\"b1\" fontWeight=\"bold\">\n {option.label}\n </Typography>\n </button>\n )\n}\n","// Types\nimport type { TabSwitchProps } from './types'\nimport { styled } from '@hooks/useThemedStyles/types'\n\nexport function createTabSwitchStyles<T>(props: TabSwitchProps<T>) {\n const { fitContent } = props\n\n return styled({\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n color: 'var(--px-text-primary, #4b5563)',\n width: fitContent ? 'fit-content' : '100%',\n borderBottom: '1px solid var(--px-border-primary, #e5e7eb)',\n gap: 0,\n __rules: { '& svg': { zIndex: 1 } }\n }\n })\n}\n","// Hooks\nimport { useThemedStyles } from '@hooks/useThemedStyles'\n\n// Components\nimport { SwitchItem } from './components/TabSwitchItem'\n\n// Types\nimport type { TabSwitchProps } from './types'\n\n// Styles\nimport { createTabSwitchStyles } from './styles'\n\nexport * from './types'\n\nexport const TabSwitch = <T,>(props: TabSwitchProps<T>) => {\n {\n const {\n options,\n disabled,\n layoutId,\n currentValue,\n variant = 'default',\n onChange\n } = props\n\n const { styles, classes } = useThemedStyles(props, createTabSwitchStyles, {\n pick: p => [p.disabled, p.currentValue],\n override: props.styles,\n applyCommonProps: true\n })\n\n return (\n <div style={styles.container} className={classes.container}>\n {options.map(opt => (\n <SwitchItem\n key={String(opt.value)}\n option={opt}\n variant={variant}\n layoutId={layoutId}\n disabled={disabled}\n selectedColor={props.selectedColor}\n selected={currentValue === opt.value}\n selectedLabelColor={props.selectedLabelColor}\n onClick={onChange}\n />\n ))}\n </div>\n )\n }\n}\n"],"mappings":";;;;;;AAUA,SAAgB,0BAA0B,EACxC,SACA,UACA,UACA,iBACS;CACT,MAAM,SAAS,iBAAiB;AAEhC,QAAO,OAAO;EACZ,MAAM;GACJ,WAAW;GACX,UAAU;GACV,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,KAAK;GACL,YAAY;GACZ,QAAQ;GACR,SAAS;GACT,QAAQ,WAAW,gBAAgB;GACnC,SAAS,WAAW,KAAM;GAC1B,YAAY;GACZ,YAAY;GACZ,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE;GACpC;EAED,YACE,YAAY,YACR;GACE,UAAU;GACV,OAAO;GACP,cAAc;GACd,QAAQ;GACR,YAAY,WAAW,SAAS;GACjC,GACD;GACE,UAAU;GACV,MAAM;GACN,OAAO;GACP,QAAQ;GACR,QAAQ;GACR,YAAY,WAAW,SAAS;GACjC;EACR,CAAC;;;;;AC3BJ,MAAa,cAAkB,UAAoB;CACjD,MAAM,EAAE,QAAQ,UAAU,UAAU,UAAU,YAAY;CAE1D,MAAM,EAAE,QAAQ,YAAY,gBAC1B,OACA,2BACA,EACE,OAAM,MAAK;EAAC,EAAE;EAAS,EAAE;EAAe,EAAE;EAAoB,EAAE;EAAS,EAC1E,CACF;CAED,MAAM,aAAa,YAAY,OAAO;AAEtC,QACE,qBAAC;EACC,MAAK;EACL,OAAO,OAAO;EACd,WAAW,QAAQ;EACnB,UAAU,aAAa,KAAK;EAC5B,eAAe,CAAC,cAAc,QAAQ,OAAO,MAAM;;GAElD,WACC,oBAAC,OAAO;IACN,UAAU,YAAY;IACtB,OAAO,OAAO;KACd,GACA;GAEH,OAAO,OACN,oBAAC;IAAK,OAAO,EAAE,SAAS,eAAe;cAAG,OAAO;KAAY,GAC3D;GAEJ,oBAAC;IAAW,SAAQ;IAAK,YAAW;cACjC,OAAO;KACG;;GACN;;;;;ACzDb,SAAgB,sBAAyB,OAA0B;CACjE,MAAM,EAAE,eAAe;AAEvB,QAAO,OAAO,EACZ,WAAW;EACT,SAAS;EACT,eAAe;EACf,YAAY;EACZ,OAAO;EACP,OAAO,aAAa,gBAAgB;EACpC,cAAc;EACd,KAAK;EACL,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE;EACpC,EACF,CAAC;;;;;ACJJ,MAAa,aAAiB,UAA6B;CACzD;EACE,MAAM,EACJ,SACA,UACA,UACA,cACA,UAAU,WACV,aACE;EAEJ,MAAM,EAAE,QAAQ,YAAY,gBAAgB,OAAO,uBAAuB;GACxE,OAAM,MAAK,CAAC,EAAE,UAAU,EAAE,aAAa;GACvC,UAAU,MAAM;GAChB,kBAAkB;GACnB,CAAC;AAEF,SACE,oBAAC;GAAI,OAAO,OAAO;GAAW,WAAW,QAAQ;aAC9C,QAAQ,KAAI,QACX,oBAAC;IAEC,QAAQ;IACC;IACC;IACA;IACV,eAAe,MAAM;IACrB,UAAU,iBAAiB,IAAI;IAC/B,oBAAoB,MAAM;IAC1B,SAAS;MARJ,OAAO,IAAI,MAAM,CAStB,CACF;IACE"}
|