@hjmds/react 1.49.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions.d.ts +6 -6
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js.map +1 -1
- package/dist/advanced-display.d.ts +2 -0
- package/dist/advanced-display.d.ts.map +1 -1
- package/dist/advanced-display.js +3 -2
- package/dist/advanced-display.js.map +1 -1
- package/dist/date-range.d.ts +13 -1
- package/dist/date-range.d.ts.map +1 -1
- package/dist/date-range.js +27 -10
- package/dist/date-range.js.map +1 -1
- package/dist/evidence.d.ts +1 -1
- package/dist/evidence.js +1 -1
- package/dist/evidence.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/screen-flows.d.ts.map +1 -1
- package/dist/screen-flows.js +16 -2
- package/dist/screen-flows.js.map +1 -1
- package/dist/selection.d.ts +2 -0
- package/dist/selection.d.ts.map +1 -1
- package/dist/selection.js +18 -3
- package/dist/selection.js.map +1 -1
- package/dist/styles.css +13 -6
- package/dist/styles.layered.css +13 -6
- package/package.json +3 -3
package/dist/actions.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & Readonly<{
|
|
|
17
17
|
fullWidth?: boolean;
|
|
18
18
|
/** Label placement inside the frame; `leading` suits a full-width row action. */
|
|
19
19
|
align?: ButtonAlign;
|
|
20
|
-
/** Toggle state.
|
|
20
|
+
/** Toggle state. Preserves tone background and sets `aria-pressed`. */
|
|
21
21
|
selected?: boolean;
|
|
22
22
|
loading?: boolean;
|
|
23
23
|
/** Explicit confirmed mutation result. Both text labels remain measured in every state. */
|
|
@@ -46,7 +46,7 @@ export declare const Button: import("react").ForwardRefExoticComponent<ButtonHTM
|
|
|
46
46
|
fullWidth?: boolean;
|
|
47
47
|
/** Label placement inside the frame; `leading` suits a full-width row action. */
|
|
48
48
|
align?: ButtonAlign;
|
|
49
|
-
/** Toggle state.
|
|
49
|
+
/** Toggle state. Preserves tone background and sets `aria-pressed`. */
|
|
50
50
|
selected?: boolean;
|
|
51
51
|
loading?: boolean;
|
|
52
52
|
/** Explicit confirmed mutation result. Both text labels remain measured in every state. */
|
|
@@ -88,7 +88,7 @@ export type IconButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "ari
|
|
|
88
88
|
/** Extra pointer area in pixels; compact header tools use 0. Defaults to the size recipe. */
|
|
89
89
|
hitSlop?: number;
|
|
90
90
|
shape?: IconButtonShape;
|
|
91
|
-
/** Toggle state.
|
|
91
|
+
/** Toggle state. Preserves tone background and sets `aria-pressed`. */
|
|
92
92
|
selected?: boolean;
|
|
93
93
|
loading?: boolean;
|
|
94
94
|
/**
|
|
@@ -113,7 +113,7 @@ export declare const IconButton: import("react").ForwardRefExoticComponent<Omit<
|
|
|
113
113
|
/** Extra pointer area in pixels; compact header tools use 0. Defaults to the size recipe. */
|
|
114
114
|
hitSlop?: number;
|
|
115
115
|
shape?: IconButtonShape;
|
|
116
|
-
/** Toggle state.
|
|
116
|
+
/** Toggle state. Preserves tone background and sets `aria-pressed`. */
|
|
117
117
|
selected?: boolean;
|
|
118
118
|
loading?: boolean;
|
|
119
119
|
/**
|
|
@@ -141,7 +141,7 @@ export type IconButtonLinkProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>,
|
|
|
141
141
|
href: string;
|
|
142
142
|
/** Icon only; `label` is the accessible name. */
|
|
143
143
|
children: ReactNode;
|
|
144
|
-
/** The link points at the current page: `aria-current="page"`
|
|
144
|
+
/** The link points at the current page: `aria-current="page"` without changing the tone background. */
|
|
145
145
|
current?: boolean;
|
|
146
146
|
disabled?: boolean;
|
|
147
147
|
/** Framework routing adapter; HJM still owns the anchor destination, ref, name, current state and disabled guards. */
|
|
@@ -153,7 +153,7 @@ export declare const IconButtonLink: import("react").ForwardRefExoticComponent<O
|
|
|
153
153
|
href: string;
|
|
154
154
|
/** Icon only; `label` is the accessible name. */
|
|
155
155
|
children: ReactNode;
|
|
156
|
-
/** The link points at the current page: `aria-current="page"`
|
|
156
|
+
/** The link points at the current page: `aria-current="page"` without changing the tone background. */
|
|
157
157
|
current?: boolean;
|
|
158
158
|
disabled?: boolean;
|
|
159
159
|
/** Framework routing adapter; HJM still owns the anchor destination, ref, name, current state and disabled guards. */
|
package/dist/actions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,sCAAsC,CAAC;AAE9C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,WAAW,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAIL,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EAEjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACnF,YAAY,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAC/D,QAAQ,CAAC;IACP,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.tsx"],"names":[],"mappings":"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"}
|
package/dist/actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport {\n buttonRecipe,\n resolveButtonDepth,\n type ButtonAppearance,\n type ButtonAlign,\n type ButtonEdge,\n type ButtonShape,\n type ButtonSize,\n type ButtonTone,\n} from \"@hjmds/design-contracts/recipes/base\";\n\nexport type { ButtonAlign, ButtonEdge, ButtonShape, ButtonAppearance };\nimport type { ElevationStep } from \"@hjmds/design-contracts/foundations\";\nimport {\n iconButtonRecipe,\n linkRecipe,\n validateIconButtonElevation,\n type IconButtonEdge,\n type IconButtonShape,\n type IconButtonSize,\n type IconButtonTone,\n type LinkTone,\n type LinkVariant,\n} from \"@hjmds/design-contracts/recipes\";\nimport {\n Children,\n useContext,\n forwardRef,\n type AnchorHTMLAttributes,\n type CSSProperties,\n type ButtonHTMLAttributes,\n type ForwardedRef,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { DesignProfileContext, classNames } from \"./internal.js\";\n\nexport type { ButtonSize, ButtonTone } from \"@hjmds/design-contracts/recipes/base\";\nexport type {\n IconButtonEdge,\n IconButtonShape,\n IconButtonSize,\n IconButtonTone,\n} from \"@hjmds/design-contracts/recipes\";\nimport type { HjmCompositionStyleProp } from \"./composition-style.js\";\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n Readonly<{\n tone?: ButtonTone;\n size?: ButtonSize;\n /** Extra pointer area in pixels; compact header tools use 0. Defaults to the size recipe. */\n hitSlop?: number;\n /** Frame geometry. `pill` replaces product code that overrode `border-radius`. */\n shape?: ButtonShape;\n appearance?: ButtonAppearance;\n fullWidth?: boolean;\n /** Label placement inside the frame; `leading` suits a full-width row action. */\n align?: ButtonAlign;\n /** Toggle state. Paints the selected treatment and sets `aria-pressed`. */\n selected?: boolean;\n loading?: boolean;\n /** Explicit confirmed mutation result. Both text labels remain measured in every state. */\n completion?: Readonly<{ confirmed: boolean; label: string }>;\n leading?: ReactNode;\n trailing?: ReactNode;\n /**\n * Container edge(s) this button sits on. A ghost button overhangs that edge by its inline padding so the label\n * or trailing glyph lines up with the container inset (`resolveButtonEdgeOverhang`); framed tones keep their frame.\n */\n edge?: ButtonEdge;\n /** Canonical layout-only placement. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n}>;\n\n// Both semantic hosts use the same recipe and product profile; navigation must not\n// recreate button paint in a product or turn an anchor into a nested button.\nfunction useButtonPaint(tone: ButtonTone, size: ButtonSize, suppliedShape?: ButtonShape, suppliedAppearance?: ButtonAppearance) {\n const profile = useContext(DesignProfileContext);\n const shape = suppliedShape ?? profile?.controls?.button?.shape ?? buttonRecipe.defaults.shape;\n const appearance = suppliedAppearance ?? profile?.controls?.button?.appearance ?? buttonRecipe.defaults.appearance;\n const depth = resolveButtonDepth(appearance, tone, size);\n const side = tone === \"secondary\" ? \"var(--hjm-color-border-control)\" : tone === \"danger\" ? \"var(--hjm-color-danger-fill)\" : \"var(--hjm-color-primary)\";\n return { shape, appearance, depth, style: {\n \"--hjm-button-label-lines\": buttonRecipe.label.maxLines,\n \"--hjm-button-depth\": `${depth}px`, \"--hjm-button-side\": side,\n \"--hjm-button-side-shade\": `${buttonRecipe.raised.sideShade * 100}%`,\n \"--hjm-button-face-padding\": `${buttonRecipe.sizes[size].paddingHorizontal}px`,\n \"--hjm-button-settle\": `${buttonRecipe.raised.settleDuration}ms`,\n } as CSSProperties };\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n tone = buttonRecipe.defaults.tone,\n size = buttonRecipe.defaults.size,\n hitSlop,\n shape: suppliedShape,\n appearance: suppliedAppearance,\n fullWidth = false,\n align = buttonRecipe.defaults.align,\n selected,\n loading = false,\n completion,\n leading,\n trailing,\n edge,\n disabled,\n onClick,\n type = \"button\",\n className,\n children,\n layoutStyle,\n style,\n ...props\n },\n ref,\n) {\n const { shape, appearance, depth, style: paintStyle } = useButtonPaint(tone, size, suppliedShape, suppliedAppearance);\n const textParts = completion ? Children.toArray(children) : [];\n if (completion && (!completion.label.trim() || typeof completion.confirmed !== \"boolean\" || textParts.length === 0 || !textParts.every(part => typeof part === \"string\" || typeof part === \"number\"))) {\n throw new TypeError(\"Button completion requires a nonempty label, a boolean confirmed value and text-only children\");\n }\n const idleLabel = completion ? textParts.join(\"\") : children;\n const currentLabel = completion?.confirmed && !loading ? completion.label : idleLabel;\n // Preserve a focusable disabled action (e.g. a Carousel boundary).\n const ariaDisabled = props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n const unavailable = disabled === true || loading || ariaDisabled;\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (unavailable) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n onClick?.(event);\n };\n const content = <>\n {leading}\n {completion ? <span style={{ display: \"inline-grid\", minWidth: 0 }}>\n {/* Both labels contribute intrinsic dimensions, including wrapping/font changes. */}\n <span aria-hidden=\"true\" className=\"hjm-button__label\" style={{ gridArea: \"1 / 1\", visibility: \"hidden\" }}>{idleLabel}</span>\n <span aria-hidden=\"true\" className=\"hjm-button__label\" style={{ gridArea: \"1 / 1\", visibility: \"hidden\" }}>{completion.label}</span>\n <span className=\"hjm-button__label\" style={{ gridArea: \"1 / 1\", alignSelf: \"center\" }}>{currentLabel}</span>\n </span> : <span className=\"hjm-button__label\">{children}</span>}\n {trailing}\n {loading ? <span className=\"hjm-button__loading-indicator\" aria-hidden=\"true\"><span className=\"hjm-button__spinner\" /></span> : null}\n </>;\n return (\n <button\n {...props}\n // The cap lives in the recipe, not in the stylesheet: one number, one place.\n style={{ ...paintStyle, ...(hitSlop === undefined ? {} : { \"--hjm-button-hit-slop\": `${hitSlop}px` }), ...style, ...layoutStyle } as CSSProperties}\n ref={ref}\n type={type}\n className={classNames(\"hjm-button\", className)}\n data-tone={tone}\n data-size={size}\n data-shape={shape}\n data-appearance={appearance}\n data-raised={depth > 0 || undefined}\n data-full-width={fullWidth || undefined}\n data-align={align}\n data-edge={edge}\n {...(selected === undefined ? {} : { \"data-selected\": selected, \"aria-pressed\": selected })}\n data-state={loading ? \"loading\" : unavailable ? \"disabled\" : \"idle\"}\n aria-busy={loading || undefined}\n aria-disabled={unavailable || undefined}\n disabled={disabled && !loading}\n onClick={handleClick}\n >\n {depth > 0 ? <span className=\"hjm-button__face\">{content}</span> : content}\n </button>\n );\n});\n\n/** Web navigation with Button paint. Mutation/loading/toggle semantics belong to Button. */\nexport type ButtonLinkProps = AnchorHTMLAttributes<HTMLAnchorElement> &\n Pick<ButtonProps, \"tone\" | \"size\" | \"shape\" | \"appearance\" | \"fullWidth\" | \"align\" | \"leading\" | \"trailing\" | \"edge\" | \"layoutStyle\"> &\n Readonly<{\n href: string;\n disabled?: boolean;\n /** Framework routing adapter; HJM still owns the anchor destination, ref and disabled guards. */\n renderAnchor?: (props: AnchorHTMLAttributes<HTMLAnchorElement> & { ref: ForwardedRef<HTMLAnchorElement> }) => ReactElement;\n }>;\n\nexport const ButtonLink = forwardRef<HTMLAnchorElement, ButtonLinkProps>(function ButtonLink({\n href, disabled = false, tone = buttonRecipe.defaults.tone, size = buttonRecipe.defaults.size,\n shape: suppliedShape, appearance: suppliedAppearance, fullWidth = false,\n align = buttonRecipe.defaults.align, leading, trailing, edge, layoutStyle,\n children, className, style, onClick, onAuxClick, tabIndex, renderAnchor, ...props\n}, ref) {\n const { shape, appearance, depth, style: paintStyle } = useButtonPaint(tone, size, suppliedShape, suppliedAppearance);\n const unavailable = disabled || props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n const activate = (callback: typeof onClick) => (event: MouseEvent<HTMLAnchorElement>) => {\n if (unavailable) { event.preventDefault(); event.stopPropagation(); return; }\n callback?.(event);\n };\n const content = <>{leading}<span className=\"hjm-button__label\">{children}</span>{trailing}</>;\n const anchorProps = {\n ...props,\n ref,\n // Adapters must also receive no href while unavailable, including their framework's navigation path.\n href: unavailable ? undefined : href,\n role: unavailable ? \"link\" : props.role,\n \"aria-disabled\": unavailable || undefined,\n tabIndex: unavailable ? -1 : tabIndex,\n onClick: activate(onClick),\n onAuxClick: activate(onAuxClick),\n className: classNames(\"hjm-button\", className),\n style: { ...paintStyle, ...style, ...layoutStyle },\n \"data-tone\": tone,\n \"data-size\": size,\n \"data-shape\": shape,\n \"data-appearance\": appearance,\n \"data-raised\": depth > 0 || undefined,\n \"data-full-width\": fullWidth || undefined,\n \"data-align\": align,\n \"data-edge\": edge,\n \"data-state\": unavailable ? \"disabled\" : \"idle\",\n children: depth > 0 ? <span className=\"hjm-button__face\">{content}</span> : content,\n };\n return renderAnchor ? renderAnchor(anchorProps) : <a {...anchorProps} />;\n});\n\nexport type IconButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"aria-label\"\n> &\n Readonly<{\n label: string;\n tone?: IconButtonTone;\n size?: IconButtonSize;\n /** Extra pointer area in pixels; compact header tools use 0. Defaults to the size recipe. */\n hitSlop?: number;\n shape?: IconButtonShape;\n /** Toggle state. Paints the selected treatment and sets `aria-pressed`. */\n selected?: boolean;\n loading?: boolean;\n /**\n * Container edge(s) this button sits on (logical, RTL-aware). A ghost button keeps its touch target but overhangs\n * the edge by (diameter − glyph slot) / 2 so the glyph slot lines up with the container inset\n * (`resolveIconButtonEdgeOverhang`, 2026-10-17 measured audit). Framed tones align their frame and do not move.\n */\n edge?: IconButtonEdge;\n /**\n * Shadow token step for a floating control (iconButtonRecipe.elevation, default `none`). Filled tones only;\n * an elevated ghost button throws.\n */\n elevation?: ElevationStep;\n children: ReactNode;\n /** Canonical layout-only placement. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n}>;\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n function IconButton(\n {\n label,\n tone = iconButtonRecipe.defaults.tone,\n size = iconButtonRecipe.defaults.size,\n hitSlop,\n shape = iconButtonRecipe.defaults.shape,\n selected,\n loading = false,\n edge,\n elevation = iconButtonRecipe.elevation.default,\n disabled,\n onClick,\n type = \"button\",\n className,\n children,\n layoutStyle,\n style,\n ...props\n },\n ref,\n ) {\n validateIconButtonElevation(elevation, tone);\n // Preserve a focusable disabled action (e.g. a Carousel boundary).\n const ariaDisabled = props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n const unavailable = disabled === true || loading || ariaDisabled;\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (unavailable) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n onClick?.(event);\n };\n return (\n <button\n {...props}\n style={{ ...(hitSlop === undefined ? {} : { \"--hjm-button-hit-slop\": `${hitSlop}px` }), ...style, ...layoutStyle } as CSSProperties}\n ref={ref}\n type={type}\n className={classNames(\"hjm-icon-button\", className)}\n data-tone={tone}\n data-size={size}\n data-shape={shape}\n data-edge={edge}\n data-elevation={elevation === \"none\" ? undefined : elevation}\n {...(selected === undefined ? {} : { \"data-selected\": selected, \"aria-pressed\": selected })}\n data-state={loading ? \"loading\" : unavailable ? \"disabled\" : \"idle\"}\n aria-label={label}\n aria-busy={loading || undefined}\n aria-disabled={unavailable || undefined}\n disabled={disabled}\n onClick={handleClick}\n >\n {loading ? <span className=\"hjm-button__spinner\" aria-hidden=\"true\" /> : children}\n </button>\n );\n },\n);\n\n/**\n * Web navigation with IconButton paint, as ButtonLink is to Button. A 44px icon-only destination (shell settings,\n * profile) needs the IconButton frame, `edge` and a current-page treatment; ButtonLink's padded pill and a product\n * `<a>` with its own radius/size/selected CSS both drifted from IconButton (2026-10-23 Diairy ShellSettingsLink).\n * Toggle, loading and mutation semantics stay on IconButton.\n */\nexport type IconButtonLinkProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, \"aria-label\" | \"aria-current\" | \"children\"> &\n Pick<IconButtonProps, \"label\" | \"tone\" | \"size\" | \"hitSlop\" | \"shape\" | \"edge\" | \"layoutStyle\"> &\n Readonly<{\n href: string;\n /** Icon only; `label` is the accessible name. */\n children: ReactNode;\n /** The link points at the current page: `aria-current=\"page\"` with the selected surface (`iconButtonRecipe.states.selected`). */\n current?: boolean;\n disabled?: boolean;\n /** Framework routing adapter; HJM still owns the anchor destination, ref, name, current state and disabled guards. */\n renderAnchor?: (props: AnchorHTMLAttributes<HTMLAnchorElement> & { ref: ForwardedRef<HTMLAnchorElement> }) => ReactElement;\n }>;\n\nexport const IconButtonLink = forwardRef<HTMLAnchorElement, IconButtonLinkProps>(function IconButtonLink({\n href, label, tone = iconButtonRecipe.defaults.tone, size = iconButtonRecipe.defaults.size, hitSlop,\n shape = iconButtonRecipe.defaults.shape, edge, current = false, disabled = false, layoutStyle,\n children, className, style, onClick, onAuxClick, tabIndex, renderAnchor, ...props\n}, ref) {\n if (!label.trim()) throw new TypeError(\"IconButtonLink label must not be empty\");\n const unavailable = disabled || props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n const activate = (callback: typeof onClick) => (event: MouseEvent<HTMLAnchorElement>) => {\n if (unavailable) { event.preventDefault(); event.stopPropagation(); return; }\n callback?.(event);\n };\n const anchorProps = {\n ...props,\n ref,\n // Same guard as ButtonLink: an unavailable link gives adapters no href, so no framework can navigate it.\n href: unavailable ? undefined : href,\n role: unavailable ? \"link\" : props.role,\n \"aria-label\": label,\n \"aria-current\": current ? \"page\" as const : undefined,\n \"aria-disabled\": unavailable || undefined,\n tabIndex: unavailable ? -1 : tabIndex,\n onClick: activate(onClick),\n onAuxClick: activate(onAuxClick),\n className: classNames(\"hjm-icon-button\", className),\n style: { ...(hitSlop === undefined ? {} : { \"--hjm-button-hit-slop\": `${hitSlop}px` }), ...style, ...layoutStyle } as CSSProperties,\n \"data-tone\": tone,\n \"data-size\": size,\n \"data-shape\": shape,\n \"data-edge\": edge,\n \"data-state\": unavailable ? \"disabled\" : \"idle\",\n children,\n };\n return renderAnchor ? renderAnchor(anchorProps) : <a {...anchorProps} />;\n});\n\nexport type LinkRenderProps = AnchorHTMLAttributes<HTMLAnchorElement> &\n Readonly<{\n children: ReactNode;\n ref: ForwardedRef<HTMLAnchorElement>;\n \"data-tone\": LinkTone;\n \"data-variant\": LinkVariant;\n \"data-state\": \"disabled\" | \"idle\";\n }>;\n\nexport type LinkProps = AnchorHTMLAttributes<HTMLAnchorElement> &\n Readonly<{\n tone?: LinkTone;\n variant?: LinkVariant;\n disabled?: boolean;\n leading?: ReactNode;\n trailing?: ReactNode;\n /** Framework adapter, for example Next.js Link, while HJM keeps link semantics and state. */\n renderAnchor?: (props: LinkRenderProps) => ReactElement;\n /** Canonical layout-only placement on the root element. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n }>;\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(\n {\n tone = linkRecipe.defaults.tone,\n variant = linkRecipe.defaults.variant,\n disabled = false,\n leading,\n trailing,\n renderAnchor,\n target,\n rel,\n tabIndex,\n onClick,\n className,\n children,\n layoutStyle,\n ...props\n },\n ref,\n) {\n const handleClick = (event: MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onClick?.(event);\n };\n const anchorProps: LinkRenderProps = {\n ...props,\n // `renderAnchor` adapters receive the merged placement, so a framework Link\n // gets the same position as the plain <a>.\n ...(props.style === undefined && layoutStyle === undefined ? {} : { style: { ...props.style, ...layoutStyle } }),\n ref,\n className: classNames(\"hjm-link\", className),\n \"data-tone\": tone,\n \"data-variant\": variant,\n \"data-state\": disabled ? \"disabled\" : \"idle\",\n \"aria-disabled\": disabled || undefined,\n tabIndex: disabled ? -1 : tabIndex,\n target,\n rel: rel ?? (target === \"_blank\" ? \"noreferrer noopener\" : undefined),\n onClick: handleClick,\n children: (\n <>\n {leading}\n <span>{children}</span>\n {trailing}\n </>\n ),\n };\n return renderAnchor ? renderAnchor(anchorProps) : <a {...anchorProps} />;\n});\n"]}
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport {\n buttonRecipe,\n resolveButtonDepth,\n type ButtonAppearance,\n type ButtonAlign,\n type ButtonEdge,\n type ButtonShape,\n type ButtonSize,\n type ButtonTone,\n} from \"@hjmds/design-contracts/recipes/base\";\n\nexport type { ButtonAlign, ButtonEdge, ButtonShape, ButtonAppearance };\nimport type { ElevationStep } from \"@hjmds/design-contracts/foundations\";\nimport {\n iconButtonRecipe,\n linkRecipe,\n validateIconButtonElevation,\n type IconButtonEdge,\n type IconButtonShape,\n type IconButtonSize,\n type IconButtonTone,\n type LinkTone,\n type LinkVariant,\n} from \"@hjmds/design-contracts/recipes\";\nimport {\n Children,\n useContext,\n forwardRef,\n type AnchorHTMLAttributes,\n type CSSProperties,\n type ButtonHTMLAttributes,\n type ForwardedRef,\n type MouseEvent,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { DesignProfileContext, classNames } from \"./internal.js\";\n\nexport type { ButtonSize, ButtonTone } from \"@hjmds/design-contracts/recipes/base\";\nexport type {\n IconButtonEdge,\n IconButtonShape,\n IconButtonSize,\n IconButtonTone,\n} from \"@hjmds/design-contracts/recipes\";\nimport type { HjmCompositionStyleProp } from \"./composition-style.js\";\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n Readonly<{\n tone?: ButtonTone;\n size?: ButtonSize;\n /** Extra pointer area in pixels; compact header tools use 0. Defaults to the size recipe. */\n hitSlop?: number;\n /** Frame geometry. `pill` replaces product code that overrode `border-radius`. */\n shape?: ButtonShape;\n appearance?: ButtonAppearance;\n fullWidth?: boolean;\n /** Label placement inside the frame; `leading` suits a full-width row action. */\n align?: ButtonAlign;\n /** Toggle state. Preserves tone background and sets `aria-pressed`. */\n selected?: boolean;\n loading?: boolean;\n /** Explicit confirmed mutation result. Both text labels remain measured in every state. */\n completion?: Readonly<{ confirmed: boolean; label: string }>;\n leading?: ReactNode;\n trailing?: ReactNode;\n /**\n * Container edge(s) this button sits on. A ghost button overhangs that edge by its inline padding so the label\n * or trailing glyph lines up with the container inset (`resolveButtonEdgeOverhang`); framed tones keep their frame.\n */\n edge?: ButtonEdge;\n /** Canonical layout-only placement. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n}>;\n\n// Both semantic hosts use the same recipe and product profile; navigation must not\n// recreate button paint in a product or turn an anchor into a nested button.\nfunction useButtonPaint(tone: ButtonTone, size: ButtonSize, suppliedShape?: ButtonShape, suppliedAppearance?: ButtonAppearance) {\n const profile = useContext(DesignProfileContext);\n const shape = suppliedShape ?? profile?.controls?.button?.shape ?? buttonRecipe.defaults.shape;\n const appearance = suppliedAppearance ?? profile?.controls?.button?.appearance ?? buttonRecipe.defaults.appearance;\n const depth = resolveButtonDepth(appearance, tone, size);\n const side = tone === \"secondary\" ? \"var(--hjm-color-border-control)\" : tone === \"danger\" ? \"var(--hjm-color-danger-fill)\" : \"var(--hjm-color-primary)\";\n return { shape, appearance, depth, style: {\n \"--hjm-button-label-lines\": buttonRecipe.label.maxLines,\n \"--hjm-button-depth\": `${depth}px`, \"--hjm-button-side\": side,\n \"--hjm-button-side-shade\": `${buttonRecipe.raised.sideShade * 100}%`,\n \"--hjm-button-face-padding\": `${buttonRecipe.sizes[size].paddingHorizontal}px`,\n \"--hjm-button-settle\": `${buttonRecipe.raised.settleDuration}ms`,\n } as CSSProperties };\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n tone = buttonRecipe.defaults.tone,\n size = buttonRecipe.defaults.size,\n hitSlop,\n shape: suppliedShape,\n appearance: suppliedAppearance,\n fullWidth = false,\n align = buttonRecipe.defaults.align,\n selected,\n loading = false,\n completion,\n leading,\n trailing,\n edge,\n disabled,\n onClick,\n type = \"button\",\n className,\n children,\n layoutStyle,\n style,\n ...props\n },\n ref,\n) {\n const { shape, appearance, depth, style: paintStyle } = useButtonPaint(tone, size, suppliedShape, suppliedAppearance);\n const textParts = completion ? Children.toArray(children) : [];\n if (completion && (!completion.label.trim() || typeof completion.confirmed !== \"boolean\" || textParts.length === 0 || !textParts.every(part => typeof part === \"string\" || typeof part === \"number\"))) {\n throw new TypeError(\"Button completion requires a nonempty label, a boolean confirmed value and text-only children\");\n }\n const idleLabel = completion ? textParts.join(\"\") : children;\n const currentLabel = completion?.confirmed && !loading ? completion.label : idleLabel;\n // Preserve a focusable disabled action (e.g. a Carousel boundary).\n const ariaDisabled = props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n const unavailable = disabled === true || loading || ariaDisabled;\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (unavailable) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n onClick?.(event);\n };\n const content = <>\n {leading}\n {completion ? <span style={{ display: \"inline-grid\", minWidth: 0 }}>\n {/* Both labels contribute intrinsic dimensions, including wrapping/font changes. */}\n <span aria-hidden=\"true\" className=\"hjm-button__label\" style={{ gridArea: \"1 / 1\", visibility: \"hidden\" }}>{idleLabel}</span>\n <span aria-hidden=\"true\" className=\"hjm-button__label\" style={{ gridArea: \"1 / 1\", visibility: \"hidden\" }}>{completion.label}</span>\n <span className=\"hjm-button__label\" style={{ gridArea: \"1 / 1\", alignSelf: \"center\" }}>{currentLabel}</span>\n </span> : <span className=\"hjm-button__label\">{children}</span>}\n {trailing}\n {loading ? <span className=\"hjm-button__loading-indicator\" aria-hidden=\"true\"><span className=\"hjm-button__spinner\" /></span> : null}\n </>;\n return (\n <button\n {...props}\n // The cap lives in the recipe, not in the stylesheet: one number, one place.\n style={{ ...paintStyle, ...(hitSlop === undefined ? {} : { \"--hjm-button-hit-slop\": `${hitSlop}px` }), ...style, ...layoutStyle } as CSSProperties}\n ref={ref}\n type={type}\n className={classNames(\"hjm-button\", className)}\n data-tone={tone}\n data-size={size}\n data-shape={shape}\n data-appearance={appearance}\n data-raised={depth > 0 || undefined}\n data-full-width={fullWidth || undefined}\n data-align={align}\n data-edge={edge}\n {...(selected === undefined ? {} : { \"data-selected\": selected, \"aria-pressed\": selected })}\n data-state={loading ? \"loading\" : unavailable ? \"disabled\" : \"idle\"}\n aria-busy={loading || undefined}\n aria-disabled={unavailable || undefined}\n disabled={disabled && !loading}\n onClick={handleClick}\n >\n {depth > 0 ? <span className=\"hjm-button__face\">{content}</span> : content}\n </button>\n );\n});\n\n/** Web navigation with Button paint. Mutation/loading/toggle semantics belong to Button. */\nexport type ButtonLinkProps = AnchorHTMLAttributes<HTMLAnchorElement> &\n Pick<ButtonProps, \"tone\" | \"size\" | \"shape\" | \"appearance\" | \"fullWidth\" | \"align\" | \"leading\" | \"trailing\" | \"edge\" | \"layoutStyle\"> &\n Readonly<{\n href: string;\n disabled?: boolean;\n /** Framework routing adapter; HJM still owns the anchor destination, ref and disabled guards. */\n renderAnchor?: (props: AnchorHTMLAttributes<HTMLAnchorElement> & { ref: ForwardedRef<HTMLAnchorElement> }) => ReactElement;\n }>;\n\nexport const ButtonLink = forwardRef<HTMLAnchorElement, ButtonLinkProps>(function ButtonLink({\n href, disabled = false, tone = buttonRecipe.defaults.tone, size = buttonRecipe.defaults.size,\n shape: suppliedShape, appearance: suppliedAppearance, fullWidth = false,\n align = buttonRecipe.defaults.align, leading, trailing, edge, layoutStyle,\n children, className, style, onClick, onAuxClick, tabIndex, renderAnchor, ...props\n}, ref) {\n const { shape, appearance, depth, style: paintStyle } = useButtonPaint(tone, size, suppliedShape, suppliedAppearance);\n const unavailable = disabled || props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n const activate = (callback: typeof onClick) => (event: MouseEvent<HTMLAnchorElement>) => {\n if (unavailable) { event.preventDefault(); event.stopPropagation(); return; }\n callback?.(event);\n };\n const content = <>{leading}<span className=\"hjm-button__label\">{children}</span>{trailing}</>;\n const anchorProps = {\n ...props,\n ref,\n // Adapters must also receive no href while unavailable, including their framework's navigation path.\n href: unavailable ? undefined : href,\n role: unavailable ? \"link\" : props.role,\n \"aria-disabled\": unavailable || undefined,\n tabIndex: unavailable ? -1 : tabIndex,\n onClick: activate(onClick),\n onAuxClick: activate(onAuxClick),\n className: classNames(\"hjm-button\", className),\n style: { ...paintStyle, ...style, ...layoutStyle },\n \"data-tone\": tone,\n \"data-size\": size,\n \"data-shape\": shape,\n \"data-appearance\": appearance,\n \"data-raised\": depth > 0 || undefined,\n \"data-full-width\": fullWidth || undefined,\n \"data-align\": align,\n \"data-edge\": edge,\n \"data-state\": unavailable ? \"disabled\" : \"idle\",\n children: depth > 0 ? <span className=\"hjm-button__face\">{content}</span> : content,\n };\n return renderAnchor ? renderAnchor(anchorProps) : <a {...anchorProps} />;\n});\n\nexport type IconButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"aria-label\"\n> &\n Readonly<{\n label: string;\n tone?: IconButtonTone;\n size?: IconButtonSize;\n /** Extra pointer area in pixels; compact header tools use 0. Defaults to the size recipe. */\n hitSlop?: number;\n shape?: IconButtonShape;\n /** Toggle state. Preserves tone background and sets `aria-pressed`. */\n selected?: boolean;\n loading?: boolean;\n /**\n * Container edge(s) this button sits on (logical, RTL-aware). A ghost button keeps its touch target but overhangs\n * the edge by (diameter − glyph slot) / 2 so the glyph slot lines up with the container inset\n * (`resolveIconButtonEdgeOverhang`, 2026-10-17 measured audit). Framed tones align their frame and do not move.\n */\n edge?: IconButtonEdge;\n /**\n * Shadow token step for a floating control (iconButtonRecipe.elevation, default `none`). Filled tones only;\n * an elevated ghost button throws.\n */\n elevation?: ElevationStep;\n children: ReactNode;\n /** Canonical layout-only placement. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n}>;\n\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n function IconButton(\n {\n label,\n tone = iconButtonRecipe.defaults.tone,\n size = iconButtonRecipe.defaults.size,\n hitSlop,\n shape = iconButtonRecipe.defaults.shape,\n selected,\n loading = false,\n edge,\n elevation = iconButtonRecipe.elevation.default,\n disabled,\n onClick,\n type = \"button\",\n className,\n children,\n layoutStyle,\n style,\n ...props\n },\n ref,\n ) {\n validateIconButtonElevation(elevation, tone);\n // Preserve a focusable disabled action (e.g. a Carousel boundary).\n const ariaDisabled = props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n const unavailable = disabled === true || loading || ariaDisabled;\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (unavailable) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n onClick?.(event);\n };\n return (\n <button\n {...props}\n style={{ ...(hitSlop === undefined ? {} : { \"--hjm-button-hit-slop\": `${hitSlop}px` }), ...style, ...layoutStyle } as CSSProperties}\n ref={ref}\n type={type}\n className={classNames(\"hjm-icon-button\", className)}\n data-tone={tone}\n data-size={size}\n data-shape={shape}\n data-edge={edge}\n data-elevation={elevation === \"none\" ? undefined : elevation}\n {...(selected === undefined ? {} : { \"data-selected\": selected, \"aria-pressed\": selected })}\n data-state={loading ? \"loading\" : unavailable ? \"disabled\" : \"idle\"}\n aria-label={label}\n aria-busy={loading || undefined}\n aria-disabled={unavailable || undefined}\n disabled={disabled}\n onClick={handleClick}\n >\n {loading ? <span className=\"hjm-button__spinner\" aria-hidden=\"true\" /> : children}\n </button>\n );\n },\n);\n\n/**\n * Web navigation with IconButton paint, as ButtonLink is to Button. A 44px icon-only destination (shell settings,\n * profile) needs the IconButton frame, `edge` and a current-page treatment; ButtonLink's padded pill and a product\n * `<a>` with its own radius/size/selected CSS both drifted from IconButton (2026-10-23 Diairy ShellSettingsLink).\n * Toggle, loading and mutation semantics stay on IconButton.\n */\nexport type IconButtonLinkProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, \"aria-label\" | \"aria-current\" | \"children\"> &\n Pick<IconButtonProps, \"label\" | \"tone\" | \"size\" | \"hitSlop\" | \"shape\" | \"edge\" | \"layoutStyle\"> &\n Readonly<{\n href: string;\n /** Icon only; `label` is the accessible name. */\n children: ReactNode;\n /** The link points at the current page: `aria-current=\"page\"` without changing the tone background. */\n current?: boolean;\n disabled?: boolean;\n /** Framework routing adapter; HJM still owns the anchor destination, ref, name, current state and disabled guards. */\n renderAnchor?: (props: AnchorHTMLAttributes<HTMLAnchorElement> & { ref: ForwardedRef<HTMLAnchorElement> }) => ReactElement;\n }>;\n\nexport const IconButtonLink = forwardRef<HTMLAnchorElement, IconButtonLinkProps>(function IconButtonLink({\n href, label, tone = iconButtonRecipe.defaults.tone, size = iconButtonRecipe.defaults.size, hitSlop,\n shape = iconButtonRecipe.defaults.shape, edge, current = false, disabled = false, layoutStyle,\n children, className, style, onClick, onAuxClick, tabIndex, renderAnchor, ...props\n}, ref) {\n if (!label.trim()) throw new TypeError(\"IconButtonLink label must not be empty\");\n const unavailable = disabled || props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n const activate = (callback: typeof onClick) => (event: MouseEvent<HTMLAnchorElement>) => {\n if (unavailable) { event.preventDefault(); event.stopPropagation(); return; }\n callback?.(event);\n };\n const anchorProps = {\n ...props,\n ref,\n // Same guard as ButtonLink: an unavailable link gives adapters no href, so no framework can navigate it.\n href: unavailable ? undefined : href,\n role: unavailable ? \"link\" : props.role,\n \"aria-label\": label,\n \"aria-current\": current ? \"page\" as const : undefined,\n \"aria-disabled\": unavailable || undefined,\n tabIndex: unavailable ? -1 : tabIndex,\n onClick: activate(onClick),\n onAuxClick: activate(onAuxClick),\n className: classNames(\"hjm-icon-button\", className),\n style: { ...(hitSlop === undefined ? {} : { \"--hjm-button-hit-slop\": `${hitSlop}px` }), ...style, ...layoutStyle } as CSSProperties,\n \"data-tone\": tone,\n \"data-size\": size,\n \"data-shape\": shape,\n \"data-edge\": edge,\n \"data-state\": unavailable ? \"disabled\" : \"idle\",\n children,\n };\n return renderAnchor ? renderAnchor(anchorProps) : <a {...anchorProps} />;\n});\n\nexport type LinkRenderProps = AnchorHTMLAttributes<HTMLAnchorElement> &\n Readonly<{\n children: ReactNode;\n ref: ForwardedRef<HTMLAnchorElement>;\n \"data-tone\": LinkTone;\n \"data-variant\": LinkVariant;\n \"data-state\": \"disabled\" | \"idle\";\n }>;\n\nexport type LinkProps = AnchorHTMLAttributes<HTMLAnchorElement> &\n Readonly<{\n tone?: LinkTone;\n variant?: LinkVariant;\n disabled?: boolean;\n leading?: ReactNode;\n trailing?: ReactNode;\n /** Framework adapter, for example Next.js Link, while HJM keeps link semantics and state. */\n renderAnchor?: (props: LinkRenderProps) => ReactElement;\n /** Canonical layout-only placement on the root element. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n }>;\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(\n {\n tone = linkRecipe.defaults.tone,\n variant = linkRecipe.defaults.variant,\n disabled = false,\n leading,\n trailing,\n renderAnchor,\n target,\n rel,\n tabIndex,\n onClick,\n className,\n children,\n layoutStyle,\n ...props\n },\n ref,\n) {\n const handleClick = (event: MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onClick?.(event);\n };\n const anchorProps: LinkRenderProps = {\n ...props,\n // `renderAnchor` adapters receive the merged placement, so a framework Link\n // gets the same position as the plain <a>.\n ...(props.style === undefined && layoutStyle === undefined ? {} : { style: { ...props.style, ...layoutStyle } }),\n ref,\n className: classNames(\"hjm-link\", className),\n \"data-tone\": tone,\n \"data-variant\": variant,\n \"data-state\": disabled ? \"disabled\" : \"idle\",\n \"aria-disabled\": disabled || undefined,\n tabIndex: disabled ? -1 : tabIndex,\n target,\n rel: rel ?? (target === \"_blank\" ? \"noreferrer noopener\" : undefined),\n onClick: handleClick,\n children: (\n <>\n {leading}\n <span>{children}</span>\n {trailing}\n </>\n ),\n };\n return renderAnchor ? renderAnchor(anchorProps) : <a {...anchorProps} />;\n});\n"]}
|
|
@@ -81,6 +81,8 @@ export type AvatarProps = Omit<HTMLAttributes<HTMLSpanElement>, "children"> & Av
|
|
|
81
81
|
disabled?: boolean;
|
|
82
82
|
}>;
|
|
83
83
|
src?: string;
|
|
84
|
+
/** contain preserves the entire picture inside the shaped frame, including its corners. */
|
|
85
|
+
imageFit?: "cover" | "contain";
|
|
84
86
|
fallback?: ReactNode;
|
|
85
87
|
renderFallback?: (context: AvatarFallbackContext) => ReactNode;
|
|
86
88
|
/** Product image host in place of the built-in `<img>`. Exclusive with `imageProps`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced-display.d.ts","sourceRoot":"","sources":["../src/advanced-display.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAG5G,OAAO,EAGL,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC5B,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAKL,KAAK,6BAA6B,EAClC,KAAK,sBAAsB,EAC5B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAGL,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAKL,aAAa,EACb,UAAU,EAEV,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAaL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEtB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAItE,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,GAC3E,QAAQ,CAAC;IACP,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;IACnD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,wFAAwF;IACxF,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,KAAK,SAAS,CAAC;IAC1G,gGAAgG;IAChG,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AAiCL,eAAO,MAAM,SAAS;WA5CX,SAAS,aAAa,EAAE;YACvB,SAAS,MAAM,EAAE;mBACV,SAAS,MAAM,EAAE;oBAChB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI;6BACzB,OAAO;cACtB,gBAAgB;mBACX,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,wFAAwF;sBACtE,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,KAAK,SAAS;IACzG,gGAAgG;kBAClF,uBAAuB;mCAsKxC,CAAC;AAGF,gHAAgH;AAChH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,gGAAgG;IAChG,SAAS,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC,CAAC;AAEH;;;;GAIG;AACH,KAAK,cAAc,GACf,QAAQ,CAAC;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5D,QAAQ,CAAC;IAAE,UAAU,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,GACzE,cAAc,GACd,QAAQ,CAAC;IACP,gFAAgF;IAChF,MAAM,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,IAAI,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,SAAS,CAAC;IAC/D,wFAAwF;IACxF,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,SAAS,CAAC;IAC3D,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,yGAAyG;IACzG,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,6GAA6G;IAC7G,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C,UAAU,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;IACtE,gGAAgG;IAChG,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AAEL,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"advanced-display.d.ts","sourceRoot":"","sources":["../src/advanced-display.tsx"],"names":[],"mappings":"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"}
|
package/dist/advanced-display.js
CHANGED
|
@@ -118,7 +118,7 @@ export const Accordion = forwardRef(function Accordion({ items, value: valueProp
|
|
|
118
118
|
focused.current = { id: item.id, index, node: event.target }; }, className: "hjm-accordion__item", "data-state": item.disabled ? "disabled" : expanded ? "expanded" : "collapsed", children: [createElement(`h${headingLevel}`, { className: "hjm-accordion__header" }, trigger), _jsx("div", { id: panelId, role: "region", className: "hjm-accordion__panel", "aria-labelledby": triggerId, hidden: !expanded, children: item.panel })] }, item.id));
|
|
119
119
|
}) }));
|
|
120
120
|
});
|
|
121
|
-
export const Avatar = forwardRef(function Avatar({ name, action, src, alt: altProp, decorative = false, fallback, renderFallback, renderImage, size = avatarRecipe.defaults.size, shape = avatarRecipe.defaults.shape, frame = avatarRecipe.defaults.frame, accessory, accessoryPlacement = avatarRecipe.defaults.accessoryPlacement, imageProps, className, layoutStyle, ...props }, ref) {
|
|
121
|
+
export const Avatar = forwardRef(function Avatar({ name, action, src, imageFit = "cover", alt: altProp, decorative = false, fallback, renderFallback, renderImage, size = avatarRecipe.defaults.size, shape = avatarRecipe.defaults.shape, frame = avatarRecipe.defaults.frame, accessory, accessoryPlacement = avatarRecipe.defaults.accessoryPlacement, imageProps, className, layoutStyle, ...props }, ref) {
|
|
122
122
|
if (!decorative && (name === undefined || name.trim().length === 0))
|
|
123
123
|
throw new TypeError("Avatar name must not be empty");
|
|
124
124
|
if (renderImage && imageProps)
|
|
@@ -136,8 +136,9 @@ export const Avatar = forwardRef(function Avatar({ name, action, src, alt: altPr
|
|
|
136
136
|
setFailed(generation); };
|
|
137
137
|
const initials = name !== undefined && name.trim().length > 0 ? resolveAvatarInitials(name) : null;
|
|
138
138
|
const avatarNode = (_jsxs("span", { ...props, "aria-hidden": decorative || props["aria-hidden"], style: { ...props.style, ...(action ? {} : layoutStyle), "--hjm-avatar-size": `${diameter}px`,
|
|
139
|
+
"--hjm-avatar-contained-ratio": avatarRecipe.containedImageRatio,
|
|
139
140
|
// Absolute children are placed from the padding edge; subtract the frame border so the offset is from the box.
|
|
140
|
-
"--hjm-avatar-accessory-inset": `${0 - avatarRecipe.accessory.offset - avatarRecipe.frames[frame].borderWidth}px` }, ref: ref, className: classNames("hjm-avatar", className), "data-size": size, "data-shape": shape, "data-frame": frame, "data-state": imageAvailable ? "image" : "fallback", children: [src && imageAvailable ? (renderImage ? (_jsx(Fragment, { children: renderImage({ src, alt, size: diameter, className: "hjm-avatar__image", onError: fail }) }, src)) : (_createElement("img", { ...restImageProps, key: src, src: src, alt: alt, className: classNames("hjm-avatar__image", imageClassName), onError: (event) => {
|
|
141
|
+
"--hjm-avatar-accessory-inset": `${0 - avatarRecipe.accessory.offset - avatarRecipe.frames[frame].borderWidth}px` }, ref: ref, className: classNames("hjm-avatar", className), "data-size": size, "data-shape": shape, "data-image-fit": imageFit, "data-frame": frame, "data-state": imageAvailable ? "image" : "fallback", children: [src && imageAvailable ? (renderImage ? (_jsx(Fragment, { children: renderImage({ src, alt, size: diameter, className: "hjm-avatar__image", onError: fail }) }, src)) : (_createElement("img", { ...restImageProps, key: src, src: src, alt: alt, className: classNames("hjm-avatar__image", imageClassName), onError: (event) => {
|
|
141
142
|
if (active.current !== generation)
|
|
142
143
|
return;
|
|
143
144
|
setFailed(generation);
|