@janbox/storefront-ui 5.0.0 → 5.0.1

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.
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { Stylesheet } from "../lib/stylesheet/stylesheet.js";
3
2
  import { OverlayScrollbarsComponent } from "overlayscrollbars-react";
3
+ import { Stylesheet } from "../lib/stylesheet/stylesheet.js";
4
4
  const ScrollView = ({ children, options, sx, ...props }) => {
5
5
  return /* @__PURE__ */ jsx(Stylesheet, { children: ({ cx, css }) => /* @__PURE__ */ jsx(
6
6
  OverlayScrollbarsComponent,
@@ -3,8 +3,8 @@ import { useRef } from "react";
3
3
  import { motion } from "motion/react";
4
4
  import { getAccordionContentProps } from "./helpers.js";
5
5
  import { useAccordionContext } from "../accordion/helpers.js";
6
- import { Stylesheet } from "../../stylesheet/stylesheet.js";
7
6
  import { useAccordionGroupContext } from "../accordion-group/helpers.js";
7
+ import { Stylesheet } from "../../stylesheet/stylesheet.js";
8
8
  import { Primitive } from "../../primitive/primitive.js";
9
9
  const AccordionContent = ({ children, ref, ..._props }) => {
10
10
  const { accordionContentProps: accordionContentPropsByGroup = {} } = useAccordionGroupContext();
@@ -7,9 +7,9 @@ import { useTranslation } from "../../i18n/index.js";
7
7
  import "lodash-es";
8
8
  import "../../theme/palette.js";
9
9
  import { getTypographyVar } from "../../theme/typography.js";
10
- import { Stylesheet } from "../stylesheet/stylesheet.js";
11
10
  import { getCountUpProps } from "./helpers.js";
12
11
  import { getDecimalDigits } from "../../utils/common.js";
12
+ import { Stylesheet } from "../stylesheet/stylesheet.js";
13
13
  const CountUp = ({ ref, ..._props }) => {
14
14
  const {
15
15
  from = 0,
@@ -1,10 +1,10 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
3
  import { motion } from "motion/react";
4
- import { Stylesheet } from "../../stylesheet/stylesheet.js";
5
4
  import { Floating } from "../../floating/floating/floating.js";
6
5
  import { FloatingContent } from "../../floating/floating-content/floating-content.js";
7
6
  import { Primitive } from "../../primitive/primitive.js";
7
+ import { Stylesheet } from "../../stylesheet/stylesheet.js";
8
8
  const Drawer = ({ children, placement = "left", ...props }) => {
9
9
  const initial = useMemo(() => {
10
10
  switch (placement) {
@@ -4,8 +4,8 @@ import { motion, AnimatePresence } from "motion/react";
4
4
  import { useFloatingContext } from "../floating/helpers.js";
5
5
  import { FLOATING_Z_INDEX } from "../../../theme/index.js";
6
6
  import { useIsHydrated } from "../../../hooks/use-is-hydrated/index.js";
7
- import { Stylesheet } from "../../stylesheet/stylesheet.js";
8
7
  import { usePortalContainer } from "../../../theme/provider.js";
8
+ import { Stylesheet } from "../../stylesheet/stylesheet.js";
9
9
  const FloatingContent = ({ preserveTabOrder, focus, overlay, sx, ref, ...props }) => {
10
10
  const { getFloatingProps, context } = useFloatingContext();
11
11
  const mergedRefs = useMergeRefs([context.refs.setFloating, ref]);
@@ -10,12 +10,12 @@ import ZoomPlusIcon from "../../assets/svg/search-add-plus-middle.svg.js";
10
10
  import ZoomMinusIcon from "../../assets/svg/search-minus.svg.js";
11
11
  import CloseIcon from "../../assets/svg/times-close-delete.svg.js";
12
12
  import { FLOATING_Z_INDEX } from "../../theme/index.js";
13
- import { Stylesheet } from "../stylesheet/stylesheet.js";
14
13
  import { Swiper } from "../swiper/swiper/swiper.js";
15
14
  import { SwiperSlide } from "../swiper/swiper-slide/swiper-slide.js";
16
15
  import { Floating } from "../floating/floating/floating.js";
17
16
  import { FloatingContent } from "../floating/floating-content/floating-content.js";
18
17
  import { Primitive } from "../primitive/primitive.js";
18
+ import { Stylesheet } from "../stylesheet/stylesheet.js";
19
19
  import { Image } from "../image/image.js";
20
20
  import { FloatingClose } from "../floating/floating-close/floating-close.js";
21
21
  import { IconButton } from "../icon-button/icon-button.js";
@@ -1,9 +1,9 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { animatePulseStyle } from "../../../constants/emotion.js";
3
- import { Stylesheet } from "../../stylesheet/stylesheet.js";
4
3
  import "lodash-es";
5
4
  import { getColorVar } from "../../../theme/palette.js";
6
5
  import { Primitive } from "../../primitive/primitive.js";
6
+ import { Stylesheet } from "../../stylesheet/stylesheet.js";
7
7
  const ImageSkeleton = (props) => {
8
8
  return /* @__PURE__ */ jsx(
9
9
  Primitive,
@@ -7,9 +7,9 @@ import { notificationStore } from "./helpers.js";
7
7
  import { getColorShadesByVariant } from "../../utils/index.js";
8
8
  import { FLOATING_Z_INDEX } from "../../theme/index.js";
9
9
  import CloseIcon from "../../assets/svg/times-close-delete.svg.js";
10
- import { Stylesheet } from "../stylesheet/stylesheet.js";
11
10
  import { usePortalContainer } from "../../theme/provider.js";
12
11
  import { Primitive } from "../primitive/primitive.js";
12
+ import { Stylesheet } from "../stylesheet/stylesheet.js";
13
13
  import { getTypographyVar } from "../../theme/typography.js";
14
14
  import { IconButton } from "../icon-button/icon-button.js";
15
15
  const Notifications = () => {
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useId } from "react";
3
- import { Stylesheet } from "../stylesheet/stylesheet.js";
4
3
  import { getStarRatingProps } from "./helpers.js";
4
+ import { Stylesheet } from "../stylesheet/stylesheet.js";
5
5
  const StarRating = (_props) => {
6
6
  const { rating, maxRating, size, sm, md, lg, ref, color, sx } = getStarRatingProps(_props);
7
7
  const id = useId();
@@ -6,8 +6,8 @@ import { motion } from "motion/react";
6
6
  import { getColorVar } from "../../../theme/palette.js";
7
7
  import { usePortalContainer } from "../../../theme/provider.js";
8
8
  import { useIsHydrated } from "../../../hooks/use-is-hydrated/index.js";
9
- import { Stylesheet } from "../../stylesheet/stylesheet.js";
10
9
  import { Primitive } from "../../primitive/primitive.js";
10
+ import { Stylesheet } from "../../stylesheet/stylesheet.js";
11
11
  const SWIPER_DOTS_SIZE_VAR = "--swiper-dots-size";
12
12
  const SWIPER_DOTS_OFFSET_VAR = "--swiper-dots-offset";
13
13
  const SWIPER_DOTS_SPACING_VAR = "--swiper-dots-spacing";
@@ -14,10 +14,13 @@ import { TabContent } from '@janbox/storefront-ui';
14
14
  | ------ | ------ | ------- | ----------- |
15
15
  | `children` * | `React.ReactNode` | - | Danh sách `TabPanel`, thứ tự phải khớp với thứ tự các `Tab` trong `TabList`. |
16
16
  | `className` | `string` | - | Class cho container `div`. |
17
+ | `as` | `HTMLElementType` | `'div'` | Tag HTML của container. |
18
+ | `sx` | `ToResponsiveProps<StyledCSS>` | - | Style responsive cho container. |
19
+ | `ref` | `React.Ref<HTMLElement>` | - | Trỏ tới DOM node của container. |
17
20
 
18
- Kiểu prop là `JSX.IntrinsicElements['div']` — kế thừa toàn bộ div attributes. Component **không** nhận `sx`; dùng `className` hoặc `style` nếu cần style container.
21
+ Kiểu prop là `PrimitiveProps<JSX.IntrinsicElements['div'], 'div'>` — kế thừa toàn bộ div attributes cùng `as` và `sx` từ [Primitive](../../primitive/README.md).
19
22
 
20
- > ⚠️ `TabContent` **không** forward `ref`. `ref` trong props sẽ bị truyền vào `Primitive` như prop thường và không trỏ tới DOM node.
23
+ > React 19 coi `ref` là prop thường, nên `ref` được `Primitive` spread thẳng vào DOM node của container.
21
24
 
22
25
  *Required props
23
26
 
@@ -1,2 +1,3 @@
1
1
  import { JSX } from 'react';
2
- export type TabContentProps = JSX.IntrinsicElements['div'];
2
+ import { PrimitiveProps } from '../../primitive';
3
+ export type TabContentProps = PrimitiveProps<JSX.IntrinsicElements['div'], 'div'>;
@@ -1,11 +1,11 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useRef, useState, useEffect, useCallback } from "react";
3
3
  import { motion } from "motion/react";
4
- import { Stylesheet } from "../../stylesheet/stylesheet.js";
5
4
  import "lodash-es";
6
5
  import "../../../theme/palette.js";
7
6
  import { isNumber } from "../../../utils/common.js";
8
7
  import { useTabsContext } from "../tabs/helpers.js";
8
+ import { Stylesheet } from "../../stylesheet/stylesheet.js";
9
9
  const INDICATOR_SIZE_VAR_NAME = "--indicator-size";
10
10
  const TabIndicator = ({ size, sm, md, lg, ...props }) => {
11
11
  const { activeIndex } = useTabsContext();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@janbox/storefront-ui",
3
- "version": "5.0.0",
3
+ "version": "5.0.1",
4
4
  "description": "Storefront UI component library for Janbox",
5
5
  "author": "Janbox",
6
6
  "keywords": [