@stack-spot/portal-components 2.12.1 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.13.0](https://github.com/stack-spot/portal-commons/compare/portal-components@v2.12.1...portal-components@v2.13.0) (2025-02-07)
4
+
5
+
6
+ ### Features
7
+
8
+ * Add button loading component ([#711](https://github.com/stack-spot/portal-commons/issues/711)) ([684edc4](https://github.com/stack-spot/portal-commons/commit/684edc4d5a8498ef273d92bdba207cb5d7e2af93))
9
+
3
10
  ## [2.12.1](https://github.com/stack-spot/portal-commons/compare/portal-components@v2.12.0...portal-components@v2.12.1) (2025-01-16)
4
11
 
5
12
 
@@ -0,0 +1,11 @@
1
+ import { ButtonProps } from '@citric/core/dist/Button.js';
2
+ import { ReactNode } from 'react';
3
+ interface Props extends ButtonProps {
4
+ isLoading?: boolean;
5
+ loadingSize?: 'sm' | 'md' | 'lg';
6
+ children: ReactNode;
7
+ onClick?: () => void;
8
+ }
9
+ export declare const ButtonLoading: ({ isLoading, loadingSize, children, disabled, sx, ...props }: Props) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=ButtonLoading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonLoading.d.ts","sourceRoot":"","sources":["../../src/components/ButtonLoading.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,UAAU,KAAM,SAAQ,WAAW;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,iEAAyE,KAAK,4CAgBvG,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Text } from '@citric/core';
3
+ import { LoadingCircular } from '@citric/ui';
4
+ export const ButtonLoading = ({ isLoading, loadingSize = 'sm', children, disabled, sx, ...props }) => (_jsxs(Button, { type: "submit", ...props, disabled: isLoading || disabled, sx: { ...sx, position: 'relative' }, children: [_jsx(Text, { as: "span", sx: { visibility: isLoading ? 'hidden' : 'visible' }, children: children }), _jsx(LoadingCircular, { colorScheme: props.colorScheme, size: loadingSize, sx: { visibility: isLoading ? 'visible' : 'hidden', position: 'absolute' } })] }));
5
+ //# sourceMappingURL=ButtonLoading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonLoading.js","sourceRoot":"","sources":["../../src/components/ButtonLoading.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAU5C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,KAAK,EAAS,EAAE,EAAE,CAAC,CAC3G,MAAC,MAAM,IACL,IAAI,EAAC,QAAQ,KACT,KAAK,EACT,QAAQ,EAAE,SAAS,IAAI,QAAQ,EAC/B,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,aAEnC,KAAC,IAAI,IAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,YACjE,QAAQ,GACJ,EACP,KAAC,eAAe,IACd,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAC1E,IACK,CACV,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { AsyncContent } from './components/AsyncContent.js';
2
2
  export { BannerWarning } from './components/BannerWarning.js';
3
3
  export { ChatBot } from './components/ChatBot.js';
4
+ export { ButtonLoading } from './components/ButtonLoading.js';
4
5
  export { useDateFormatter } from './hooks/date.js';
5
6
  export { useKeyboardControls } from './hooks/keyboard.js';
6
7
  export { useManualRender } from './hooks/manual-render.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,UAAU,IAAI,oBAAoB,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACpJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,UAAU,IAAI,oBAAoB,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACpJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { AsyncContent } from './components/AsyncContent.js';
2
2
  export { BannerWarning } from './components/BannerWarning.js';
3
3
  export { ChatBot } from './components/ChatBot.js';
4
+ export { ButtonLoading } from './components/ButtonLoading.js';
4
5
  export { useDateFormatter } from './hooks/date.js';
5
6
  export { useKeyboardControls } from './hooks/keyboard.js';
6
7
  export { useManualRender } from './hooks/manual-render.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,UAAU,IAAI,oBAAoB,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACpJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,UAAU,IAAI,oBAAoB,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACpJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stack-spot/portal-components",
3
- "version": "2.12.1",
3
+ "version": "2.13.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,29 @@
1
+ import { Button, Text } from '@citric/core'
2
+ import { ButtonProps } from '@citric/core/dist/Button'
3
+ import { LoadingCircular } from '@citric/ui'
4
+ import { ReactNode } from 'react'
5
+
6
+ interface Props extends ButtonProps {
7
+ isLoading?: boolean,
8
+ loadingSize?: 'sm' | 'md' | 'lg',
9
+ children: ReactNode,
10
+ onClick?: () => void,
11
+ }
12
+
13
+ export const ButtonLoading = ({ isLoading, loadingSize = 'sm', children, disabled, sx, ...props }: Props) => (
14
+ <Button
15
+ type="submit"
16
+ {...props}
17
+ disabled={isLoading || disabled}
18
+ sx={{ ...sx, position: 'relative' }}
19
+ >
20
+ <Text as="span" sx={{ visibility: isLoading ? 'hidden' : 'visible' }}>
21
+ {children}
22
+ </Text>
23
+ <LoadingCircular
24
+ colorScheme={props.colorScheme}
25
+ size={loadingSize}
26
+ sx={{ visibility: isLoading ? 'visible' : 'hidden', position: 'absolute' }}
27
+ />
28
+ </Button>
29
+ )
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { AsyncContent } from './components/AsyncContent'
2
2
  export { BannerWarning } from './components/BannerWarning'
3
3
  export { ChatBot } from './components/ChatBot'
4
+ export { ButtonLoading } from './components/ButtonLoading'
4
5
  export { useDateFormatter } from './hooks/date'
5
6
  export { useKeyboardControls } from './hooks/keyboard'
6
7
  export { useManualRender } from './hooks/manual-render'