@bitrise/bitkit-v2 0.3.205 → 0.3.207
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/README.md +14 -0
- package/dist/atoms/ImageCropper/ImageCropper.d.ts +10 -10
- package/dist/components/BitkitAccordion/BitkitAccordion.js.map +1 -1
- package/dist/components/BitkitCalendar/components/CalendarFooter.js.map +1 -1
- package/dist/components/BitkitCalendar/components/CalendarNextTrigger.js.map +1 -1
- package/dist/components/BitkitCalendar/components/CalendarPrevTrigger.js.map +1 -1
- package/dist/components/BitkitCalendar/components/CalendarSelect.js.map +1 -1
- package/dist/components/BitkitCalendar/components/CalendarTrigger.js.map +1 -1
- package/dist/components/BitkitCodeSnippet/BitkitCodeSnippet.js.map +1 -1
- package/dist/components/BitkitCollapsible/BitkitCollapsible.js.map +1 -1
- package/dist/components/BitkitCombobox/BitkitCombobox.d.ts +11 -1
- package/dist/components/BitkitCombobox/BitkitCombobox.js +4 -7
- package/dist/components/BitkitCombobox/BitkitCombobox.js.map +1 -1
- package/dist/components/BitkitDataWidget/BitkitDataWidget.d.ts +10 -0
- package/dist/components/BitkitDataWidget/BitkitDataWidget.js +45 -0
- package/dist/components/BitkitDataWidget/BitkitDataWidget.js.map +1 -0
- package/dist/components/BitkitDialog/BitkitDialog.d.ts +19 -6
- package/dist/components/BitkitDialog/BitkitDialog.js +22 -5
- package/dist/components/BitkitDialog/BitkitDialog.js.map +1 -1
- package/dist/components/BitkitDialog/BitkitDialogBody.d.ts +1 -1
- package/dist/components/BitkitDialog/BitkitDialogBody.js +15 -4
- package/dist/components/BitkitDialog/BitkitDialogBody.js.map +1 -1
- package/dist/components/BitkitDialog/BitkitDialogContent.d.ts +4 -2
- package/dist/components/BitkitDialog/BitkitDialogContent.js +29 -18
- package/dist/components/BitkitDialog/BitkitDialogContent.js.map +1 -1
- package/dist/components/BitkitDialog/BitkitDialogHeader.d.ts +9 -0
- package/dist/components/BitkitDialog/BitkitDialogHeader.js +8 -0
- package/dist/components/BitkitDialog/BitkitDialogHeader.js.map +1 -0
- package/dist/components/BitkitDialog/BitkitDialogStep.d.ts +11 -0
- package/dist/components/BitkitDialog/BitkitDialogStep.js +26 -0
- package/dist/components/BitkitDialog/BitkitDialogStep.js.map +1 -0
- package/dist/components/BitkitDialog/BitkitDialogStepContext.d.ts +5 -0
- package/dist/components/BitkitDialog/BitkitDialogStepContext.js +7 -0
- package/dist/components/BitkitDialog/BitkitDialogStepContext.js.map +1 -0
- package/dist/components/BitkitDraggableCard/BitkitDraggableCard.js.map +1 -1
- package/dist/components/BitkitExpandableCard/BitkitExpandableCard.js.map +1 -1
- package/dist/components/BitkitGroupHeading/BitkitGroupHeading.js.map +1 -1
- package/dist/components/BitkitInlineLoading/BitkitInlineLoading.js.map +1 -1
- package/dist/components/BitkitLabel/BitkitLabel.js +3 -3
- package/dist/components/BitkitLabel/BitkitLabel.js.map +1 -1
- package/dist/components/BitkitLabeledData/BitkitLabeledData.js +24 -17
- package/dist/components/BitkitLabeledData/BitkitLabeledData.js.map +1 -1
- package/dist/components/BitkitList/BitkitList.d.ts +21 -0
- package/dist/components/BitkitList/BitkitList.js +107 -0
- package/dist/components/BitkitList/BitkitList.js.map +1 -0
- package/dist/components/BitkitList/index.d.ts +2 -0
- package/dist/components/BitkitMarkdown/BitkitMarkdown.js +11 -17
- package/dist/components/BitkitMarkdown/BitkitMarkdown.js.map +1 -1
- package/dist/components/BitkitMarkdownCard/BitkitMarkdownCard.js.map +1 -1
- package/dist/components/BitkitMultiselect/BitkitMultiselect.d.ts +13 -1
- package/dist/components/BitkitMultiselect/BitkitMultiselect.js +3 -6
- package/dist/components/BitkitMultiselect/BitkitMultiselect.js.map +1 -1
- package/dist/components/BitkitMultiselectMenu/BitkitMultiselectMenu.d.ts +5 -1
- package/dist/components/BitkitMultiselectMenu/BitkitMultiselectMenu.js +5 -3
- package/dist/components/BitkitMultiselectMenu/BitkitMultiselectMenu.js.map +1 -1
- package/dist/components/BitkitNativeSelect/BitkitNativeSelect.js.map +1 -1
- package/dist/components/BitkitNoteCard/BitkitNoteCard.js.map +1 -1
- package/dist/components/BitkitOverflowContent/BitkitOverflowContent.js +2 -2
- package/dist/components/BitkitOverflowContent/BitkitOverflowContent.js.map +1 -1
- package/dist/components/BitkitPageFooter/BitkitPageFooter.js.map +1 -1
- package/dist/components/BitkitPagination/BitkitPagination.js.map +1 -1
- package/dist/components/BitkitPaginationLoadMore/BitkitPaginationLoadMore.js.map +1 -1
- package/dist/components/BitkitRibbon/BitkitRibbon.js.map +1 -1
- package/dist/components/BitkitSearchInput/BitkitSearchInput.js +2 -1
- package/dist/components/BitkitSearchInput/BitkitSearchInput.js.map +1 -1
- package/dist/components/BitkitSectionHeading/BitkitSectionHeading.js +1 -1
- package/dist/components/BitkitSectionHeading/BitkitSectionHeading.js.map +1 -1
- package/dist/components/BitkitSelect/BitkitSelect.d.ts +12 -1
- package/dist/components/BitkitSelect/BitkitSelect.js +3 -6
- package/dist/components/BitkitSelect/BitkitSelect.js.map +1 -1
- package/dist/components/BitkitSelectMenu/BitkitSelectMenu.d.ts +14 -11
- package/dist/components/BitkitSelectMenu/BitkitSelectMenu.js.map +1 -1
- package/dist/components/BitkitSelectMenu/SelectMenuShell.d.ts +1 -1
- package/dist/components/BitkitSelectMenu/SelectMenuShell.js +13 -13
- package/dist/components/BitkitSelectMenu/SelectMenuShell.js.map +1 -1
- package/dist/components/BitkitSettingsCard/BitkitSettingsCard.js.map +1 -1
- package/dist/components/BitkitSidebar/BitkitSidebar.js.map +1 -1
- package/dist/components/BitkitSplitButton/BitkitSplitButton.js.map +1 -1
- package/dist/components/BitkitSteps/BitkitSteps.js +3 -3
- package/dist/components/BitkitSteps/BitkitSteps.js.map +1 -1
- package/dist/components/BitkitStepsCard/BitkitStepsCard.js.map +1 -1
- package/dist/components/BitkitSwitch/BitkitSwitch.d.ts +3 -0
- package/dist/components/BitkitSwitch/BitkitSwitch.js +105 -0
- package/dist/components/BitkitSwitch/BitkitSwitch.js.map +1 -0
- package/dist/components/BitkitSwitch/BitkitSwitch.types.d.ts +21 -0
- package/dist/components/{BitkitToggle/BitkitToggle.utils.d.ts → BitkitSwitch/BitkitSwitch.utils.d.ts} +1 -1
- package/dist/components/{BitkitToggle/BitkitToggle.utils.js → BitkitSwitch/BitkitSwitch.utils.js} +2 -2
- package/dist/components/{BitkitToggle/BitkitToggle.utils.js.map → BitkitSwitch/BitkitSwitch.utils.js.map} +1 -1
- package/dist/components/BitkitSwitch/components/BitkitSwitchHelperText.d.ts +3 -0
- package/dist/components/{BitkitToggle/components/BitkitToggleHelperText.js → BitkitSwitch/components/BitkitSwitchHelperText.js} +5 -5
- package/dist/components/BitkitSwitch/components/BitkitSwitchHelperText.js.map +1 -0
- package/dist/components/BitkitSwitch/components/BitkitSwitchLabel.d.ts +3 -0
- package/dist/components/{BitkitToggle/components/BitkitToggleLabel.js → BitkitSwitch/components/BitkitSwitchLabel.js} +4 -4
- package/dist/components/BitkitSwitch/components/BitkitSwitchLabel.js.map +1 -0
- package/dist/components/BitkitSwitch/components/BitkitSwitchReadOnly.d.ts +4 -0
- package/dist/components/{BitkitToggle/components/BitkitToggleReadOnly.js → BitkitSwitch/components/BitkitSwitchReadOnly.js} +4 -4
- package/dist/components/{BitkitToggle/components/BitkitToggleReadOnly.js.map → BitkitSwitch/components/BitkitSwitchReadOnly.js.map} +1 -1
- package/dist/components/BitkitSwitch/components/BitkitSwitchValueText.d.ts +3 -0
- package/dist/components/{BitkitToggle/components/BitkitToggleValueText.js → BitkitSwitch/components/BitkitSwitchValueText.js} +7 -7
- package/dist/components/BitkitSwitch/components/BitkitSwitchValueText.js.map +1 -0
- package/dist/components/BitkitSwitch/index.d.ts +2 -0
- package/dist/components/BitkitTag/BitkitTag.js +1 -1
- package/dist/components/BitkitTag/BitkitTag.js.map +1 -1
- package/dist/components/BitkitTagsInput/BitkitTagsInput.d.ts +1 -0
- package/dist/components/BitkitTagsInput/BitkitTagsInput.js +5 -2
- package/dist/components/BitkitTagsInput/BitkitTagsInput.js.map +1 -1
- package/dist/components/BitkitTreeView/BitkitTreeView.js.map +1 -1
- package/dist/components/index.d.ts +5 -4
- package/dist/main.js +8 -7
- package/dist/theme/common/ComboboxAndSelect.common.js +2 -1
- package/dist/theme/common/ComboboxAndSelect.common.js.map +1 -1
- package/dist/theme/common/InputAndTextarea.common.d.ts +7 -0
- package/dist/theme/common/InputAndTextarea.common.js +8 -1
- package/dist/theme/common/InputAndTextarea.common.js.map +1 -1
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/recipes/Button.recipe.js.map +1 -1
- package/dist/theme/recipes/Input.recipe.js +6 -2
- package/dist/theme/recipes/Input.recipe.js.map +1 -1
- package/dist/theme/recipes/SelectableTag.recipe.js +1 -1
- package/dist/theme/recipes/SelectableTag.recipe.js.map +1 -1
- package/dist/theme/recipes/ToggleButton.recipe.js +20 -2
- package/dist/theme/recipes/ToggleButton.recipe.js.map +1 -1
- package/dist/theme/semantic-tokens/semanticColors.js +14 -9
- package/dist/theme/semantic-tokens/semanticColors.js.map +1 -1
- package/dist/theme/slot-recipes/Combobox.recipe.js +14 -4
- package/dist/theme/slot-recipes/Combobox.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/DataWidget.recipe.d.ts +2 -0
- package/dist/theme/slot-recipes/DataWidget.recipe.js +65 -0
- package/dist/theme/slot-recipes/DataWidget.recipe.js.map +1 -0
- package/dist/theme/slot-recipes/Dialog.recipe.d.ts +13 -4
- package/dist/theme/slot-recipes/Dialog.recipe.js +40 -7
- package/dist/theme/slot-recipes/Dialog.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/GroupHeading.recipe.js +1 -1
- package/dist/theme/slot-recipes/GroupHeading.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/MarkdownCard.recipe.d.ts +3 -3
- package/dist/theme/slot-recipes/MarkdownCard.recipe.js +4 -3
- package/dist/theme/slot-recipes/MarkdownCard.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/NoteCard.recipe.js +14 -4
- package/dist/theme/slot-recipes/NoteCard.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/Select.recipe.js +28 -11
- package/dist/theme/slot-recipes/Select.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/StepCard.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/Switch.recipe.d.ts +3 -3
- package/dist/theme/slot-recipes/Switch.recipe.js +12 -12
- package/dist/theme/slot-recipes/Switch.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/TagsInput.recipe.d.ts +9 -4
- package/dist/theme/slot-recipes/TagsInput.recipe.js +18 -5
- package/dist/theme/slot-recipes/TagsInput.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/TreeView.recipe.d.ts +1 -0
- package/dist/theme/slot-recipes/TreeView.recipe.js +4 -1
- package/dist/theme/slot-recipes/TreeView.recipe.js.map +1 -1
- package/dist/theme/slot-recipes/index.js +2 -0
- package/dist/theme/slot-recipes/index.js.map +1 -1
- package/dist/theme/text-styles.js.map +1 -1
- package/package.json +10 -7
- package/scripts/postinstall.cjs +38 -0
- package/dist/components/BitkitExplainerList/BitkitExplainerList.d.ts +0 -14
- package/dist/components/BitkitExplainerList/BitkitExplainerList.js +0 -54
- package/dist/components/BitkitExplainerList/BitkitExplainerList.js.map +0 -1
- package/dist/components/BitkitOrderedList/BitkitOrderedList.d.ts +0 -13
- package/dist/components/BitkitOrderedList/BitkitOrderedList.js +0 -30
- package/dist/components/BitkitOrderedList/BitkitOrderedList.js.map +0 -1
- package/dist/components/BitkitToggle/BitkitToggle.d.ts +0 -3
- package/dist/components/BitkitToggle/BitkitToggle.js +0 -123
- package/dist/components/BitkitToggle/BitkitToggle.js.map +0 -1
- package/dist/components/BitkitToggle/BitkitToggle.types.d.ts +0 -22
- package/dist/components/BitkitToggle/components/BitkitToggleHelperText.d.ts +0 -3
- package/dist/components/BitkitToggle/components/BitkitToggleHelperText.js.map +0 -1
- package/dist/components/BitkitToggle/components/BitkitToggleLabel.d.ts +0 -3
- package/dist/components/BitkitToggle/components/BitkitToggleLabel.js.map +0 -1
- package/dist/components/BitkitToggle/components/BitkitToggleReadOnly.d.ts +0 -4
- package/dist/components/BitkitToggle/components/BitkitToggleValueText.d.ts +0 -3
- package/dist/components/BitkitToggle/components/BitkitToggleValueText.js.map +0 -1
- package/dist/components/BitkitToggle/index.d.ts +0 -2
- package/dist/components/BitkitUnorderedList/BitkitUnorderedList.d.ts +0 -16
- package/dist/components/BitkitUnorderedList/BitkitUnorderedList.js +0 -52
- package/dist/components/BitkitUnorderedList/BitkitUnorderedList.js.map +0 -1
- package/dist/theme/slot-recipes/Combobox.recipe.d.ts +0 -11
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface BitkitDialogStepProps {
|
|
3
|
+
children?: ReactNode;
|
|
4
|
+
description?: string;
|
|
5
|
+
title: string;
|
|
6
|
+
}
|
|
7
|
+
declare const BitkitDialogStep: {
|
|
8
|
+
(props: BitkitDialogStepProps): import("react/jsx-runtime").JSX.Element | null;
|
|
9
|
+
displayName: string;
|
|
10
|
+
};
|
|
11
|
+
export default BitkitDialogStep;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useBitkitDialogStepContext } from "./BitkitDialogStepContext.js";
|
|
2
|
+
import { chakra } from "@chakra-ui/react/styled-system";
|
|
3
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { useDialogStyles } from "@chakra-ui/react/dialog";
|
|
5
|
+
//#region lib/components/BitkitDialog/BitkitDialogStep.tsx
|
|
6
|
+
var BitkitDialogStep = (props) => {
|
|
7
|
+
const { _index = 0, children, description, title } = props;
|
|
8
|
+
const step = useBitkitDialogStepContext()?.step ?? 0;
|
|
9
|
+
const styles = useDialogStyles();
|
|
10
|
+
if (_index !== step) return null;
|
|
11
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(chakra.div, {
|
|
12
|
+
css: styles.stepTitleGroup,
|
|
13
|
+
children: [/* @__PURE__ */ jsx(chakra.p, {
|
|
14
|
+
css: styles.stepTitle,
|
|
15
|
+
children: title
|
|
16
|
+
}), description && /* @__PURE__ */ jsx(chakra.p, {
|
|
17
|
+
css: styles.stepDescription,
|
|
18
|
+
children: description
|
|
19
|
+
})]
|
|
20
|
+
}), children] });
|
|
21
|
+
};
|
|
22
|
+
BitkitDialogStep.displayName = "BitkitDialogStep";
|
|
23
|
+
//#endregion
|
|
24
|
+
export { BitkitDialogStep as default };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=BitkitDialogStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BitkitDialogStep.js","names":[],"sources":["../../../lib/components/BitkitDialog/BitkitDialogStep.tsx"],"sourcesContent":["import { useDialogStyles } from '@chakra-ui/react/dialog';\nimport { chakra } from '@chakra-ui/react/styled-system';\nimport { type ReactNode } from 'react';\n\nimport { useBitkitDialogStepContext } from './BitkitDialogStepContext';\n\nexport interface BitkitDialogStepProps {\n children?: ReactNode;\n description?: string;\n title: string;\n}\n\ninterface BitkitDialogStepInternalProps extends BitkitDialogStepProps {\n _index?: number;\n}\n\nconst BitkitDialogStep = (props: BitkitDialogStepProps) => {\n const { _index = 0, children, description, title } = props as BitkitDialogStepInternalProps;\n const ctx = useBitkitDialogStepContext();\n const step = ctx?.step ?? 0;\n const styles = useDialogStyles();\n\n if (_index !== step) return null;\n\n return (\n <>\n <chakra.div css={styles.stepTitleGroup}>\n <chakra.p css={styles.stepTitle}>{title}</chakra.p>\n {description && <chakra.p css={styles.stepDescription}>{description}</chakra.p>}\n </chakra.div>\n {children}\n </>\n );\n};\n\nBitkitDialogStep.displayName = 'BitkitDialogStep';\nexport default BitkitDialogStep;\n"],"mappings":";;;;;AAgBA,IAAM,oBAAoB,UAAiC;CACzD,MAAM,EAAE,SAAS,GAAG,UAAU,aAAa,UAAU;CAErD,MAAM,OADM,4BACC,EAAK,QAAQ;CAC1B,MAAM,SAAS,iBAAiB;AAEhC,KAAI,WAAW,KAAM,QAAO;AAE5B,QACE,qBAAA,UAAA,EAAA,UAAA,CACE,qBAAC,OAAO,KAAR;EAAY,KAAK,OAAO;YAAxB,CACE,oBAAC,OAAO,GAAR;GAAU,KAAK,OAAO;aAAY;GAAiB,CAAA,EAClD,eAAe,oBAAC,OAAO,GAAR;GAAU,KAAK,OAAO;aAAkB;GAAuB,CAAA,CACpE;KACZ,SACA,EAAA,CAAA;;AAIP,iBAAiB,cAAc"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
interface BitkitDialogStepContextValue {
|
|
2
|
+
step: number;
|
|
3
|
+
}
|
|
4
|
+
declare const BitkitDialogStepProvider: import('react').Provider<BitkitDialogStepContextValue>, useBitkitDialogStepContext: () => BitkitDialogStepContextValue;
|
|
5
|
+
export { BitkitDialogStepProvider, useBitkitDialogStepContext };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createContext } from "@chakra-ui/react";
|
|
2
|
+
//#region lib/components/BitkitDialog/BitkitDialogStepContext.ts
|
|
3
|
+
var [BitkitDialogStepProvider, useBitkitDialogStepContext] = createContext({ name: "BitkitDialogStepContext" });
|
|
4
|
+
//#endregion
|
|
5
|
+
export { BitkitDialogStepProvider, useBitkitDialogStepContext };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=BitkitDialogStepContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BitkitDialogStepContext.js","names":[],"sources":["../../../lib/components/BitkitDialog/BitkitDialogStepContext.ts"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { createContext } from '@chakra-ui/react';\n\ninterface BitkitDialogStepContextValue {\n step: number;\n}\n\nconst [BitkitDialogStepProvider, useBitkitDialogStepContext] = createContext<BitkitDialogStepContextValue>({\n name: 'BitkitDialogStepContext',\n});\n\nexport { BitkitDialogStepProvider, useBitkitDialogStepContext };\n"],"mappings":";;AAOA,IAAM,CAAC,0BAA0B,8BAA8B,cAA4C,EACzG,MAAM,2BACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitkitDraggableCard.js","names":[],"sources":["../../../lib/components/BitkitDraggableCard/BitkitDraggableCard.tsx"],"sourcesContent":["import { Box, type BoxProps } from '@chakra-ui/react/box';\nimport { chakra, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef, type ReactNode, type Ref } from 'react';\n\nimport IconDragHandle from '../../icons/IconDragHandle';\n\n// ----- Props -----\n\nexport interface BitkitDraggableCardProps extends Omit<BoxProps, 'children'> {\n children: ReactNode;\n /** Ref for the drag handle element — pass useSortable().handleRef here. When provided, only the handle initiates drag. */\n handleRef?: Ref<HTMLButtonElement>;\n /** Whether this card is currently being dragged */\n isDragging?: boolean;\n /** Whether this card is a drop target placeholder */\n isDropTarget?: boolean;\n}\n\n// ----- Component -----\n\n/**\n * A card with a drag handle, designed for use with `@dnd-kit/react`.\n *\n * The component is purely presentational — it does not depend on `@dnd-kit`.\n * Pass the refs and state flags from `useSortable` (or `useDraggable`) to wire it up.\n *\n * @example Full-card drag (default — the entire card is draggable)\n * ```tsx\n * const { ref, isDragSource, isDropTarget } = useSortable({ id, index });\n *\n * <BitkitDraggableCard ref={ref} isDragging={isDragSource} isDropTarget={isDropTarget}>\n * {children}\n * </BitkitDraggableCard>\n * ```\n *\n * @example Handle-only drag (pass handleRef to restrict drag to the handle)\n * ```tsx\n * const { ref, handleRef, isDragSource, isDropTarget } = useSortable({ id, index });\n *\n * <BitkitDraggableCard ref={ref} handleRef={handleRef} isDragging={isDragSource} isDropTarget={isDropTarget}>\n * {children}\n * </BitkitDraggableCard>\n * ```\n */\nconst BitkitDraggableCard = forwardRef<HTMLDivElement, BitkitDraggableCardProps>((props, ref) => {\n const { children, handleRef, isDragging = false, isDropTarget = false, ...rest } = props;\n\n const isFullCardDrag = !handleRef;\n const recipe = useSlotRecipe({ key: 'draggableCard' });\n const styles = recipe({ isDragging, isDropTarget, isFullCardDrag });\n\n return (\n <Box ref={ref} css={styles.root} {...rest}>\n {isFullCardDrag ? (\n <chakra.div css={styles.handle}>\n <IconDragHandle size=\"16\" />\n </chakra.div>\n ) : (\n <chakra.button ref={handleRef} type=\"button\" aria-label=\"Drag handle\" css={styles.handle}>\n <IconDragHandle size=\"16\" />\n </chakra.button>\n )}\n <Box css={styles.content}>{children}</Box>\n </Box>\n );\n});\n\nBitkitDraggableCard.displayName = 'BitkitDraggableCard';\n\nexport default BitkitDraggableCard;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,IAAM,sBAAsB,YAAsD,OAAO,QAAQ;CAC/F,MAAM,EAAE,UAAU,WAAW,aAAa,OAAO,eAAe,OAAO,GAAG,SAAS;CAEnF,MAAM,iBAAiB,CAAC;CAExB,MAAM,SADS,cAAc,EAAE,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"BitkitDraggableCard.js","names":[],"sources":["../../../lib/components/BitkitDraggableCard/BitkitDraggableCard.tsx"],"sourcesContent":["import { Box, type BoxProps } from '@chakra-ui/react/box';\nimport { chakra, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef, type ReactNode, type Ref } from 'react';\n\nimport IconDragHandle from '../../icons/IconDragHandle';\n\n// ----- Props -----\n\nexport interface BitkitDraggableCardProps extends Omit<BoxProps, 'children'> {\n children: ReactNode;\n /** Ref for the drag handle element — pass useSortable().handleRef here. When provided, only the handle initiates drag. */\n handleRef?: Ref<HTMLButtonElement>;\n /** Whether this card is currently being dragged */\n isDragging?: boolean;\n /** Whether this card is a drop target placeholder */\n isDropTarget?: boolean;\n}\n\n// ----- Component -----\n\n/**\n * A card with a drag handle, designed for use with `@dnd-kit/react`.\n *\n * The component is purely presentational — it does not depend on `@dnd-kit`.\n * Pass the refs and state flags from `useSortable` (or `useDraggable`) to wire it up.\n *\n * @example Full-card drag (default — the entire card is draggable)\n * ```tsx\n * const { ref, isDragSource, isDropTarget } = useSortable({ id, index });\n *\n * <BitkitDraggableCard ref={ref} isDragging={isDragSource} isDropTarget={isDropTarget}>\n * {children}\n * </BitkitDraggableCard>\n * ```\n *\n * @example Handle-only drag (pass handleRef to restrict drag to the handle)\n * ```tsx\n * const { ref, handleRef, isDragSource, isDropTarget } = useSortable({ id, index });\n *\n * <BitkitDraggableCard ref={ref} handleRef={handleRef} isDragging={isDragSource} isDropTarget={isDropTarget}>\n * {children}\n * </BitkitDraggableCard>\n * ```\n */\nconst BitkitDraggableCard = forwardRef<HTMLDivElement, BitkitDraggableCardProps>((props, ref) => {\n const { children, handleRef, isDragging = false, isDropTarget = false, ...rest } = props;\n\n const isFullCardDrag = !handleRef;\n const recipe = useSlotRecipe({ key: 'draggableCard' });\n const styles = recipe({ isDragging, isDropTarget, isFullCardDrag });\n\n return (\n <Box ref={ref} css={styles.root} {...rest}>\n {isFullCardDrag ? (\n <chakra.div css={styles.handle}>\n <IconDragHandle size=\"16\" />\n </chakra.div>\n ) : (\n <chakra.button ref={handleRef} type=\"button\" aria-label=\"Drag handle\" css={styles.handle}>\n <IconDragHandle size=\"16\" />\n </chakra.button>\n )}\n <Box css={styles.content}>{children}</Box>\n </Box>\n );\n});\n\nBitkitDraggableCard.displayName = 'BitkitDraggableCard';\n\nexport default BitkitDraggableCard;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,IAAM,sBAAsB,YAAsD,OAAO,QAAQ;CAC/F,MAAM,EAAE,UAAU,WAAW,aAAa,OAAO,eAAe,OAAO,GAAG,SAAS;CAEnF,MAAM,iBAAiB,CAAC;CAExB,MAAM,SADS,cAAc,EAAE,KAAK,iBAAiB,CACtC,CAAO;EAAE;EAAY;EAAc;EAAgB,CAAC;AAEnE,QACE,qBAAC,KAAD;EAAU;EAAK,KAAK,OAAO;EAAM,GAAI;YAArC,CACG,iBACC,oBAAC,OAAO,KAAR;GAAY,KAAK,OAAO;aACtB,oBAAC,gBAAD,EAAgB,MAAK,MAAO,CAAA;GACjB,CAAA,GAEb,oBAAC,OAAO,QAAR;GAAe,KAAK;GAAW,MAAK;GAAS,cAAW;GAAc,KAAK,OAAO;aAChF,oBAAC,gBAAD,EAAgB,MAAK,MAAO,CAAA;GACd,CAAA,EAElB,oBAAC,KAAD;GAAK,KAAK,OAAO;GAAU;GAAe,CAAA,CACtC;;EAER;AAEF,oBAAoB,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitkitExpandableCard.js","names":[],"sources":["../../../lib/components/BitkitExpandableCard/BitkitExpandableCard.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { Card } from '@chakra-ui/react/card';\nimport { Collapsible, type CollapsibleRootProps } from '@chakra-ui/react/collapsible';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { type ReactNode } from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\nimport AssetSelectChevron from '../../utilities/AssetSelectChevron';\n\ntype UncontrolledProps = {\n defaultExpanded?: boolean;\n expanded?: never;\n onChange?: never;\n};\n\ntype ControlledProps = {\n defaultExpanded?: never;\n expanded: boolean;\n onChange: (expanded: boolean) => void;\n};\n\nexport type BitkitExpandableCardProps = Omit<CollapsibleRootProps, 'defaultOpen' | 'onOpenChange' | 'open'> & {\n children: ReactNode;\n icon?: BitkitIconComponent;\n secdText?: ReactNode;\n size: 'md' | 'lg';\n suffix?: ReactNode;\n title: ReactNode;\n} & (UncontrolledProps | ControlledProps);\n\nconst BitkitExpandableCard = (props: BitkitExpandableCardProps) => {\n const {\n children,\n defaultExpanded,\n expanded,\n icon: Icon,\n onChange,\n secdText,\n size = 'lg',\n suffix,\n title,\n ...rest\n } = props;\n\n const recipe = useSlotRecipe({ key: 'expandableCard' });\n const styles = recipe({ size });\n\n const handleOpenChange = onChange ? (details: { open: boolean }) => onChange(details.open) : undefined;\n\n return (\n <Card.Root css={styles.root}>\n <Collapsible.Root defaultOpen={defaultExpanded} open={expanded} onOpenChange={handleOpenChange} {...rest}>\n <Collapsible.Trigger css={styles.header}>\n <Box display=\"flex\" alignItems=\"center\" gap=\"8\">\n {Icon && (\n <Box css={styles.icon}>\n <Icon size=\"24\" />\n </Box>\n )}\n <Box display=\"flex\" alignItems=\"flex-start\" flexDirection=\"column\">\n {title}\n {!!secdText && <Text css={styles.secdText}>{secdText}</Text>}\n </Box>\n </Box>\n <Box display=\"flex\" alignItems=\"center\">\n {!!suffix && <Text css={styles.suffix}>{suffix}</Text>}\n <Collapsible.Indicator asChild>\n <AssetSelectChevron />\n </Collapsible.Indicator>\n </Box>\n </Collapsible.Trigger>\n <Collapsible.Content css={styles.collapsible}>\n <Box css={styles.body}>{children}</Box>\n </Collapsible.Content>\n </Collapsible.Root>\n </Card.Root>\n );\n};\n\nBitkitExpandableCard.displayName = 'BitkitExpandableCard';\n\nexport default BitkitExpandableCard;\n"],"mappings":";;;;;;;;AA+BA,IAAM,wBAAwB,UAAqC;CACjE,MAAM,EACJ,UACA,iBACA,UACA,MAAM,MACN,UACA,UACA,OAAO,MACP,QACA,OACA,GAAG,SACD;CAGJ,MAAM,SADS,cAAc,EAAE,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"BitkitExpandableCard.js","names":[],"sources":["../../../lib/components/BitkitExpandableCard/BitkitExpandableCard.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { Card } from '@chakra-ui/react/card';\nimport { Collapsible, type CollapsibleRootProps } from '@chakra-ui/react/collapsible';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { type ReactNode } from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\nimport AssetSelectChevron from '../../utilities/AssetSelectChevron';\n\ntype UncontrolledProps = {\n defaultExpanded?: boolean;\n expanded?: never;\n onChange?: never;\n};\n\ntype ControlledProps = {\n defaultExpanded?: never;\n expanded: boolean;\n onChange: (expanded: boolean) => void;\n};\n\nexport type BitkitExpandableCardProps = Omit<CollapsibleRootProps, 'defaultOpen' | 'onOpenChange' | 'open'> & {\n children: ReactNode;\n icon?: BitkitIconComponent;\n secdText?: ReactNode;\n size: 'md' | 'lg';\n suffix?: ReactNode;\n title: ReactNode;\n} & (UncontrolledProps | ControlledProps);\n\nconst BitkitExpandableCard = (props: BitkitExpandableCardProps) => {\n const {\n children,\n defaultExpanded,\n expanded,\n icon: Icon,\n onChange,\n secdText,\n size = 'lg',\n suffix,\n title,\n ...rest\n } = props;\n\n const recipe = useSlotRecipe({ key: 'expandableCard' });\n const styles = recipe({ size });\n\n const handleOpenChange = onChange ? (details: { open: boolean }) => onChange(details.open) : undefined;\n\n return (\n <Card.Root css={styles.root}>\n <Collapsible.Root defaultOpen={defaultExpanded} open={expanded} onOpenChange={handleOpenChange} {...rest}>\n <Collapsible.Trigger css={styles.header}>\n <Box display=\"flex\" alignItems=\"center\" gap=\"8\">\n {Icon && (\n <Box css={styles.icon}>\n <Icon size=\"24\" />\n </Box>\n )}\n <Box display=\"flex\" alignItems=\"flex-start\" flexDirection=\"column\">\n {title}\n {!!secdText && <Text css={styles.secdText}>{secdText}</Text>}\n </Box>\n </Box>\n <Box display=\"flex\" alignItems=\"center\">\n {!!suffix && <Text css={styles.suffix}>{suffix}</Text>}\n <Collapsible.Indicator asChild>\n <AssetSelectChevron />\n </Collapsible.Indicator>\n </Box>\n </Collapsible.Trigger>\n <Collapsible.Content css={styles.collapsible}>\n <Box css={styles.body}>{children}</Box>\n </Collapsible.Content>\n </Collapsible.Root>\n </Card.Root>\n );\n};\n\nBitkitExpandableCard.displayName = 'BitkitExpandableCard';\n\nexport default BitkitExpandableCard;\n"],"mappings":";;;;;;;;AA+BA,IAAM,wBAAwB,UAAqC;CACjE,MAAM,EACJ,UACA,iBACA,UACA,MAAM,MACN,UACA,UACA,OAAO,MACP,QACA,OACA,GAAG,SACD;CAGJ,MAAM,SADS,cAAc,EAAE,KAAK,kBAAkB,CACvC,CAAO,EAAE,MAAM,CAAC;CAE/B,MAAM,mBAAmB,YAAY,YAA+B,SAAS,QAAQ,KAAK,GAAG,KAAA;AAE7F,QACE,oBAAC,KAAK,MAAN;EAAW,KAAK,OAAO;YACrB,qBAAC,YAAY,MAAb;GAAkB,aAAa;GAAiB,MAAM;GAAU,cAAc;GAAkB,GAAI;aAApG,CACE,qBAAC,YAAY,SAAb;IAAqB,KAAK,OAAO;cAAjC,CACE,qBAAC,KAAD;KAAK,SAAQ;KAAO,YAAW;KAAS,KAAI;eAA5C,CACG,QACC,oBAAC,KAAD;MAAK,KAAK,OAAO;gBACf,oBAAC,MAAD,EAAM,MAAK,MAAO,CAAA;MACd,CAAA,EAER,qBAAC,KAAD;MAAK,SAAQ;MAAO,YAAW;MAAa,eAAc;gBAA1D,CACG,OACA,CAAC,CAAC,YAAY,oBAAC,MAAD;OAAM,KAAK,OAAO;iBAAW;OAAgB,CAAA,CACxD;QACF;QACN,qBAAC,KAAD;KAAK,SAAQ;KAAO,YAAW;eAA/B,CACG,CAAC,CAAC,UAAU,oBAAC,MAAD;MAAM,KAAK,OAAO;gBAAS;MAAc,CAAA,EACtD,oBAAC,YAAY,WAAb;MAAuB,SAAA;gBACrB,oBAAC,oBAAD,EAAsB,CAAA;MACA,CAAA,CACpB;OACc;OACtB,oBAAC,YAAY,SAAb;IAAqB,KAAK,OAAO;cAC/B,oBAAC,KAAD;KAAK,KAAK,OAAO;KAAO;KAAe,CAAA;IACnB,CAAA,CACL;;EACT,CAAA;;AAIhB,qBAAqB,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitkitGroupHeading.js","names":[],"sources":["../../../lib/components/BitkitGroupHeading/BitkitGroupHeading.tsx"],"sourcesContent":["import { Box, type BoxProps } from '@chakra-ui/react/box';\nimport { Separator } from '@chakra-ui/react/separator';\nimport { chakra, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef } from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\n\nexport interface BitkitGroupHeadingProps extends Omit<BoxProps, 'icon'> {\n icon?: BitkitIconComponent;\n label: string;\n}\n\nconst BitkitGroupHeading = forwardRef<HTMLDivElement, BitkitGroupHeadingProps>((props, ref) => {\n const { icon: Icon, label, ...rest } = props;\n\n const recipe = useSlotRecipe({ key: 'groupHeading' });\n const styles = recipe();\n\n return (\n <Box css={styles.root} ref={ref} {...rest}>\n <chakra.div css={styles.titleBlock}>\n {Icon && <Icon css={styles.icon} size=\"16\" />}\n <chakra.span css={styles.label}>{label}</chakra.span>\n </chakra.div>\n <Separator css={styles.separator} />\n </Box>\n );\n});\n\nBitkitGroupHeading.displayName = 'BitkitGroupHeading';\n\nexport default BitkitGroupHeading;\n"],"mappings":";;;;;;AAYA,IAAM,qBAAqB,YAAqD,OAAO,QAAQ;CAC7F,MAAM,EAAE,MAAM,MAAM,OAAO,GAAG,SAAS;CAGvC,MAAM,SADS,cAAc,EAAE,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"BitkitGroupHeading.js","names":[],"sources":["../../../lib/components/BitkitGroupHeading/BitkitGroupHeading.tsx"],"sourcesContent":["import { Box, type BoxProps } from '@chakra-ui/react/box';\nimport { Separator } from '@chakra-ui/react/separator';\nimport { chakra, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef } from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\n\nexport interface BitkitGroupHeadingProps extends Omit<BoxProps, 'icon'> {\n icon?: BitkitIconComponent;\n label: string;\n}\n\nconst BitkitGroupHeading = forwardRef<HTMLDivElement, BitkitGroupHeadingProps>((props, ref) => {\n const { icon: Icon, label, ...rest } = props;\n\n const recipe = useSlotRecipe({ key: 'groupHeading' });\n const styles = recipe();\n\n return (\n <Box css={styles.root} ref={ref} {...rest}>\n <chakra.div css={styles.titleBlock}>\n {Icon && <Icon css={styles.icon} size=\"16\" />}\n <chakra.span css={styles.label}>{label}</chakra.span>\n </chakra.div>\n <Separator css={styles.separator} />\n </Box>\n );\n});\n\nBitkitGroupHeading.displayName = 'BitkitGroupHeading';\n\nexport default BitkitGroupHeading;\n"],"mappings":";;;;;;AAYA,IAAM,qBAAqB,YAAqD,OAAO,QAAQ;CAC7F,MAAM,EAAE,MAAM,MAAM,OAAO,GAAG,SAAS;CAGvC,MAAM,SADS,cAAc,EAAE,KAAK,gBAAgB,CACrC,EAAQ;AAEvB,QACE,qBAAC,KAAD;EAAK,KAAK,OAAO;EAAW;EAAK,GAAI;YAArC,CACE,qBAAC,OAAO,KAAR;GAAY,KAAK,OAAO;aAAxB,CACG,QAAQ,oBAAC,MAAD;IAAM,KAAK,OAAO;IAAM,MAAK;IAAO,CAAA,EAC7C,oBAAC,OAAO,MAAR;IAAa,KAAK,OAAO;cAAQ;IAAoB,CAAA,CAC1C;MACb,oBAAC,WAAD,EAAW,KAAK,OAAO,WAAa,CAAA,CAChC;;EAER;AAEF,mBAAmB,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitkitInlineLoading.js","names":[],"sources":["../../../lib/components/BitkitInlineLoading/BitkitInlineLoading.tsx"],"sourcesContent":["import { Box, type BoxProps } from '@chakra-ui/react/box';\nimport { Spinner } from '@chakra-ui/react/spinner';\nimport { chakra, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef } from 'react';\n\nimport IconCheckCircleFilled from '../../icons/IconCheckCircleFilled';\nimport IconCrossCircleFilled from '../../icons/IconCrossCircleFilled';\n\nexport interface BitkitInlineLoadingProps extends Omit<BoxProps, 'size'> {\n label?: string;\n size?: 'lg' | 'md' | 'sm';\n status?: 'error' | 'loading' | 'success';\n}\n\nconst ICON_SIZE_MAP = {\n lg: '24',\n md: '16',\n sm: '16',\n} as const;\n\n// Icons have built-in padding: 2px for 24px icons, 1px for 16px icons.\n// The spinner uses the inner visual size + matching margin to occupy the same bounding box.\nconst SPINNER_SIZE_MAP = {\n lg: { margin: '2', size: '20' },\n md: { margin: '1', size: '14px' },\n sm: { margin: '1', size: '14px' },\n} as const;\n\nconst BitkitInlineLoading = forwardRef<HTMLDivElement, BitkitInlineLoadingProps>((props, ref) => {\n const { label, size = 'md', status = 'loading', ...rest } = props;\n\n const recipe = useSlotRecipe({ key: 'inlineLoading' });\n const styles = recipe({ size, status });\n\n const iconSize = ICON_SIZE_MAP[size];\n const { margin: spinnerMargin, size: spinnerSize } = SPINNER_SIZE_MAP[size];\n\n return (\n <Box css={styles.root} ref={ref} {...rest}>\n {status === 'loading' && (\n <Spinner variant=\"purple\" width={spinnerSize} height={spinnerSize} margin={spinnerMargin} />\n )}\n {status === 'success' && <IconCheckCircleFilled color=\"icon/positive\" size={iconSize} />}\n {status === 'error' && <IconCrossCircleFilled color=\"icon/negative\" size={iconSize} />}\n {label && <chakra.span css={styles.label}>{label}</chakra.span>}\n </Box>\n );\n});\n\nBitkitInlineLoading.displayName = 'BitkitInlineLoading';\n\nexport default BitkitInlineLoading;\n"],"mappings":";;;;;;;;AAcA,IAAM,gBAAgB;CACpB,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAID,IAAM,mBAAmB;CACvB,IAAI;EAAE,QAAQ;EAAK,MAAM;EAAM;CAC/B,IAAI;EAAE,QAAQ;EAAK,MAAM;EAAQ;CACjC,IAAI;EAAE,QAAQ;EAAK,MAAM;EAAQ;CAClC;AAED,IAAM,sBAAsB,YAAsD,OAAO,QAAQ;CAC/F,MAAM,EAAE,OAAO,OAAO,MAAM,SAAS,WAAW,GAAG,SAAS;CAG5D,MAAM,SADS,cAAc,EAAE,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"BitkitInlineLoading.js","names":[],"sources":["../../../lib/components/BitkitInlineLoading/BitkitInlineLoading.tsx"],"sourcesContent":["import { Box, type BoxProps } from '@chakra-ui/react/box';\nimport { Spinner } from '@chakra-ui/react/spinner';\nimport { chakra, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef } from 'react';\n\nimport IconCheckCircleFilled from '../../icons/IconCheckCircleFilled';\nimport IconCrossCircleFilled from '../../icons/IconCrossCircleFilled';\n\nexport interface BitkitInlineLoadingProps extends Omit<BoxProps, 'size'> {\n label?: string;\n size?: 'lg' | 'md' | 'sm';\n status?: 'error' | 'loading' | 'success';\n}\n\nconst ICON_SIZE_MAP = {\n lg: '24',\n md: '16',\n sm: '16',\n} as const;\n\n// Icons have built-in padding: 2px for 24px icons, 1px for 16px icons.\n// The spinner uses the inner visual size + matching margin to occupy the same bounding box.\nconst SPINNER_SIZE_MAP = {\n lg: { margin: '2', size: '20' },\n md: { margin: '1', size: '14px' },\n sm: { margin: '1', size: '14px' },\n} as const;\n\nconst BitkitInlineLoading = forwardRef<HTMLDivElement, BitkitInlineLoadingProps>((props, ref) => {\n const { label, size = 'md', status = 'loading', ...rest } = props;\n\n const recipe = useSlotRecipe({ key: 'inlineLoading' });\n const styles = recipe({ size, status });\n\n const iconSize = ICON_SIZE_MAP[size];\n const { margin: spinnerMargin, size: spinnerSize } = SPINNER_SIZE_MAP[size];\n\n return (\n <Box css={styles.root} ref={ref} {...rest}>\n {status === 'loading' && (\n <Spinner variant=\"purple\" width={spinnerSize} height={spinnerSize} margin={spinnerMargin} />\n )}\n {status === 'success' && <IconCheckCircleFilled color=\"icon/positive\" size={iconSize} />}\n {status === 'error' && <IconCrossCircleFilled color=\"icon/negative\" size={iconSize} />}\n {label && <chakra.span css={styles.label}>{label}</chakra.span>}\n </Box>\n );\n});\n\nBitkitInlineLoading.displayName = 'BitkitInlineLoading';\n\nexport default BitkitInlineLoading;\n"],"mappings":";;;;;;;;AAcA,IAAM,gBAAgB;CACpB,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAID,IAAM,mBAAmB;CACvB,IAAI;EAAE,QAAQ;EAAK,MAAM;EAAM;CAC/B,IAAI;EAAE,QAAQ;EAAK,MAAM;EAAQ;CACjC,IAAI;EAAE,QAAQ;EAAK,MAAM;EAAQ;CAClC;AAED,IAAM,sBAAsB,YAAsD,OAAO,QAAQ;CAC/F,MAAM,EAAE,OAAO,OAAO,MAAM,SAAS,WAAW,GAAG,SAAS;CAG5D,MAAM,SADS,cAAc,EAAE,KAAK,iBAAiB,CACtC,CAAO;EAAE;EAAM;EAAQ,CAAC;CAEvC,MAAM,WAAW,cAAc;CAC/B,MAAM,EAAE,QAAQ,eAAe,MAAM,gBAAgB,iBAAiB;AAEtE,QACE,qBAAC,KAAD;EAAK,KAAK,OAAO;EAAW;EAAK,GAAI;YAArC;GACG,WAAW,aACV,oBAAC,SAAD;IAAS,SAAQ;IAAS,OAAO;IAAa,QAAQ;IAAa,QAAQ;IAAiB,CAAA;GAE7F,WAAW,aAAa,oBAAC,uBAAD;IAAuB,OAAM;IAAgB,MAAM;IAAY,CAAA;GACvF,WAAW,WAAW,oBAAC,uBAAD;IAAuB,OAAM;IAAgB,MAAM;IAAY,CAAA;GACrF,SAAS,oBAAC,OAAO,MAAR;IAAa,KAAK,OAAO;cAAQ;IAAoB,CAAA;GAC3D;;EAER;AAEF,oBAAoB,cAAc"}
|
|
@@ -48,14 +48,14 @@ var BitkitLabel = forwardRef((props, ref) => {
|
|
|
48
48
|
}),
|
|
49
49
|
(!!counterText || !!badge) && /* @__PURE__ */ jsxs(Flex, {
|
|
50
50
|
alignItems: "center",
|
|
51
|
-
gap: "
|
|
51
|
+
gap: "12",
|
|
52
52
|
marginInlineStart: "auto",
|
|
53
|
-
children: [!!counterText && /* @__PURE__ */ jsx(Text, {
|
|
53
|
+
children: [renderedBadge, !!counterText && /* @__PURE__ */ jsx(Text, {
|
|
54
54
|
as: "span",
|
|
55
55
|
color: disabled ? "text/disabled" : "input/text/helper",
|
|
56
56
|
textStyle: "comp/input/helperText",
|
|
57
57
|
children: counterText
|
|
58
|
-
})
|
|
58
|
+
})]
|
|
59
59
|
})
|
|
60
60
|
]
|
|
61
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitkitLabel.js","names":[],"sources":["../../../lib/components/BitkitLabel/BitkitLabel.tsx"],"sourcesContent":["import { type BadgeProps } from '@chakra-ui/react/badge';\nimport { useFieldContext } from '@chakra-ui/react/field';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { chakra, type HTMLChakraProps, type SystemStyleObject, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { cloneElement, forwardRef, isValidElement, type ReactElement, type ReactNode } from 'react';\n\nimport { IconInfoCircle } from '../../icons';\nimport BitkitTooltip from '../BitkitTooltip/BitkitTooltip';\n\nexport interface BitkitLabelProps extends Omit<HTMLChakraProps<'label'>, 'children'> {\n badge?: ReactNode;\n counterText?: string;\n disabled?: boolean;\n children?: string;\n optional?: boolean;\n tooltip?: string;\n}\n\nconst disabledStyles: SystemStyleObject = {\n color: 'text/disabled',\n '& > span': { color: 'text/disabled' },\n};\n\nconst BitkitLabel = forwardRef<HTMLLabelElement, BitkitLabelProps>((props, ref) => {\n const { badge, counterText, css, disabled: disabledProp, children, optional: optionalProp, tooltip, ...rest } = props;\n\n const field = useFieldContext();\n const styles = useSlotRecipe({ key: 'field' })();\n\n const disabled = disabledProp ?? field?.disabled;\n const optional = optionalProp ?? (field ? !field.required : undefined);\n\n const badgeProps = disabled ? ({ colorPalette: 'neutral', size: 'xxs' } as const) : ({ size: 'xxs' } as const);\n const renderedBadge = isValidElement(badge) ? cloneElement(badge as ReactElement<BadgeProps>, badgeProps) : badge;\n\n return (\n <chakra.label\n ref={ref}\n css={[styles.label, disabled && disabledStyles, css]}\n data-disabled={disabled || undefined}\n {...rest}\n >\n {children}{' '}\n {optional && (\n <Text as=\"span\" textStyle=\"body/md/regular\">\n (optional)\n </Text>\n )}\n {!!tooltip && (\n <BitkitTooltip text={tooltip}>\n <IconInfoCircle size=\"16\" color=\"icon/tertiary\" />\n </BitkitTooltip>\n )}\n {(!!counterText || !!badge) && (\n <Flex alignItems=\"center\" gap=\"
|
|
1
|
+
{"version":3,"file":"BitkitLabel.js","names":[],"sources":["../../../lib/components/BitkitLabel/BitkitLabel.tsx"],"sourcesContent":["import { type BadgeProps } from '@chakra-ui/react/badge';\nimport { useFieldContext } from '@chakra-ui/react/field';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { chakra, type HTMLChakraProps, type SystemStyleObject, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { cloneElement, forwardRef, isValidElement, type ReactElement, type ReactNode } from 'react';\n\nimport { IconInfoCircle } from '../../icons';\nimport BitkitTooltip from '../BitkitTooltip/BitkitTooltip';\n\nexport interface BitkitLabelProps extends Omit<HTMLChakraProps<'label'>, 'children'> {\n badge?: ReactNode;\n counterText?: string;\n disabled?: boolean;\n children?: string;\n optional?: boolean;\n tooltip?: string;\n}\n\nconst disabledStyles: SystemStyleObject = {\n color: 'text/disabled',\n '& > span': { color: 'text/disabled' },\n};\n\nconst BitkitLabel = forwardRef<HTMLLabelElement, BitkitLabelProps>((props, ref) => {\n const { badge, counterText, css, disabled: disabledProp, children, optional: optionalProp, tooltip, ...rest } = props;\n\n const field = useFieldContext();\n const styles = useSlotRecipe({ key: 'field' })();\n\n const disabled = disabledProp ?? field?.disabled;\n const optional = optionalProp ?? (field ? !field.required : undefined);\n\n const badgeProps = disabled ? ({ colorPalette: 'neutral', size: 'xxs' } as const) : ({ size: 'xxs' } as const);\n const renderedBadge = isValidElement(badge) ? cloneElement(badge as ReactElement<BadgeProps>, badgeProps) : badge;\n\n return (\n <chakra.label\n ref={ref}\n css={[styles.label, disabled && disabledStyles, css]}\n data-disabled={disabled || undefined}\n {...rest}\n >\n {children}{' '}\n {optional && (\n <Text as=\"span\" textStyle=\"body/md/regular\">\n (optional)\n </Text>\n )}\n {!!tooltip && (\n <BitkitTooltip text={tooltip}>\n <IconInfoCircle size=\"16\" color=\"icon/tertiary\" />\n </BitkitTooltip>\n )}\n {(!!counterText || !!badge) && (\n <Flex alignItems=\"center\" gap=\"12\" marginInlineStart=\"auto\">\n {renderedBadge}\n {!!counterText && (\n <Text as=\"span\" color={disabled ? 'text/disabled' : 'input/text/helper'} textStyle=\"comp/input/helperText\">\n {counterText}\n </Text>\n )}\n </Flex>\n )}\n </chakra.label>\n );\n});\n\nBitkitLabel.displayName = 'BitkitLabel';\n\nexport default BitkitLabel;\n"],"mappings":";;;;;;;;;AAmBA,IAAM,iBAAoC;CACxC,OAAO;CACP,YAAY,EAAE,OAAO,iBAAiB;CACvC;AAED,IAAM,cAAc,YAAgD,OAAO,QAAQ;CACjF,MAAM,EAAE,OAAO,aAAa,KAAK,UAAU,cAAc,UAAU,UAAU,cAAc,SAAS,GAAG,SAAS;CAEhH,MAAM,QAAQ,iBAAiB;CAC/B,MAAM,SAAS,cAAc,EAAE,KAAK,SAAS,CAAC,EAAE;CAEhD,MAAM,WAAW,gBAAgB,OAAO;CACxC,MAAM,WAAW,iBAAiB,QAAQ,CAAC,MAAM,WAAW,KAAA;CAE5D,MAAM,aAAa,WAAY;EAAE,cAAc;EAAW,MAAM;EAAO,GAAc,EAAE,MAAM,OAAO;CACpG,MAAM,gBAAgB,eAAe,MAAM,GAAG,aAAa,OAAmC,WAAW,GAAG;AAE5G,QACE,qBAAC,OAAO,OAAR;EACO;EACL,KAAK;GAAC,OAAO;GAAO,YAAY;GAAgB;GAAI;EACpD,iBAAe,YAAY,KAAA;EAC3B,GAAI;YAJN;GAMG;GAAU;GACV,YACC,oBAAC,MAAD;IAAM,IAAG;IAAO,WAAU;cAAkB;IAErC,CAAA;GAER,CAAC,CAAC,WACD,oBAAC,eAAD;IAAe,MAAM;cACnB,oBAAC,gBAAD;KAAgB,MAAK;KAAK,OAAM;KAAkB,CAAA;IACpC,CAAA;IAEhB,CAAC,CAAC,eAAe,CAAC,CAAC,UACnB,qBAAC,MAAD;IAAM,YAAW;IAAS,KAAI;IAAK,mBAAkB;cAArD,CACG,eACA,CAAC,CAAC,eACD,oBAAC,MAAD;KAAM,IAAG;KAAO,OAAO,WAAW,kBAAkB;KAAqB,WAAU;eAChF;KACI,CAAA,CAEJ;;GAEI;;EAEjB;AAEF,YAAY,cAAc"}
|
|
@@ -19,19 +19,25 @@ var BitkitLabeledData = forwardRef((props, ref) => {
|
|
|
19
19
|
const isSm = size === "sm";
|
|
20
20
|
const isPrimary = labelVariant === "primary";
|
|
21
21
|
const labelTextStyle = isPrimary ? isSm ? "body/sm/semibold" : "body/md/semibold" : isSm ? "body/sm/regular" : "body/md/regular";
|
|
22
|
+
const colonSuffix = label.endsWith(":") || label.endsWith(":") ? "" : ":";
|
|
22
23
|
if (state === "skeleton") return /* @__PURE__ */ jsxs(chakra.div, {
|
|
23
24
|
ref,
|
|
24
25
|
display: "flex",
|
|
25
26
|
alignItems: "center",
|
|
26
|
-
gap:
|
|
27
|
+
gap: "8",
|
|
27
28
|
...rest,
|
|
28
|
-
children: [/* @__PURE__ */ jsx(chakra.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
children: [!!showWarning && /* @__PURE__ */ jsx(IconWarningYellow, { size: "16" }), /* @__PURE__ */ jsxs(chakra.div, {
|
|
30
|
+
display: "flex",
|
|
31
|
+
alignItems: "center",
|
|
32
|
+
gap: "4",
|
|
33
|
+
children: [/* @__PURE__ */ jsxs(chakra.span, {
|
|
34
|
+
textStyle: labelTextStyle,
|
|
35
|
+
color: isPrimary ? "text/primary" : "text/secondary",
|
|
36
|
+
children: [label, colonSuffix]
|
|
37
|
+
}), /* @__PURE__ */ jsx(Skeleton, {
|
|
38
|
+
height: isSm ? "16" : "20",
|
|
39
|
+
width: "64"
|
|
40
|
+
})]
|
|
35
41
|
})]
|
|
36
42
|
});
|
|
37
43
|
const wrapWithTooltip = (text, anchor) => tooltip && tooltipAnchor === anchor ? /* @__PURE__ */ jsx(BitkitDefinitionTooltip, {
|
|
@@ -42,21 +48,22 @@ var BitkitLabeledData = forwardRef((props, ref) => {
|
|
|
42
48
|
ref,
|
|
43
49
|
display: "flex",
|
|
44
50
|
alignItems: "center",
|
|
45
|
-
gap:
|
|
51
|
+
gap: "8",
|
|
46
52
|
...rest,
|
|
47
|
-
children: [
|
|
48
|
-
|
|
49
|
-
|
|
53
|
+
children: [!!showWarning && /* @__PURE__ */ jsx(IconWarningYellow, { size: "16" }), /* @__PURE__ */ jsxs(chakra.div, {
|
|
54
|
+
display: "flex",
|
|
55
|
+
alignItems: "center",
|
|
56
|
+
gap: "4",
|
|
57
|
+
children: [/* @__PURE__ */ jsxs(chakra.span, {
|
|
50
58
|
textStyle: labelTextStyle,
|
|
51
59
|
color: isPrimary ? "text/primary" : "text/secondary",
|
|
52
|
-
children: wrapWithTooltip(label, "label")
|
|
53
|
-
}),
|
|
54
|
-
/* @__PURE__ */ jsx(chakra.span, {
|
|
60
|
+
children: [wrapWithTooltip(label, "label"), colonSuffix]
|
|
61
|
+
}), /* @__PURE__ */ jsx(chakra.span, {
|
|
55
62
|
textStyle: isSm ? "body/sm/regular" : "body/md/regular",
|
|
56
63
|
color: "text/body",
|
|
57
64
|
children: wrapWithTooltip(value ?? "", "value")
|
|
58
|
-
})
|
|
59
|
-
]
|
|
65
|
+
})]
|
|
66
|
+
})]
|
|
60
67
|
});
|
|
61
68
|
}
|
|
62
69
|
const labelContent = /* @__PURE__ */ jsxs(chakra.dt, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitkitLabeledData.js","names":[],"sources":["../../../lib/components/BitkitLabeledData/BitkitLabeledData.tsx"],"sourcesContent":["import { type BoxProps } from '@chakra-ui/react/box';\nimport { Skeleton } from '@chakra-ui/react/skeleton';\nimport { chakra, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef } from 'react';\n\nimport { IconInfoCircle, IconWarningYellow } from '../../icons';\nimport BitkitDefinitionTooltip from '../BitkitDefinitionTooltip/BitkitDefinitionTooltip';\nimport BitkitTooltip from '../BitkitTooltip/BitkitTooltip';\n\n// --- Types ---\n\nexport interface BitkitLabeledDataProps extends Omit<BoxProps, 'colorPalette'> {\n label: string;\n labelVariant?: 'primary' | 'secondary';\n limitValue?: string;\n showWarning?: boolean;\n size?: 'lg' | '2xl' | '3xl' | 'sm' | 'md';\n state?: 'default' | 'skeleton';\n subtext?: string;\n tooltip?: string;\n tooltipAnchor?: 'label' | 'value';\n value?: string;\n variant?: 'default' | 'inline';\n}\n\nconst SKELETON_VALUE_HEIGHTS = { lg: '24', '2xl': '36px', '3xl': '40' } as const;\n\n// --- Component ---\n\nconst BitkitLabeledData = forwardRef<HTMLElement, BitkitLabeledDataProps>((props, ref) => {\n const {\n label,\n labelVariant = 'primary',\n limitValue,\n showWarning,\n size = 'lg',\n state = 'default',\n subtext,\n tooltip,\n tooltipAnchor = 'value',\n value,\n variant = 'default',\n ...rest\n } = props;\n\n const styles = useSlotRecipe({ key: 'labeledData' })({\n size: variant === 'inline' ? undefined : (size as 'lg' | '2xl' | '3xl'),\n });\n\n // --- Inline variant ---\n if (variant === 'inline') {\n const isSm = size === 'sm';\n const isPrimary = labelVariant === 'primary';\n const labelTextStyle = isPrimary\n ? isSm\n ? 'body/sm/semibold'\n : 'body/md/semibold'\n : isSm\n ? 'body/sm/regular'\n : 'body/md/regular';\n\n if (state === 'skeleton') {\n return (\n <chakra.div ref={ref} display=\"flex\" alignItems=\"center\" gap
|
|
1
|
+
{"version":3,"file":"BitkitLabeledData.js","names":[],"sources":["../../../lib/components/BitkitLabeledData/BitkitLabeledData.tsx"],"sourcesContent":["import { type BoxProps } from '@chakra-ui/react/box';\nimport { Skeleton } from '@chakra-ui/react/skeleton';\nimport { chakra, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef } from 'react';\n\nimport { IconInfoCircle, IconWarningYellow } from '../../icons';\nimport BitkitDefinitionTooltip from '../BitkitDefinitionTooltip/BitkitDefinitionTooltip';\nimport BitkitTooltip from '../BitkitTooltip/BitkitTooltip';\n\n// --- Types ---\n\nexport interface BitkitLabeledDataProps extends Omit<BoxProps, 'colorPalette'> {\n label: string;\n labelVariant?: 'primary' | 'secondary';\n limitValue?: string;\n showWarning?: boolean;\n size?: 'lg' | '2xl' | '3xl' | 'sm' | 'md';\n state?: 'default' | 'skeleton';\n subtext?: string;\n tooltip?: string;\n tooltipAnchor?: 'label' | 'value';\n value?: string;\n variant?: 'default' | 'inline';\n}\n\nconst SKELETON_VALUE_HEIGHTS = { lg: '24', '2xl': '36px', '3xl': '40' } as const;\n\n// --- Component ---\n\nconst BitkitLabeledData = forwardRef<HTMLElement, BitkitLabeledDataProps>((props, ref) => {\n const {\n label,\n labelVariant = 'primary',\n limitValue,\n showWarning,\n size = 'lg',\n state = 'default',\n subtext,\n tooltip,\n tooltipAnchor = 'value',\n value,\n variant = 'default',\n ...rest\n } = props;\n\n const styles = useSlotRecipe({ key: 'labeledData' })({\n size: variant === 'inline' ? undefined : (size as 'lg' | '2xl' | '3xl'),\n });\n\n // --- Inline variant ---\n if (variant === 'inline') {\n const isSm = size === 'sm';\n const isPrimary = labelVariant === 'primary';\n const labelTextStyle = isPrimary\n ? isSm\n ? 'body/sm/semibold'\n : 'body/md/semibold'\n : isSm\n ? 'body/sm/regular'\n : 'body/md/regular';\n const labelEndsWithColon = label.endsWith(':') || label.endsWith(':');\n const colonSuffix = labelEndsWithColon ? '' : ':';\n\n if (state === 'skeleton') {\n return (\n <chakra.div ref={ref} display=\"flex\" alignItems=\"center\" gap=\"8\" {...rest}>\n {!!showWarning && <IconWarningYellow size=\"16\" />}\n <chakra.div display=\"flex\" alignItems=\"center\" gap=\"4\">\n <chakra.span textStyle={labelTextStyle} color={isPrimary ? 'text/primary' : 'text/secondary'}>\n {label}\n {colonSuffix}\n </chakra.span>\n <Skeleton height={isSm ? '16' : '20'} width=\"64\" />\n </chakra.div>\n </chakra.div>\n );\n }\n\n const wrapWithTooltip = (text: string, anchor: 'label' | 'value') =>\n tooltip && tooltipAnchor === anchor ? (\n <BitkitDefinitionTooltip text={tooltip}>{text}</BitkitDefinitionTooltip>\n ) : (\n text\n );\n\n return (\n <chakra.div ref={ref} display=\"flex\" alignItems=\"center\" gap=\"8\" {...rest}>\n {!!showWarning && <IconWarningYellow size=\"16\" />}\n <chakra.div display=\"flex\" alignItems=\"center\" gap=\"4\">\n <chakra.span textStyle={labelTextStyle} color={isPrimary ? 'text/primary' : 'text/secondary'}>\n {wrapWithTooltip(label, 'label')}\n {colonSuffix}\n </chakra.span>\n <chakra.span textStyle={isSm ? 'body/sm/regular' : 'body/md/regular'} color=\"text/body\">\n {wrapWithTooltip(value ?? '', 'value')}\n </chakra.span>\n </chakra.div>\n </chakra.div>\n );\n }\n\n // --- Default variant ---\n\n const labelContent = (\n <chakra.dt css={styles.label}>\n {label}\n {!!tooltip && (\n <BitkitTooltip text={tooltip}>\n <IconInfoCircle size=\"16\" color=\"icon/tertiary\" />\n </BitkitTooltip>\n )}\n </chakra.dt>\n );\n\n if (state === 'skeleton') {\n return (\n <chakra.dl css={styles.root} ref={ref} {...(rest as Record<string, unknown>)}>\n {labelContent}\n <Skeleton height={SKELETON_VALUE_HEIGHTS[size as keyof typeof SKELETON_VALUE_HEIGHTS]} width=\"128\" />\n <Skeleton height=\"20\" width=\"128\" />\n </chakra.dl>\n );\n }\n\n return (\n <chakra.dl css={styles.root} ref={ref} {...(rest as Record<string, unknown>)}>\n {labelContent}\n <chakra.dd css={styles.value}>\n {value}\n {!!limitValue && <chakra.span css={styles.limit}>/ {limitValue}</chakra.span>}\n </chakra.dd>\n {!!subtext && <chakra.dd css={styles.helpText}>{subtext}</chakra.dd>}\n </chakra.dl>\n );\n});\n\nBitkitLabeledData.displayName = 'BitkitLabeledData';\n\nexport default BitkitLabeledData;\n"],"mappings":";;;;;;;;;AAyBA,IAAM,yBAAyB;CAAE,IAAI;CAAM,OAAO;CAAQ,OAAO;CAAM;AAIvE,IAAM,oBAAoB,YAAiD,OAAO,QAAQ;CACxF,MAAM,EACJ,OACA,eAAe,WACf,YACA,aACA,OAAO,MACP,QAAQ,WACR,SACA,SACA,gBAAgB,SAChB,OACA,UAAU,WACV,GAAG,SACD;CAEJ,MAAM,SAAS,cAAc,EAAE,KAAK,eAAe,CAAC,CAAC,EACnD,MAAM,YAAY,WAAW,KAAA,IAAa,MAC3C,CAAC;AAGF,KAAI,YAAY,UAAU;EACxB,MAAM,OAAO,SAAS;EACtB,MAAM,YAAY,iBAAiB;EACnC,MAAM,iBAAiB,YACnB,OACE,qBACA,qBACF,OACE,oBACA;EAEN,MAAM,cADqB,MAAM,SAAS,IAAI,IAAI,MAAM,SAAS,IAAI,GAC5B,KAAK;AAE9C,MAAI,UAAU,WACZ,QACE,qBAAC,OAAO,KAAR;GAAiB;GAAK,SAAQ;GAAO,YAAW;GAAS,KAAI;GAAI,GAAI;aAArE,CACG,CAAC,CAAC,eAAe,oBAAC,mBAAD,EAAmB,MAAK,MAAO,CAAA,EACjD,qBAAC,OAAO,KAAR;IAAY,SAAQ;IAAO,YAAW;IAAS,KAAI;cAAnD,CACE,qBAAC,OAAO,MAAR;KAAa,WAAW;KAAgB,OAAO,YAAY,iBAAiB;eAA5E,CACG,OACA,YACW;QACd,oBAAC,UAAD;KAAU,QAAQ,OAAO,OAAO;KAAM,OAAM;KAAO,CAAA,CACxC;MACF;;EAIjB,MAAM,mBAAmB,MAAc,WACrC,WAAW,kBAAkB,SAC3B,oBAAC,yBAAD;GAAyB,MAAM;aAAU;GAA+B,CAAA,GAExE;AAGJ,SACE,qBAAC,OAAO,KAAR;GAAiB;GAAK,SAAQ;GAAO,YAAW;GAAS,KAAI;GAAI,GAAI;aAArE,CACG,CAAC,CAAC,eAAe,oBAAC,mBAAD,EAAmB,MAAK,MAAO,CAAA,EACjD,qBAAC,OAAO,KAAR;IAAY,SAAQ;IAAO,YAAW;IAAS,KAAI;cAAnD,CACE,qBAAC,OAAO,MAAR;KAAa,WAAW;KAAgB,OAAO,YAAY,iBAAiB;eAA5E,CACG,gBAAgB,OAAO,QAAQ,EAC/B,YACW;QACd,oBAAC,OAAO,MAAR;KAAa,WAAW,OAAO,oBAAoB;KAAmB,OAAM;eACzE,gBAAgB,SAAS,IAAI,QAAQ;KAC1B,CAAA,CACH;MACF;;;CAMjB,MAAM,eACJ,qBAAC,OAAO,IAAR;EAAW,KAAK,OAAO;YAAvB,CACG,OACA,CAAC,CAAC,WACD,oBAAC,eAAD;GAAe,MAAM;aACnB,oBAAC,gBAAD;IAAgB,MAAK;IAAK,OAAM;IAAkB,CAAA;GACpC,CAAA,CAER;;AAGd,KAAI,UAAU,WACZ,QACE,qBAAC,OAAO,IAAR;EAAW,KAAK,OAAO;EAAW;EAAK,GAAK;YAA5C;GACG;GACD,oBAAC,UAAD;IAAU,QAAQ,uBAAuB;IAA8C,OAAM;IAAQ,CAAA;GACrG,oBAAC,UAAD;IAAU,QAAO;IAAK,OAAM;IAAQ,CAAA;GAC1B;;AAIhB,QACE,qBAAC,OAAO,IAAR;EAAW,KAAK,OAAO;EAAW;EAAK,GAAK;YAA5C;GACG;GACD,qBAAC,OAAO,IAAR;IAAW,KAAK,OAAO;cAAvB,CACG,OACA,CAAC,CAAC,cAAc,qBAAC,OAAO,MAAR;KAAa,KAAK,OAAO;eAAzB,CAAgC,MAAG,WAAyB;OACnE;;GACX,CAAC,CAAC,WAAW,oBAAC,OAAO,IAAR;IAAW,KAAK,OAAO;cAAW;IAAoB,CAAA;GAC1D;;EAEd;AAEF,kBAAkB,cAAc"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ListRootProps } from '@chakra-ui/react/list';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { BitkitIconComponent } from '../../icons';
|
|
4
|
+
type BitkitListVariant = 'explainer' | 'ordered' | 'unordered';
|
|
5
|
+
type BitkitListSize = 'lg' | 'md';
|
|
6
|
+
export interface BitkitListProps extends Omit<ListRootProps, 'colorPalette'> {
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
colorPalette?: 'neutral' | 'purple';
|
|
9
|
+
size?: BitkitListSize;
|
|
10
|
+
variant?: BitkitListVariant;
|
|
11
|
+
}
|
|
12
|
+
export interface BitkitListItemProps {
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
helperText?: string;
|
|
15
|
+
icon?: BitkitIconComponent;
|
|
16
|
+
iconColor?: string;
|
|
17
|
+
}
|
|
18
|
+
declare const _default: import('react').ForwardRefExoticComponent<BitkitListProps & import('react').RefAttributes<HTMLOListElement | HTMLUListElement>> & {
|
|
19
|
+
Item: import('react').ForwardRefExoticComponent<BitkitListItemProps & import('react').RefAttributes<HTMLLIElement>>;
|
|
20
|
+
};
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { Box } from "@chakra-ui/react/box";
|
|
2
|
+
import { Text } from "@chakra-ui/react/text";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { createContext as createContext$1 } from "@chakra-ui/react";
|
|
6
|
+
import { List } from "@chakra-ui/react/list";
|
|
7
|
+
//#region lib/components/BitkitList/BitkitList.tsx
|
|
8
|
+
var [BitkitListProvider, useBitkitListContext] = createContext$1({
|
|
9
|
+
name: "BitkitListContext",
|
|
10
|
+
hookName: "useBitkitListContext",
|
|
11
|
+
providerName: "<BitkitList />"
|
|
12
|
+
});
|
|
13
|
+
var BitkitList = forwardRef((props, ref) => {
|
|
14
|
+
const { children, colorPalette = "neutral", size = "lg", variant = "unordered", ...rest } = props;
|
|
15
|
+
const rootProps = variant === "ordered" ? {
|
|
16
|
+
as: "ol",
|
|
17
|
+
counterReset: "bitkit-list"
|
|
18
|
+
} : variant === "explainer" ? {
|
|
19
|
+
as: "ol",
|
|
20
|
+
counterReset: "bitkit-list"
|
|
21
|
+
} : {};
|
|
22
|
+
return /* @__PURE__ */ jsx(BitkitListProvider, {
|
|
23
|
+
value: {
|
|
24
|
+
size,
|
|
25
|
+
variant
|
|
26
|
+
},
|
|
27
|
+
children: /* @__PURE__ */ jsx(List.Root, {
|
|
28
|
+
ref,
|
|
29
|
+
colorPalette,
|
|
30
|
+
size,
|
|
31
|
+
...rootProps,
|
|
32
|
+
...rest,
|
|
33
|
+
children
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
BitkitList.displayName = "BitkitList";
|
|
38
|
+
var UNORDERED_ICON_SIZE = {
|
|
39
|
+
lg: "24",
|
|
40
|
+
md: "16"
|
|
41
|
+
};
|
|
42
|
+
var BitkitListItem = forwardRef((props, ref) => {
|
|
43
|
+
const { children, helperText, icon: Icon, iconColor } = props;
|
|
44
|
+
const { size, variant } = useBitkitListContext();
|
|
45
|
+
const content = helperText ? /* @__PURE__ */ jsxs(Box, {
|
|
46
|
+
display: "flex",
|
|
47
|
+
flex: "1",
|
|
48
|
+
flexDirection: "column",
|
|
49
|
+
minWidth: "0",
|
|
50
|
+
children: [children, /* @__PURE__ */ jsx(Text, {
|
|
51
|
+
color: "text/secondary",
|
|
52
|
+
textStyle: "body/md/regular",
|
|
53
|
+
children: helperText
|
|
54
|
+
})]
|
|
55
|
+
}) : children;
|
|
56
|
+
if (variant === "ordered") return /* @__PURE__ */ jsxs(List.Item, {
|
|
57
|
+
ref,
|
|
58
|
+
counterIncrement: "bitkit-list",
|
|
59
|
+
gap: helperText ? "12" : void 0,
|
|
60
|
+
children: [Icon ? /* @__PURE__ */ jsx(List.Indicator, {
|
|
61
|
+
color: iconColor ?? "icon/secondary",
|
|
62
|
+
children: /* @__PURE__ */ jsx(Icon, { size: UNORDERED_ICON_SIZE[size] })
|
|
63
|
+
}) : /* @__PURE__ */ jsx(List.Indicator, { _before: { content: "counter(bitkit-list) \".\"" } }), content]
|
|
64
|
+
});
|
|
65
|
+
if (variant === "explainer") return /* @__PURE__ */ jsxs(List.Item, {
|
|
66
|
+
ref,
|
|
67
|
+
counterIncrement: "bitkit-list",
|
|
68
|
+
gap: helperText ? "12" : "6",
|
|
69
|
+
marginBlockEnd: helperText ? "8" : void 0,
|
|
70
|
+
children: [Icon ? /* @__PURE__ */ jsx(List.Indicator, {
|
|
71
|
+
color: iconColor ?? "colorPalette.strong",
|
|
72
|
+
children: /* @__PURE__ */ jsx(Icon, { size: UNORDERED_ICON_SIZE[size] })
|
|
73
|
+
}) : /* @__PURE__ */ jsx(List.Indicator, {
|
|
74
|
+
_before: { content: "counter(bitkit-list)" },
|
|
75
|
+
background: "colorPalette.subtle",
|
|
76
|
+
borderRadius: "50%",
|
|
77
|
+
color: "colorPalette.strong",
|
|
78
|
+
height: helperText ? "24" : "20",
|
|
79
|
+
marginBlock: helperText ? void 0 : "2",
|
|
80
|
+
overflow: "hidden",
|
|
81
|
+
textStyle: "comp/badge/sm",
|
|
82
|
+
width: helperText ? "24" : "20"
|
|
83
|
+
}), content]
|
|
84
|
+
});
|
|
85
|
+
if (Icon) return /* @__PURE__ */ jsxs(List.Item, {
|
|
86
|
+
ref,
|
|
87
|
+
gap: helperText ? "12" : "8",
|
|
88
|
+
children: [/* @__PURE__ */ jsx(List.Indicator, {
|
|
89
|
+
color: iconColor ?? "icon/secondary",
|
|
90
|
+
children: /* @__PURE__ */ jsx(Icon, { size: UNORDERED_ICON_SIZE[size] })
|
|
91
|
+
}), content]
|
|
92
|
+
});
|
|
93
|
+
return /* @__PURE__ */ jsxs(List.Item, {
|
|
94
|
+
ref,
|
|
95
|
+
gap: helperText ? "12" : void 0,
|
|
96
|
+
children: [/* @__PURE__ */ jsx(List.Indicator, {
|
|
97
|
+
"aria-hidden": true,
|
|
98
|
+
children: "•"
|
|
99
|
+
}), content]
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
BitkitListItem.displayName = "BitkitListItem";
|
|
103
|
+
var BitkitList_default = Object.assign(BitkitList, { Item: BitkitListItem });
|
|
104
|
+
//#endregion
|
|
105
|
+
export { BitkitList_default as default };
|
|
106
|
+
|
|
107
|
+
//# sourceMappingURL=BitkitList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BitkitList.js","names":[],"sources":["../../../lib/components/BitkitList/BitkitList.tsx"],"sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { createContext } from '@chakra-ui/react';\nimport { Box } from '@chakra-ui/react/box';\nimport { List, type ListRootProps } from '@chakra-ui/react/list';\nimport { Text } from '@chakra-ui/react/text';\nimport { forwardRef, type ReactNode } from 'react';\n\nimport { type BitkitIconComponent } from '../../icons';\n\n// ----- Context -----\n\ntype BitkitListVariant = 'explainer' | 'ordered' | 'unordered';\ntype BitkitListSize = 'lg' | 'md';\n\ninterface BitkitListContext {\n size: BitkitListSize;\n variant: BitkitListVariant;\n}\n\nconst [BitkitListProvider, useBitkitListContext] = createContext<BitkitListContext>({\n name: 'BitkitListContext',\n hookName: 'useBitkitListContext',\n providerName: '<BitkitList />',\n});\n\n// ----- BitkitList -----\n\nexport interface BitkitListProps extends Omit<ListRootProps, 'colorPalette'> {\n children: ReactNode;\n colorPalette?: 'neutral' | 'purple';\n size?: BitkitListSize;\n variant?: BitkitListVariant;\n}\n\nconst BitkitList = forwardRef<HTMLOListElement | HTMLUListElement, BitkitListProps>((props, ref) => {\n const { children, colorPalette = 'neutral', size = 'lg', variant = 'unordered', ...rest } = props;\n\n const rootProps =\n variant === 'ordered'\n ? ({ as: 'ol', counterReset: 'bitkit-list' } as const)\n : variant === 'explainer'\n ? ({ as: 'ol', counterReset: 'bitkit-list' } as const)\n : {};\n\n return (\n <BitkitListProvider value={{ size, variant }}>\n <List.Root ref={ref} colorPalette={colorPalette} size={size} {...rootProps} {...rest}>\n {children}\n </List.Root>\n </BitkitListProvider>\n );\n});\n\nBitkitList.displayName = 'BitkitList';\n\n// ----- BitkitList.Item -----\n\nexport interface BitkitListItemProps {\n children: ReactNode;\n helperText?: string;\n icon?: BitkitIconComponent;\n iconColor?: string;\n}\n\nconst UNORDERED_ICON_SIZE: Record<BitkitListSize, '16' | '24'> = {\n lg: '24',\n md: '16',\n};\n\nconst BitkitListItem = forwardRef<HTMLLIElement, BitkitListItemProps>((props, ref) => {\n const { children, helperText, icon: Icon, iconColor } = props;\n const { size, variant } = useBitkitListContext();\n\n const content = helperText ? (\n <Box display=\"flex\" flex=\"1\" flexDirection=\"column\" minWidth=\"0\">\n {children}\n <Text color=\"text/secondary\" textStyle=\"body/md/regular\">\n {helperText}\n </Text>\n </Box>\n ) : (\n children\n );\n\n if (variant === 'ordered') {\n return (\n <List.Item ref={ref} counterIncrement=\"bitkit-list\" gap={helperText ? '12' : undefined}>\n {Icon ? (\n <List.Indicator color={iconColor ?? 'icon/secondary'}>\n <Icon size={UNORDERED_ICON_SIZE[size]} />\n </List.Indicator>\n ) : (\n <List.Indicator _before={{ content: 'counter(bitkit-list) \".\"' }} />\n )}\n {content}\n </List.Item>\n );\n }\n\n if (variant === 'explainer') {\n return (\n <List.Item\n ref={ref}\n counterIncrement=\"bitkit-list\"\n gap={helperText ? '12' : '6'}\n marginBlockEnd={helperText ? '8' : undefined}\n >\n {Icon ? (\n <List.Indicator color={iconColor ?? 'colorPalette.strong'}>\n <Icon size={UNORDERED_ICON_SIZE[size]} />\n </List.Indicator>\n ) : (\n <List.Indicator\n _before={{ content: 'counter(bitkit-list)' }}\n background=\"colorPalette.subtle\"\n borderRadius=\"50%\"\n color=\"colorPalette.strong\"\n height={helperText ? '24' : '20'}\n // Give the smaller 20px circle 2px of block margin on each side so the marker\n // always occupies a 24px vertical slot and its center aligns with the first\n // text line — matches the Figma frame with the 20px circle centered in a 24px\n // marker box.\n marginBlock={helperText ? undefined : '2'}\n overflow=\"hidden\"\n textStyle=\"comp/badge/sm\"\n width={helperText ? '24' : '20'}\n />\n )}\n {content}\n </List.Item>\n );\n }\n\n // unordered (default)\n if (Icon) {\n return (\n <List.Item ref={ref} gap={helperText ? '12' : '8'}>\n <List.Indicator color={iconColor ?? 'icon/secondary'}>\n <Icon size={UNORDERED_ICON_SIZE[size]} />\n </List.Indicator>\n {content}\n </List.Item>\n );\n }\n\n return (\n <List.Item ref={ref} gap={helperText ? '12' : undefined}>\n <List.Indicator aria-hidden>•</List.Indicator>\n {content}\n </List.Item>\n );\n});\n\nBitkitListItem.displayName = 'BitkitListItem';\n\nexport default Object.assign(BitkitList, { Item: BitkitListItem });\n"],"mappings":";;;;;;;AAmBA,IAAM,CAAC,oBAAoB,wBAAwB,gBAAiC;CAClF,MAAM;CACN,UAAU;CACV,cAAc;CACf,CAAC;AAWF,IAAM,aAAa,YAAkE,OAAO,QAAQ;CAClG,MAAM,EAAE,UAAU,eAAe,WAAW,OAAO,MAAM,UAAU,aAAa,GAAG,SAAS;CAE5F,MAAM,YACJ,YAAY,YACP;EAAE,IAAI;EAAM,cAAc;EAAe,GAC1C,YAAY,cACT;EAAE,IAAI;EAAM,cAAc;EAAe,GAC1C,EAAE;AAEV,QACE,oBAAC,oBAAD;EAAoB,OAAO;GAAE;GAAM;GAAS;YAC1C,oBAAC,KAAK,MAAN;GAAgB;GAAmB;GAAoB;GAAM,GAAI;GAAW,GAAI;GAC7E;GACS,CAAA;EACO,CAAA;EAEvB;AAEF,WAAW,cAAc;AAWzB,IAAM,sBAA2D;CAC/D,IAAI;CACJ,IAAI;CACL;AAED,IAAM,iBAAiB,YAAgD,OAAO,QAAQ;CACpF,MAAM,EAAE,UAAU,YAAY,MAAM,MAAM,cAAc;CACxD,MAAM,EAAE,MAAM,YAAY,sBAAsB;CAEhD,MAAM,UAAU,aACd,qBAAC,KAAD;EAAK,SAAQ;EAAO,MAAK;EAAI,eAAc;EAAS,UAAS;YAA7D,CACG,UACD,oBAAC,MAAD;GAAM,OAAM;GAAiB,WAAU;aACpC;GACI,CAAA,CACH;MAEN;AAGF,KAAI,YAAY,UACd,QACE,qBAAC,KAAK,MAAN;EAAgB;EAAK,kBAAiB;EAAc,KAAK,aAAa,OAAO,KAAA;YAA7E,CACG,OACC,oBAAC,KAAK,WAAN;GAAgB,OAAO,aAAa;aAClC,oBAAC,MAAD,EAAM,MAAM,oBAAoB,OAAS,CAAA;GAC1B,CAAA,GAEjB,oBAAC,KAAK,WAAN,EAAgB,SAAS,EAAE,SAAS,8BAA4B,EAAI,CAAA,EAErE,QACS;;AAIhB,KAAI,YAAY,YACd,QACE,qBAAC,KAAK,MAAN;EACO;EACL,kBAAiB;EACjB,KAAK,aAAa,OAAO;EACzB,gBAAgB,aAAa,MAAM,KAAA;YAJrC,CAMG,OACC,oBAAC,KAAK,WAAN;GAAgB,OAAO,aAAa;aAClC,oBAAC,MAAD,EAAM,MAAM,oBAAoB,OAAS,CAAA;GAC1B,CAAA,GAEjB,oBAAC,KAAK,WAAN;GACE,SAAS,EAAE,SAAS,wBAAwB;GAC5C,YAAW;GACX,cAAa;GACb,OAAM;GACN,QAAQ,aAAa,OAAO;GAK5B,aAAa,aAAa,KAAA,IAAY;GACtC,UAAS;GACT,WAAU;GACV,OAAO,aAAa,OAAO;GAC3B,CAAA,EAEH,QACS;;AAKhB,KAAI,KACF,QACE,qBAAC,KAAK,MAAN;EAAgB;EAAK,KAAK,aAAa,OAAO;YAA9C,CACE,oBAAC,KAAK,WAAN;GAAgB,OAAO,aAAa;aAClC,oBAAC,MAAD,EAAM,MAAM,oBAAoB,OAAS,CAAA;GAC1B,CAAA,EAChB,QACS;;AAIhB,QACE,qBAAC,KAAK,MAAN;EAAgB;EAAK,KAAK,aAAa,OAAO,KAAA;YAA9C,CACE,oBAAC,KAAK,WAAN;GAAgB,eAAA;aAAY;GAAkB,CAAA,EAC7C,QACS;;EAEd;AAEF,eAAe,cAAc;AAE7B,IAAA,qBAAe,OAAO,OAAO,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import BitkitCodeSnippet from "../BitkitCodeSnippet/BitkitCodeSnippet.js";
|
|
2
2
|
import BitkitLink from "../BitkitLink/BitkitLink.js";
|
|
3
|
-
import
|
|
4
|
-
import BitkitUnorderedList_default from "../BitkitUnorderedList/BitkitUnorderedList.js";
|
|
3
|
+
import BitkitList_default from "../BitkitList/BitkitList.js";
|
|
5
4
|
import { chakra, useSlotRecipe } from "@chakra-ui/react/styled-system";
|
|
6
5
|
import { Text } from "@chakra-ui/react/text";
|
|
7
|
-
import {
|
|
6
|
+
import { forwardRef, isValidElement } from "react";
|
|
8
7
|
import { jsx } from "react/jsx-runtime";
|
|
9
8
|
import { Separator } from "@chakra-ui/react/separator";
|
|
10
9
|
import { Stack } from "@chakra-ui/react/stack";
|
|
11
10
|
import { Heading } from "@chakra-ui/react/heading";
|
|
12
11
|
import Markdown from "react-markdown";
|
|
13
12
|
//#region lib/components/BitkitMarkdown/BitkitMarkdown.tsx
|
|
14
|
-
var ListTypeContext = createContext("unordered");
|
|
15
13
|
var getTextContent = (node) => {
|
|
16
14
|
if (typeof node === "string") return node;
|
|
17
15
|
if (typeof node === "number") return String(node);
|
|
@@ -69,13 +67,11 @@ var createComponents = (size, blockquoteStyles) => {
|
|
|
69
67
|
...props
|
|
70
68
|
}),
|
|
71
69
|
hr: () => /* @__PURE__ */ jsx(Separator, {}),
|
|
72
|
-
li: ({ node: _, ...props }) => /* @__PURE__ */ jsx(
|
|
73
|
-
ol: ({ node: _, ...props }) => /* @__PURE__ */ jsx(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
children: props.children
|
|
78
|
-
})
|
|
70
|
+
li: ({ node: _, ...props }) => /* @__PURE__ */ jsx(BitkitList_default.Item, { children: props.children }),
|
|
71
|
+
ol: ({ node: _, ...props }) => /* @__PURE__ */ jsx(BitkitList_default, {
|
|
72
|
+
size: listSize,
|
|
73
|
+
variant: "ordered",
|
|
74
|
+
children: props.children
|
|
79
75
|
}),
|
|
80
76
|
p: ({ node: _, ...props }) => /* @__PURE__ */ jsx(Text, { ...props }),
|
|
81
77
|
pre: ({ node: _, children }) => /* @__PURE__ */ jsx(BitkitCodeSnippet, {
|
|
@@ -83,12 +79,10 @@ var createComponents = (size, blockquoteStyles) => {
|
|
|
83
79
|
size: codeSize,
|
|
84
80
|
children: getTextContent(children)
|
|
85
81
|
}),
|
|
86
|
-
ul: ({ node: _, ...props }) => /* @__PURE__ */ jsx(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
children: props.children
|
|
91
|
-
})
|
|
82
|
+
ul: ({ node: _, ...props }) => /* @__PURE__ */ jsx(BitkitList_default, {
|
|
83
|
+
size: listSize,
|
|
84
|
+
variant: "unordered",
|
|
85
|
+
children: props.children
|
|
92
86
|
})
|
|
93
87
|
};
|
|
94
88
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitkitMarkdown.js","names":[],"sources":["../../../lib/components/BitkitMarkdown/BitkitMarkdown.tsx"],"sourcesContent":["import { Heading } from '@chakra-ui/react/heading';\nimport { Separator } from '@chakra-ui/react/separator';\nimport { Stack, type StackProps } from '@chakra-ui/react/stack';\nimport { chakra, type SystemStyleObject, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { type ComponentProps,
|
|
1
|
+
{"version":3,"file":"BitkitMarkdown.js","names":[],"sources":["../../../lib/components/BitkitMarkdown/BitkitMarkdown.tsx"],"sourcesContent":["import { Heading } from '@chakra-ui/react/heading';\nimport { Separator } from '@chakra-ui/react/separator';\nimport { Stack, type StackProps } from '@chakra-ui/react/stack';\nimport { chakra, type SystemStyleObject, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { Text } from '@chakra-ui/react/text';\nimport { type ComponentProps, forwardRef, isValidElement, type ReactNode } from 'react';\nimport Markdown, { type Components } from 'react-markdown';\n\nimport BitkitCodeSnippet from '../BitkitCodeSnippet/BitkitCodeSnippet';\nimport BitkitLink from '../BitkitLink/BitkitLink';\nimport BitkitList from '../BitkitList/BitkitList';\n\n// ----- Helpers -----\n\nconst getTextContent = (node: ReactNode): string => {\n if (typeof node === 'string') return node;\n if (typeof node === 'number') return String(node);\n if (Array.isArray(node)) return node.map(getTextContent).join('');\n if (isValidElement(node)) return getTextContent((node.props as { children?: ReactNode }).children);\n return '';\n};\n\n// ----- Component mappings -----\n\nconst createComponents = (size: 'sm' | 'md' | 'lg', blockquoteStyles: SystemStyleObject): Components => {\n const codeSize = size === 'lg' ? 'lg' : 'md';\n const listSize = size === 'lg' ? 'lg' : 'md';\n\n return {\n a: ({ node: _, ...props }) => (\n <BitkitLink colorScheme=\"purple\" rel=\"noopener noreferrer\" target=\"_blank\" {...props} />\n ),\n blockquote: ({ node: _, ...props }) => <chakra.blockquote css={blockquoteStyles} {...props} />,\n code: ({ node: _, children }) => (\n <BitkitCodeSnippet variant=\"inline\" size={codeSize}>\n {String(children)}\n </BitkitCodeSnippet>\n ),\n h1: ({ node: _, ...props }) => <Heading as=\"h1\" textStyle=\"heading/h1\" {...props} />,\n h2: ({ node: _, ...props }) => <Heading as=\"h2\" textStyle=\"heading/h2\" {...props} />,\n h3: ({ node: _, ...props }) => <Heading as=\"h3\" textStyle=\"heading/h3\" {...props} />,\n h4: ({ node: _, ...props }) => <Heading as=\"h4\" textStyle=\"heading/h4\" {...props} />,\n h5: ({ node: _, ...props }) => <Heading as=\"h5\" textStyle=\"heading/h5\" {...props} />,\n h6: ({ node: _, ...props }) => <Heading as=\"h6\" textStyle=\"heading/h6\" {...props} />,\n hr: () => <Separator />,\n li: ({ node: _, ...props }) => <BitkitList.Item>{props.children}</BitkitList.Item>,\n ol: ({ node: _, ...props }) => (\n <BitkitList size={listSize} variant=\"ordered\">\n {props.children}\n </BitkitList>\n ),\n p: ({ node: _, ...props }) => <Text {...props} />,\n pre: ({ node: _, children }) => (\n <BitkitCodeSnippet variant=\"multi\" size={codeSize}>\n {getTextContent(children)}\n </BitkitCodeSnippet>\n ),\n ul: ({ node: _, ...props }) => (\n <BitkitList size={listSize} variant=\"unordered\">\n {props.children}\n </BitkitList>\n ),\n };\n};\n\n// ----- BitkitMarkdown -----\n\nexport interface BitkitMarkdownProps extends Omit<StackProps, 'children'> {\n children: string;\n components?: Components | null;\n rehypePlugins?: ComponentProps<typeof Markdown>['rehypePlugins'];\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst BitkitMarkdown = forwardRef<HTMLDivElement, BitkitMarkdownProps>((props, ref) => {\n const { children, components, rehypePlugins, size = 'md', ...rest } = props;\n\n const recipe = useSlotRecipe({ key: 'markdown' });\n const styles = recipe({ size });\n\n const defaultComponents = createComponents(size, styles.blockquote);\n const mergedComponents = { ...defaultComponents, ...(components ?? {}) };\n\n return (\n <Stack ref={ref} gap=\"16\" css={styles.root} {...rest}>\n <Markdown components={mergedComponents} rehypePlugins={rehypePlugins}>\n {children}\n </Markdown>\n </Stack>\n );\n});\n\nBitkitMarkdown.displayName = 'BitkitMarkdown';\n\nexport default BitkitMarkdown;\n"],"mappings":";;;;;;;;;;;;AAcA,IAAM,kBAAkB,SAA4B;AAClD,KAAI,OAAO,SAAS,SAAU,QAAO;AACrC,KAAI,OAAO,SAAS,SAAU,QAAO,OAAO,KAAK;AACjD,KAAI,MAAM,QAAQ,KAAK,CAAE,QAAO,KAAK,IAAI,eAAe,CAAC,KAAK,GAAG;AACjE,KAAI,eAAe,KAAK,CAAE,QAAO,eAAgB,KAAK,MAAmC,SAAS;AAClG,QAAO;;AAKT,IAAM,oBAAoB,MAA0B,qBAAoD;CACtG,MAAM,WAAW,SAAS,OAAO,OAAO;CACxC,MAAM,WAAW,SAAS,OAAO,OAAO;AAExC,QAAO;EACL,IAAI,EAAE,MAAM,GAAG,GAAG,YAChB,oBAAC,YAAD;GAAY,aAAY;GAAS,KAAI;GAAsB,QAAO;GAAS,GAAI;GAAS,CAAA;EAE1F,aAAa,EAAE,MAAM,GAAG,GAAG,YAAY,oBAAC,OAAO,YAAR;GAAmB,KAAK;GAAkB,GAAI;GAAS,CAAA;EAC9F,OAAO,EAAE,MAAM,GAAG,eAChB,oBAAC,mBAAD;GAAmB,SAAQ;GAAS,MAAM;aACvC,OAAO,SAAS;GACC,CAAA;EAEtB,KAAK,EAAE,MAAM,GAAG,GAAG,YAAY,oBAAC,SAAD;GAAS,IAAG;GAAK,WAAU;GAAa,GAAI;GAAS,CAAA;EACpF,KAAK,EAAE,MAAM,GAAG,GAAG,YAAY,oBAAC,SAAD;GAAS,IAAG;GAAK,WAAU;GAAa,GAAI;GAAS,CAAA;EACpF,KAAK,EAAE,MAAM,GAAG,GAAG,YAAY,oBAAC,SAAD;GAAS,IAAG;GAAK,WAAU;GAAa,GAAI;GAAS,CAAA;EACpF,KAAK,EAAE,MAAM,GAAG,GAAG,YAAY,oBAAC,SAAD;GAAS,IAAG;GAAK,WAAU;GAAa,GAAI;GAAS,CAAA;EACpF,KAAK,EAAE,MAAM,GAAG,GAAG,YAAY,oBAAC,SAAD;GAAS,IAAG;GAAK,WAAU;GAAa,GAAI;GAAS,CAAA;EACpF,KAAK,EAAE,MAAM,GAAG,GAAG,YAAY,oBAAC,SAAD;GAAS,IAAG;GAAK,WAAU;GAAa,GAAI;GAAS,CAAA;EACpF,UAAU,oBAAC,WAAD,EAAa,CAAA;EACvB,KAAK,EAAE,MAAM,GAAG,GAAG,YAAY,oBAAC,mBAAW,MAAZ,EAAA,UAAkB,MAAM,UAA2B,CAAA;EAClF,KAAK,EAAE,MAAM,GAAG,GAAG,YACjB,oBAAC,oBAAD;GAAY,MAAM;GAAU,SAAQ;aACjC,MAAM;GACI,CAAA;EAEf,IAAI,EAAE,MAAM,GAAG,GAAG,YAAY,oBAAC,MAAD,EAAM,GAAI,OAAS,CAAA;EACjD,MAAM,EAAE,MAAM,GAAG,eACf,oBAAC,mBAAD;GAAmB,SAAQ;GAAQ,MAAM;aACtC,eAAe,SAAS;GACP,CAAA;EAEtB,KAAK,EAAE,MAAM,GAAG,GAAG,YACjB,oBAAC,oBAAD;GAAY,MAAM;GAAU,SAAQ;aACjC,MAAM;GACI,CAAA;EAEhB;;AAYH,IAAM,iBAAiB,YAAiD,OAAO,QAAQ;CACrF,MAAM,EAAE,UAAU,YAAY,eAAe,OAAO,MAAM,GAAG,SAAS;CAGtE,MAAM,SADS,cAAc,EAAE,KAAK,YAAY,CACjC,CAAO,EAAE,MAAM,CAAC;CAG/B,MAAM,mBAAmB;EAAE,GADD,iBAAiB,MAAM,OAAO,WAC1B;EAAmB,GAAI,cAAc,EAAE;EAAG;AAExE,QACE,oBAAC,OAAD;EAAY;EAAK,KAAI;EAAK,KAAK,OAAO;EAAM,GAAI;YAC9C,oBAAC,UAAD;GAAU,YAAY;GAAiC;GACpD;GACQ,CAAA;EACL,CAAA;EAEV;AAEF,eAAe,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BitkitMarkdownCard.js","names":[],"sources":["../../../lib/components/BitkitMarkdownCard/BitkitMarkdownCard.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { type BoxProps } from '@chakra-ui/react/box';\nimport { Card } from '@chakra-ui/react/card';\nimport { Collapsible } from '@chakra-ui/react/collapsible';\nimport { HStack } from '@chakra-ui/react/stack';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef, type JSX, type ReactNode } from 'react';\n\nimport {\n IconCheck,\n IconChevronDown,\n IconChevronUp,\n IconErrorCircleFilled,\n IconInfoCircle,\n IconWarning,\n} from '../../icons';\nimport BitkitButton from '../BitkitButton/BitkitButton';\nimport BitkitMarkdown from '../BitkitMarkdown/BitkitMarkdown';\n\n// ----- Status config -----\n\ntype Status = 'critical' | 'info' | 'success' | 'warning';\n\nconst STATUS_ICONS: Record<Status, JSX.Element> = {\n critical: <IconErrorCircleFilled size=\"24\" />,\n info: <IconInfoCircle size=\"24\" />,\n success: <IconCheck size=\"24\" />,\n warning: <IconWarning size=\"24\" />,\n};\n\n// ----- Props -----\n\ntype UncontrolledProps = {\n defaultOpen?: boolean;\n onOpenChange?: never;\n open?: never;\n};\n\ntype ControlledProps = {\n defaultOpen?: never;\n onOpenChange: (open: boolean) => void;\n open: boolean;\n};\n\nexport type BitkitMarkdownCardProps = Omit<BoxProps, 'children'> & {\n actions?: ReactNode;\n children: string;\n collapsedHeight?: string;\n size?: 'sm' | 'md' | 'lg';\n status?: Status;\n} & (UncontrolledProps | ControlledProps);\n\n// ----- Component -----\n\nconst BitkitMarkdownCard = forwardRef<HTMLDivElement, BitkitMarkdownCardProps>((props, ref) => {\n const {\n actions,\n children,\n collapsedHeight = '200px',\n defaultOpen,\n onOpenChange,\n open,\n size = 'md',\n status = 'info',\n ...rest\n } = props;\n\n const recipe = useSlotRecipe({ key: 'markdownCard' });\n const styles = recipe({ status });\n\n const handleOpenChange = onOpenChange ? (details: { open: boolean }) => onOpenChange(details.open) : undefined;\n\n return (\n <Card.Root ref={ref} css={styles.root} {...rest}>\n <HStack align=\"stretch\" gap=\"0\">\n <Box css={styles.iconBar}>{STATUS_ICONS[status]}</Box>\n <Box css={styles.content}>\n <Collapsible.Root\n open={open}\n defaultOpen={defaultOpen}\n collapsedHeight={collapsedHeight}\n onOpenChange={handleOpenChange}\n >\n <Collapsible.Content>\n <BitkitMarkdown size={size}>{children}</BitkitMarkdown>\n </Collapsible.Content>\n <Collapsible.Context>\n {(api) => (\n <>\n {!api.open && <Box css={styles.gradient} />}\n <HStack gap=\"16\" css={styles.footerButtons}>\n {actions}\n <BitkitButton\n {...api.getTriggerProps()}\n size=\"sm\"\n suffixIcon={api.open ? IconChevronUp : IconChevronDown}\n variant=\"secondary\"\n >\n {api.open ? 'Show less' : 'Show more'}\n </BitkitButton>\n </HStack>\n </>\n )}\n </Collapsible.Context>\n </Collapsible.Root>\n </Box>\n </HStack>\n </Card.Root>\n );\n});\n\nBitkitMarkdownCard.displayName = 'BitkitMarkdownCard';\n\nexport default BitkitMarkdownCard;\n"],"mappings":";;;;;;;;;;;;;;;;AAuBA,IAAM,eAA4C;CAChD,UAAU,oBAAC,uBAAD,EAAuB,MAAK,MAAO,CAAA;CAC7C,MAAM,oBAAC,gBAAD,EAAgB,MAAK,MAAO,CAAA;CAClC,SAAS,oBAAC,WAAD,EAAW,MAAK,MAAO,CAAA;CAChC,SAAS,oBAAC,aAAD,EAAa,MAAK,MAAO,CAAA;CACnC;AA0BD,IAAM,qBAAqB,YAAqD,OAAO,QAAQ;CAC7F,MAAM,EACJ,SACA,UACA,kBAAkB,SAClB,aACA,cACA,MACA,OAAO,MACP,SAAS,QACT,GAAG,SACD;CAGJ,MAAM,SADS,cAAc,EAAE,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"BitkitMarkdownCard.js","names":[],"sources":["../../../lib/components/BitkitMarkdownCard/BitkitMarkdownCard.tsx"],"sourcesContent":["import { Box } from '@chakra-ui/react/box';\nimport { type BoxProps } from '@chakra-ui/react/box';\nimport { Card } from '@chakra-ui/react/card';\nimport { Collapsible } from '@chakra-ui/react/collapsible';\nimport { HStack } from '@chakra-ui/react/stack';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { forwardRef, type JSX, type ReactNode } from 'react';\n\nimport {\n IconCheck,\n IconChevronDown,\n IconChevronUp,\n IconErrorCircleFilled,\n IconInfoCircle,\n IconWarning,\n} from '../../icons';\nimport BitkitButton from '../BitkitButton/BitkitButton';\nimport BitkitMarkdown from '../BitkitMarkdown/BitkitMarkdown';\n\n// ----- Status config -----\n\ntype Status = 'critical' | 'info' | 'success' | 'warning';\n\nconst STATUS_ICONS: Record<Status, JSX.Element> = {\n critical: <IconErrorCircleFilled size=\"24\" />,\n info: <IconInfoCircle size=\"24\" />,\n success: <IconCheck size=\"24\" />,\n warning: <IconWarning size=\"24\" />,\n};\n\n// ----- Props -----\n\ntype UncontrolledProps = {\n defaultOpen?: boolean;\n onOpenChange?: never;\n open?: never;\n};\n\ntype ControlledProps = {\n defaultOpen?: never;\n onOpenChange: (open: boolean) => void;\n open: boolean;\n};\n\nexport type BitkitMarkdownCardProps = Omit<BoxProps, 'children'> & {\n actions?: ReactNode;\n children: string;\n collapsedHeight?: string;\n size?: 'sm' | 'md' | 'lg';\n status?: Status;\n} & (UncontrolledProps | ControlledProps);\n\n// ----- Component -----\n\nconst BitkitMarkdownCard = forwardRef<HTMLDivElement, BitkitMarkdownCardProps>((props, ref) => {\n const {\n actions,\n children,\n collapsedHeight = '200px',\n defaultOpen,\n onOpenChange,\n open,\n size = 'md',\n status = 'info',\n ...rest\n } = props;\n\n const recipe = useSlotRecipe({ key: 'markdownCard' });\n const styles = recipe({ status });\n\n const handleOpenChange = onOpenChange ? (details: { open: boolean }) => onOpenChange(details.open) : undefined;\n\n return (\n <Card.Root ref={ref} css={styles.root} {...rest}>\n <HStack align=\"stretch\" gap=\"0\">\n <Box css={styles.iconBar}>{STATUS_ICONS[status]}</Box>\n <Box css={styles.content}>\n <Collapsible.Root\n open={open}\n defaultOpen={defaultOpen}\n collapsedHeight={collapsedHeight}\n onOpenChange={handleOpenChange}\n >\n <Collapsible.Content>\n <BitkitMarkdown size={size}>{children}</BitkitMarkdown>\n </Collapsible.Content>\n <Collapsible.Context>\n {(api) => (\n <>\n {!api.open && <Box css={styles.gradient} />}\n <HStack gap=\"16\" css={styles.footerButtons}>\n {actions}\n <BitkitButton\n {...api.getTriggerProps()}\n size=\"sm\"\n suffixIcon={api.open ? IconChevronUp : IconChevronDown}\n variant=\"secondary\"\n >\n {api.open ? 'Show less' : 'Show more'}\n </BitkitButton>\n </HStack>\n </>\n )}\n </Collapsible.Context>\n </Collapsible.Root>\n </Box>\n </HStack>\n </Card.Root>\n );\n});\n\nBitkitMarkdownCard.displayName = 'BitkitMarkdownCard';\n\nexport default BitkitMarkdownCard;\n"],"mappings":";;;;;;;;;;;;;;;;AAuBA,IAAM,eAA4C;CAChD,UAAU,oBAAC,uBAAD,EAAuB,MAAK,MAAO,CAAA;CAC7C,MAAM,oBAAC,gBAAD,EAAgB,MAAK,MAAO,CAAA;CAClC,SAAS,oBAAC,WAAD,EAAW,MAAK,MAAO,CAAA;CAChC,SAAS,oBAAC,aAAD,EAAa,MAAK,MAAO,CAAA;CACnC;AA0BD,IAAM,qBAAqB,YAAqD,OAAO,QAAQ;CAC7F,MAAM,EACJ,SACA,UACA,kBAAkB,SAClB,aACA,cACA,MACA,OAAO,MACP,SAAS,QACT,GAAG,SACD;CAGJ,MAAM,SADS,cAAc,EAAE,KAAK,gBAAgB,CACrC,CAAO,EAAE,QAAQ,CAAC;CAEjC,MAAM,mBAAmB,gBAAgB,YAA+B,aAAa,QAAQ,KAAK,GAAG,KAAA;AAErG,QACE,oBAAC,KAAK,MAAN;EAAgB;EAAK,KAAK,OAAO;EAAM,GAAI;YACzC,qBAAC,QAAD;GAAQ,OAAM;GAAU,KAAI;aAA5B,CACE,oBAAC,KAAD;IAAK,KAAK,OAAO;cAAU,aAAa;IAAc,CAAA,EACtD,oBAAC,KAAD;IAAK,KAAK,OAAO;cACf,qBAAC,YAAY,MAAb;KACQ;KACO;KACI;KACjB,cAAc;eAJhB,CAME,oBAAC,YAAY,SAAb,EAAA,UACE,oBAAC,gBAAD;MAAsB;MAAO;MAA0B,CAAA,EACnC,CAAA,EACtB,oBAAC,YAAY,SAAb,EAAA,WACI,QACA,qBAAA,YAAA,EAAA,UAAA,CACG,CAAC,IAAI,QAAQ,oBAAC,KAAD,EAAK,KAAK,OAAO,UAAY,CAAA,EAC3C,qBAAC,QAAD;MAAQ,KAAI;MAAK,KAAK,OAAO;gBAA7B,CACG,SACD,oBAAC,cAAD;OACE,GAAI,IAAI,iBAAiB;OACzB,MAAK;OACL,YAAY,IAAI,OAAO,gBAAgB;OACvC,SAAQ;iBAEP,IAAI,OAAO,cAAc;OACb,CAAA,CACR;QACR,EAAA,CAAA,EAEe,CAAA,CACL;;IACf,CAAA,CACC;;EACC,CAAA;EAEd;AAEF,mBAAmB,cAAc"}
|
|
@@ -16,5 +16,17 @@ export type BitkitMultiselectProps = Omit<BitkitFieldProps, 'children' | 'state'
|
|
|
16
16
|
triggerProps?: BitkitMultiselectTriggerProps;
|
|
17
17
|
value?: Array<string>;
|
|
18
18
|
} & BitkitSelectMenuCreateItemProps & BitkitSelectMenuSearchProps & BitkitSelectMenuEmptyStateProps;
|
|
19
|
-
declare const BitkitMultiselect: import('react').ForwardRefExoticComponent<
|
|
19
|
+
declare const BitkitMultiselect: import('react').ForwardRefExoticComponent<Omit<BitkitFieldProps, "children" | "state"> & {
|
|
20
|
+
constrained?: boolean;
|
|
21
|
+
defaultValue?: Array<string>;
|
|
22
|
+
isLoading?: boolean;
|
|
23
|
+
items: Array<BitkitMultiselectMenuItemProps>;
|
|
24
|
+
onValueChange?: (newVal: Array<string>) => void;
|
|
25
|
+
placeholder?: string;
|
|
26
|
+
selectProps?: Omit<SelectRootProps, "collection" | "defaultValue" | "multiple" | "onValueChange" | "value">;
|
|
27
|
+
size?: "md" | "lg";
|
|
28
|
+
state?: "disabled" | "error" | "readOnly" | "warning";
|
|
29
|
+
triggerProps?: BitkitMultiselectTriggerProps;
|
|
30
|
+
value?: Array<string>;
|
|
31
|
+
} & BitkitSelectMenuCreateItemProps & BitkitSelectMenuSearchProps & BitkitSelectMenuEmptyStateProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
20
32
|
export default BitkitMultiselect;
|
|
@@ -91,7 +91,7 @@ var ClearAllButton = ({ state }) => {
|
|
|
91
91
|
});
|
|
92
92
|
};
|
|
93
93
|
var BitkitMultiselect = forwardRef((props, ref) => {
|
|
94
|
-
const { constrained = false, createItemLabel, defaultValue, emptyHelperText, emptyLabel,
|
|
94
|
+
const { constrained = false, createItemLabel, defaultValue, emptyHelperText, emptyLabel, isLoading, items, onCreateItem, onSearchChange, onValueChange, placeholder, searchValue, selectProps, size = "lg", state, triggerProps, value, ...fieldProps } = props;
|
|
95
95
|
const collection = createListCollection({
|
|
96
96
|
items,
|
|
97
97
|
groupBy: (item) => item.group || "",
|
|
@@ -165,11 +165,8 @@ var BitkitMultiselect = forwardRef((props, ref) => {
|
|
|
165
165
|
emptyLabel,
|
|
166
166
|
isLoading,
|
|
167
167
|
onCreateItem,
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
onSearchChange,
|
|
171
|
-
searchValue
|
|
172
|
-
} : { hasSearch: false },
|
|
168
|
+
onSearchChange,
|
|
169
|
+
searchValue,
|
|
173
170
|
size
|
|
174
171
|
}) }) })
|
|
175
172
|
]
|