From d9e1ca8ed8ce9254d311ed9edbdb3105c1453009 Mon Sep 17 00:00:00 2001 From: Krishan Patel Date: Thu, 4 Dec 2025 10:15:56 +0000 Subject: [PATCH 01/11] . --- src/atoms/iconButton/component.tsx | 1 + src/layouts/stack/component.tsx | 22 ++++++++++-- src/model/componentProps.tsx | 6 ---- src/molecules/appDownloadButton/component.tsx | 1 + src/molecules/carousel/component.tsx | 1 + src/molecules/form/component.tsx | 1 + src/molecules/inputFrame/component.tsx | 1 + src/molecules/list/component.tsx | 1 + src/molecules/markdownText/component.tsx | 2 ++ src/molecules/messageDialog/component.tsx | 2 +- src/molecules/moleculeProps.ts | 3 ++ src/molecules/multiLineInput/component.tsx | 1 + src/molecules/optionSelect/component.tsx | 1 + src/molecules/progressCounter/component.tsx | 1 + src/molecules/singleLineInput/component.tsx | 1 + src/molecules/tabBar/component.tsx | 1 + src/particles/media/component.tsx | 6 ++-- src/styles/colors.scss | 34 ++++++++++++------- 18 files changed, 61 insertions(+), 25 deletions(-) diff --git a/src/atoms/iconButton/component.tsx b/src/atoms/iconButton/component.tsx index 6073676b..c449bf57 100644 --- a/src/atoms/iconButton/component.tsx +++ b/src/atoms/iconButton/component.tsx @@ -48,6 +48,7 @@ export function IconButton({ 0 || shrinkFactor > 0 ? { width: 'auto', height: 'auto' } : {}), ...(itemProps.isHidden ? { display: 'none' } : {}), }; const itemClassName = getClassName(itemProps.className, 'KibaStackItem'); @@ -105,9 +108,10 @@ function renderStackItemChildren( } const existingStyle = (child.props as { style?: React.CSSProperties }).style ?? {}; const existingClassName = (child.props as { className?: string }).className ?? ''; + // itemStyle must come AFTER existingStyle so Stack.Item flex properties take precedence return React.cloneElement(child, { key: child.key ?? index, - style: { ...itemStyle, ...existingStyle }, + style: { ...existingStyle, ...itemStyle }, className: getClassName(existingClassName, itemClassName), } as React.HTMLAttributes); }); @@ -125,9 +129,21 @@ export function Stack({ isScrollableHorizontally = false, ...props }: IStackProps): React.ReactElement { + const isStackItem = (child: React.ReactElement | string | number): boolean => { + if (typeof child !== 'object' || !('type' in child)) { + return false; + } + // Check by reference first + if (child.type === StackItem) { + return true; + } + // Fallback: check by displayName for cases where the reference might differ + const childType = child.type as { displayName?: string }; + return childType?.displayName === 'KibaStackItem'; + }; const children = flattenChildren(props.children).map((child: (React.ReactElement | string | number), index: number): React.ReactElement => ( // eslint-disable-next-line react/no-array-index-key - typeof child === 'object' && 'type' in child && child.type === StackItem ? child as React.ReactElement : { child } + isStackItem(child) ? child as React.ReactElement : { child } )); const paddingTop = (props.paddingStart && direction === Direction.Vertical) ? props.paddingStart : undefined; const paddingBottom = (props.paddingEnd && direction === Direction.Vertical) ? props.paddingEnd : undefined; @@ -166,7 +182,7 @@ export function Stack({ } as React.CSSProperties; return ( // eslint-disable-next-line react/jsx-props-no-spreading - +
extends IComponentProps { - theme?: RecursivePartial; -} diff --git a/src/molecules/appDownloadButton/component.tsx b/src/molecules/appDownloadButton/component.tsx index e83ed2b2..3dbf5ee8 100644 --- a/src/molecules/appDownloadButton/component.tsx +++ b/src/molecules/appDownloadButton/component.tsx @@ -63,6 +63,7 @@ export function AppDownloadButton({ diff --git a/src/molecules/carousel/component.tsx b/src/molecules/carousel/component.tsx index 8696c44e..19d1de4a 100644 --- a/src/molecules/carousel/component.tsx +++ b/src/molecules/carousel/component.tsx @@ -146,6 +146,7 @@ export function Carousel({ diff --git a/src/molecules/form/component.tsx b/src/molecules/form/component.tsx index 876bc16a..6af3758b 100644 --- a/src/molecules/form/component.tsx +++ b/src/molecules/form/component.tsx @@ -37,6 +37,7 @@ export function Form({ diff --git a/src/molecules/inputFrame/component.tsx b/src/molecules/inputFrame/component.tsx index e9a423f2..63490957 100644 --- a/src/molecules/inputFrame/component.tsx +++ b/src/molecules/inputFrame/component.tsx @@ -36,6 +36,7 @@ export function InputFrame({ { React.Children.map(props.children as OptionalProppedElement[], (child: OptionalProppedElement, index: number): React.ReactElement | null => { if (!child) { diff --git a/src/molecules/markdownText/component.tsx b/src/molecules/markdownText/component.tsx index 3b0438bd..fa56796b 100644 --- a/src/molecules/markdownText/component.tsx +++ b/src/molecules/markdownText/component.tsx @@ -19,6 +19,7 @@ function MarkdownLink(props: AnchorHTMLAttributes): React.Rea interface IMarkdownTextProps { id?: string; className?: string; + style?: React.CSSProperties; source: string; textAlignment?: TextAlignment; textVariant?: string; @@ -32,6 +33,7 @@ export const MarkdownText = React.memo((props: IMarkdownTextProps): React.ReactE + diff --git a/src/molecules/moleculeProps.ts b/src/molecules/moleculeProps.ts index 1412aaee..025ac79a 100644 --- a/src/molecules/moleculeProps.ts +++ b/src/molecules/moleculeProps.ts @@ -1,4 +1,7 @@ +import React from 'react'; + export interface IMoleculeProps { id?: string; className?: string; + style?: React.CSSProperties; } diff --git a/src/molecules/multiLineInput/component.tsx b/src/molecules/multiLineInput/component.tsx index df5bddea..f5153f00 100644 --- a/src/molecules/multiLineInput/component.tsx +++ b/src/molecules/multiLineInput/component.tsx @@ -71,6 +71,7 @@ export function MultiLineInput({ {Array(props.stepCount).fill(null).map((_: unknown, index: number): React.ReactElement => { return ( diff --git a/src/molecules/singleLineInput/component.tsx b/src/molecules/singleLineInput/component.tsx index 1427c8bc..e6359fc2 100644 --- a/src/molecules/singleLineInput/component.tsx +++ b/src/molecules/singleLineInput/component.tsx @@ -80,6 +80,7 @@ export function SingleLineInput({ +