@commercetools/nimbus 0.0.0-canary-20251110185521 → 0.0.0-canary-20251111082642
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/dist/chunks/card-BDNwiSPj.cjs.js +2 -0
- package/dist/chunks/card-BDNwiSPj.cjs.js.map +1 -0
- package/dist/chunks/card-q1bqwXyw.es.js +115 -0
- package/dist/chunks/card-q1bqwXyw.es.js.map +1 -0
- package/dist/components/card.cjs +1 -1
- package/dist/components/card.es.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.es.js +1 -1
- package/package.json +5 -5
- package/dist/chunks/card-C8XHDfwW.cjs.js +0 -2
- package/dist/chunks/card-C8XHDfwW.cjs.js.map +0 -1
- package/dist/chunks/card-D4DZZx8s.es.js +0 -120
- package/dist/chunks/card-D4DZZx8s.es.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const a=require("react/jsx-runtime"),e=require("react"),H=require("@chakra-ui/react"),v=require("@chakra-ui/react/styled-system"),j=require("./stack-CIN13EDn.cjs.js"),d=require("./extract-style-props-85ZscQNb.cjs.js"),{withProvider:q,withContext:P}=H.createSlotRecipeContext({key:"card"}),h=q("div","root"),N=P("div","header"),$=P("div","content"),l=e.createContext(void 0),i=({ref:o,children:s,...t})=>{const r=v.useSlotRecipe({key:"card"}),[n,c]=r.splitVariantProps(t),[y,S]=d.extractStyleProps(c),[R,p]=e.useState(null),[f,x]=e.useState(null),m=e.useMemo(()=>({setHeader:p,setContent:x}),[p,x]);return a.jsx(l.Provider,{value:m,children:a.jsxs(h,{ref:o,...n,...y,...S,children:[a.jsxs(j.Stack,{direction:"column",gap:"200",children:[R,f]}),s]})})};i.displayName="Card.Root";const u=({children:o,...s})=>{const t=e.useContext(l),[r,n]=d.extractStyleProps(s);return e.useEffect(()=>{if(t){const c=a.jsx(N,{...r,...n,children:o});return t.setHeader(c),()=>t.setHeader(null)}},[o,r,n,t]),null};u.displayName="Card.Header";const C=({children:o,...s})=>{const t=e.useContext(l),[r,n]=d.extractStyleProps(s);return e.useEffect(()=>{if(t){const c=a.jsx($,{...r,...n,children:o});return t.setContent(c),()=>t.setContent(null)}},[o,r,n,t]),null};C.displayName="Card.Content";const k={Root:i,Header:u,Content:C};exports.Card=k;exports.CardContent=C;exports.CardHeader=u;exports.CardRoot=i;
|
|
2
|
+
//# sourceMappingURL=card-BDNwiSPj.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-BDNwiSPj.cjs.js","sources":["../../src/components/card/card.slots.tsx","../../src/components/card/components/card.root.tsx","../../src/components/card/components/card.header.tsx","../../src/components/card/components/card.content.tsx","../../src/components/card/card.tsx"],"sourcesContent":["import { createSlotRecipeContext } from \"@chakra-ui/react\";\nimport type { SlotComponent } from \"../../type-utils/slot-types\";\nimport type {\n CardContentSlotProps,\n CardHeaderSlotProps,\n CardRootSlotProps,\n} from \"./card.types\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"card\",\n});\n\n/**\n * Root component that provides the styling context for the Card component.\n * Uses Chakra UI's recipe context system for consistent styling across instances.\n */\nexport const CardRoot: SlotComponent<HTMLDivElement, CardRootSlotProps> =\n withProvider<HTMLDivElement, CardRootSlotProps>(\"div\", \"root\");\n\nexport const CardHeader: SlotComponent<HTMLDivElement, CardHeaderSlotProps> =\n withContext<HTMLDivElement, CardHeaderSlotProps>(\"div\", \"header\");\n\nexport const CardContent: SlotComponent<HTMLDivElement, CardContentSlotProps> =\n withContext<HTMLDivElement, CardContentSlotProps>(\"div\", \"content\");\n","import { createContext, useMemo, useState, type ReactNode } from \"react\";\nimport { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { CardRoot as CardRootSlot } from \"../card.slots\";\nimport type { CardProps } from \"../card.types\";\nimport { Stack } from \"../../stack\";\nimport { extractStyleProps } from \"@/utils\";\n\ntype CardContextValue = {\n setHeader: (header: React.ReactNode) => void;\n setContent: (content: React.ReactNode) => void;\n};\n\nexport const CardContext = createContext<CardContextValue | undefined>(\n undefined\n);\n\n/**\n * Card.Root - The root component that provides context and styling for the card\n *\n * @supportsStyleProps\n */\nexport const CardRoot = ({ ref, children, ...props }: CardProps) => {\n // Standard pattern: First split recipe variants\n const recipe = useSlotRecipe({ key: \"card\" });\n const [recipeProps, restRecipeProps] = recipe.splitVariantProps(props);\n\n // Standard pattern: Second extract style props from remaining\n const [styleProps, functionalProps] = extractStyleProps(restRecipeProps);\n\n const [headerNode, setHeader] = useState<ReactNode>(null);\n const [contentNode, setContent] = useState<ReactNode>(null);\n\n // Memoize the context value so we don't cause unnecessary re-renders\n const contextValue = useMemo(\n () => ({\n setHeader,\n setContent,\n }),\n [setHeader, setContent]\n );\n\n return (\n <CardContext.Provider value={contextValue}>\n <CardRootSlot\n ref={ref}\n {...recipeProps}\n {...styleProps}\n {...functionalProps}\n >\n {/* Always render them in this order/layout to protect consumers */}\n <Stack direction=\"column\" gap=\"200\">\n {headerNode}\n {contentNode}\n </Stack>\n\n {/* Render all consumer sub-components, including our own */}\n {children}\n </CardRootSlot>\n </CardContext.Provider>\n );\n};\n\nCardRoot.displayName = \"Card.Root\";\n","import { useContext, useEffect } from \"react\";\nimport { CardHeader as CardHeaderSlot } from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\nimport type { CardHeaderProps } from \"../card.types\";\nimport { extractStyleProps } from \"@/utils\";\n\n/**\n * Card.Header - The header section of the card\n *\n * @supportsStyleProps\n */\nexport const CardHeader = ({ children, ...props }: CardHeaderProps) => {\n const context = useContext(CardContext);\n\n // Standard pattern: Extract and forward style props\n const [styleProps, functionalProps] = extractStyleProps(props);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardHeaderSlot {...styleProps} {...functionalProps}>\n {children}\n </CardHeaderSlot>\n );\n // Register it with the parent\n context.setHeader(slotElement);\n\n // On unmount, remove it\n return () => context.setHeader(null);\n }\n }, [children, styleProps, functionalProps, context]);\n\n return null;\n};\nCardHeader.displayName = \"Card.Header\";\n","import { useContext, useEffect } from \"react\";\nimport { CardContent as CardContentSlot } from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\nimport type { CardContentProps } from \"../card.types\";\nimport { extractStyleProps } from \"@/utils\";\n\n/**\n * Card.Content - The main content area of the card\n *\n * @supportsStyleProps\n */\nexport const CardContent = ({ children, ...props }: CardContentProps) => {\n const context = useContext(CardContext);\n\n // Standard pattern: Extract and forward style props\n const [styleProps, functionalProps] = extractStyleProps(props);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardContentSlot {...styleProps} {...functionalProps}>\n {children}\n </CardContentSlot>\n );\n // Register it with the parent\n context.setContent(slotElement);\n\n // On unmount, remove it\n return () => context.setContent(null);\n }\n }, [children, styleProps, functionalProps, context]);\n\n return null;\n};\n\nCardContent.displayName = \"Card.Content\";\n","import { CardRoot, CardHeader, CardContent } from \"./components\";\n\n/**\n * Card\n * ============================================================\n * A versatile container component that presents self-contained information\n * in a visually distinct way. Cards group related content and actions\n * together, making it easy to scan and interact with information.\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/data-display/card}\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Card Title</Card.Header>\n * <Card.Content>Card content goes here</Card.Content>\n * </Card.Root>\n * ```\n */\nexport const Card = {\n /**\n * # Card.Root\n *\n * The root component that provides context and styling for the card.\n * Must wrap all card parts (Header, Content) to coordinate their behavior.\n * Accepts styling variants for padding, border, elevation, and background.\n *\n * @example\n * ```tsx\n * <Card.Root cardPadding=\"md\" borderStyle=\"outlined\" elevation=\"elevated\">\n * <Card.Header>Title</Card.Header>\n * <Card.Content>Content</Card.Content>\n * </Card.Root>\n * ```\n */\n Root: CardRoot,\n /**\n * # Card.Header\n *\n * The header section of the card, typically containing the card title\n * or primary heading. Automatically positioned above the card content\n * in a consistent layout.\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Card Title</Card.Header>\n * <Card.Content>Content here</Card.Content>\n * </Card.Root>\n * ```\n */\n Header: CardHeader,\n /**\n * # Card.Content\n *\n * The main content area of the card. Contains the primary information,\n * body text, or interactive elements. Automatically positioned below\n * the card header in a consistent layout.\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Title</Card.Header>\n * <Card.Content>\n * <Text>This is the main card content.</Text>\n * </Card.Content>\n * </Card.Root>\n * ```\n */\n Content: CardContent,\n};\n\nexport {\n CardRoot as _CardRoot,\n CardHeader as _CardHeader,\n CardContent as _CardContent,\n};\n"],"names":["withProvider","withContext","createSlotRecipeContext","CardRoot","CardHeader","CardContent","CardContext","createContext","ref","children","props","recipe","useSlotRecipe","recipeProps","restRecipeProps","styleProps","functionalProps","extractStyleProps","headerNode","setHeader","useState","contentNode","setContent","contextValue","useMemo","jsx","jsxs","CardRootSlot","Stack","context","useContext","useEffect","slotElement","CardHeaderSlot","CardContentSlot","Card"],"mappings":"uOAQM,CAAE,aAAAA,EAAc,YAAAC,CAAA,EAAgBC,0BAAwB,CAC5D,IAAK,MACP,CAAC,EAMYC,EACXH,EAAgD,MAAO,MAAM,EAElDI,EACXH,EAAiD,MAAO,QAAQ,EAErDI,EACXJ,EAAkD,MAAO,SAAS,ECXvDK,EAAcC,EAAAA,cACzB,MACF,EAOaJ,EAAW,CAAC,CAAE,IAAAK,EAAK,SAAAC,EAAU,GAAGC,KAAuB,CAElE,MAAMC,EAASC,EAAAA,cAAc,CAAE,IAAK,OAAQ,EACtC,CAACC,EAAaC,CAAe,EAAIH,EAAO,kBAAkBD,CAAK,EAG/D,CAACK,EAAYC,CAAe,EAAIC,EAAAA,kBAAkBH,CAAe,EAEjE,CAACI,EAAYC,CAAS,EAAIC,EAAAA,SAAoB,IAAI,EAClD,CAACC,EAAaC,CAAU,EAAIF,EAAAA,SAAoB,IAAI,EAGpDG,EAAeC,EAAAA,QACnB,KAAO,CACL,UAAAL,EACA,WAAAG,CAAA,GAEF,CAACH,EAAWG,CAAU,CAAA,EAGxB,OACEG,EAAAA,IAACnB,EAAY,SAAZ,CAAqB,MAAOiB,EAC3B,SAAAG,EAAAA,KAACC,EAAA,CACC,IAAAnB,EACC,GAAGK,EACH,GAAGE,EACH,GAAGC,EAGJ,SAAA,CAAAU,EAAAA,KAACE,EAAAA,MAAA,CAAM,UAAU,SAAS,IAAI,MAC3B,SAAA,CAAAV,EACAG,CAAA,EACH,EAGCZ,CAAA,CAAA,CAAA,EAEL,CAEJ,EAEAN,EAAS,YAAc,YCnDhB,MAAMC,EAAa,CAAC,CAAE,SAAAK,EAAU,GAAGC,KAA6B,CACrE,MAAMmB,EAAUC,EAAAA,WAAWxB,CAAW,EAGhC,CAACS,EAAYC,CAAe,EAAIC,EAAAA,kBAAkBP,CAAK,EAE7DqB,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAIF,EAAS,CACX,MAAMG,EACJP,EAAAA,IAACQ,EAAA,CAAgB,GAAGlB,EAAa,GAAGC,EACjC,SAAAP,EACH,EAGF,OAAAoB,EAAQ,UAAUG,CAAW,EAGtB,IAAMH,EAAQ,UAAU,IAAI,CACrC,CACF,EAAG,CAACpB,EAAUM,EAAYC,EAAiBa,CAAO,CAAC,EAE5C,IACT,EACAzB,EAAW,YAAc,cCvBlB,MAAMC,EAAc,CAAC,CAAE,SAAAI,EAAU,GAAGC,KAA8B,CACvE,MAAMmB,EAAUC,EAAAA,WAAWxB,CAAW,EAGhC,CAACS,EAAYC,CAAe,EAAIC,EAAAA,kBAAkBP,CAAK,EAE7DqB,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAIF,EAAS,CACX,MAAMG,EACJP,EAAAA,IAACS,EAAA,CAAiB,GAAGnB,EAAa,GAAGC,EAClC,SAAAP,EACH,EAGF,OAAAoB,EAAQ,WAAWG,CAAW,EAGvB,IAAMH,EAAQ,WAAW,IAAI,CACtC,CACF,EAAG,CAACpB,EAAUM,EAAYC,EAAiBa,CAAO,CAAC,EAE5C,IACT,EAEAxB,EAAY,YAAc,eChBnB,MAAM8B,EAAO,CAgBlB,KAAMhC,EAgBN,OAAQC,EAkBR,QAASC,CACX"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { jsx as a, jsxs as p } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as N, useState as C, useMemo as k, useContext as u, useEffect as m } from "react";
|
|
3
|
+
import { createSlotRecipeContext as E } from "@chakra-ui/react";
|
|
4
|
+
import { useSlotRecipe as $ } from "@chakra-ui/react/styled-system";
|
|
5
|
+
import { S as j } from "./stack-CoNreM7B.es.js";
|
|
6
|
+
import { e as c } from "./extract-style-props-BtI5SsUL.es.js";
|
|
7
|
+
const { withProvider: w, withContext: f } = /* @__PURE__ */ E({
|
|
8
|
+
key: "card"
|
|
9
|
+
}), V = /* @__PURE__ */ w("div", "root"), b = /* @__PURE__ */ f("div", "header"), g = /* @__PURE__ */ f("div", "content"), d = /* @__PURE__ */ N(
|
|
10
|
+
void 0
|
|
11
|
+
), x = ({ ref: e, children: r, ...t }) => {
|
|
12
|
+
const o = $({ key: "card" }), [n, s] = o.splitVariantProps(t), [v, H] = c(s), [R, l] = C(null), [S, i] = C(null), h = k(
|
|
13
|
+
() => ({
|
|
14
|
+
setHeader: l,
|
|
15
|
+
setContent: i
|
|
16
|
+
}),
|
|
17
|
+
[l, i]
|
|
18
|
+
);
|
|
19
|
+
return /* @__PURE__ */ a(d.Provider, { value: h, children: /* @__PURE__ */ p(
|
|
20
|
+
V,
|
|
21
|
+
{
|
|
22
|
+
ref: e,
|
|
23
|
+
...n,
|
|
24
|
+
...v,
|
|
25
|
+
...H,
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ p(j, { direction: "column", gap: "200", children: [
|
|
28
|
+
R,
|
|
29
|
+
S
|
|
30
|
+
] }),
|
|
31
|
+
r
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
) });
|
|
35
|
+
};
|
|
36
|
+
x.displayName = "Card.Root";
|
|
37
|
+
const P = ({ children: e, ...r }) => {
|
|
38
|
+
const t = u(d), [o, n] = c(r);
|
|
39
|
+
return m(() => {
|
|
40
|
+
if (t) {
|
|
41
|
+
const s = /* @__PURE__ */ a(b, { ...o, ...n, children: e });
|
|
42
|
+
return t.setHeader(s), () => t.setHeader(null);
|
|
43
|
+
}
|
|
44
|
+
}, [e, o, n, t]), null;
|
|
45
|
+
};
|
|
46
|
+
P.displayName = "Card.Header";
|
|
47
|
+
const y = ({ children: e, ...r }) => {
|
|
48
|
+
const t = u(d), [o, n] = c(r);
|
|
49
|
+
return m(() => {
|
|
50
|
+
if (t) {
|
|
51
|
+
const s = /* @__PURE__ */ a(g, { ...o, ...n, children: e });
|
|
52
|
+
return t.setContent(s), () => t.setContent(null);
|
|
53
|
+
}
|
|
54
|
+
}, [e, o, n, t]), null;
|
|
55
|
+
};
|
|
56
|
+
y.displayName = "Card.Content";
|
|
57
|
+
const F = {
|
|
58
|
+
/**
|
|
59
|
+
* # Card.Root
|
|
60
|
+
*
|
|
61
|
+
* The root component that provides context and styling for the card.
|
|
62
|
+
* Must wrap all card parts (Header, Content) to coordinate their behavior.
|
|
63
|
+
* Accepts styling variants for padding, border, elevation, and background.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```tsx
|
|
67
|
+
* <Card.Root cardPadding="md" borderStyle="outlined" elevation="elevated">
|
|
68
|
+
* <Card.Header>Title</Card.Header>
|
|
69
|
+
* <Card.Content>Content</Card.Content>
|
|
70
|
+
* </Card.Root>
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
Root: x,
|
|
74
|
+
/**
|
|
75
|
+
* # Card.Header
|
|
76
|
+
*
|
|
77
|
+
* The header section of the card, typically containing the card title
|
|
78
|
+
* or primary heading. Automatically positioned above the card content
|
|
79
|
+
* in a consistent layout.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```tsx
|
|
83
|
+
* <Card.Root>
|
|
84
|
+
* <Card.Header>Card Title</Card.Header>
|
|
85
|
+
* <Card.Content>Content here</Card.Content>
|
|
86
|
+
* </Card.Root>
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
Header: P,
|
|
90
|
+
/**
|
|
91
|
+
* # Card.Content
|
|
92
|
+
*
|
|
93
|
+
* The main content area of the card. Contains the primary information,
|
|
94
|
+
* body text, or interactive elements. Automatically positioned below
|
|
95
|
+
* the card header in a consistent layout.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```tsx
|
|
99
|
+
* <Card.Root>
|
|
100
|
+
* <Card.Header>Title</Card.Header>
|
|
101
|
+
* <Card.Content>
|
|
102
|
+
* <Text>This is the main card content.</Text>
|
|
103
|
+
* </Card.Content>
|
|
104
|
+
* </Card.Root>
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
Content: y
|
|
108
|
+
};
|
|
109
|
+
export {
|
|
110
|
+
F as C,
|
|
111
|
+
x as a,
|
|
112
|
+
P as b,
|
|
113
|
+
y as c
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=card-q1bqwXyw.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-q1bqwXyw.es.js","sources":["../../src/components/card/card.slots.tsx","../../src/components/card/components/card.root.tsx","../../src/components/card/components/card.header.tsx","../../src/components/card/components/card.content.tsx","../../src/components/card/card.tsx"],"sourcesContent":["import { createSlotRecipeContext } from \"@chakra-ui/react\";\nimport type { SlotComponent } from \"../../type-utils/slot-types\";\nimport type {\n CardContentSlotProps,\n CardHeaderSlotProps,\n CardRootSlotProps,\n} from \"./card.types\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"card\",\n});\n\n/**\n * Root component that provides the styling context for the Card component.\n * Uses Chakra UI's recipe context system for consistent styling across instances.\n */\nexport const CardRoot: SlotComponent<HTMLDivElement, CardRootSlotProps> =\n withProvider<HTMLDivElement, CardRootSlotProps>(\"div\", \"root\");\n\nexport const CardHeader: SlotComponent<HTMLDivElement, CardHeaderSlotProps> =\n withContext<HTMLDivElement, CardHeaderSlotProps>(\"div\", \"header\");\n\nexport const CardContent: SlotComponent<HTMLDivElement, CardContentSlotProps> =\n withContext<HTMLDivElement, CardContentSlotProps>(\"div\", \"content\");\n","import { createContext, useMemo, useState, type ReactNode } from \"react\";\nimport { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { CardRoot as CardRootSlot } from \"../card.slots\";\nimport type { CardProps } from \"../card.types\";\nimport { Stack } from \"../../stack\";\nimport { extractStyleProps } from \"@/utils\";\n\ntype CardContextValue = {\n setHeader: (header: React.ReactNode) => void;\n setContent: (content: React.ReactNode) => void;\n};\n\nexport const CardContext = createContext<CardContextValue | undefined>(\n undefined\n);\n\n/**\n * Card.Root - The root component that provides context and styling for the card\n *\n * @supportsStyleProps\n */\nexport const CardRoot = ({ ref, children, ...props }: CardProps) => {\n // Standard pattern: First split recipe variants\n const recipe = useSlotRecipe({ key: \"card\" });\n const [recipeProps, restRecipeProps] = recipe.splitVariantProps(props);\n\n // Standard pattern: Second extract style props from remaining\n const [styleProps, functionalProps] = extractStyleProps(restRecipeProps);\n\n const [headerNode, setHeader] = useState<ReactNode>(null);\n const [contentNode, setContent] = useState<ReactNode>(null);\n\n // Memoize the context value so we don't cause unnecessary re-renders\n const contextValue = useMemo(\n () => ({\n setHeader,\n setContent,\n }),\n [setHeader, setContent]\n );\n\n return (\n <CardContext.Provider value={contextValue}>\n <CardRootSlot\n ref={ref}\n {...recipeProps}\n {...styleProps}\n {...functionalProps}\n >\n {/* Always render them in this order/layout to protect consumers */}\n <Stack direction=\"column\" gap=\"200\">\n {headerNode}\n {contentNode}\n </Stack>\n\n {/* Render all consumer sub-components, including our own */}\n {children}\n </CardRootSlot>\n </CardContext.Provider>\n );\n};\n\nCardRoot.displayName = \"Card.Root\";\n","import { useContext, useEffect } from \"react\";\nimport { CardHeader as CardHeaderSlot } from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\nimport type { CardHeaderProps } from \"../card.types\";\nimport { extractStyleProps } from \"@/utils\";\n\n/**\n * Card.Header - The header section of the card\n *\n * @supportsStyleProps\n */\nexport const CardHeader = ({ children, ...props }: CardHeaderProps) => {\n const context = useContext(CardContext);\n\n // Standard pattern: Extract and forward style props\n const [styleProps, functionalProps] = extractStyleProps(props);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardHeaderSlot {...styleProps} {...functionalProps}>\n {children}\n </CardHeaderSlot>\n );\n // Register it with the parent\n context.setHeader(slotElement);\n\n // On unmount, remove it\n return () => context.setHeader(null);\n }\n }, [children, styleProps, functionalProps, context]);\n\n return null;\n};\nCardHeader.displayName = \"Card.Header\";\n","import { useContext, useEffect } from \"react\";\nimport { CardContent as CardContentSlot } from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\nimport type { CardContentProps } from \"../card.types\";\nimport { extractStyleProps } from \"@/utils\";\n\n/**\n * Card.Content - The main content area of the card\n *\n * @supportsStyleProps\n */\nexport const CardContent = ({ children, ...props }: CardContentProps) => {\n const context = useContext(CardContext);\n\n // Standard pattern: Extract and forward style props\n const [styleProps, functionalProps] = extractStyleProps(props);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardContentSlot {...styleProps} {...functionalProps}>\n {children}\n </CardContentSlot>\n );\n // Register it with the parent\n context.setContent(slotElement);\n\n // On unmount, remove it\n return () => context.setContent(null);\n }\n }, [children, styleProps, functionalProps, context]);\n\n return null;\n};\n\nCardContent.displayName = \"Card.Content\";\n","import { CardRoot, CardHeader, CardContent } from \"./components\";\n\n/**\n * Card\n * ============================================================\n * A versatile container component that presents self-contained information\n * in a visually distinct way. Cards group related content and actions\n * together, making it easy to scan and interact with information.\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/data-display/card}\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Card Title</Card.Header>\n * <Card.Content>Card content goes here</Card.Content>\n * </Card.Root>\n * ```\n */\nexport const Card = {\n /**\n * # Card.Root\n *\n * The root component that provides context and styling for the card.\n * Must wrap all card parts (Header, Content) to coordinate their behavior.\n * Accepts styling variants for padding, border, elevation, and background.\n *\n * @example\n * ```tsx\n * <Card.Root cardPadding=\"md\" borderStyle=\"outlined\" elevation=\"elevated\">\n * <Card.Header>Title</Card.Header>\n * <Card.Content>Content</Card.Content>\n * </Card.Root>\n * ```\n */\n Root: CardRoot,\n /**\n * # Card.Header\n *\n * The header section of the card, typically containing the card title\n * or primary heading. Automatically positioned above the card content\n * in a consistent layout.\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Card Title</Card.Header>\n * <Card.Content>Content here</Card.Content>\n * </Card.Root>\n * ```\n */\n Header: CardHeader,\n /**\n * # Card.Content\n *\n * The main content area of the card. Contains the primary information,\n * body text, or interactive elements. Automatically positioned below\n * the card header in a consistent layout.\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Title</Card.Header>\n * <Card.Content>\n * <Text>This is the main card content.</Text>\n * </Card.Content>\n * </Card.Root>\n * ```\n */\n Content: CardContent,\n};\n\nexport {\n CardRoot as _CardRoot,\n CardHeader as _CardHeader,\n CardContent as _CardContent,\n};\n"],"names":["withProvider","withContext","createSlotRecipeContext","CardRoot","CardHeader","CardContent","CardContext","createContext","ref","children","props","recipe","useSlotRecipe","recipeProps","restRecipeProps","styleProps","functionalProps","extractStyleProps","headerNode","setHeader","useState","contentNode","setContent","contextValue","useMemo","jsx","jsxs","CardRootSlot","Stack","context","useContext","useEffect","slotElement","CardHeaderSlot","CardContentSlot","Card"],"mappings":"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"}
|
package/dist/components/card.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const r=require("../chunks/card-
|
|
1
|
+
"use strict";const r=require("../chunks/card-BDNwiSPj.cjs.js");exports.Card=r.Card;exports._CardContent=r.CardContent;exports._CardHeader=r.CardHeader;exports._CardRoot=r.CardRoot;
|
|
2
2
|
//# sourceMappingURL=card.cjs.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const oe=require("./chunks/date-range-picker-field-BkblvIa4.cjs.js"),ne=require("./chunks/text-input-field-B3m-_U5R.cjs.js"),ae=require("./chunks/index-s_umMSpn.cjs.js"),W=require("./chunks/rich-text-input-GIcaZn-H.cjs.js"),g=require("react"),ie=require("./chunks/avatar-wRR1leVi.cjs.js"),ue=require("./chunks/box-CWni3A32.cjs.js"),ce=require("./chunks/button-LU-xRd1V.cjs.js"),se=require("./chunks/code-q31e3vT2.cjs.js"),le=require("./chunks/combobox-bxRaCE5H.cjs.js"),de=require("./chunks/dialog-C_Nlr8Ce.cjs.js"),X=require("./chunks/field-errors-D2re_C_c.cjs.js"),Lt=require("@chakra-ui/react/flex"),pe=require("./chunks/group-Cjq5lNQD.cjs.js"),ge=require("./chunks/heading-DWweWKGQ.cjs.js"),me=require("./chunks/nimbus-i18n-provider-BbsapOze.cjs.js"),fe=require("./chunks/icon-button--OJkD9bD.cjs.js"),be=require("./chunks/icon-toggle-button-fhAisdZY.cjs.js"),ye=require("./chunks/image-CGOYoc2s.cjs.js"),Te=require("./chunks/kbd-tKeWcdmy.cjs.js"),Ce=require("./chunks/link-CI7W-6L3.cjs.js"),L=require("./chunks/list-DJC9BmoC.cjs.js"),F=require("./chunks/draggable-list-CIODyBsA.cjs.js"),ve=require("./chunks/simple-grid-Cd2MJxSX.cjs.js"),Ft=require("@chakra-ui/react/table"),he=require("./chunks/text-BtRhIklG.cjs.js"),De=require("./chunks/tooltip-Bv-QlJ1O.cjs.js"),we=require("./chunks/make-element-focusable-Cdmdc8sd.cjs.js"),xt=require("react-intl"),Q=require("./chunks/nimbus-provider-CAD14xrZ.cjs.js"),qe=require("./chunks/checkbox-CoiLx2ew.cjs.js"),x=require("./chunks/collapsible-motion-DOqpT4iH.cjs.js"),Ie=require("./chunks/stack-CIN13EDn.cjs.js"),Se=require("./chunks/visually-hidden-BjtXUoFK.cjs.js"),_e=require("./chunks/text-input-BL1bb7Bj.cjs.js"),ke=require("./chunks/number-input-BZwowU2U.cjs.js"),Re=require("./chunks/grid-Chuw1xje.cjs.js"),Ee=require("./chunks/select-CZTXUASq.cjs.js"),Le=require("./chunks/separator-Cfa7PcVN.cjs.js"),Fe=require("./chunks/spacer-BvQD2vU1.cjs.js"),xe=require("./chunks/accordion-Bmkm2nbw.cjs.js"),R=require("./chunks/accordion.content-bdvPXBBi.cjs.js"),_=require("./chunks/alert-B0d72S57.cjs.js"),Ae=require("./chunks/badge-5F6i4KSF.cjs.js"),A=require("./chunks/card-C8XHDfwW.cjs.js"),I=require("./chunks/form-field-C9Kw8WTv.cjs.js"),Me=require("./chunks/icon-D39U--jA.cjs.js"),Pe=require("./chunks/inline-svg-Yb2OyzRw.cjs.js"),Be=require("./chunks/loading-spinner-DsKcjJ2b.cjs.js"),Ke=require("./chunks/password-input-D7JCB6Hs.cjs.js"),Ne=require("./chunks/search-input-CAvO7n3x.cjs.js"),He=require("./chunks/scoped-search-input-CMZE3Euj.cjs.js"),Oe=require("./chunks/split-button-tqGvvVvs.cjs.js"),Ge=require("./chunks/time-input-kKz7Wqeq.cjs.js"),Ue=require("./chunks/multiline-text-input-C5HzGu14.cjs.js"),je=require("./chunks/money-input-Cx7Wyu1V.cjs.js"),Ve=require("./chunks/radio-input-DlCdIOVJ.cjs.js"),ze=require("./chunks/switch-D4pQbeTI.cjs.js"),$e=require("./chunks/tag-group-CiEG-gS2.cjs.js"),We=require("./chunks/toggle-button-CGS2TXWE.cjs.js"),H=require("./chunks/toggle-button-group-Lfn3zYmC.cjs.js"),Xe=require("./chunks/date-input-ERZmiI-d.cjs.js"),Qe=require("./chunks/calendar-CPvN85XQ.cjs.js"),Ye=require("./chunks/date-picker-DcxM3Obc.cjs.js"),Ze=require("./chunks/progress-bar-DEBKGglT.cjs.js"),Je=require("./chunks/range-calendar-B7-g9Ood.cjs.js"),w=require("./chunks/menu-YPluQV_N.cjs.js"),et=require("./chunks/date-range-picker-Cvks0C0_.cjs.js"),tt=require("./chunks/toolbar-DdjNKCJg.cjs.js"),b=require("./chunks/data-table-Bnyb2iCU.cjs.js"),rt=require("./chunks/pagination-C8ecEFSU.cjs.js"),D=require("./chunks/drawer-DJXDyhSM.cjs.js"),k=require("./chunks/tabs-C6jcG7lb.cjs.js"),ot=require("./chunks/localized-field-6EPRbn_0.cjs.js");require("react/jsx-runtime");const Y=["shift","alt","meta","mod","ctrl","control"],nt={esc:"escape",return:"enter",left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",OSLeft:"meta",OSRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function S(e){return(nt[e.trim()]||e.trim()).toLowerCase().replace(/key|digit|numpad/,"")}function Z(e){return Y.includes(e)}function P(e,t=","){return e.toLowerCase().split(t)}function B(e,t="+",r=">",i=!1,u){let n=[],a=!1;e=e.trim(),e.includes(r)?(a=!0,n=e.toLocaleLowerCase().split(r).map(f=>S(f))):n=e.toLocaleLowerCase().split(t).map(f=>S(f));const d={alt:n.includes("alt"),ctrl:n.includes("ctrl")||n.includes("control"),shift:n.includes("shift"),meta:n.includes("meta"),mod:n.includes("mod"),useKey:i},s=n.filter(f=>!Y.includes(f));return{...d,keys:s,description:u,isSequence:a,hotkey:e}}const q=new Set;function O(e){return Array.isArray(e)}function at(e,t=","){return(O(e)?e:e.split(t)).every(r=>q.has(r.trim().toLowerCase()))}function it(e){const t=Array.isArray(e)?e:[e];q.has("meta")&&q.forEach(r=>!Z(r)&&q.delete(r.toLowerCase())),t.forEach(r=>q.add(r.toLowerCase()))}function ut(e){const t=Array.isArray(e)?e:[e];e==="meta"?q.clear():t.forEach(r=>q.delete(r.toLowerCase()))}function ct(e,t,r){(typeof r=="function"&&r(e,t)||r===!0)&&e.preventDefault()}function st(e,t,r){return typeof r=="function"?r(e,t):r===!0||r===void 0}const lt=["input","textarea","select","searchbox","slider","spinbutton","menuitem","menuitemcheckbox","menuitemradio","option","radio","textbox"];function dt(e){return J(e,lt)}function J(e,t=!1){const{target:r,composed:i}=e;let u,n;return pt(r)&&i?(u=e.composedPath()[0]&&e.composedPath()[0].tagName,n=e.composedPath()[0]&&e.composedPath()[0].role):(u=r&&r.tagName,n=r&&r.role),O(t)?!!(u&&t&&t.some(a=>a.toLowerCase()===u.toLowerCase()||a===n)):!!(u&&t&&t)}function pt(e){return!!e.tagName&&!e.tagName.startsWith("-")&&e.tagName.includes("-")}function gt(e,t){return e.length===0&&t?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a <HotkeysProvider>'),!0):t?e.some(r=>t.includes(r))||e.includes("*"):!0}const mt=(e,t,r=!1)=>{const{alt:i,meta:u,mod:n,shift:a,ctrl:d,keys:s,useKey:f}=t,{code:y,key:o,ctrlKey:l,metaKey:T,shiftKey:C,altKey:p}=e,m=S(y);if(f&&s?.length===1&&s.includes(o))return!0;if(!s?.includes(m)&&!["ctrl","control","unknown","meta","alt","shift","os"].includes(m))return!1;if(!r){if(i!==p&&m!=="alt"||a!==C&&m!=="shift")return!1;if(n){if(!T&&!l)return!1}else if(u!==T&&m!=="meta"&&m!=="os"||d!==l&&m!=="ctrl"&&m!=="control")return!1}return s&&s.length===1&&s.includes(m)?!0:s?at(s):!s},ft=g.createContext(void 0),bt=()=>g.useContext(ft);function ee(e,t){return e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce((r,i)=>r&&ee(e[i],t[i]),!0):e===t}const yt=g.createContext({hotkeys:[],activeScopes:[],toggleScope:()=>{},enableScope:()=>{},disableScope:()=>{}}),Tt=()=>g.useContext(yt);function Ct(e){const t=g.useRef(void 0);return ee(t.current,e)||(t.current=e),t.current}const V=e=>{e.stopPropagation(),e.preventDefault(),e.stopImmediatePropagation()},vt=typeof window<"u"?g.useLayoutEffect:g.useEffect;function ht(e,t,r,i){const u=g.useRef(null),n=g.useRef(!1),a=Array.isArray(r)?Array.isArray(i)?void 0:i:r,d=O(e)?e.join(a?.delimiter):e,s=Array.isArray(r)?r:Array.isArray(i)?i:void 0,f=g.useCallback(t,s??[]),y=g.useRef(f);s?y.current=f:y.current=t;const o=Ct(a),{activeScopes:l}=Tt(),T=bt();return vt(()=>{if(o?.enabled===!1||!gt(l,o?.scopes))return;let C=[],p;const m=(c,j=!1)=>{if(!(dt(c)&&!J(c,o?.enableOnFormTags))){if(u.current!==null){const h=u.current.getRootNode();if((h instanceof Document||h instanceof ShadowRoot)&&h.activeElement!==u.current&&!u.current.contains(h.activeElement)){V(c);return}}c.target?.isContentEditable&&!o?.enableOnContentEditable||P(d,o?.delimiter).forEach(h=>{if(h.includes(o?.splitKey??"+")&&h.includes(o?.sequenceSplitKey??">")){console.warn(`Hotkey ${h} contains both ${o?.splitKey??"+"} and ${o?.sequenceSplitKey??">"} which is not supported.`);return}const v=B(h,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description);if(v.isSequence){p=setTimeout(()=>{C=[]},o?.sequenceTimeoutMs??1e3);const M=v.useKey?c.key:S(c.code);if(Z(M.toLowerCase()))return;C.push(M);const re=v.keys?.[C.length-1];if(M!==re){C=[],p&&clearTimeout(p);return}C.length===v.keys?.length&&(y.current(c,v),p&&clearTimeout(p),C=[])}else if(mt(c,v,o?.ignoreModifiers)||v.keys?.includes("*")){if(o?.ignoreEventWhen?.(c)||j&&n.current)return;if(ct(c,v,o?.preventDefault),!st(c,v,o?.enabled)){V(c);return}y.current(c,v),j||(n.current=!0)}})}},G=c=>{c.code!==void 0&&(it(S(c.code)),(o?.keydown===void 0&&o?.keyup!==!0||o?.keydown)&&m(c))},U=c=>{c.code!==void 0&&(ut(S(c.code)),n.current=!1,o?.keyup&&m(c,!0))},E=u.current||a?.document||document;return E.addEventListener("keyup",U,a?.eventListenerOptions),E.addEventListener("keydown",G,a?.eventListenerOptions),T&&P(d,o?.delimiter).forEach(c=>T.addHotkey(B(c,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description))),()=>{E.removeEventListener("keyup",U,a?.eventListenerOptions),E.removeEventListener("keydown",G,a?.eventListenerOptions),T&&P(d,o?.delimiter).forEach(c=>T.removeHotkey(B(c,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description))),C=[],p&&clearTimeout(p)}},[d,o,l]),u}function Dt(){var e=g.useRef(!1),t=g.useCallback(function(){return e.current},[]);return g.useEffect(function(){return e.current=!0,function(){e.current=!1}},[]),t}var wt=function(e){e===void 0&&(e={});var t=g.useState(e),r=t[0],i=t[1],u=g.useCallback(function(n){i(function(a){return Object.assign({},a,n instanceof Function?n(a):n)})},[]);return[r,u]},K,z;function qt(){return z||(z=1,K=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],i=0;i<e.rangeCount;i++)r.push(e.getRangeAt(i));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null;break}return e.removeAllRanges(),function(){e.type==="Caret"&&e.removeAllRanges(),e.rangeCount||r.forEach(function(u){e.addRange(u)}),t&&t.focus()}}),K}var N,$;function It(){if($)return N;$=1;var e=qt(),t={"text/plain":"Text","text/html":"Url",default:"Text"},r="Copy to clipboard: #{key}, Enter";function i(n){var a=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return n.replace(/#{\s*key\s*}/g,a)}function u(n,a){var d,s,f,y,o,l,T=!1;a||(a={}),d=a.debug||!1;try{f=e(),y=document.createRange(),o=document.getSelection(),l=document.createElement("span"),l.textContent=n,l.ariaHidden="true",l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",function(p){if(p.stopPropagation(),a.format)if(p.preventDefault(),typeof p.clipboardData>"u"){d&&console.warn("unable to use e.clipboardData"),d&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var m=t[a.format]||t.default;window.clipboardData.setData(m,n)}else p.clipboardData.clearData(),p.clipboardData.setData(a.format,n);a.onCopy&&(p.preventDefault(),a.onCopy(p.clipboardData))}),document.body.appendChild(l),y.selectNodeContents(l),o.addRange(y);var C=document.execCommand("copy");if(!C)throw new Error("copy command was unsuccessful");T=!0}catch(p){d&&console.error("unable to copy using execCommand: ",p),d&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(a.format||"text",n),a.onCopy&&a.onCopy(window.clipboardData),T=!0}catch(m){d&&console.error("unable to copy using clipboardData: ",m),d&&console.error("falling back to prompt"),s=i("message"in a?a.message:r),window.prompt(s,n)}}finally{o&&(typeof o.removeRange=="function"?o.removeRange(y):o.removeAllRanges()),l&&document.body.removeChild(l),f()}return T}return N=u,N}var St=It();const _t=W.getDefaultExportFromCjs(St);var kt=function(){var e=Dt(),t=wt({value:void 0,error:void 0,noUserInteraction:!0}),r=t[0],i=t[1],u=g.useCallback(function(n){if(e()){var a,d;try{if(typeof n!="string"&&typeof n!="number"){var s=new Error("Cannot copy typeof "+typeof n+" to clipboard, must be a string");process.env.NODE_ENV==="development"&&console.error(s),i({value:n,error:s,noUserInteraction:!0});return}else if(n===""){var s=new Error("Cannot copy empty string to clipboard.");process.env.NODE_ENV==="development"&&console.error(s),i({value:n,error:s,noUserInteraction:!0});return}d=n.toString(),a=_t(d),i({value:d,error:void 0,noUserInteraction:a})}catch(f){i({value:d,error:f,noUserInteraction:a})}}},[]);return[r,u]};function Rt(){const[e,t]=g.useState(r());function r(){return document.documentElement.style.getPropertyValue("color-scheme")||localStorage.getItem("theme")||"light"}return g.useEffect(()=>{const i=document.documentElement,u=new MutationObserver(()=>{const n=r();t(n)});return u.observe(i,{attributes:!0,attributeFilter:["style"]}),()=>u.disconnect()},[]),e}function te(){const{resolvedTheme:e,setTheme:t}=Q.z();return{colorMode:e,setColorMode:t,toggleColorMode:()=>{t(e==="light"?"dark":"light")}}}function Et(e,t){const{colorMode:r}=te();return r==="light"?e:t}exports.DateRangePickerField=oe.DateRangePickerField;exports.TextInputField=ne.TextInputField;exports.system=ae.system;exports.RichTextInput=W.RichTextInput;exports.Avatar=ie.Avatar;exports.Box=ue.Box;exports.Button=ce.Button;exports.Code=se.Code;exports.ComboBox=le.ComboBox;exports.Dialog=de.Dialog;exports.FieldErrorTypes=X.FieldErrorTypes;exports.FieldErrors=X.FieldErrors;exports.Group=pe.Group;exports.Heading=ge.Heading;exports.NimbusI18nProvider=me.NimbusI18nProvider;exports.IconButton=fe.IconButton;exports.IconToggleButton=be.IconToggleButton;exports.Image=ye.Image;exports.Kbd=Te.Kbd;exports.Link=Ce.Link;exports.List=L.List;exports._ListIndicator=L.ListIndicator;exports._ListItem=L.ListItem;exports._ListRoot=L.ListRoot;exports.DraggableList=F.DraggableList;exports._DraggableListField=F.DraggableListField;exports._DraggableListItem=F.DraggableListItem;exports._DraggableListRoot=F.DraggableListRoot;exports.SimpleGrid=ve.SimpleGrid;exports.Text=he.Text;exports.Tooltip=De.Tooltip;exports.MakeElementFocusable=we.MakeElementFocusable;exports.NimbusProvider=Q.NimbusProvider;exports.Checkbox=qe.Checkbox;exports.CollapsibleMotion=x.CollapsibleMotion;exports._CollapsibleMotionContent=x.CollapsibleMotionContent;exports._CollapsibleMotionRoot=x.CollapsibleMotionRoot;exports._CollapsibleMotionTrigger=x.CollapsibleMotionTrigger;exports.Stack=Ie.Stack;exports.VisuallyHidden=Se.VisuallyHidden;exports.TextInput=_e.TextInput;exports.NumberInput=ke.NumberInput;exports.Grid=Re.Grid;exports.Select=Ee.Select;exports.Separator=Le.Separator;exports.Spacer=Fe.Spacer;exports.Accordion=xe.Accordion;exports._AccordionContent=R.AccordionContent;exports._AccordionHeader=R.AccordionHeader;exports._AccordionHeaderRightContent=R.AccordionHeaderRightContent;exports._AccordionItem=R.AccordionItem;exports._AccordionRoot=R.AccordionRoot;exports.Alert=_.Alert;exports._AlertActions=_.AlertActions;exports._AlertDescription=_.AlertDescription;exports._AlertDismissButton=_.AlertDismissButton;exports._AlertRoot=_.AlertRoot;exports._AlertTitle=_.AlertTitle;exports.Badge=Ae.Badge;exports.Card=A.Card;exports._CardContent=A.CardContent;exports._CardHeader=A.CardHeader;exports._CardRoot=A.CardRoot;exports.FormField=I.FormField;exports._FormFieldDescription=I.FormFieldDescription;exports._FormFieldError=I.FormFieldError;exports._FormFieldInfoBox=I.FormFieldInfoBox;exports._FormFieldInput=I.FormFieldInput;exports._FormFieldLabel=I.FormFieldLabel;exports._FormFieldRoot=I.FormFieldRoot;exports.Icon=Me.Icon;exports.InlineSvg=Pe.InlineSvg;exports.LoadingSpinner=Be.LoadingSpinner;exports.PasswordInput=Ke.PasswordInput;exports.SearchInput=Ne.SearchInput;exports.ScopedSearchInput=He.ScopedSearchInput;exports.SplitButton=Oe.SplitButton;exports.TimeInput=Ge.TimeInput;exports.MultilineTextInput=Ue.MultilineTextInput;exports.MoneyInput=je.MoneyInput;exports.RadioInput=Ve.RadioInput;exports.Switch=ze.Switch;exports.TagGroup=$e.TagGroup;exports.ToggleButton=We.ToggleButton;exports.ToggleButtonGroup=H.ToggleButtonGroup;exports._ToggleButtonGroupButton=H.ToggleButtonGroupButton;exports._ToggleButtonGroupRoot=H.ToggleButtonGroupRoot;exports.DateInput=Xe.DateInput;exports.Calendar=Qe.Calendar;exports.DatePicker=Ye.DatePicker;exports.ProgressBar=Ze.ProgressBar;exports.RangeCalendar=Je.RangeCalendar;exports.Menu=w.Menu;exports._MenuContent=w.MenuContent;exports._MenuItem=w.MenuItem;exports._MenuRoot=w.MenuRoot;exports._MenuSection=w.MenuSection;exports._MenuSubmenu=w.MenuSubmenu;exports._MenuSubmenuTrigger=w.MenuSubmenuTrigger;exports._MenuTrigger=w.MenuTrigger;exports.DateRangePicker=et.DateRangePicker;exports.Toolbar=tt.Toolbar;exports.DataTable=b.DataTable;exports.UPDATE_ACTIONS=b.UPDATE_ACTIONS;exports._DataTableBody=b.DataTableBody;exports._DataTableCell=b.DataTableCell;exports._DataTableColumn=b.DataTableColumn;exports._DataTableExpandButton=b.DataTableExpandButton;exports._DataTableFooter=b.DataTableFooter;exports._DataTableHeader=b.DataTableHeader;exports._DataTableManager=b.DataTableManager;exports._DataTableNestedIcon=b.DataTableNestedIcon;exports._DataTableRoot=b.DataTableRoot;exports._DataTableRow=b.DataTableRow;exports._DataTableSelectionCell=b.DataTableSelectionCell;exports._DataTableTable=b.DataTableTable;exports.Pagination=rt.Pagination;exports.Drawer=D.Drawer;exports._DrawerBody=D.DrawerBody;exports._DrawerCloseTrigger=D.DrawerCloseTrigger;exports._DrawerContent=D.DrawerContent;exports._DrawerFooter=D.DrawerFooter;exports._DrawerHeader=D.DrawerHeader;exports._DrawerRoot=D.DrawerRoot;exports._DrawerTitle=D.DrawerTitle;exports._DrawerTrigger=D.DrawerTrigger;exports.Tabs=k.Tabs;exports._TabsList=k.TabsList;exports._TabsPanel=k.TabsPanel;exports._TabsPanels=k.TabsPanels;exports._TabsRoot=k.TabsRoot;exports._TabsTab=k.TabsTab;exports.LocalizedField=ot.LocalizedField;exports.useColorMode=te;exports.useColorModeValue=Et;exports.useColorScheme=Rt;exports.useCopyToClipboard=kt;exports.useHotkeys=ht;
|
|
1
|
+
"use strict";const oe=require("./chunks/date-range-picker-field-BkblvIa4.cjs.js"),ne=require("./chunks/text-input-field-B3m-_U5R.cjs.js"),ae=require("./chunks/index-s_umMSpn.cjs.js"),W=require("./chunks/rich-text-input-GIcaZn-H.cjs.js"),g=require("react"),ie=require("./chunks/avatar-wRR1leVi.cjs.js"),ue=require("./chunks/box-CWni3A32.cjs.js"),ce=require("./chunks/button-LU-xRd1V.cjs.js"),se=require("./chunks/code-q31e3vT2.cjs.js"),le=require("./chunks/combobox-bxRaCE5H.cjs.js"),de=require("./chunks/dialog-C_Nlr8Ce.cjs.js"),X=require("./chunks/field-errors-D2re_C_c.cjs.js"),Lt=require("@chakra-ui/react/flex"),pe=require("./chunks/group-Cjq5lNQD.cjs.js"),ge=require("./chunks/heading-DWweWKGQ.cjs.js"),me=require("./chunks/nimbus-i18n-provider-BbsapOze.cjs.js"),fe=require("./chunks/icon-button--OJkD9bD.cjs.js"),be=require("./chunks/icon-toggle-button-fhAisdZY.cjs.js"),ye=require("./chunks/image-CGOYoc2s.cjs.js"),Te=require("./chunks/kbd-tKeWcdmy.cjs.js"),Ce=require("./chunks/link-CI7W-6L3.cjs.js"),L=require("./chunks/list-DJC9BmoC.cjs.js"),F=require("./chunks/draggable-list-CIODyBsA.cjs.js"),ve=require("./chunks/simple-grid-Cd2MJxSX.cjs.js"),Ft=require("@chakra-ui/react/table"),he=require("./chunks/text-BtRhIklG.cjs.js"),De=require("./chunks/tooltip-Bv-QlJ1O.cjs.js"),we=require("./chunks/make-element-focusable-Cdmdc8sd.cjs.js"),xt=require("react-intl"),Q=require("./chunks/nimbus-provider-CAD14xrZ.cjs.js"),qe=require("./chunks/checkbox-CoiLx2ew.cjs.js"),x=require("./chunks/collapsible-motion-DOqpT4iH.cjs.js"),Ie=require("./chunks/stack-CIN13EDn.cjs.js"),Se=require("./chunks/visually-hidden-BjtXUoFK.cjs.js"),_e=require("./chunks/text-input-BL1bb7Bj.cjs.js"),ke=require("./chunks/number-input-BZwowU2U.cjs.js"),Re=require("./chunks/grid-Chuw1xje.cjs.js"),Ee=require("./chunks/select-CZTXUASq.cjs.js"),Le=require("./chunks/separator-Cfa7PcVN.cjs.js"),Fe=require("./chunks/spacer-BvQD2vU1.cjs.js"),xe=require("./chunks/accordion-Bmkm2nbw.cjs.js"),R=require("./chunks/accordion.content-bdvPXBBi.cjs.js"),_=require("./chunks/alert-B0d72S57.cjs.js"),Ae=require("./chunks/badge-5F6i4KSF.cjs.js"),A=require("./chunks/card-BDNwiSPj.cjs.js"),I=require("./chunks/form-field-C9Kw8WTv.cjs.js"),Me=require("./chunks/icon-D39U--jA.cjs.js"),Pe=require("./chunks/inline-svg-Yb2OyzRw.cjs.js"),Be=require("./chunks/loading-spinner-DsKcjJ2b.cjs.js"),Ke=require("./chunks/password-input-D7JCB6Hs.cjs.js"),Ne=require("./chunks/search-input-CAvO7n3x.cjs.js"),He=require("./chunks/scoped-search-input-CMZE3Euj.cjs.js"),Oe=require("./chunks/split-button-tqGvvVvs.cjs.js"),Ge=require("./chunks/time-input-kKz7Wqeq.cjs.js"),Ue=require("./chunks/multiline-text-input-C5HzGu14.cjs.js"),je=require("./chunks/money-input-Cx7Wyu1V.cjs.js"),Ve=require("./chunks/radio-input-DlCdIOVJ.cjs.js"),ze=require("./chunks/switch-D4pQbeTI.cjs.js"),$e=require("./chunks/tag-group-CiEG-gS2.cjs.js"),We=require("./chunks/toggle-button-CGS2TXWE.cjs.js"),H=require("./chunks/toggle-button-group-Lfn3zYmC.cjs.js"),Xe=require("./chunks/date-input-ERZmiI-d.cjs.js"),Qe=require("./chunks/calendar-CPvN85XQ.cjs.js"),Ye=require("./chunks/date-picker-DcxM3Obc.cjs.js"),Ze=require("./chunks/progress-bar-DEBKGglT.cjs.js"),Je=require("./chunks/range-calendar-B7-g9Ood.cjs.js"),w=require("./chunks/menu-YPluQV_N.cjs.js"),et=require("./chunks/date-range-picker-Cvks0C0_.cjs.js"),tt=require("./chunks/toolbar-DdjNKCJg.cjs.js"),b=require("./chunks/data-table-Bnyb2iCU.cjs.js"),rt=require("./chunks/pagination-C8ecEFSU.cjs.js"),D=require("./chunks/drawer-DJXDyhSM.cjs.js"),k=require("./chunks/tabs-C6jcG7lb.cjs.js"),ot=require("./chunks/localized-field-6EPRbn_0.cjs.js");require("react/jsx-runtime");const Y=["shift","alt","meta","mod","ctrl","control"],nt={esc:"escape",return:"enter",left:"arrowleft",right:"arrowright",up:"arrowup",down:"arrowdown",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",OSLeft:"meta",OSRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function S(e){return(nt[e.trim()]||e.trim()).toLowerCase().replace(/key|digit|numpad/,"")}function Z(e){return Y.includes(e)}function P(e,t=","){return e.toLowerCase().split(t)}function B(e,t="+",r=">",i=!1,u){let n=[],a=!1;e=e.trim(),e.includes(r)?(a=!0,n=e.toLocaleLowerCase().split(r).map(f=>S(f))):n=e.toLocaleLowerCase().split(t).map(f=>S(f));const d={alt:n.includes("alt"),ctrl:n.includes("ctrl")||n.includes("control"),shift:n.includes("shift"),meta:n.includes("meta"),mod:n.includes("mod"),useKey:i},s=n.filter(f=>!Y.includes(f));return{...d,keys:s,description:u,isSequence:a,hotkey:e}}const q=new Set;function O(e){return Array.isArray(e)}function at(e,t=","){return(O(e)?e:e.split(t)).every(r=>q.has(r.trim().toLowerCase()))}function it(e){const t=Array.isArray(e)?e:[e];q.has("meta")&&q.forEach(r=>!Z(r)&&q.delete(r.toLowerCase())),t.forEach(r=>q.add(r.toLowerCase()))}function ut(e){const t=Array.isArray(e)?e:[e];e==="meta"?q.clear():t.forEach(r=>q.delete(r.toLowerCase()))}function ct(e,t,r){(typeof r=="function"&&r(e,t)||r===!0)&&e.preventDefault()}function st(e,t,r){return typeof r=="function"?r(e,t):r===!0||r===void 0}const lt=["input","textarea","select","searchbox","slider","spinbutton","menuitem","menuitemcheckbox","menuitemradio","option","radio","textbox"];function dt(e){return J(e,lt)}function J(e,t=!1){const{target:r,composed:i}=e;let u,n;return pt(r)&&i?(u=e.composedPath()[0]&&e.composedPath()[0].tagName,n=e.composedPath()[0]&&e.composedPath()[0].role):(u=r&&r.tagName,n=r&&r.role),O(t)?!!(u&&t&&t.some(a=>a.toLowerCase()===u.toLowerCase()||a===n)):!!(u&&t&&t)}function pt(e){return!!e.tagName&&!e.tagName.startsWith("-")&&e.tagName.includes("-")}function gt(e,t){return e.length===0&&t?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a <HotkeysProvider>'),!0):t?e.some(r=>t.includes(r))||e.includes("*"):!0}const mt=(e,t,r=!1)=>{const{alt:i,meta:u,mod:n,shift:a,ctrl:d,keys:s,useKey:f}=t,{code:y,key:o,ctrlKey:l,metaKey:T,shiftKey:C,altKey:p}=e,m=S(y);if(f&&s?.length===1&&s.includes(o))return!0;if(!s?.includes(m)&&!["ctrl","control","unknown","meta","alt","shift","os"].includes(m))return!1;if(!r){if(i!==p&&m!=="alt"||a!==C&&m!=="shift")return!1;if(n){if(!T&&!l)return!1}else if(u!==T&&m!=="meta"&&m!=="os"||d!==l&&m!=="ctrl"&&m!=="control")return!1}return s&&s.length===1&&s.includes(m)?!0:s?at(s):!s},ft=g.createContext(void 0),bt=()=>g.useContext(ft);function ee(e,t){return e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce((r,i)=>r&&ee(e[i],t[i]),!0):e===t}const yt=g.createContext({hotkeys:[],activeScopes:[],toggleScope:()=>{},enableScope:()=>{},disableScope:()=>{}}),Tt=()=>g.useContext(yt);function Ct(e){const t=g.useRef(void 0);return ee(t.current,e)||(t.current=e),t.current}const V=e=>{e.stopPropagation(),e.preventDefault(),e.stopImmediatePropagation()},vt=typeof window<"u"?g.useLayoutEffect:g.useEffect;function ht(e,t,r,i){const u=g.useRef(null),n=g.useRef(!1),a=Array.isArray(r)?Array.isArray(i)?void 0:i:r,d=O(e)?e.join(a?.delimiter):e,s=Array.isArray(r)?r:Array.isArray(i)?i:void 0,f=g.useCallback(t,s??[]),y=g.useRef(f);s?y.current=f:y.current=t;const o=Ct(a),{activeScopes:l}=Tt(),T=bt();return vt(()=>{if(o?.enabled===!1||!gt(l,o?.scopes))return;let C=[],p;const m=(c,j=!1)=>{if(!(dt(c)&&!J(c,o?.enableOnFormTags))){if(u.current!==null){const h=u.current.getRootNode();if((h instanceof Document||h instanceof ShadowRoot)&&h.activeElement!==u.current&&!u.current.contains(h.activeElement)){V(c);return}}c.target?.isContentEditable&&!o?.enableOnContentEditable||P(d,o?.delimiter).forEach(h=>{if(h.includes(o?.splitKey??"+")&&h.includes(o?.sequenceSplitKey??">")){console.warn(`Hotkey ${h} contains both ${o?.splitKey??"+"} and ${o?.sequenceSplitKey??">"} which is not supported.`);return}const v=B(h,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description);if(v.isSequence){p=setTimeout(()=>{C=[]},o?.sequenceTimeoutMs??1e3);const M=v.useKey?c.key:S(c.code);if(Z(M.toLowerCase()))return;C.push(M);const re=v.keys?.[C.length-1];if(M!==re){C=[],p&&clearTimeout(p);return}C.length===v.keys?.length&&(y.current(c,v),p&&clearTimeout(p),C=[])}else if(mt(c,v,o?.ignoreModifiers)||v.keys?.includes("*")){if(o?.ignoreEventWhen?.(c)||j&&n.current)return;if(ct(c,v,o?.preventDefault),!st(c,v,o?.enabled)){V(c);return}y.current(c,v),j||(n.current=!0)}})}},G=c=>{c.code!==void 0&&(it(S(c.code)),(o?.keydown===void 0&&o?.keyup!==!0||o?.keydown)&&m(c))},U=c=>{c.code!==void 0&&(ut(S(c.code)),n.current=!1,o?.keyup&&m(c,!0))},E=u.current||a?.document||document;return E.addEventListener("keyup",U,a?.eventListenerOptions),E.addEventListener("keydown",G,a?.eventListenerOptions),T&&P(d,o?.delimiter).forEach(c=>T.addHotkey(B(c,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description))),()=>{E.removeEventListener("keyup",U,a?.eventListenerOptions),E.removeEventListener("keydown",G,a?.eventListenerOptions),T&&P(d,o?.delimiter).forEach(c=>T.removeHotkey(B(c,o?.splitKey,o?.sequenceSplitKey,o?.useKey,o?.description))),C=[],p&&clearTimeout(p)}},[d,o,l]),u}function Dt(){var e=g.useRef(!1),t=g.useCallback(function(){return e.current},[]);return g.useEffect(function(){return e.current=!0,function(){e.current=!1}},[]),t}var wt=function(e){e===void 0&&(e={});var t=g.useState(e),r=t[0],i=t[1],u=g.useCallback(function(n){i(function(a){return Object.assign({},a,n instanceof Function?n(a):n)})},[]);return[r,u]},K,z;function qt(){return z||(z=1,K=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],i=0;i<e.rangeCount;i++)r.push(e.getRangeAt(i));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null;break}return e.removeAllRanges(),function(){e.type==="Caret"&&e.removeAllRanges(),e.rangeCount||r.forEach(function(u){e.addRange(u)}),t&&t.focus()}}),K}var N,$;function It(){if($)return N;$=1;var e=qt(),t={"text/plain":"Text","text/html":"Url",default:"Text"},r="Copy to clipboard: #{key}, Enter";function i(n){var a=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return n.replace(/#{\s*key\s*}/g,a)}function u(n,a){var d,s,f,y,o,l,T=!1;a||(a={}),d=a.debug||!1;try{f=e(),y=document.createRange(),o=document.getSelection(),l=document.createElement("span"),l.textContent=n,l.ariaHidden="true",l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",function(p){if(p.stopPropagation(),a.format)if(p.preventDefault(),typeof p.clipboardData>"u"){d&&console.warn("unable to use e.clipboardData"),d&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var m=t[a.format]||t.default;window.clipboardData.setData(m,n)}else p.clipboardData.clearData(),p.clipboardData.setData(a.format,n);a.onCopy&&(p.preventDefault(),a.onCopy(p.clipboardData))}),document.body.appendChild(l),y.selectNodeContents(l),o.addRange(y);var C=document.execCommand("copy");if(!C)throw new Error("copy command was unsuccessful");T=!0}catch(p){d&&console.error("unable to copy using execCommand: ",p),d&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(a.format||"text",n),a.onCopy&&a.onCopy(window.clipboardData),T=!0}catch(m){d&&console.error("unable to copy using clipboardData: ",m),d&&console.error("falling back to prompt"),s=i("message"in a?a.message:r),window.prompt(s,n)}}finally{o&&(typeof o.removeRange=="function"?o.removeRange(y):o.removeAllRanges()),l&&document.body.removeChild(l),f()}return T}return N=u,N}var St=It();const _t=W.getDefaultExportFromCjs(St);var kt=function(){var e=Dt(),t=wt({value:void 0,error:void 0,noUserInteraction:!0}),r=t[0],i=t[1],u=g.useCallback(function(n){if(e()){var a,d;try{if(typeof n!="string"&&typeof n!="number"){var s=new Error("Cannot copy typeof "+typeof n+" to clipboard, must be a string");process.env.NODE_ENV==="development"&&console.error(s),i({value:n,error:s,noUserInteraction:!0});return}else if(n===""){var s=new Error("Cannot copy empty string to clipboard.");process.env.NODE_ENV==="development"&&console.error(s),i({value:n,error:s,noUserInteraction:!0});return}d=n.toString(),a=_t(d),i({value:d,error:void 0,noUserInteraction:a})}catch(f){i({value:d,error:f,noUserInteraction:a})}}},[]);return[r,u]};function Rt(){const[e,t]=g.useState(r());function r(){return document.documentElement.style.getPropertyValue("color-scheme")||localStorage.getItem("theme")||"light"}return g.useEffect(()=>{const i=document.documentElement,u=new MutationObserver(()=>{const n=r();t(n)});return u.observe(i,{attributes:!0,attributeFilter:["style"]}),()=>u.disconnect()},[]),e}function te(){const{resolvedTheme:e,setTheme:t}=Q.z();return{colorMode:e,setColorMode:t,toggleColorMode:()=>{t(e==="light"?"dark":"light")}}}function Et(e,t){const{colorMode:r}=te();return r==="light"?e:t}exports.DateRangePickerField=oe.DateRangePickerField;exports.TextInputField=ne.TextInputField;exports.system=ae.system;exports.RichTextInput=W.RichTextInput;exports.Avatar=ie.Avatar;exports.Box=ue.Box;exports.Button=ce.Button;exports.Code=se.Code;exports.ComboBox=le.ComboBox;exports.Dialog=de.Dialog;exports.FieldErrorTypes=X.FieldErrorTypes;exports.FieldErrors=X.FieldErrors;exports.Group=pe.Group;exports.Heading=ge.Heading;exports.NimbusI18nProvider=me.NimbusI18nProvider;exports.IconButton=fe.IconButton;exports.IconToggleButton=be.IconToggleButton;exports.Image=ye.Image;exports.Kbd=Te.Kbd;exports.Link=Ce.Link;exports.List=L.List;exports._ListIndicator=L.ListIndicator;exports._ListItem=L.ListItem;exports._ListRoot=L.ListRoot;exports.DraggableList=F.DraggableList;exports._DraggableListField=F.DraggableListField;exports._DraggableListItem=F.DraggableListItem;exports._DraggableListRoot=F.DraggableListRoot;exports.SimpleGrid=ve.SimpleGrid;exports.Text=he.Text;exports.Tooltip=De.Tooltip;exports.MakeElementFocusable=we.MakeElementFocusable;exports.NimbusProvider=Q.NimbusProvider;exports.Checkbox=qe.Checkbox;exports.CollapsibleMotion=x.CollapsibleMotion;exports._CollapsibleMotionContent=x.CollapsibleMotionContent;exports._CollapsibleMotionRoot=x.CollapsibleMotionRoot;exports._CollapsibleMotionTrigger=x.CollapsibleMotionTrigger;exports.Stack=Ie.Stack;exports.VisuallyHidden=Se.VisuallyHidden;exports.TextInput=_e.TextInput;exports.NumberInput=ke.NumberInput;exports.Grid=Re.Grid;exports.Select=Ee.Select;exports.Separator=Le.Separator;exports.Spacer=Fe.Spacer;exports.Accordion=xe.Accordion;exports._AccordionContent=R.AccordionContent;exports._AccordionHeader=R.AccordionHeader;exports._AccordionHeaderRightContent=R.AccordionHeaderRightContent;exports._AccordionItem=R.AccordionItem;exports._AccordionRoot=R.AccordionRoot;exports.Alert=_.Alert;exports._AlertActions=_.AlertActions;exports._AlertDescription=_.AlertDescription;exports._AlertDismissButton=_.AlertDismissButton;exports._AlertRoot=_.AlertRoot;exports._AlertTitle=_.AlertTitle;exports.Badge=Ae.Badge;exports.Card=A.Card;exports._CardContent=A.CardContent;exports._CardHeader=A.CardHeader;exports._CardRoot=A.CardRoot;exports.FormField=I.FormField;exports._FormFieldDescription=I.FormFieldDescription;exports._FormFieldError=I.FormFieldError;exports._FormFieldInfoBox=I.FormFieldInfoBox;exports._FormFieldInput=I.FormFieldInput;exports._FormFieldLabel=I.FormFieldLabel;exports._FormFieldRoot=I.FormFieldRoot;exports.Icon=Me.Icon;exports.InlineSvg=Pe.InlineSvg;exports.LoadingSpinner=Be.LoadingSpinner;exports.PasswordInput=Ke.PasswordInput;exports.SearchInput=Ne.SearchInput;exports.ScopedSearchInput=He.ScopedSearchInput;exports.SplitButton=Oe.SplitButton;exports.TimeInput=Ge.TimeInput;exports.MultilineTextInput=Ue.MultilineTextInput;exports.MoneyInput=je.MoneyInput;exports.RadioInput=Ve.RadioInput;exports.Switch=ze.Switch;exports.TagGroup=$e.TagGroup;exports.ToggleButton=We.ToggleButton;exports.ToggleButtonGroup=H.ToggleButtonGroup;exports._ToggleButtonGroupButton=H.ToggleButtonGroupButton;exports._ToggleButtonGroupRoot=H.ToggleButtonGroupRoot;exports.DateInput=Xe.DateInput;exports.Calendar=Qe.Calendar;exports.DatePicker=Ye.DatePicker;exports.ProgressBar=Ze.ProgressBar;exports.RangeCalendar=Je.RangeCalendar;exports.Menu=w.Menu;exports._MenuContent=w.MenuContent;exports._MenuItem=w.MenuItem;exports._MenuRoot=w.MenuRoot;exports._MenuSection=w.MenuSection;exports._MenuSubmenu=w.MenuSubmenu;exports._MenuSubmenuTrigger=w.MenuSubmenuTrigger;exports._MenuTrigger=w.MenuTrigger;exports.DateRangePicker=et.DateRangePicker;exports.Toolbar=tt.Toolbar;exports.DataTable=b.DataTable;exports.UPDATE_ACTIONS=b.UPDATE_ACTIONS;exports._DataTableBody=b.DataTableBody;exports._DataTableCell=b.DataTableCell;exports._DataTableColumn=b.DataTableColumn;exports._DataTableExpandButton=b.DataTableExpandButton;exports._DataTableFooter=b.DataTableFooter;exports._DataTableHeader=b.DataTableHeader;exports._DataTableManager=b.DataTableManager;exports._DataTableNestedIcon=b.DataTableNestedIcon;exports._DataTableRoot=b.DataTableRoot;exports._DataTableRow=b.DataTableRow;exports._DataTableSelectionCell=b.DataTableSelectionCell;exports._DataTableTable=b.DataTableTable;exports.Pagination=rt.Pagination;exports.Drawer=D.Drawer;exports._DrawerBody=D.DrawerBody;exports._DrawerCloseTrigger=D.DrawerCloseTrigger;exports._DrawerContent=D.DrawerContent;exports._DrawerFooter=D.DrawerFooter;exports._DrawerHeader=D.DrawerHeader;exports._DrawerRoot=D.DrawerRoot;exports._DrawerTitle=D.DrawerTitle;exports._DrawerTrigger=D.DrawerTrigger;exports.Tabs=k.Tabs;exports._TabsList=k.TabsList;exports._TabsPanel=k.TabsPanel;exports._TabsPanels=k.TabsPanels;exports._TabsRoot=k.TabsRoot;exports._TabsTab=k.TabsTab;exports.LocalizedField=ot.LocalizedField;exports.useColorMode=te;exports.useColorModeValue=Et;exports.useColorScheme=Rt;exports.useCopyToClipboard=kt;exports.useHotkeys=ht;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.es.js
CHANGED
|
@@ -44,7 +44,7 @@ import { A as lr } from "./chunks/accordion-oCJP2WYv.es.js";
|
|
|
44
44
|
import { c as fr, b as dr, d as pr, a as mr, A as gr } from "./chunks/accordion.content-DkAA0u4T.es.js";
|
|
45
45
|
import { A as br, d as xr, c as Cr, e as vr, a as hr, b as Tr } from "./chunks/alert-5Sp9Al-a.es.js";
|
|
46
46
|
import { B as Dr } from "./chunks/badge-CgYpum7D.es.js";
|
|
47
|
-
import { C as Sr, c as kr, b as Er, a as Lr } from "./chunks/card-
|
|
47
|
+
import { C as Sr, c as kr, b as Er, a as Lr } from "./chunks/card-q1bqwXyw.es.js";
|
|
48
48
|
import { F as Ar, d as Rr, e as Mr, f as Fr, c as Pr, b as Kr, a as Nr } from "./chunks/form-field-eH2-P6Fd.es.js";
|
|
49
49
|
import { I as Or } from "./chunks/icon-CenxuChf.es.js";
|
|
50
50
|
import { I as Ur } from "./chunks/inline-svg-CbSC6O5X.es.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commercetools/nimbus",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-20251111082642",
|
|
4
4
|
"main": "./dist/index.cjs",
|
|
5
5
|
"module": "./dist/index.es.js",
|
|
6
6
|
"type": "module",
|
|
@@ -102,8 +102,8 @@
|
|
|
102
102
|
"vite-plugin-dts": "^4.5.4",
|
|
103
103
|
"vite-tsconfig-paths": "^5.1.4",
|
|
104
104
|
"vitest": "^3.2.4",
|
|
105
|
-
"@commercetools/nimbus-icons": "^0.0.0-canary-
|
|
106
|
-
"@commercetools/nimbus-tokens": "^0.0.0-canary-
|
|
105
|
+
"@commercetools/nimbus-icons": "^0.0.0-canary-20251111082642",
|
|
106
|
+
"@commercetools/nimbus-tokens": "^0.0.0-canary-20251111082642"
|
|
107
107
|
},
|
|
108
108
|
"peerDependencies": {
|
|
109
109
|
"@chakra-ui/react": "^3.27.1",
|
|
@@ -113,8 +113,8 @@
|
|
|
113
113
|
"slate-history": "^0.113.1",
|
|
114
114
|
"slate-hyperscript": "^0.77.0",
|
|
115
115
|
"slate-react": "^0.75.0",
|
|
116
|
-
"@commercetools/nimbus-icons": "^0.0.0-canary-
|
|
117
|
-
"@commercetools/nimbus-tokens": "^0.0.0-canary-
|
|
116
|
+
"@commercetools/nimbus-icons": "^0.0.0-canary-20251111082642",
|
|
117
|
+
"@commercetools/nimbus-tokens": "^0.0.0-canary-20251111082642"
|
|
118
118
|
},
|
|
119
119
|
"scripts": {
|
|
120
120
|
"build": "pnpm run build-theme-typings && pnpm run build:lib",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const a=require("react/jsx-runtime"),t=require("react"),H=require("@chakra-ui/react"),b=require("@chakra-ui/react/styled-system"),j=require("./stack-CIN13EDn.cjs.js"),d=require("./extract-style-props-85ZscQNb.cjs.js"),h=require("./useFocusRing-B7_ogYbr.cjs.js"),N=require("./mergeProps-CxnHrnow.cjs.js"),{withProvider:k,withContext:f}=H.createSlotRecipeContext({key:"card"}),E=k("div","root"),g=f("div","header"),F=f("div","content"),i=t.createContext(void 0),u=({ref:o,children:n,...e})=>{const s=b.useSlotRecipe({key:"card"}),[r,c]=s.splitVariantProps(e),[P,y]=d.extractStyleProps(c),{isFocused:R,isFocusVisible:S,focusProps:$}=h.$f7dceffc5ad7768b$export$4e328f61c538687f(),[m,p]=t.useState(null),[v,x]=t.useState(null),q=t.useMemo(()=>({setHeader:p,setContent:x}),[p,x]);return a.jsx(i.Provider,{value:q,children:a.jsxs(E,{ref:o,...r,...P,...N.$3ef42575df84b30b$export$9d1611c77c2fe928(y,$),"data-focus":R||void 0,"data-focus-visible":S||void 0,tabIndex:0,children:[a.jsxs(j.Stack,{direction:"column",gap:"200",children:[m,v]}),n]})})};u.displayName="Card.Root";const l=({children:o,...n})=>{const e=t.useContext(i),[s,r]=d.extractStyleProps(n);return t.useEffect(()=>{if(e){const c=a.jsx(g,{...s,...r,children:o});return e.setHeader(c),()=>e.setHeader(null)}},[o,s,r,e]),null};l.displayName="Card.Header";const C=({children:o,...n})=>{const e=t.useContext(i),[s,r]=d.extractStyleProps(n);return t.useEffect(()=>{if(e){const c=a.jsx(F,{...s,...r,children:o});return e.setContent(c),()=>e.setContent(null)}},[o,s,r,e]),null};C.displayName="Card.Content";const V={Root:u,Header:l,Content:C};exports.Card=V;exports.CardContent=C;exports.CardHeader=l;exports.CardRoot=u;
|
|
2
|
-
//# sourceMappingURL=card-C8XHDfwW.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"card-C8XHDfwW.cjs.js","sources":["../../src/components/card/card.slots.tsx","../../src/components/card/components/card.root.tsx","../../src/components/card/components/card.header.tsx","../../src/components/card/components/card.content.tsx","../../src/components/card/card.tsx"],"sourcesContent":["import { createSlotRecipeContext } from \"@chakra-ui/react\";\nimport type { SlotComponent } from \"../../type-utils/slot-types\";\nimport type {\n CardContentSlotProps,\n CardHeaderSlotProps,\n CardRootSlotProps,\n} from \"./card.types\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"card\",\n});\n\n/**\n * Root component that provides the styling context for the Card component.\n * Uses Chakra UI's recipe context system for consistent styling across instances.\n */\nexport const CardRoot: SlotComponent<HTMLDivElement, CardRootSlotProps> =\n withProvider<HTMLDivElement, CardRootSlotProps>(\"div\", \"root\");\n\nexport const CardHeader: SlotComponent<HTMLDivElement, CardHeaderSlotProps> =\n withContext<HTMLDivElement, CardHeaderSlotProps>(\"div\", \"header\");\n\nexport const CardContent: SlotComponent<HTMLDivElement, CardContentSlotProps> =\n withContext<HTMLDivElement, CardContentSlotProps>(\"div\", \"content\");\n","import { createContext, useMemo, useState, type ReactNode } from \"react\";\nimport { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { CardRoot as CardRootSlot } from \"../card.slots\";\nimport type { CardProps } from \"../card.types\";\nimport { Stack } from \"../../stack\";\nimport { mergeProps, useFocusRing } from \"react-aria\";\nimport { extractStyleProps } from \"@/utils\";\n\ntype CardContextValue = {\n setHeader: (header: React.ReactNode) => void;\n setContent: (content: React.ReactNode) => void;\n};\n\nexport const CardContext = createContext<CardContextValue | undefined>(\n undefined\n);\n\n/**\n * Card.Root - The root component that provides context and styling for the card\n *\n * @supportsStyleProps\n */\nexport const CardRoot = ({ ref, children, ...props }: CardProps) => {\n // Standard pattern: First split recipe variants\n const recipe = useSlotRecipe({ key: \"card\" });\n const [recipeProps, restRecipeProps] = recipe.splitVariantProps(props);\n\n // Standard pattern: Second extract style props from remaining\n const [styleProps, functionalProps] = extractStyleProps(restRecipeProps);\n\n const { isFocused, isFocusVisible, focusProps } = useFocusRing();\n const [headerNode, setHeader] = useState<ReactNode>(null);\n const [contentNode, setContent] = useState<ReactNode>(null);\n\n // Memoize the context value so we don't cause unnecessary re-renders\n const contextValue = useMemo(\n () => ({\n setHeader,\n setContent,\n }),\n [setHeader, setContent]\n );\n\n return (\n <CardContext.Provider value={contextValue}>\n <CardRootSlot\n ref={ref}\n {...recipeProps}\n {...styleProps}\n {...mergeProps(functionalProps, focusProps)}\n data-focus={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n tabIndex={0}\n >\n {/* Always render them in this order/layout to protect consumers */}\n <Stack direction=\"column\" gap=\"200\">\n {headerNode}\n {contentNode}\n </Stack>\n\n {/* Render all consumer sub-components, including our own */}\n {children}\n </CardRootSlot>\n </CardContext.Provider>\n );\n};\n\nCardRoot.displayName = \"Card.Root\";\n","import { useContext, useEffect } from \"react\";\nimport { CardHeader as CardHeaderSlot } from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\nimport type { CardHeaderProps } from \"../card.types\";\nimport { extractStyleProps } from \"@/utils\";\n\n/**\n * Card.Header - The header section of the card\n *\n * @supportsStyleProps\n */\nexport const CardHeader = ({ children, ...props }: CardHeaderProps) => {\n const context = useContext(CardContext);\n\n // Standard pattern: Extract and forward style props\n const [styleProps, functionalProps] = extractStyleProps(props);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardHeaderSlot {...styleProps} {...functionalProps}>\n {children}\n </CardHeaderSlot>\n );\n // Register it with the parent\n context.setHeader(slotElement);\n\n // On unmount, remove it\n return () => context.setHeader(null);\n }\n }, [children, styleProps, functionalProps, context]);\n\n return null;\n};\nCardHeader.displayName = \"Card.Header\";\n","import { useContext, useEffect } from \"react\";\nimport { CardContent as CardContentSlot } from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\nimport type { CardContentProps } from \"../card.types\";\nimport { extractStyleProps } from \"@/utils\";\n\n/**\n * Card.Content - The main content area of the card\n *\n * @supportsStyleProps\n */\nexport const CardContent = ({ children, ...props }: CardContentProps) => {\n const context = useContext(CardContext);\n\n // Standard pattern: Extract and forward style props\n const [styleProps, functionalProps] = extractStyleProps(props);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardContentSlot {...styleProps} {...functionalProps}>\n {children}\n </CardContentSlot>\n );\n // Register it with the parent\n context.setContent(slotElement);\n\n // On unmount, remove it\n return () => context.setContent(null);\n }\n }, [children, styleProps, functionalProps, context]);\n\n return null;\n};\n\nCardContent.displayName = \"Card.Content\";\n","import { CardRoot, CardHeader, CardContent } from \"./components\";\n\n/**\n * Card\n * ============================================================\n * A versatile container component that presents self-contained information\n * in a visually distinct way. Cards group related content and actions\n * together, making it easy to scan and interact with information.\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/data-display/card}\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Card Title</Card.Header>\n * <Card.Content>Card content goes here</Card.Content>\n * </Card.Root>\n * ```\n */\nexport const Card = {\n /**\n * # Card.Root\n *\n * The root component that provides context and styling for the card.\n * Must wrap all card parts (Header, Content) to coordinate their behavior.\n * Accepts styling variants for padding, border, elevation, and background.\n *\n * @example\n * ```tsx\n * <Card.Root cardPadding=\"md\" borderStyle=\"outlined\" elevation=\"elevated\">\n * <Card.Header>Title</Card.Header>\n * <Card.Content>Content</Card.Content>\n * </Card.Root>\n * ```\n */\n Root: CardRoot,\n /**\n * # Card.Header\n *\n * The header section of the card, typically containing the card title\n * or primary heading. Automatically positioned above the card content\n * in a consistent layout.\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Card Title</Card.Header>\n * <Card.Content>Content here</Card.Content>\n * </Card.Root>\n * ```\n */\n Header: CardHeader,\n /**\n * # Card.Content\n *\n * The main content area of the card. Contains the primary information,\n * body text, or interactive elements. Automatically positioned below\n * the card header in a consistent layout.\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Title</Card.Header>\n * <Card.Content>\n * <Text>This is the main card content.</Text>\n * </Card.Content>\n * </Card.Root>\n * ```\n */\n Content: CardContent,\n};\n\nexport {\n CardRoot as _CardRoot,\n CardHeader as _CardHeader,\n CardContent as _CardContent,\n};\n"],"names":["withProvider","withContext","createSlotRecipeContext","CardRoot","CardHeader","CardContent","CardContext","createContext","ref","children","props","recipe","useSlotRecipe","recipeProps","restRecipeProps","styleProps","functionalProps","extractStyleProps","isFocused","isFocusVisible","focusProps","useFocusRing","headerNode","setHeader","useState","contentNode","setContent","contextValue","useMemo","jsx","jsxs","CardRootSlot","mergeProps","Stack","context","useContext","useEffect","slotElement","CardHeaderSlot","CardContentSlot","Card"],"mappings":"6TAQM,CAAE,aAAAA,EAAc,YAAAC,CAAA,EAAgBC,0BAAwB,CAC5D,IAAK,MACP,CAAC,EAMYC,EACXH,EAAgD,MAAO,MAAM,EAElDI,EACXH,EAAiD,MAAO,QAAQ,EAErDI,EACXJ,EAAkD,MAAO,SAAS,ECVvDK,EAAcC,EAAAA,cACzB,MACF,EAOaJ,EAAW,CAAC,CAAE,IAAAK,EAAK,SAAAC,EAAU,GAAGC,KAAuB,CAElE,MAAMC,EAASC,EAAAA,cAAc,CAAE,IAAK,OAAQ,EACtC,CAACC,EAAaC,CAAe,EAAIH,EAAO,kBAAkBD,CAAK,EAG/D,CAACK,EAAYC,CAAe,EAAIC,EAAAA,kBAAkBH,CAAe,EAEjE,CAAE,UAAAI,EAAW,eAAAC,EAAgB,WAAAC,CAAA,EAAeC,EAAAA,0CAAA,EAC5C,CAACC,EAAYC,CAAS,EAAIC,EAAAA,SAAoB,IAAI,EAClD,CAACC,EAAaC,CAAU,EAAIF,EAAAA,SAAoB,IAAI,EAGpDG,EAAeC,EAAAA,QACnB,KAAO,CACL,UAAAL,EACA,WAAAG,CAAA,GAEF,CAACH,EAAWG,CAAU,CAAA,EAGxB,OACEG,EAAAA,IAACvB,EAAY,SAAZ,CAAqB,MAAOqB,EAC3B,SAAAG,EAAAA,KAACC,EAAA,CACC,IAAAvB,EACC,GAAGK,EACH,GAAGE,EACH,GAAGiB,EAAAA,0CAAWhB,EAAiBI,CAAU,EAC1C,aAAYF,GAAa,OACzB,qBAAoBC,GAAkB,OACtC,SAAU,EAGV,SAAA,CAAAW,EAAAA,KAACG,EAAAA,MAAA,CAAM,UAAU,SAAS,IAAI,MAC3B,SAAA,CAAAX,EACAG,CAAA,EACH,EAGChB,CAAA,CAAA,CAAA,EAEL,CAEJ,EAEAN,EAAS,YAAc,YCxDhB,MAAMC,EAAa,CAAC,CAAE,SAAAK,EAAU,GAAGC,KAA6B,CACrE,MAAMwB,EAAUC,EAAAA,WAAW7B,CAAW,EAGhC,CAACS,EAAYC,CAAe,EAAIC,EAAAA,kBAAkBP,CAAK,EAE7D0B,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAIF,EAAS,CACX,MAAMG,EACJR,EAAAA,IAACS,EAAA,CAAgB,GAAGvB,EAAa,GAAGC,EACjC,SAAAP,EACH,EAGF,OAAAyB,EAAQ,UAAUG,CAAW,EAGtB,IAAMH,EAAQ,UAAU,IAAI,CACrC,CACF,EAAG,CAACzB,EAAUM,EAAYC,EAAiBkB,CAAO,CAAC,EAE5C,IACT,EACA9B,EAAW,YAAc,cCvBlB,MAAMC,EAAc,CAAC,CAAE,SAAAI,EAAU,GAAGC,KAA8B,CACvE,MAAMwB,EAAUC,EAAAA,WAAW7B,CAAW,EAGhC,CAACS,EAAYC,CAAe,EAAIC,EAAAA,kBAAkBP,CAAK,EAE7D0B,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAIF,EAAS,CACX,MAAMG,EACJR,EAAAA,IAACU,EAAA,CAAiB,GAAGxB,EAAa,GAAGC,EAClC,SAAAP,EACH,EAGF,OAAAyB,EAAQ,WAAWG,CAAW,EAGvB,IAAMH,EAAQ,WAAW,IAAI,CACtC,CACF,EAAG,CAACzB,EAAUM,EAAYC,EAAiBkB,CAAO,CAAC,EAE5C,IACT,EAEA7B,EAAY,YAAc,eChBnB,MAAMmC,EAAO,CAgBlB,KAAMrC,EAgBN,OAAQC,EAkBR,QAASC,CACX"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { jsx as a, jsxs as p } from "react/jsx-runtime";
|
|
2
|
-
import { createContext as k, useState as u, useMemo as E, useContext as f, useEffect as C } from "react";
|
|
3
|
-
import { createSlotRecipeContext as V } from "@chakra-ui/react";
|
|
4
|
-
import { useSlotRecipe as j } from "@chakra-ui/react/styled-system";
|
|
5
|
-
import { S as w } from "./stack-CoNreM7B.es.js";
|
|
6
|
-
import { e as c } from "./extract-style-props-BtI5SsUL.es.js";
|
|
7
|
-
import { $ as F } from "./useFocusRing-FPt2Rwil.es.js";
|
|
8
|
-
import { $ as g } from "./mergeProps-Dsl8k3Ig.es.js";
|
|
9
|
-
const { withProvider: I, withContext: m } = /* @__PURE__ */ V({
|
|
10
|
-
key: "card"
|
|
11
|
-
}), M = /* @__PURE__ */ I("div", "root"), q = /* @__PURE__ */ m("div", "header"), z = /* @__PURE__ */ m("div", "content"), d = /* @__PURE__ */ k(
|
|
12
|
-
void 0
|
|
13
|
-
), x = ({ ref: e, children: s, ...t }) => {
|
|
14
|
-
const o = j({ key: "card" }), [r, n] = o.splitVariantProps(t), [v, y] = c(n), { isFocused: b, isFocusVisible: H, focusProps: R } = F(), [S, i] = u(null), [h, l] = u(null), N = E(
|
|
15
|
-
() => ({
|
|
16
|
-
setHeader: i,
|
|
17
|
-
setContent: l
|
|
18
|
-
}),
|
|
19
|
-
[i, l]
|
|
20
|
-
);
|
|
21
|
-
return /* @__PURE__ */ a(d.Provider, { value: N, children: /* @__PURE__ */ p(
|
|
22
|
-
M,
|
|
23
|
-
{
|
|
24
|
-
ref: e,
|
|
25
|
-
...r,
|
|
26
|
-
...v,
|
|
27
|
-
...g(y, R),
|
|
28
|
-
"data-focus": b || void 0,
|
|
29
|
-
"data-focus-visible": H || void 0,
|
|
30
|
-
tabIndex: 0,
|
|
31
|
-
children: [
|
|
32
|
-
/* @__PURE__ */ p(w, { direction: "column", gap: "200", children: [
|
|
33
|
-
S,
|
|
34
|
-
h
|
|
35
|
-
] }),
|
|
36
|
-
s
|
|
37
|
-
]
|
|
38
|
-
}
|
|
39
|
-
) });
|
|
40
|
-
};
|
|
41
|
-
x.displayName = "Card.Root";
|
|
42
|
-
const P = ({ children: e, ...s }) => {
|
|
43
|
-
const t = f(d), [o, r] = c(s);
|
|
44
|
-
return C(() => {
|
|
45
|
-
if (t) {
|
|
46
|
-
const n = /* @__PURE__ */ a(q, { ...o, ...r, children: e });
|
|
47
|
-
return t.setHeader(n), () => t.setHeader(null);
|
|
48
|
-
}
|
|
49
|
-
}, [e, o, r, t]), null;
|
|
50
|
-
};
|
|
51
|
-
P.displayName = "Card.Header";
|
|
52
|
-
const $ = ({ children: e, ...s }) => {
|
|
53
|
-
const t = f(d), [o, r] = c(s);
|
|
54
|
-
return C(() => {
|
|
55
|
-
if (t) {
|
|
56
|
-
const n = /* @__PURE__ */ a(z, { ...o, ...r, children: e });
|
|
57
|
-
return t.setContent(n), () => t.setContent(null);
|
|
58
|
-
}
|
|
59
|
-
}, [e, o, r, t]), null;
|
|
60
|
-
};
|
|
61
|
-
$.displayName = "Card.Content";
|
|
62
|
-
const Q = {
|
|
63
|
-
/**
|
|
64
|
-
* # Card.Root
|
|
65
|
-
*
|
|
66
|
-
* The root component that provides context and styling for the card.
|
|
67
|
-
* Must wrap all card parts (Header, Content) to coordinate their behavior.
|
|
68
|
-
* Accepts styling variants for padding, border, elevation, and background.
|
|
69
|
-
*
|
|
70
|
-
* @example
|
|
71
|
-
* ```tsx
|
|
72
|
-
* <Card.Root cardPadding="md" borderStyle="outlined" elevation="elevated">
|
|
73
|
-
* <Card.Header>Title</Card.Header>
|
|
74
|
-
* <Card.Content>Content</Card.Content>
|
|
75
|
-
* </Card.Root>
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
Root: x,
|
|
79
|
-
/**
|
|
80
|
-
* # Card.Header
|
|
81
|
-
*
|
|
82
|
-
* The header section of the card, typically containing the card title
|
|
83
|
-
* or primary heading. Automatically positioned above the card content
|
|
84
|
-
* in a consistent layout.
|
|
85
|
-
*
|
|
86
|
-
* @example
|
|
87
|
-
* ```tsx
|
|
88
|
-
* <Card.Root>
|
|
89
|
-
* <Card.Header>Card Title</Card.Header>
|
|
90
|
-
* <Card.Content>Content here</Card.Content>
|
|
91
|
-
* </Card.Root>
|
|
92
|
-
* ```
|
|
93
|
-
*/
|
|
94
|
-
Header: P,
|
|
95
|
-
/**
|
|
96
|
-
* # Card.Content
|
|
97
|
-
*
|
|
98
|
-
* The main content area of the card. Contains the primary information,
|
|
99
|
-
* body text, or interactive elements. Automatically positioned below
|
|
100
|
-
* the card header in a consistent layout.
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
* ```tsx
|
|
104
|
-
* <Card.Root>
|
|
105
|
-
* <Card.Header>Title</Card.Header>
|
|
106
|
-
* <Card.Content>
|
|
107
|
-
* <Text>This is the main card content.</Text>
|
|
108
|
-
* </Card.Content>
|
|
109
|
-
* </Card.Root>
|
|
110
|
-
* ```
|
|
111
|
-
*/
|
|
112
|
-
Content: $
|
|
113
|
-
};
|
|
114
|
-
export {
|
|
115
|
-
Q as C,
|
|
116
|
-
x as a,
|
|
117
|
-
P as b,
|
|
118
|
-
$ as c
|
|
119
|
-
};
|
|
120
|
-
//# sourceMappingURL=card-D4DZZx8s.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"card-D4DZZx8s.es.js","sources":["../../src/components/card/card.slots.tsx","../../src/components/card/components/card.root.tsx","../../src/components/card/components/card.header.tsx","../../src/components/card/components/card.content.tsx","../../src/components/card/card.tsx"],"sourcesContent":["import { createSlotRecipeContext } from \"@chakra-ui/react\";\nimport type { SlotComponent } from \"../../type-utils/slot-types\";\nimport type {\n CardContentSlotProps,\n CardHeaderSlotProps,\n CardRootSlotProps,\n} from \"./card.types\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"card\",\n});\n\n/**\n * Root component that provides the styling context for the Card component.\n * Uses Chakra UI's recipe context system for consistent styling across instances.\n */\nexport const CardRoot: SlotComponent<HTMLDivElement, CardRootSlotProps> =\n withProvider<HTMLDivElement, CardRootSlotProps>(\"div\", \"root\");\n\nexport const CardHeader: SlotComponent<HTMLDivElement, CardHeaderSlotProps> =\n withContext<HTMLDivElement, CardHeaderSlotProps>(\"div\", \"header\");\n\nexport const CardContent: SlotComponent<HTMLDivElement, CardContentSlotProps> =\n withContext<HTMLDivElement, CardContentSlotProps>(\"div\", \"content\");\n","import { createContext, useMemo, useState, type ReactNode } from \"react\";\nimport { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { CardRoot as CardRootSlot } from \"../card.slots\";\nimport type { CardProps } from \"../card.types\";\nimport { Stack } from \"../../stack\";\nimport { mergeProps, useFocusRing } from \"react-aria\";\nimport { extractStyleProps } from \"@/utils\";\n\ntype CardContextValue = {\n setHeader: (header: React.ReactNode) => void;\n setContent: (content: React.ReactNode) => void;\n};\n\nexport const CardContext = createContext<CardContextValue | undefined>(\n undefined\n);\n\n/**\n * Card.Root - The root component that provides context and styling for the card\n *\n * @supportsStyleProps\n */\nexport const CardRoot = ({ ref, children, ...props }: CardProps) => {\n // Standard pattern: First split recipe variants\n const recipe = useSlotRecipe({ key: \"card\" });\n const [recipeProps, restRecipeProps] = recipe.splitVariantProps(props);\n\n // Standard pattern: Second extract style props from remaining\n const [styleProps, functionalProps] = extractStyleProps(restRecipeProps);\n\n const { isFocused, isFocusVisible, focusProps } = useFocusRing();\n const [headerNode, setHeader] = useState<ReactNode>(null);\n const [contentNode, setContent] = useState<ReactNode>(null);\n\n // Memoize the context value so we don't cause unnecessary re-renders\n const contextValue = useMemo(\n () => ({\n setHeader,\n setContent,\n }),\n [setHeader, setContent]\n );\n\n return (\n <CardContext.Provider value={contextValue}>\n <CardRootSlot\n ref={ref}\n {...recipeProps}\n {...styleProps}\n {...mergeProps(functionalProps, focusProps)}\n data-focus={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n tabIndex={0}\n >\n {/* Always render them in this order/layout to protect consumers */}\n <Stack direction=\"column\" gap=\"200\">\n {headerNode}\n {contentNode}\n </Stack>\n\n {/* Render all consumer sub-components, including our own */}\n {children}\n </CardRootSlot>\n </CardContext.Provider>\n );\n};\n\nCardRoot.displayName = \"Card.Root\";\n","import { useContext, useEffect } from \"react\";\nimport { CardHeader as CardHeaderSlot } from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\nimport type { CardHeaderProps } from \"../card.types\";\nimport { extractStyleProps } from \"@/utils\";\n\n/**\n * Card.Header - The header section of the card\n *\n * @supportsStyleProps\n */\nexport const CardHeader = ({ children, ...props }: CardHeaderProps) => {\n const context = useContext(CardContext);\n\n // Standard pattern: Extract and forward style props\n const [styleProps, functionalProps] = extractStyleProps(props);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardHeaderSlot {...styleProps} {...functionalProps}>\n {children}\n </CardHeaderSlot>\n );\n // Register it with the parent\n context.setHeader(slotElement);\n\n // On unmount, remove it\n return () => context.setHeader(null);\n }\n }, [children, styleProps, functionalProps, context]);\n\n return null;\n};\nCardHeader.displayName = \"Card.Header\";\n","import { useContext, useEffect } from \"react\";\nimport { CardContent as CardContentSlot } from \"../card.slots\";\nimport { CardContext } from \"./card.root\";\nimport type { CardContentProps } from \"../card.types\";\nimport { extractStyleProps } from \"@/utils\";\n\n/**\n * Card.Content - The main content area of the card\n *\n * @supportsStyleProps\n */\nexport const CardContent = ({ children, ...props }: CardContentProps) => {\n const context = useContext(CardContext);\n\n // Standard pattern: Extract and forward style props\n const [styleProps, functionalProps] = extractStyleProps(props);\n\n useEffect(() => {\n if (context) {\n const slotElement = (\n <CardContentSlot {...styleProps} {...functionalProps}>\n {children}\n </CardContentSlot>\n );\n // Register it with the parent\n context.setContent(slotElement);\n\n // On unmount, remove it\n return () => context.setContent(null);\n }\n }, [children, styleProps, functionalProps, context]);\n\n return null;\n};\n\nCardContent.displayName = \"Card.Content\";\n","import { CardRoot, CardHeader, CardContent } from \"./components\";\n\n/**\n * Card\n * ============================================================\n * A versatile container component that presents self-contained information\n * in a visually distinct way. Cards group related content and actions\n * together, making it easy to scan and interact with information.\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/data-display/card}\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Card Title</Card.Header>\n * <Card.Content>Card content goes here</Card.Content>\n * </Card.Root>\n * ```\n */\nexport const Card = {\n /**\n * # Card.Root\n *\n * The root component that provides context and styling for the card.\n * Must wrap all card parts (Header, Content) to coordinate their behavior.\n * Accepts styling variants for padding, border, elevation, and background.\n *\n * @example\n * ```tsx\n * <Card.Root cardPadding=\"md\" borderStyle=\"outlined\" elevation=\"elevated\">\n * <Card.Header>Title</Card.Header>\n * <Card.Content>Content</Card.Content>\n * </Card.Root>\n * ```\n */\n Root: CardRoot,\n /**\n * # Card.Header\n *\n * The header section of the card, typically containing the card title\n * or primary heading. Automatically positioned above the card content\n * in a consistent layout.\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Card Title</Card.Header>\n * <Card.Content>Content here</Card.Content>\n * </Card.Root>\n * ```\n */\n Header: CardHeader,\n /**\n * # Card.Content\n *\n * The main content area of the card. Contains the primary information,\n * body text, or interactive elements. Automatically positioned below\n * the card header in a consistent layout.\n *\n * @example\n * ```tsx\n * <Card.Root>\n * <Card.Header>Title</Card.Header>\n * <Card.Content>\n * <Text>This is the main card content.</Text>\n * </Card.Content>\n * </Card.Root>\n * ```\n */\n Content: CardContent,\n};\n\nexport {\n CardRoot as _CardRoot,\n CardHeader as _CardHeader,\n CardContent as _CardContent,\n};\n"],"names":["withProvider","withContext","createSlotRecipeContext","CardRoot","CardHeader","CardContent","CardContext","createContext","ref","children","props","recipe","useSlotRecipe","recipeProps","restRecipeProps","styleProps","functionalProps","extractStyleProps","isFocused","isFocusVisible","focusProps","useFocusRing","headerNode","setHeader","useState","contentNode","setContent","contextValue","useMemo","jsx","jsxs","CardRootSlot","mergeProps","Stack","context","useContext","useEffect","slotElement","CardHeaderSlot","CardContentSlot","Card"],"mappings":"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"}
|