pixelize-design-library 2.4.2-beta.37 → 2.4.2-beta.38
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/COMPONENT-GOTCHAS.md +834 -1
- package/dist/Components/Accordion/Accordion.d.ts +1 -0
- package/dist/Components/Accordion/Accordion.js +1 -0
- package/dist/Components/Accordion/AccordionProps.d.ts +2 -0
- package/dist/Components/AlertDialog/AlertDialog.d.ts +1 -0
- package/dist/Components/AlertDialog/AlertDialog.js +1 -0
- package/dist/Components/AlertDialog/AlertDialogProps.d.ts +2 -0
- package/dist/Components/Apexcharts/ApexAreaChart/ApexAreaChart.d.ts +1 -0
- package/dist/Components/Apexcharts/ApexAreaChart/ApexAreaChart.js +1 -0
- package/dist/Components/Apexcharts/ApexAreaChart/ApexAreaChartProps.d.ts +4 -0
- package/dist/Components/Apexcharts/ApexBarChart/ApexBarChartProps.d.ts +6 -0
- package/dist/Components/Apexcharts/ApexLineChart/ApexLineChartProps.d.ts +8 -0
- package/dist/Components/Apexcharts/ApexPieChart/ApexPieChartProps.d.ts +6 -0
- package/dist/Components/Apexcharts/ApexPolarCharts/ApexPolarChartsProps.d.ts +3 -0
- package/dist/Components/Apexcharts/ApexRadialChart/ApexRadialChart.d.ts +1 -0
- package/dist/Components/Apexcharts/ApexRadialChart/ApexRadialChart.js +1 -0
- package/dist/Components/Apexcharts/ApexRadialChart/ApexRadialChartProps.d.ts +3 -0
- package/dist/Components/AppSwitcher/AppSwitcherProps.d.ts +6 -0
- package/dist/Components/AppearanceSettings/AppearanceSettingsProps.d.ts +2 -0
- package/dist/Components/Breadcrumbs/BreadcrumbsProps.d.ts +3 -0
- package/dist/Components/Button/ButtonProps.d.ts +3 -0
- package/dist/Components/ButtonGroupIcon/ButtonGoupIconProps.d.ts +7 -0
- package/dist/Components/Buttons/ButtonsProps.d.ts +2 -0
- package/dist/Components/Card/CardProps.d.ts +3 -0
- package/dist/Components/Card/PaymentCard/PaymentCardProps.d.ts +6 -0
- package/dist/Components/Checkbox/Checkbox.d.ts +1 -0
- package/dist/Components/Checkbox/Checkbox.js +1 -0
- package/dist/Components/Checkbox/CheckboxProps.d.ts +4 -0
- package/dist/Components/Common/ErrorComponent.d.ts +2 -0
- package/dist/Components/Common/ErrorComponent.js +1 -0
- package/dist/Components/Common/FormLabel.d.ts +4 -0
- package/dist/Components/Common/FormLabel.js +1 -0
- package/dist/Components/Common/FormattedDescription.d.ts +2 -0
- package/dist/Components/Common/FormattedDescription.js +1 -0
- package/dist/Components/Common/HelperText.d.ts +2 -0
- package/dist/Components/Common/HelperText.js +2 -0
- package/dist/Components/Common/Label.d.ts +1 -0
- package/dist/Components/Common/Label.js +1 -0
- package/dist/Components/ContactForm/ContactForm.d.ts +1 -0
- package/dist/Components/ContactForm/ContactForm.js +1 -0
- package/dist/Components/ContactForm/ContactFormProps.d.ts +4 -0
- package/dist/Components/CopyButton/CopyButton.d.ts +3 -1
- package/dist/Components/CopyButton/CopyButton.js +1 -0
- package/dist/Components/CustomModulesTable/CustomModulesTableProps.d.ts +8 -0
- package/dist/Components/DatePicker/CalendarPanel.d.ts +1 -0
- package/dist/Components/DatePicker/CalendarPanel.js +1 -0
- package/dist/Components/DatePicker/DatePicker.d.ts +1 -0
- package/dist/Components/DatePicker/DatePicker.js +1 -0
- package/dist/Components/DatePicker/DatePickerProps.d.ts +9 -0
- package/dist/Components/DatePicker/RangeDatePicker.d.ts +1 -0
- package/dist/Components/DatePicker/RangeDatePicker.js +1 -0
- package/dist/Components/DatePicker/SingleDatePicker.d.ts +1 -0
- package/dist/Components/DatePicker/SingleDatePicker.js +1 -0
- package/dist/Components/DatePicker/ThemeDatePicker.d.ts +1 -0
- package/dist/Components/DatePicker/ThemeDatePicker.js +1 -0
- package/dist/Components/DatePicker/TimeOnlyPicker.d.ts +1 -0
- package/dist/Components/DatePicker/TimeOnlyPicker.js +4 -1
- package/dist/Components/DatePicker/TimePicker.d.ts +1 -0
- package/dist/Components/DatePicker/TimePicker.js +1 -0
- package/dist/Components/DatePicker/TimePickerInput.d.ts +1 -0
- package/dist/Components/DatePicker/TimePickerInput.js +1 -0
- package/dist/Components/Divider/Divider.d.ts +1 -0
- package/dist/Components/Divider/Divider.js +1 -0
- package/dist/Components/Drawer/DrawerProps.d.ts +1 -0
- package/dist/Components/Dropdown/DropDown.d.ts +1 -0
- package/dist/Components/Dropdown/DropDown.js +1 -0
- package/dist/Components/Dropdown/DropdownProps.d.ts +3 -0
- package/dist/Components/Editor/Editor.d.ts +1 -0
- package/dist/Components/Editor/Editor.js +1 -0
- package/dist/Components/Editor/EditorProps.d.ts +2 -0
- package/dist/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.d.ts +1 -0
- package/dist/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +2 -5
- package/dist/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtpProps.d.ts +4 -0
- package/dist/Components/EmptyState/EmptyState.d.ts +1 -0
- package/dist/Components/EmptyState/EmptyState.js +1 -0
- package/dist/Components/EmptyState/EmptyStateProps.d.ts +3 -0
- package/dist/Components/FeedbackForm/FeedbackForm.d.ts +3 -0
- package/dist/Components/FeedbackForm/FeedbackForm.js +1 -0
- package/dist/Components/FieldSelectModal/FieldSelectModal.d.ts +3 -2
- package/dist/Components/FieldSelectModal/FieldSelectModal.js +1 -0
- package/dist/Components/FilePreview/FilePreview.d.ts +1 -0
- package/dist/Components/FilePreview/FilePreview.js +1 -0
- package/dist/Components/FilePreview/FilePreviewProps.d.ts +5 -2
- package/dist/Components/FileUpload/FileUpload.d.ts +1 -0
- package/dist/Components/FileUpload/FileUpload.js +1 -0
- package/dist/Components/FileUpload/FileUploadProps.d.ts +4 -0
- package/dist/Components/FileUploader/FileUploader.d.ts +1 -0
- package/dist/Components/FileUploader/FileUploader.js +1 -0
- package/dist/Components/FileUploader/FileUploaderProps.d.ts +2 -0
- package/dist/Components/FilterSidebar/FilterSidebar.d.ts +3 -0
- package/dist/Components/Form/FormWrapper.d.ts +3 -0
- package/dist/Components/Form/FormWrapper.js +2 -1
- package/dist/Components/Header/HeaderProps.d.ts +5 -0
- package/dist/Components/Input/Input/InputProps.d.ts +2 -0
- package/dist/Components/Input/PhoneNumberInput.d.ts +1 -0
- package/dist/Components/Input/PhoneNumberInput.js +1 -0
- package/dist/Components/Input/PhoneNumberInputProps.d.ts +3 -0
- package/dist/Components/Input/Switch/InputSwitch.d.ts +2 -0
- package/dist/Components/Input/Switch/InputSwitch.js +1 -0
- package/dist/Components/Input/TextInput.js +1 -0
- package/dist/Components/Input/TextInputProps.d.ts +2 -0
- package/dist/Components/InputTextArea/InputTextArea.d.ts +1 -0
- package/dist/Components/InputTextArea/InputTextArea.js +1 -0
- package/dist/Components/KanbanBoard/AccountCard.d.ts +3 -0
- package/dist/Components/KanbanBoard/AccountCard.js +1 -0
- package/dist/Components/KanbanBoard/AccountRow.d.ts +1 -0
- package/dist/Components/KanbanBoard/AccountRow.js +1 -0
- package/dist/Components/KanbanBoard/KanbanActions/KanbanActions.d.ts +2 -0
- package/dist/Components/KanbanBoard/KanbanActions/KanbanActions.js +1 -0
- package/dist/Components/KanbanBoard/KanbanBoard.d.ts +1 -0
- package/dist/Components/KanbanBoard/KanbanBoard.js +1 -0
- package/dist/Components/KanbanBoard/KanbanBoardProps.d.ts +12 -11
- package/dist/Components/KanbanBoard/MeasuredItem.d.ts +1 -0
- package/dist/Components/KanbanBoard/MeasuredItem.js +1 -0
- package/dist/Components/LazyWrapper/LazyWrapper.d.ts +3 -2
- package/dist/Components/LazyWrapper/LazyWrapper.js +1 -0
- package/dist/Components/LimitReachedModal/LimitReachedModalProps.d.ts +4 -1
- package/dist/Components/LimitReachedModal/limitReachedCopy.d.ts +2 -0
- package/dist/Components/LimitReachedModal/limitReachedCopy.js +2 -0
- package/dist/Components/Loading/Loading.d.ts +1 -0
- package/dist/Components/Loading/Loading.js +1 -0
- package/dist/Components/Loading/LoadingProps.d.ts +2 -0
- package/dist/Components/Modal/ModalProps.d.ts +1 -0
- package/dist/Components/MoreItems/MoreItems.d.ts +1 -0
- package/dist/Components/MoreItems/MoreItems.js +1 -0
- package/dist/Components/MoreItems/MoreItemsProps.d.ts +4 -2
- package/dist/Components/MultiSelect/MultiSelectProps.d.ts +1 -0
- package/dist/Components/NavigationBar/NavigationBarProps.d.ts +3 -0
- package/dist/Components/NoteTextArea/NoteTextArea.d.ts +1 -0
- package/dist/Components/NoteTextArea/NoteTextArea.js +1 -0
- package/dist/Components/NoteTextArea/NoteTextAreaProps.d.ts +2 -0
- package/dist/Components/Notification/Notification.d.ts +1 -0
- package/dist/Components/Notification/Notification.js +1 -0
- package/dist/Components/Notification/NotificationProps.d.ts +6 -0
- package/dist/Components/NumberInput/NumberInput.d.ts +1 -0
- package/dist/Components/NumberInput/NumberInput.js +1 -0
- package/dist/Components/NumberInput/NumberInputProps.d.ts +3 -0
- package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +6 -1
- package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +1 -0
- package/dist/Components/OrganizationDetails/OrganizationDetailsProps.d.ts +10 -2
- package/dist/Components/PdfViewer/PdfViewer.d.ts +2 -1
- package/dist/Components/PdfViewer/PdfViewer.js +1 -0
- package/dist/Components/PinInput/PinInput.d.ts +1 -0
- package/dist/Components/PinInput/PinInput.js +1 -0
- package/dist/Components/PinInput/PinInputProps.d.ts +2 -0
- package/dist/Components/PinInputs/PinInputs.d.ts +1 -0
- package/dist/Components/PinInputs/PinInputs.js +1 -0
- package/dist/Components/PinInputs/PinInputsProps.d.ts +1 -0
- package/dist/Components/PlanBadge/PlanBadgeProps.d.ts +2 -0
- package/dist/Components/PlanPill/PlanPillProps.d.ts +2 -0
- package/dist/Components/ProductCard/ProductCardProps.d.ts +10 -0
- package/dist/Components/ProductCard/ProductReview.d.ts +1 -0
- package/dist/Components/ProductDetails/ProductDetailsProps.d.ts +7 -0
- package/dist/Components/ProfileCard/ProfileCardProps.d.ts +2 -0
- package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +1 -0
- package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +1 -0
- package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewerProps.d.ts +9 -1
- package/dist/Components/ProgressBar/ProgressBar.d.ts +1 -0
- package/dist/Components/ProgressBar/ProgressBar.js +1 -0
- package/dist/Components/ProgressBar/ProgressBarProps.d.ts +2 -0
- package/dist/Components/RadioButton/RadioButtonProps.d.ts +1 -0
- package/dist/Components/Reorder/Reorder.d.ts +2 -0
- package/dist/Components/Reorder/Reorder.js +1 -0
- package/dist/Components/Reorder/ReorderProps.d.ts +3 -0
- package/dist/Components/RolesPermission/RolesPermissionProps.d.ts +10 -0
- package/dist/Components/ScrollToTop/ScrollToTop.d.ts +3 -2
- package/dist/Components/ScrollToTop/ScrollToTop.js +1 -0
- package/dist/Components/Search/Search.d.ts +1 -0
- package/dist/Components/Search/Search.js +1 -0
- package/dist/Components/Search/SearchProps.d.ts +2 -0
- package/dist/Components/SearchSelect/SearchSelect.d.ts +1 -0
- package/dist/Components/SearchSelect/SearchSelect.js +1 -0
- package/dist/Components/SearchSelect/SearchSelectProps.d.ts +5 -0
- package/dist/Components/SegmentedControl/SegmentedControl.d.ts +1 -0
- package/dist/Components/SegmentedControl/SegmentedControl.js +1 -0
- package/dist/Components/SegmentedControl/SegmentedControlProps.d.ts +4 -0
- package/dist/Components/Select/SelectProps.d.ts +2 -0
- package/dist/Components/SelectSearch/SelectSearch.d.ts +1 -0
- package/dist/Components/SelectSearch/SelectSearch.js +1 -0
- package/dist/Components/SelectSearch/SelectSearchProps.d.ts +5 -0
- package/dist/Components/SelectV2/SelectV2.d.ts +1 -0
- package/dist/Components/SelectV2/SelectV2.js +1 -0
- package/dist/Components/SelectV2/SelectV2Props.d.ts +6 -1
- package/dist/Components/SideBar/SideBarProps.d.ts +9 -0
- package/dist/Components/SignInActivityTable/SignInActivityTableProps.d.ts +3 -0
- package/dist/Components/Skeletons/SkeletonProps.d.ts +2 -0
- package/dist/Components/Skeletons/Skeletons.d.ts +1 -0
- package/dist/Components/Skeletons/Skeletons.js +1 -0
- package/dist/Components/Slider/Slider.d.ts +3 -0
- package/dist/Components/Slider/Slider.js +1 -0
- package/dist/Components/StageProgress/StageItem.d.ts +1 -0
- package/dist/Components/StageProgress/StageItem.js +1 -0
- package/dist/Components/StageProgress/StageProgress.d.ts +1 -0
- package/dist/Components/StageProgress/StageProgress.js +1 -0
- package/dist/Components/StageProgress/StageProgressProps.d.ts +12 -4
- package/dist/Components/Switch/Switch.d.ts +1 -0
- package/dist/Components/Switch/Switch.js +1 -0
- package/dist/Components/Switch/SwitchProps.d.ts +1 -0
- package/dist/Components/Table/TableProps.d.ts +13 -0
- package/dist/Components/Table/filters/CompactSelect.d.ts +1 -0
- package/dist/Components/Table/filters/LeftFilterPane.d.ts +9 -1
- package/dist/Components/Tag/Tag.d.ts +1 -0
- package/dist/Components/Tag/Tag.js +1 -0
- package/dist/Components/Tag/TagProps.d.ts +7 -0
- package/dist/Components/Timeline/Timeline.d.ts +1 -0
- package/dist/Components/Timeline/Timeline.js +1 -0
- package/dist/Components/Timeline/TimelineProps.d.ts +8 -0
- package/dist/Components/Toaster/Toaster.d.ts +1 -0
- package/dist/Components/Toaster/Toaster.js +1 -0
- package/dist/Components/Toaster/ToasterProps.d.ts +3 -0
- package/dist/Components/Toggle/TableToggle.d.ts +1 -0
- package/dist/Components/Toggle/TableToggle.js +1 -0
- package/dist/Components/Toggle/TableToggleProps.d.ts +3 -0
- package/dist/Components/ToggleSwitch/ToggleSwitch.d.ts +1 -0
- package/dist/Components/ToggleSwitch/ToggleSwitch.js +1 -0
- package/dist/Components/ToggleSwitch/ToggleSwitchProps.d.ts +2 -0
- package/dist/Components/ToolTip/ToolTip.d.ts +1 -0
- package/dist/Components/ToolTip/ToolTip.js +1 -0
- package/dist/Components/ToolTip/ToolTipProps.d.ts +2 -0
- package/dist/Components/Trail/EditableCell.d.ts +2 -0
- package/dist/Components/Trail/EditableCell.js +1 -0
- package/dist/Components/Trail/SelectAllCheckbox.d.ts +1 -0
- package/dist/Components/Trail/SelectAllCheckbox.js +1 -0
- package/dist/Components/Trail/TrailWorks.d.ts +1 -0
- package/dist/Components/Trail/TrailWorks.js +1 -0
- package/dist/Components/UpgradeButton/UpgradeButtonProps.d.ts +6 -2
- package/dist/Components/UserDetails/UserDetailsProps.d.ts +17 -1
- package/dist/Components/WorkspaceWindow/WorkspaceWindowProps.d.ts +6 -1
- package/dist/esm/Components/Accordion/Accordion.js +1 -0
- package/dist/esm/Components/AlertDialog/AlertDialog.js +1 -0
- package/dist/esm/Components/Apexcharts/ApexAreaChart/ApexAreaChart.js +1 -0
- package/dist/esm/Components/Apexcharts/ApexRadialChart/ApexRadialChart.js +1 -0
- package/dist/esm/Components/Checkbox/Checkbox.js +1 -0
- package/dist/esm/Components/Common/ErrorComponent.js +1 -0
- package/dist/esm/Components/Common/FormLabel.js +1 -0
- package/dist/esm/Components/Common/FormattedDescription.js +1 -0
- package/dist/esm/Components/Common/HelperText.js +2 -0
- package/dist/esm/Components/Common/Label.js +1 -0
- package/dist/esm/Components/ContactForm/ContactForm.js +1 -0
- package/dist/esm/Components/CopyButton/CopyButton.js +1 -0
- package/dist/esm/Components/DatePicker/CalendarPanel.js +1 -0
- package/dist/esm/Components/DatePicker/DatePicker.js +1 -0
- package/dist/esm/Components/DatePicker/RangeDatePicker.js +1 -0
- package/dist/esm/Components/DatePicker/SingleDatePicker.js +1 -0
- package/dist/esm/Components/DatePicker/ThemeDatePicker.js +1 -0
- package/dist/esm/Components/DatePicker/TimeOnlyPicker.js +4 -1
- package/dist/esm/Components/DatePicker/TimePicker.js +1 -0
- package/dist/esm/Components/DatePicker/TimePickerInput.js +1 -0
- package/dist/esm/Components/Divider/Divider.js +1 -0
- package/dist/esm/Components/Dropdown/DropDown.js +1 -0
- package/dist/esm/Components/Editor/Editor.js +1 -0
- package/dist/esm/Components/EmailCards/VerifyEmailOtp/VerifyEmailOtp.js +2 -5
- package/dist/esm/Components/EmptyState/EmptyState.js +1 -0
- package/dist/esm/Components/FeedbackForm/FeedbackForm.js +1 -0
- package/dist/esm/Components/FieldSelectModal/FieldSelectModal.js +1 -0
- package/dist/esm/Components/FilePreview/FilePreview.js +1 -0
- package/dist/esm/Components/FileUpload/FileUpload.js +1 -0
- package/dist/esm/Components/FileUploader/FileUploader.js +1 -0
- package/dist/esm/Components/Form/FormWrapper.js +2 -1
- package/dist/esm/Components/Input/PhoneNumberInput.js +1 -0
- package/dist/esm/Components/Input/Switch/InputSwitch.js +1 -0
- package/dist/esm/Components/Input/TextInput.js +1 -0
- package/dist/esm/Components/InputTextArea/InputTextArea.js +1 -0
- package/dist/esm/Components/KanbanBoard/AccountCard.js +1 -0
- package/dist/esm/Components/KanbanBoard/AccountRow.js +1 -0
- package/dist/esm/Components/KanbanBoard/KanbanActions/KanbanActions.js +1 -0
- package/dist/esm/Components/KanbanBoard/KanbanBoard.js +1 -0
- package/dist/esm/Components/KanbanBoard/MeasuredItem.js +1 -0
- package/dist/esm/Components/LazyWrapper/LazyWrapper.js +1 -0
- package/dist/esm/Components/LimitReachedModal/limitReachedCopy.js +2 -0
- package/dist/esm/Components/Loading/Loading.js +1 -0
- package/dist/esm/Components/MoreItems/MoreItems.js +1 -0
- package/dist/esm/Components/NoteTextArea/NoteTextArea.js +1 -0
- package/dist/esm/Components/Notification/Notification.js +1 -0
- package/dist/esm/Components/NumberInput/NumberInput.js +1 -0
- package/dist/esm/Components/OrgSwitcher/OrgSwitcherProps.js +1 -0
- package/dist/esm/Components/PdfViewer/PdfViewer.js +1 -0
- package/dist/esm/Components/PinInput/PinInput.js +1 -0
- package/dist/esm/Components/PinInputs/PinInputs.js +1 -0
- package/dist/esm/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +1 -0
- package/dist/esm/Components/ProgressBar/ProgressBar.js +1 -0
- package/dist/esm/Components/Reorder/Reorder.js +1 -0
- package/dist/esm/Components/ScrollToTop/ScrollToTop.js +1 -0
- package/dist/esm/Components/Search/Search.js +1 -0
- package/dist/esm/Components/SearchSelect/SearchSelect.js +1 -0
- package/dist/esm/Components/SegmentedControl/SegmentedControl.js +1 -0
- package/dist/esm/Components/SelectSearch/SelectSearch.js +1 -0
- package/dist/esm/Components/SelectV2/SelectV2.js +1 -0
- package/dist/esm/Components/Skeletons/Skeletons.js +1 -0
- package/dist/esm/Components/Slider/Slider.js +1 -0
- package/dist/esm/Components/StageProgress/StageItem.js +1 -0
- package/dist/esm/Components/StageProgress/StageProgress.js +1 -0
- package/dist/esm/Components/Switch/Switch.js +1 -0
- package/dist/esm/Components/Tag/Tag.js +1 -0
- package/dist/esm/Components/Timeline/Timeline.js +1 -0
- package/dist/esm/Components/Toaster/Toaster.js +1 -0
- package/dist/esm/Components/Toggle/TableToggle.js +1 -0
- package/dist/esm/Components/ToggleSwitch/ToggleSwitch.js +1 -0
- package/dist/esm/Components/ToolTip/ToolTip.js +1 -0
- package/dist/esm/Components/Trail/EditableCell.js +1 -0
- package/dist/esm/Components/Trail/SelectAllCheckbox.js +1 -0
- package/dist/esm/Components/Trail/TrailWorks.js +1 -0
- package/package.json +2 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { ToasterChildren, ToasterContextType } from "./ToasterProps";
|
|
2
|
+
/** Provides useToaster().showToast() — a transient, self-dismissing notification, not hover-triggered info (ToolTip) or a blocking confirmation (AlertDialog). */
|
|
2
3
|
export default function ToasterProvider({ children }: ToasterChildren): import("react/jsx-runtime").JSX.Element;
|
|
3
4
|
export declare const useToaster: () => ToasterContextType;
|
|
@@ -64,6 +64,7 @@ function ToastCard({ onClose, title, description, actions, isClosable, duration,
|
|
|
64
64
|
animationPlayState: paused ? "paused" : "running",
|
|
65
65
|
} }))] }));
|
|
66
66
|
}
|
|
67
|
+
/** Provides useToaster().showToast() — a transient, self-dismissing notification, not hover-triggered info (ToolTip) or a blocking confirmation (AlertDialog). */
|
|
67
68
|
function ToasterProvider({ children }) {
|
|
68
69
|
const toast = (0, react_2.useToast)();
|
|
69
70
|
const theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ToastProps } from "@chakra-ui/react";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
+
/** children is Picked from Chakra's ToastProps but never read by showToast — a dead prop; pass description instead. */
|
|
3
4
|
export type ToasterToastProps = Pick<ToastProps, 'description' | 'title' | 'isClosable' | 'duration' | 'children' | 'onClose'> & {
|
|
4
5
|
position?: "top" | "bottom" | "top-right" | "top-left" | "bottom-right" | "bottom-left";
|
|
5
6
|
status?: "success" | "error" | "warning" | "info" | "loading";
|
|
@@ -11,9 +12,11 @@ export type ToasterToastProps = Pick<ToastProps, 'description' | 'title' | 'isCl
|
|
|
11
12
|
*/
|
|
12
13
|
actions?: (onClose: () => void) => ReactNode;
|
|
13
14
|
};
|
|
15
|
+
/** Shape of the ToasterContext value; useToaster() throws if called outside a mounted ToasterProvider. */
|
|
14
16
|
export interface ToasterContextType {
|
|
15
17
|
showToast: (children: ToasterToastProps) => void;
|
|
16
18
|
}
|
|
19
|
+
/** Props for ToasterProvider — just the app subtree it wraps in the toast context. */
|
|
17
20
|
export interface ToasterChildren {
|
|
18
21
|
children: ReactNode;
|
|
19
22
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ViewToggleProps } from "./TableToggleProps";
|
|
3
|
+
/** Two icon-only IconButtons (Grid/List) with no aria-pressed — selection is shown by color only; shares variant with SegmentedControl (see MODULE.md). */
|
|
3
4
|
declare const TableToggle: React.FC<ViewToggleProps>;
|
|
4
5
|
export default TableToggle;
|
|
@@ -12,6 +12,7 @@ const outlineRung_1 = require("../../Theme/tokens/builders/outlineRung");
|
|
|
12
12
|
const filledSurface_1 = require("../../Theme/tokens/builders/filledSurface");
|
|
13
13
|
const ToolTip_1 = __importDefault(require("../ToolTip/ToolTip"));
|
|
14
14
|
const MODES = ["grid", "list"];
|
|
15
|
+
/** Two icon-only IconButtons (Grid/List) with no aria-pressed — selection is shown by color only; shares variant with SegmentedControl (see MODULE.md). */
|
|
15
16
|
const TableToggle = ({ value, onChange, variant = "default" }) => {
|
|
16
17
|
const theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
17
18
|
const { colors } = theme;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
/** The two views TableToggle switches between — "list" renders as a kanban-style icon, not a literal list. */
|
|
1
2
|
export type ViewMode = "grid" | "list";
|
|
3
|
+
/** Visual style for TableToggle; "default" is the plain segmented control with no sliding indicator. */
|
|
2
4
|
export type TableToggleVariant = "default" | "brandSlide" | "underlineSlide";
|
|
5
|
+
/** Props for TableToggle — the exported type is named ViewToggleProps, not TableToggleProps. */
|
|
3
6
|
export type ViewToggleProps = {
|
|
4
7
|
value: ViewMode;
|
|
5
8
|
onChange: (val: ViewMode) => void;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { ToggleSwitchProps } from "./ToggleSwitchProps";
|
|
2
|
+
/** Binary on/off control, role="switch"; always controlled with no internal state — distinct from the two-option Switch/SegmentedControl. */
|
|
2
3
|
export default function ToggleSwitch({ isChecked, onChange, isDisabled, size, id, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, }: ToggleSwitchProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -8,6 +8,7 @@ const SIZES = {
|
|
|
8
8
|
sm: { w: "2rem", h: "1.125rem", knob: "0.875rem", travel: "0.75rem" },
|
|
9
9
|
md: { w: "2.375rem", h: "1.375rem", knob: "1.125rem", travel: "0.875rem" },
|
|
10
10
|
};
|
|
11
|
+
/** Binary on/off control, role="switch"; always controlled with no internal state — distinct from the two-option Switch/SegmentedControl. */
|
|
11
12
|
function ToggleSwitch({ isChecked, onChange, isDisabled = false, size = "md", id, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, }) {
|
|
12
13
|
const { colors } = (0, useCustomTheme_1.useCustomTheme)();
|
|
13
14
|
const dims = SIZES[size];
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
/** Track/knob size preset for ToggleSwitch; exact widths and travel distance live in ToggleSwitch.tsx's SIZES map. */
|
|
1
2
|
export type ToggleSwitchSize = "sm" | "md";
|
|
3
|
+
/** Props for the switch — isChecked/onChange are required, so there's no uncontrolled/defaultChecked mode. */
|
|
2
4
|
export type ToggleSwitchProps = {
|
|
3
5
|
isChecked: boolean;
|
|
4
6
|
onChange: (checked: boolean) => void;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { ToolTipProps } from "./ToolTipProps";
|
|
2
|
+
/** Renders a hover/focus-triggered Chakra Tooltip — not a substitute for Toaster's transient, unprompted notifications. */
|
|
2
3
|
export default function ToolTip({ placement, label, children, hasArrow, fontSize, bg, color, isDisabled, overflowOnly, isOpen, defaultIsOpen, openDelay, closeDelay, arrowSize, closeOnClick, size, width, height, arrowPadding, arrowShadowColor, direction, gutter, onClose, modifiers, closeOnPointerDown, styles, }: ToolTipProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -8,6 +8,7 @@ const useIsTruncated_1 = require("../../Hooks/useIsTruncated");
|
|
|
8
8
|
const mergeRefs_1 = require("../../Utils/mergeRefs");
|
|
9
9
|
const useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
10
10
|
const accentText_1 = require("../../Theme/tokens/builders/accentText");
|
|
11
|
+
/** Renders a hover/focus-triggered Chakra Tooltip — not a substitute for Toaster's transient, unprompted notifications. */
|
|
11
12
|
function ToolTip({ placement = "top", label, children, hasArrow = true, fontSize = "14px", bg, color, isDisabled, overflowOnly = false, isOpen, defaultIsOpen, openDelay = 0, closeDelay = 0, arrowSize = 10, closeOnClick = false, size, width, height, arrowPadding, arrowShadowColor, direction, gutter = 8, onClose, modifiers, closeOnPointerDown, styles, }) {
|
|
12
13
|
// Measure the child for `overflowOnly`. The hook is always called (Rules of
|
|
13
14
|
// Hooks) but is fully inert unless `overflowOnly` is set — no layout reads,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { TooltipProps as ChakraTooltip } from "@chakra-ui/react";
|
|
2
|
+
/** Closed prop list, no ...rest — shouldWrapChildren/portalProps aren't exposed; hasArrow defaults true, closeOnClick false (both flipped from Chakra). */
|
|
2
3
|
export type ToolTipProps = Pick<ChakraTooltip, "placement" | "label" | "hasArrow" | "fontSize" | "isDisabled" | "isOpen" | "defaultIsOpen" | "openDelay" | "closeDelay" | "arrowSize" | "closeOnClick" | "size" | "width" | "height" | "arrowPadding" | "arrowShadowColor" | "direction" | "gutter" | "onClose" | "modifiers" | "closeOnPointerDown"> & {
|
|
4
|
+
/** bg/color default to the theme's inverted sidebar surface (near-black both modes) — override only if you own the contrast. */
|
|
3
5
|
bg?: string;
|
|
4
6
|
color?: string;
|
|
5
7
|
children: React.ReactNode;
|
|
@@ -5,7 +5,9 @@ interface EditableCellProps {
|
|
|
5
5
|
column: Column;
|
|
6
6
|
isEditable: boolean;
|
|
7
7
|
handleCellClick: (rowId: number, columnId: number) => void;
|
|
8
|
+
/** Also fires on outside-click with the cell's current unchanged value — a commit signal, not only a real edit. */
|
|
8
9
|
handleCellChange: (rowId: number, columnLabel: string, value: string) => void;
|
|
9
10
|
}
|
|
11
|
+
/** Inline editable cell driven entirely by parent-owned row state — no internal draft state of its own. */
|
|
10
12
|
export declare const EditableCell: React.FC<EditableCellProps>;
|
|
11
13
|
export {};
|
|
@@ -7,6 +7,7 @@ const react_2 = require("@chakra-ui/react");
|
|
|
7
7
|
const lucide_react_1 = require("lucide-react");
|
|
8
8
|
const useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
9
9
|
const accentText_1 = require("../../Theme/tokens/builders/accentText");
|
|
10
|
+
/** Inline editable cell driven entirely by parent-owned row state — no internal draft state of its own. */
|
|
10
11
|
const EditableCell = ({ row, column, isEditable, handleCellClick, handleCellChange, }) => {
|
|
11
12
|
const { colors } = (0, useCustomTheme_1.useCustomTheme)();
|
|
12
13
|
const cellRef = (0, react_1.useRef)(null);
|
|
@@ -4,5 +4,6 @@ interface SelectAllCheckboxProps {
|
|
|
4
4
|
isIndeterminate: boolean;
|
|
5
5
|
handleSelectAll: () => void;
|
|
6
6
|
}
|
|
7
|
+
/** Purely presentational — isAllSelected/isIndeterminate must be computed and owned entirely by the parent. */
|
|
7
8
|
export declare const SelectAllCheckbox: React.FC<SelectAllCheckboxProps>;
|
|
8
9
|
export {};
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SelectAllCheckbox = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("@chakra-ui/react");
|
|
6
|
+
/** Purely presentational — isAllSelected/isIndeterminate must be computed and owned entirely by the parent. */
|
|
6
7
|
const SelectAllCheckbox = ({ isAllSelected, isIndeterminate, handleSelectAll, }) => {
|
|
7
8
|
return ((0, jsx_runtime_1.jsx)(react_1.Checkbox, { isChecked: isAllSelected, isIndeterminate: isIndeterminate, onChange: handleSelectAll }));
|
|
8
9
|
};
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
4
|
const react_1 = require("@chakra-ui/react");
|
|
5
5
|
const useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
6
|
+
/** Hardcoded 2-row demo table with no props at all — not a reusable grid; use Table for a real editable/selectable list. */
|
|
6
7
|
const TrailWorks = () => {
|
|
7
8
|
const { colors } = (0, useCustomTheme_1.useCustomTheme)();
|
|
8
9
|
const cellBorder = colors.boxborder[200];
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { ElementType } from "react";
|
|
2
|
+
/** Size preset for UpgradeButton; "sm" is a dense variant of the same badge, not simply a smaller one. */
|
|
2
3
|
export type UpgradeButtonSize = "sm" | "md" | "lg";
|
|
3
4
|
/**
|
|
4
5
|
* Theme-aware color variants. Each resolves to a gradient built from the
|
|
5
6
|
* active theme's tokens, so the button blends with whichever theme is active.
|
|
6
7
|
*/
|
|
7
8
|
export type UpgradeButtonVariant = "brand" | "primary" | "secondary" | "success" | "warning" | "danger" | "info";
|
|
9
|
+
/** Prominent animated shimmer CTA button for "upgrade now" actions — not the compact plan-state pill; see PlanPill/PlanBadge for that. Reused as LimitReachedModal's own CTA. */
|
|
8
10
|
export interface UpgradeButtonProps {
|
|
9
11
|
/** Primary label (shown on md+ screens). */
|
|
10
12
|
label: string;
|
|
@@ -14,7 +16,7 @@ export interface UpgradeButtonProps {
|
|
|
14
16
|
subtitle?: string;
|
|
15
17
|
/** Leading icon. Defaults to lucide `Sparkles`. Pass null to hide. */
|
|
16
18
|
icon?: ElementType | null;
|
|
17
|
-
/**
|
|
19
|
+
/** Defaults to gold only when gold clears AA contrast against the gradient; otherwise silently falls back to the label's ink color. */
|
|
18
20
|
iconColor?: string;
|
|
19
21
|
/**
|
|
20
22
|
* Theme-aware color variant. Defaults to `brand` (the active theme's
|
|
@@ -29,11 +31,13 @@ export interface UpgradeButtonProps {
|
|
|
29
31
|
from: string;
|
|
30
32
|
to: string;
|
|
31
33
|
};
|
|
34
|
+
/** Default "md". */
|
|
32
35
|
size?: UpgradeButtonSize;
|
|
33
36
|
/** Animated light sweep on hover. Default true. */
|
|
34
37
|
shimmer?: boolean;
|
|
35
|
-
/**
|
|
38
|
+
/** Blocks onClick and shows a spinner, but does NOT set the native disabled attribute or dim opacity — pair with isDisabled for that. */
|
|
36
39
|
isLoading?: boolean;
|
|
40
|
+
/** Unlike isLoading, this also dims opacity and sets the native disabled attribute. */
|
|
37
41
|
isDisabled?: boolean;
|
|
38
42
|
/** Truncate the label beyond this width. */
|
|
39
43
|
maxLabelWidth?: string;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ElementType, ReactNode } from "react";
|
|
2
|
+
/** One assignable role offered in the Add User and Change Role selects. */
|
|
2
3
|
export type RoleOption = {
|
|
3
4
|
id: number;
|
|
4
5
|
label: string;
|
|
5
6
|
};
|
|
7
|
+
/** One row in the left-panel user list — see SelectedUserDetail for the richer shape used once selected. */
|
|
6
8
|
export type UserListItem = {
|
|
7
9
|
id: number;
|
|
8
10
|
firstName: string;
|
|
@@ -11,16 +13,20 @@ export type UserListItem = {
|
|
|
11
13
|
role: string;
|
|
12
14
|
profile?: string;
|
|
13
15
|
isActive: boolean;
|
|
16
|
+
/** isPending/isCurrent/isSuperAdmin here are decorative — only SelectedUserDetail's copies (after selection) drive any badge or action-bar behavior. */
|
|
14
17
|
isPending?: boolean;
|
|
15
18
|
isCurrent?: boolean;
|
|
16
19
|
isSuperAdmin?: boolean;
|
|
17
20
|
};
|
|
21
|
+
/** One label/value row in the "Personal Information" panel; icon falls back to a generic user icon when omitted. */
|
|
18
22
|
export type UserDetailRow = {
|
|
19
23
|
label: string;
|
|
20
24
|
value: string;
|
|
21
25
|
icon?: ElementType;
|
|
22
26
|
};
|
|
27
|
+
/** Right-panel shape for the selected user — distinct field names from UserListItem (name, userId); not derived from it. */
|
|
23
28
|
export type SelectedUserDetail = {
|
|
29
|
+
/** When null, Change Role and Resend Invitation silently no-op on click (no disabled state) — unlike Deactivate, which greys out. */
|
|
24
30
|
userId?: number;
|
|
25
31
|
name: string;
|
|
26
32
|
role: string;
|
|
@@ -29,15 +35,18 @@ export type SelectedUserDetail = {
|
|
|
29
35
|
isActive: boolean;
|
|
30
36
|
isPending?: boolean;
|
|
31
37
|
isCurrent?: boolean;
|
|
38
|
+
/** True hides the entire action bar (reinvite/change-role/deactivate), not just the deactivate button. */
|
|
32
39
|
isSuperAdmin?: boolean;
|
|
33
40
|
details: UserDetailRow[];
|
|
34
41
|
};
|
|
42
|
+
/** Form values submitted by the Add User modal; role stays null until the user picks one. */
|
|
35
43
|
export type AddUserFormValues = {
|
|
36
44
|
firstName: string;
|
|
37
45
|
lastName: string;
|
|
38
46
|
email: string;
|
|
39
47
|
role: RoleOption | null;
|
|
40
48
|
};
|
|
49
|
+
/** Payload from the Change Role modal — just the ids, unlike AddUserFormValues which carries the full RoleOption. */
|
|
41
50
|
export type ChangeRoleSubmitPayload = {
|
|
42
51
|
userId: number;
|
|
43
52
|
roleId: number;
|
|
@@ -83,6 +92,7 @@ export type UserDetailsLabels = {
|
|
|
83
92
|
deactivateConfirmQuestion?: string;
|
|
84
93
|
deactivateConfirmDescription?: string;
|
|
85
94
|
};
|
|
95
|
+
/** Two-pane user directory + detail panel with bundled Add/Change-Role/Deactivate modals; not a role editor — pair with RolesPermission for managing roles themselves. */
|
|
86
96
|
export interface UserDetailsProps {
|
|
87
97
|
/** Full list of users shown in the left panel. */
|
|
88
98
|
users: UserListItem[];
|
|
@@ -97,6 +107,7 @@ export interface UserDetailsProps {
|
|
|
97
107
|
/** Loading flags driven by the host app's async calls. */
|
|
98
108
|
isUsersLoading?: boolean;
|
|
99
109
|
isInviteLoading?: boolean;
|
|
110
|
+
/** Unlike isAddUserLoading/isChangeRoleLoading, the confirm modal closes immediately on click — this flag can't keep it open to show a spinner. */
|
|
100
111
|
isDeactivateLoading?: boolean;
|
|
101
112
|
isAddUserLoading?: boolean;
|
|
102
113
|
isChangeRoleLoading?: boolean;
|
|
@@ -109,6 +120,7 @@ export interface UserDetailsProps {
|
|
|
109
120
|
onAddUserSubmit?: (values: AddUserFormValues) => void | Promise<void>;
|
|
110
121
|
onChangeRoleSubmit?: (payload: ChangeRoleSubmitPayload) => void | Promise<void>;
|
|
111
122
|
onReinvite?: (userId: number) => void;
|
|
123
|
+
/** Not awaited — the confirm modal closes right after this fires, so a slow or failing deactivation gets no in-modal feedback. */
|
|
112
124
|
onDeactivate?: (userId: number) => void;
|
|
113
125
|
/** "Add New Role" actions inside the SearchSelect of each modal. */
|
|
114
126
|
onAddRoleClick?: () => void;
|
|
@@ -116,9 +128,10 @@ export interface UserDetailsProps {
|
|
|
116
128
|
addUserUpgradeNotice?: ReactNode;
|
|
117
129
|
/** Translated/override strings. */
|
|
118
130
|
labels?: UserDetailsLabels;
|
|
119
|
-
/**
|
|
131
|
+
/** Also feeds a calc() for the sidebar's max-height — a non-CSS-length value (e.g. "auto") silently breaks that calc. Defaults to "90vh". */
|
|
120
132
|
minHeight?: string;
|
|
121
133
|
}
|
|
134
|
+
/** Self-contained invite form (first/last/email/role) with its own validation — not a generic modal; it always renders these exact fields. */
|
|
122
135
|
export interface AddUserModalProps {
|
|
123
136
|
isOpen: boolean;
|
|
124
137
|
onClose: () => void;
|
|
@@ -129,11 +142,13 @@ export interface AddUserModalProps {
|
|
|
129
142
|
upgradeNotice?: ReactNode;
|
|
130
143
|
labels: Required<Pick<UserDetailsLabels, "addNewUser" | "firstName" | "lastName" | "email" | "role" | "firstNamePlaceholder" | "lastNamePlaceholder" | "emailPlaceholder" | "addNewRole" | "cancel" | "save" | "firstNameRequired" | "lastNameRequired" | "emailRequired" | "emailInvalid" | "roleRequired">>;
|
|
131
144
|
}
|
|
145
|
+
/** Reassigns one user's role only — Save stays disabled until a genuinely different role is picked (see currentRole below). */
|
|
132
146
|
export interface ChangeRoleModalProps {
|
|
133
147
|
isOpen: boolean;
|
|
134
148
|
onClose: () => void;
|
|
135
149
|
userId: number | null;
|
|
136
150
|
email?: string;
|
|
151
|
+
/** Matched to roleOptions by case-insensitive label text; no match silently pre-selects nothing and leaves Save disabled. */
|
|
137
152
|
currentRole?: string;
|
|
138
153
|
roleOptions: RoleOption[];
|
|
139
154
|
isLoading?: boolean;
|
|
@@ -141,6 +156,7 @@ export interface ChangeRoleModalProps {
|
|
|
141
156
|
onAddRoleClick?: () => void;
|
|
142
157
|
labels: Required<Pick<UserDetailsLabels, "changeRoleTitle" | "email" | "role" | "addNewRole" | "cancel" | "save" | "roleRequired">>;
|
|
143
158
|
}
|
|
159
|
+
/** Confirm dialog for deactivating one user — closes immediately on confirm (see isDeactivateLoading); not a delete, the user can be reactivated later. */
|
|
144
160
|
export interface DeactivateConfirmModalProps {
|
|
145
161
|
isOpen: boolean;
|
|
146
162
|
onClose: () => void;
|
|
@@ -2,10 +2,11 @@ import type { ReactNode } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* Window state for a WorkspaceWindow.
|
|
4
4
|
* - "medium": default centered dialog (Jira-style)
|
|
5
|
-
* - "maximized":
|
|
5
|
+
* - "maximized": renders IDENTICALLY to "medium" — no separate maximize size exists (see onMaximize)
|
|
6
6
|
* - "minimized": collapsed to a tray pill (rendered by WorkspaceTray, not the window)
|
|
7
7
|
*/
|
|
8
8
|
export type WorkspaceWindowState = "medium" | "maximized" | "minimized";
|
|
9
|
+
/** Props for one WorkspaceWindow instance; minimized windows render separately via WorkspaceTrayProps below. */
|
|
9
10
|
export interface WorkspaceWindowProps {
|
|
10
11
|
/** Title shown in the window's control bar. */
|
|
11
12
|
title: ReactNode;
|
|
@@ -14,6 +15,7 @@ export interface WorkspaceWindowProps {
|
|
|
14
15
|
/** Window body. */
|
|
15
16
|
children: ReactNode;
|
|
16
17
|
onMinimize?: () => void;
|
|
18
|
+
/** Kept for back-compat only — no maximize/restore control is rendered; this is never called. */
|
|
17
19
|
onMedium?: () => void;
|
|
18
20
|
onMaximize?: () => void;
|
|
19
21
|
onClose?: () => void;
|
|
@@ -31,10 +33,12 @@ export interface WorkspaceWindowProps {
|
|
|
31
33
|
/** data-testid for the window container. */
|
|
32
34
|
testId?: string;
|
|
33
35
|
}
|
|
36
|
+
/** One minimized window in the tray; id is passed back to onRestore/onClose so callers can target the right window. */
|
|
34
37
|
export interface WorkspaceTrayItem {
|
|
35
38
|
id: string;
|
|
36
39
|
title: ReactNode;
|
|
37
40
|
}
|
|
41
|
+
/** Props for the bottom-right cluster of minimized-window pills; renders nothing when items is empty. */
|
|
38
42
|
export interface WorkspaceTrayProps {
|
|
39
43
|
/** Minimized items rendered as restore pills along the bottom. */
|
|
40
44
|
items: WorkspaceTrayItem[];
|
|
@@ -53,6 +57,7 @@ export interface WorkspaceTrayProps {
|
|
|
53
57
|
close: () => void;
|
|
54
58
|
}) => ReactNode;
|
|
55
59
|
}
|
|
60
|
+
/** Props for WorkspaceTrayPreview — despite the name, works for any hover trigger, not just tray pills. */
|
|
56
61
|
export interface WorkspaceTrayPreviewProps {
|
|
57
62
|
/**
|
|
58
63
|
* The trigger markup (typically a tray pill). The preview + trigger share one
|
|
@@ -6,6 +6,7 @@ import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
|
6
6
|
import { isDarkCanvas } from "../../Theme/tokens/builders/accentText.js";
|
|
7
7
|
import { liftToContrast, AA_NON_TEXT } from "../../Theme/tokens/builders/outlineRung.js";
|
|
8
8
|
import { getAccordionHoverColors } from "./accordionColors.js";
|
|
9
|
+
/** Chakra Accordion wrapper for header/content pairs; FilterSidebar composes this directly for its collapsible filter sections. */
|
|
9
10
|
const Accordion = ({ allowMultiple, allowToggle, index, onChange, reduceMotion, items, ...rest }) => {
|
|
10
11
|
const { colors } = useCustomTheme();
|
|
11
12
|
const isDark = isDarkCanvas(colors.backgroundColor.main);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { AlertDialog as ChakraAlertDialog, AlertDialogBody, AlertDialogCloseButton, AlertDialogContent, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, Button, } from "@chakra-ui/react";
|
|
3
3
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
4
|
+
/** Renders a fixed Cancel/Confirm AlertDialog from title+content props — not a substitute for Modal when you need custom footer buttons or slots. */
|
|
4
5
|
const AlertDialog = ({ isOpen, onClose, leastDestructiveRef, content, title, confirmButtonText = "Yes", cancelButtonText = "No", isConfirmLoading, onConfirm, ContentStyle, headerStyle, bodyStyle, footerStyle, closeButtonStyle, button1Style, button2Style, isCentered, key, }) => {
|
|
5
6
|
const { colors } = useCustomTheme();
|
|
6
7
|
return (_jsxs(ChakraAlertDialog, { motionPreset: "slideInBottom", leastDestructiveRef: leastDestructiveRef, onClose: onClose, isOpen: isOpen, isCentered: isCentered, children: [_jsx(AlertDialogOverlay, {}), _jsxs(AlertDialogContent, { bg: colors.background[50], sx: ContentStyle, children: [_jsx(AlertDialogHeader, { sx: headerStyle, children: title }), _jsx(AlertDialogCloseButton, { sx: closeButtonStyle }), _jsx(AlertDialogBody, { sx: bodyStyle, children: content }), _jsxs(AlertDialogFooter, { sx: footerStyle, children: [_jsx(Button, { ref: leastDestructiveRef, onClick: onClose, variant: "outline", colorScheme: "red", size: "sm", sx: button1Style, children: cancelButtonText }), _jsx(Button, { colorScheme: "primary", onClick: onConfirm, isLoading: isConfirmLoading, ml: 3, size: "sm", sx: button2Style, children: confirmButtonText })] })] })] }, key));
|
|
@@ -4,6 +4,7 @@ import ReactApexChart from "react-apexcharts";
|
|
|
4
4
|
import { useCustomTheme } from "../../../Theme/useCustomTheme.js";
|
|
5
5
|
import { getDefaultSeriesColors, mergeChartTitleStyle, } from "../../../Theme/tokens/builders/chartColorsFromTheme.js";
|
|
6
6
|
import { baseAxisLabels, baseChart, baseGrid, baseLegend, baseTooltip } from "../chartBase.js";
|
|
7
|
+
/** Filled line chart (basic/stacked/gradient/sparkline); unlike `ApexLineChart`, `data`/`series` are read fresh via `useMemo` every render, not frozen at mount. */
|
|
7
8
|
const ApexAreaChart = ({ variant = "basic", data, series, labels, title, titlePosition = "left", height = 320, width = "100%", colors, showLegend = true, legendPosition = "bottom", yAxisFormatter, }) => {
|
|
8
9
|
const { colors: palette } = useCustomTheme();
|
|
9
10
|
const seriesColors = useMemo(() => colors !== null && colors !== void 0 ? colors : getDefaultSeriesColors(palette), [colors, palette]);
|
|
@@ -4,6 +4,7 @@ import ReactApexChart from "react-apexcharts";
|
|
|
4
4
|
import { useCustomTheme } from "../../../Theme/useCustomTheme.js";
|
|
5
5
|
import { chartInk, getDefaultSeriesColors, mergeChartTitleStyle, } from "../../../Theme/tokens/builders/chartColorsFromTheme.js";
|
|
6
6
|
import { baseChart, baseLegend } from "../chartBase.js";
|
|
7
|
+
/** Radial/gauge chart (gauge/multi/semi); `hollowSize` is silently overridden to a fixed `"52%"` whenever `variant="multi"`. */
|
|
7
8
|
const ApexRadialChart = ({ variant = "gauge", data, labels, title, titlePosition = "left", height = 320, width = "100%", colors, totalLabel = "Total", trackColor, hollowSize = "62%", }) => {
|
|
8
9
|
const { colors: palette } = useCustomTheme();
|
|
9
10
|
const ink = chartInk(palette);
|
|
@@ -4,6 +4,7 @@ import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
|
4
4
|
import ErrorMessage from "../Common/ErrorMessage.js";
|
|
5
5
|
import HelperText from "../Common/HelperText.js";
|
|
6
6
|
import ToolTip from "../ToolTip/ToolTip.js";
|
|
7
|
+
/** Renders Chakra's native role="checkbox"; label is optional and falls back to aria-label — pass isInvalid (not just error) for the invalid state to register. */
|
|
7
8
|
export default function CheckBox({ label, labelFontSize, showLabelTooltip, labelTooltip, labelClampLines, spacing, isInvalid, color, iconColor, iconSize, isChecked, isIndeterminate, onChange, isDisabled, size = "md", value, defaultChecked, sx, error, errorMessage, helperText, onClick, labelSx, ...aria }) {
|
|
8
9
|
const theme = useCustomTheme();
|
|
9
10
|
const controlSize = size === "sm" ? "1rem"
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { HStack, Text } from "@chakra-ui/react";
|
|
3
3
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
4
4
|
import { resolveFilledSurface } from "../../Theme/tokens/builders/filledSurface.js";
|
|
5
|
+
/** Inline error row for Input/PinInputs; `error` is the message text itself, not ErrorMessage's boolean `error` + `errorMessage` pair, and there's no `id` for aria-describedby. */
|
|
5
6
|
const ErrorComponent = ({ error, errorClassName, }) => {
|
|
6
7
|
const { colors } = useCustomTheme();
|
|
7
8
|
const errorText = colors.semanticText.error;
|
|
@@ -3,6 +3,7 @@ import { Box, Icon } from "@chakra-ui/react";
|
|
|
3
3
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
4
4
|
import { InfoIcon } from "lucide-react";
|
|
5
5
|
import ToolTip from "../ToolTip/ToolTip.js";
|
|
6
|
+
/** Renders a real `<label htmlFor>` only when `id` is given, else a `<span>` — not a substitute for `Label` (Common/Label.tsx), which always renders a `FormLabel`. */
|
|
6
7
|
export const TextLabel = ({ label, id, isRequired = false, isInformation = false, informationMessage = "", fontSize, showTooltip, tooltipLabel, clampLines, inline = false, }) => {
|
|
7
8
|
const theme = useCustomTheme();
|
|
8
9
|
const clampStyles = clampLines ? {
|
|
@@ -39,6 +39,7 @@ const InlineText = ({ text }) => {
|
|
|
39
39
|
}
|
|
40
40
|
return _jsx(_Fragment, { children: nodes });
|
|
41
41
|
};
|
|
42
|
+
/** Not a full Markdown renderer — lists, links and code blocks render as literal text; returns null (no wrapper) when `content` is falsy. */
|
|
42
43
|
const FormattedDescription = ({ content }) => {
|
|
43
44
|
const { colors } = useCustomTheme();
|
|
44
45
|
if (!content)
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { FormHelperText, Text, useFormControlContext } from "@chakra-ui/react";
|
|
3
3
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
4
|
+
/** `id` is optional — pass one to control aria-describedby yourself; omitted, Chakra auto-generates one only inside a FormControl ancestor. */
|
|
5
|
+
/** Renders `helperText` unconditionally; each field hides this while showing an error (see ErrorMessage) — HelperText itself has no `error` prop. */
|
|
4
6
|
const HelperText = ({ helperText, id }) => {
|
|
5
7
|
const theme = useCustomTheme();
|
|
6
8
|
const field = useFormControlContext();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { FormLabel, Text } from "@chakra-ui/react";
|
|
3
3
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
4
|
+
/** Always renders a real Chakra `<label>` (FormLabel), even without `htmlFor` — unlike `TextLabel` (FormLabel.tsx), which falls back to a plain `<span>`. */
|
|
4
5
|
const Label = ({ label, htmlFor, labelClassName, isRequired, }) => {
|
|
5
6
|
const { colors } = useCustomTheme();
|
|
6
7
|
return (_jsxs(FormLabel, { htmlFor: htmlFor, mb: 1, fontSize: "sm", fontWeight: "medium", className: labelClassName, color: colors.header[500], children: [label, isRequired && (_jsx(Text, { as: "span", color: colors.semanticText.error, ml: 1, children: "*" }))] }));
|
|
@@ -6,6 +6,7 @@ import { CircleCheck, CircleX } from "lucide-react";
|
|
|
6
6
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
7
7
|
import InputTextArea from "../InputTextArea/InputTextArea.js";
|
|
8
8
|
import Button from "../Button/Button.js";
|
|
9
|
+
/** Fully self-contained enquiry form — validates, POSTs to apiKey, and renders its own success/error alert; there is no onSubmit/onSuccess callback. */
|
|
9
10
|
const ContactForm = ({ apiKey, customFields, getCustomValues, isDisabled = false, organizationId, customerId, buttonColorScheme = "primary", buttonSx, }) => {
|
|
10
11
|
const { colors } = useCustomTheme();
|
|
11
12
|
const [formData, setFormData] = useState({
|
|
@@ -7,6 +7,7 @@ import { accentTextOnCanvas, AA_NORMAL_TEXT } from "../../Theme/tokens/builders/
|
|
|
7
7
|
import { listRowBackgrounds } from "../../Theme/tokens/builders/rowStates.js";
|
|
8
8
|
import { liftToContrast } from "../../Theme/tokens/builders/outlineRung.js";
|
|
9
9
|
import ToolTip from "../ToolTip/ToolTip.js";
|
|
10
|
+
/** Copies `value` to the clipboard in 3 layouts (icon/button/menu-item) — not a full share/export action. */
|
|
10
11
|
const CopyButton = ({ value, variant = "icon", label = "Copy", copiedLabel = "Copied!", tooltip = "Copy", feedbackDuration = 1500, iconSize = 16, size = "sm", onCopy, }) => {
|
|
11
12
|
const theme = useCustomTheme();
|
|
12
13
|
const [copied, setCopied] = useState(false);
|
|
@@ -6,6 +6,7 @@ import Button from "../Button/Button.js";
|
|
|
6
6
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
7
7
|
import { resolveFilledSurface } from "../../Theme/tokens/builders/filledSurface.js";
|
|
8
8
|
import { DAY_CLASS, dayAccessibleName, dayStateClassName, resolveDayStateVisual, } from "./dayStates.js";
|
|
9
|
+
/** Internal month grid shared by Single/RangeDatePicker; not published from index.ts, so only reachable via a deep import. */
|
|
9
10
|
export const CalendarPanel = ({ currentMonth, setCurrentMonth, today, isRange, tempDate, tempRangeStart, tempRangeEnd, isSameDay, isBefore, isAfter, minDate, maxDate, disablePastDates, disableFutureDates, disableToday, onDaySelect, hoveredDate, onDayHover, renderWeekdays, dayStates, renderDayContent, }) => {
|
|
10
11
|
const theme = useCustomTheme();
|
|
11
12
|
const rangeBg = theme.colors.primary.opacity[16];
|
|
@@ -18,6 +18,7 @@ const inferPickerTypeFromFormat = (formatStr) => {
|
|
|
18
18
|
return "time";
|
|
19
19
|
return "date";
|
|
20
20
|
};
|
|
21
|
+
/** Legacy pre-split implementation, still used internally by Table's filter pane — new code should use ThemeDatePicker (exported as DatePicker). */
|
|
21
22
|
export default function CustomDatePicker(props) {
|
|
22
23
|
var _a, _b;
|
|
23
24
|
const { id, name, label, isRequired, isInformation, informationMessage, error, errorMessage, helperText, placeholderText = "Select a date", dateFormat = "dd/MM/yyyy", pickerType, minDate, maxDate, disableFutureDates, disablePastDates, isRange, autoComplete = "off", disabled, width = "100%", disableToday = false, size = "md", } = props;
|
|
@@ -18,6 +18,7 @@ const setTimeFrom = (base, time) => {
|
|
|
18
18
|
const b = base ? new Date(base) : new Date();
|
|
19
19
|
return new Date(b.getFullYear(), b.getMonth(), b.getDate(), time.getHours(), time.getMinutes(), time.getSeconds(), 0);
|
|
20
20
|
};
|
|
21
|
+
/** Two-endpoint range field; `onChange` fires only via Apply/Escape, never on a bare day click or on outside-click close. */
|
|
21
22
|
export const RangeDatePicker = (props) => {
|
|
22
23
|
var _a, _b, _c, _d;
|
|
23
24
|
const { id, name, label, isRequired, isInformation, informationMessage, error, errorMessage, helperText, placeholderText, dateFormat = "dd/MM/yyyy", minDate, maxDate, disableFutureDates, disablePastDates, autoComplete = "off", disabled, width = "100%", disableToday = false, size = "md", dayStates, renderDayContent, } = props;
|
|
@@ -219,6 +219,7 @@ const normalizeTimeBuffer = (tokenChar, rawBuffer, segmentLength, is12Hour) => {
|
|
|
219
219
|
}
|
|
220
220
|
return { value: buf, completed: buf.length >= segmentLength };
|
|
221
221
|
};
|
|
222
|
+
/** Date/datetime field with typed-mask input + calendar popover. Import via `DatePicker` (ThemeDatePicker) — direct import bypasses its isRange/pickerType routing. */
|
|
222
223
|
export const SingleDatePicker = (props) => {
|
|
223
224
|
var _a, _b;
|
|
224
225
|
const { id, name, label, isRequired, isInformation, informationMessage, error, errorMessage, helperText, placeholderText, dateFormat = "dd/MM/yyyy", pickerType, minDate, maxDate, disableFutureDates, disablePastDates, autoComplete = "off", disabled, width = "100%", disableToday = false, size = "md", } = props;
|
|
@@ -12,6 +12,7 @@ const inferPickerTypeFromFormat = (formatStr) => {
|
|
|
12
12
|
return "time";
|
|
13
13
|
return "date";
|
|
14
14
|
};
|
|
15
|
+
/** Public DatePicker entry — routes to Range/TimeOnly/Single by `isRange`/`pickerType`; `pickerType` is silently ignored whenever `isRange` is true. */
|
|
15
16
|
const ThemeDatePicker = (props) => {
|
|
16
17
|
var _a, _b;
|
|
17
18
|
if (props.isRange) {
|
|
@@ -10,9 +10,12 @@ import { TimePickerInput } from "./TimePickerInput.js";
|
|
|
10
10
|
import { useExclusiveOverlay } from "../../Hooks/useExclusiveOverlay.js";
|
|
11
11
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
12
12
|
const formatToPlaceholder = (formatStr) => formatStr.replace(/h{1,2}/gi, "HH").replace(/m{1,2}/gi, "mm").replace(/a{1,2}/gi, "AM");
|
|
13
|
+
/** Pure time field ThemeDatePicker renders for pickerType="time". Its label never receives `id`, so it is never associated with the field. */
|
|
13
14
|
export const TimeOnlyPicker = (props) => {
|
|
14
15
|
var _a, _b;
|
|
15
|
-
const { id, label, isRequired, isInformation, informationMessage, error, errorMessage, helperText, placeholderText, dateFormat = "HH:mm", disabled, width = "100%", disableToday = false, size = "md",
|
|
16
|
+
const { id, label, isRequired, isInformation, informationMessage, error, errorMessage, helperText, placeholderText, dateFormat = "HH:mm", disabled, width = "100%", disableToday = false, size = "md",
|
|
17
|
+
// NOTE: name/minDate/maxDate/disableFutureDates/disablePastDates/autoComplete exist on the type but are silently dropped here.
|
|
18
|
+
} = props;
|
|
16
19
|
const theme = useCustomTheme();
|
|
17
20
|
const { isOpen, onOpen, onClose } = useDisclosure();
|
|
18
21
|
const requestExclusiveOpen = useExclusiveOverlay(isOpen, onClose);
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState, useEffect } from "react";
|
|
3
3
|
import { Select, HStack } from "@chakra-ui/react";
|
|
4
4
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
5
|
+
/** Hour/Minute/AM-PM select trio, no seconds control — used by datetime pickers and TimeOnlyPicker; the format only toggles 12h vs 24h. */
|
|
5
6
|
const TimePicker = ({ date, onChange, dateFormat, disabled = false }) => {
|
|
6
7
|
const theme = useCustomTheme();
|
|
7
8
|
const is12HourFormat = /(hh|h).*a/i.test(dateFormat);
|
|
@@ -88,6 +88,7 @@ const caretFromDigitIndex = (digitIndex, digitsLen) => {
|
|
|
88
88
|
return digitIndex + 1;
|
|
89
89
|
};
|
|
90
90
|
const formatToPlaceholder = (formatStr) => formatStr.replace(/h{1,2}/gi, "HH").replace(/m{1,2}/gi, "mm").replace(/a{1,2}/gi, "AM");
|
|
91
|
+
/** Masked HH:mm digit input, no seconds; has no `name`/`id` prop, so it can't be targeted by native form APIs. */
|
|
91
92
|
export const TimePickerInput = ({ value, onChange, dateFormat, disabled = false, placeholder, onFocus, onBlur, error, size = "md", }) => {
|
|
92
93
|
const theme = useCustomTheme();
|
|
93
94
|
const sizeKey = typeof size === "string" ? size : "md";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Divider as ChakraDivider } from "@chakra-ui/react";
|
|
3
3
|
import { useCustomTheme } from "../../Theme/useCustomTheme.js";
|
|
4
|
+
/** Always vertical, fixed size/color, zero props — exported name keeps a "VeritcalDivider" typo; not interchangeable with Primitives' Divider. */
|
|
4
5
|
const VeritcalDivider = () => {
|
|
5
6
|
const { colors } = useCustomTheme();
|
|
6
7
|
return (_jsx(ChakraDivider, { orientation: "vertical", height: 5, borderWidth: 1.2, borderColor: colors.boxborder[500] }));
|
|
@@ -17,6 +17,7 @@ const SIZE_MAP = {
|
|
|
17
17
|
lg: { btn: "lg", fontSize: "0.9375rem", py: 2.5, px: 3.5, img: "1.25rem", chevron: 18, minW: "12rem", gap: 2.5 },
|
|
18
18
|
xl: { btn: "lg", fontSize: "1.0625rem", py: 3, px: 4, img: "1.4rem", chevron: 20, minW: "13rem", gap: 3 },
|
|
19
19
|
};
|
|
20
|
+
/** Menu-button that triggers labelled actions — nothing is "selected"/persisted; for picking a value from a list, use Select/SelectV2. */
|
|
20
21
|
const Dropdown = forwardRef(({ dropDownButtonStyle, ButtonText, options, handleOptionSelect, dropdownType = "button", text, DropdownIcon, isVisibleIconShow = true, buttonProps, headStyle, ListStyle, ItemStyle, LabelStyle, ImageStyle, size, optionsSize, divider = false, ariaLabel, }, ref) => {
|
|
21
22
|
var _a, _b;
|
|
22
23
|
const theme = useCustomTheme();
|
|
@@ -11,6 +11,7 @@ const JoditEditor = React.lazy(async () => {
|
|
|
11
11
|
const mod = (await import("jodit-react"));
|
|
12
12
|
return { default: ((_a = mod.default) !== null && _a !== void 0 ? _a : mod) };
|
|
13
13
|
});
|
|
14
|
+
/** Lazy-loaded Jodit wrapper — a `config.theme` or `config.popupRoot` you pass overrides this library's own dark-mode/popup fix; omit both keys. */
|
|
14
15
|
const Editor = React.memo(function Editor({ value, key, config, editorRef, className, onChange, onBlur, }) {
|
|
15
16
|
const theme = useCustomTheme();
|
|
16
17
|
// Jodit portals dialogs/toolbar-dropdown popups (search & replace, image/link properties,
|
|
@@ -2,13 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { HStack, PinInput, PinInputField, Box, Text, Button, Flex, } from "@chakra-ui/react";
|
|
3
3
|
import { useCustomTheme } from "../../../Theme/useCustomTheme.js";
|
|
4
4
|
import { MailCheck } from "lucide-react";
|
|
5
|
+
/** Full verification card (icon, title, description, resend link, digits-only PinInput) — for a bare OTP field in your own layout, use PinInput or PinInputs instead. */
|
|
5
6
|
export default function VerifyEmailOtp({ resendMail, onChange, onComplete, placeholder = "", pins = 5, description, title, isDisabled = false, isInvalid = false, styles, }) {
|
|
6
7
|
const theme = useCustomTheme();
|
|
7
|
-
return (_jsxs(Box, { style: styles, display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", p: 6, w: "100%", maxW: "25rem", mx: "auto", borderColor: theme.colors.gray[200], borderRadius: "lg", children: [_jsx(Box, { mb: 4, children: _jsx(MailCheck, { size: 80, color: theme.colors.accentText }) }), _jsx(Text, { fontSize: "2xl", fontWeight: "bold", mb: 2, textAlign: "center", children: title }), _jsxs(Text, { fontSize: "md", textAlign: "center", color: theme.colors.gray[600], mb: 6, children: [description, _jsx("br", {}), "your new Pixel Account"] }), _jsx(HStack, { spacing: 3, mb: 6, children: _jsx(PinInput, { placeholder: placeholder, onChange: onChange, onComplete: onComplete, isDisabled: isDisabled, isInvalid: isInvalid, size: "lg", focusBorderColor: theme.colors.primary[500], children: Array.from({ length: pins }).map((_, index) => (_jsx(PinInputField, { borderRadius: "md", border: "0.063rem solid",
|
|
8
|
-
// [800], not [300]: WCAG 1.4.11 needs >=3.0 for a control boundary against any
|
|
9
|
-
// named surface up to `muted` (lightest); [300] fails there, [800] clears all
|
|
10
|
-
// with margin.
|
|
11
|
-
borderColor: theme.colors.boxborder[500], backgroundColor: theme.colors.background[200], _focus: {
|
|
8
|
+
return (_jsxs(Box, { style: styles, display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", p: 6, w: "100%", maxW: "25rem", mx: "auto", borderColor: theme.colors.gray[200], borderRadius: "lg", children: [_jsx(Box, { mb: 4, children: _jsx(MailCheck, { size: 80, color: theme.colors.accentText }) }), _jsx(Text, { fontSize: "2xl", fontWeight: "bold", mb: 2, textAlign: "center", children: title }), _jsxs(Text, { fontSize: "md", textAlign: "center", color: theme.colors.gray[600], mb: 6, children: [description, _jsx("br", {}), "your new Pixel Account"] }), _jsx(HStack, { spacing: 3, mb: 6, children: _jsx(PinInput, { placeholder: placeholder, onChange: onChange, onComplete: onComplete, isDisabled: isDisabled, isInvalid: isInvalid, size: "lg", focusBorderColor: theme.colors.primary[500], children: Array.from({ length: pins }).map((_, index) => (_jsx(PinInputField, { borderRadius: "md", border: "0.063rem solid", borderColor: theme.colors.boxborder[500], backgroundColor: theme.colors.background[200], _focus: {
|
|
12
9
|
borderColor: theme.colors.primary[500],
|
|
13
10
|
boxShadow: `0 0 0 0.063rem ${theme.colors.primary[500]}`,
|
|
14
11
|
} }, index))) }) }), _jsx(Flex, { justify: "center", children: _jsxs(Text, { fontSize: "sm", color: theme.colors.gray[600], children: ["Didn\u2019t receive the code?", " ", _jsx(Button, { variant: "link", color: theme.colors.accentText, fontWeight: "semibold", onClick: resendMail, children: "Resend Code" })] }) })] }));
|