@planningcenter/tapestry 4.11.0 → 4.12.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/components/DataTable/CollectionEditorsLazy.js +2 -1
- package/dist/components/DataTable/CollectionEditorsLazy.js.map +1 -1
- package/dist/components/DataTable/DataTable.d.ts +49 -14
- package/dist/components/DataTable/DataTable.d.ts.map +1 -1
- package/dist/components/DataTable/DataTable.js +32 -24
- package/dist/components/DataTable/DataTable.js.map +1 -1
- package/dist/components/DataTable/DeleteSavedViewAlertDialog.d.ts +14 -0
- package/dist/components/DataTable/DeleteSavedViewAlertDialog.d.ts.map +1 -0
- package/dist/components/DataTable/DeleteSavedViewAlertDialog.js +10 -0
- package/dist/components/DataTable/DeleteSavedViewAlertDialog.js.map +1 -0
- package/dist/components/DataTable/ManageSavedViewsButton.d.ts +4 -1
- package/dist/components/DataTable/ManageSavedViewsButton.d.ts.map +1 -1
- package/dist/components/DataTable/ManageSavedViewsButton.js +3 -7
- package/dist/components/DataTable/ManageSavedViewsButton.js.map +1 -1
- package/dist/components/DataTable/ManageSavedViewsModal.d.ts +11 -1
- package/dist/components/DataTable/ManageSavedViewsModal.d.ts.map +1 -1
- package/dist/components/DataTable/ManageSavedViewsModal.js +265 -5
- package/dist/components/DataTable/ManageSavedViewsModal.js.map +1 -1
- package/dist/components/DataTable/ManageSavedViewsModal.module.css.js +4 -0
- package/dist/components/DataTable/ManageSavedViewsModal.module.css.js.map +1 -0
- package/dist/components/DataTable/NewSavedViewModal.d.ts +4 -1
- package/dist/components/DataTable/NewSavedViewModal.d.ts.map +1 -1
- package/dist/components/DataTable/NewSavedViewModal.js.map +1 -1
- package/dist/components/DataTable/ResultsCount.d.ts +9 -0
- package/dist/components/DataTable/ResultsCount.d.ts.map +1 -1
- package/dist/components/DataTable/ResultsCount.js +1 -1
- package/dist/components/DataTable/ResultsCount.js.map +1 -1
- package/dist/components/DataTable/SavedViewsBar.d.ts +14 -6
- package/dist/components/DataTable/SavedViewsBar.d.ts.map +1 -1
- package/dist/components/DataTable/SavedViewsBar.js +176 -45
- package/dist/components/DataTable/SavedViewsBar.js.map +1 -1
- package/dist/components/DataTable/TableActions.d.ts.map +1 -1
- package/dist/components/DataTable/TableActions.js +4 -6
- package/dist/components/DataTable/TableActions.js.map +1 -1
- package/dist/components/DataTable/ViewSettingsToggle.d.ts.map +1 -1
- package/dist/components/DataTable/ViewSettingsToggle.js +2 -4
- package/dist/components/DataTable/ViewSettingsToggle.js.map +1 -1
- package/dist/components/DataTable/index.d.ts +1 -1
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DataTable/savedViews.d.ts +40 -15
- package/dist/components/DataTable/savedViews.d.ts.map +1 -1
- package/dist/components/DataTable/savedViews.js +85 -6
- package/dist/components/DataTable/savedViews.js.map +1 -1
- package/dist/components/DataTable/useActiveSavedView.d.ts +1 -1
- package/dist/components/DataTable/useActiveSavedView.d.ts.map +1 -1
- package/dist/components/DataTable/useActiveSavedView.js +9 -3
- package/dist/components/DataTable/useActiveSavedView.js.map +1 -1
- package/dist/components/DataTable/useFilterAnnouncement.d.ts +24 -0
- package/dist/components/DataTable/useFilterAnnouncement.d.ts.map +1 -0
- package/dist/components/DataTable/useFilterAnnouncement.js +49 -0
- package/dist/components/DataTable/useFilterAnnouncement.js.map +1 -0
- package/dist/components/DataTable/useUpdateSavedViewName.d.ts +7 -0
- package/dist/components/DataTable/useUpdateSavedViewName.d.ts.map +1 -0
- package/dist/components/DataTable/useUpdateSavedViewName.js +12 -0
- package/dist/components/DataTable/useUpdateSavedViewName.js.map +1 -0
- package/dist/components/button/ActionsDropdownIconButton.d.ts +18 -9
- package/dist/components/button/ActionsDropdownIconButton.d.ts.map +1 -1
- package/dist/components/button/ActionsDropdownIconButton.js +5 -2
- package/dist/components/button/ActionsDropdownIconButton.js.map +1 -1
- package/dist/components/button/BaseButton.d.ts.map +1 -1
- package/dist/components/button/BaseButton.js +2 -1
- package/dist/components/button/BaseButton.js.map +1 -1
- package/dist/components/button/DropdownIconButton.d.ts +4 -5
- package/dist/components/button/DropdownIconButton.d.ts.map +1 -1
- package/dist/components/button/DropdownIconButton.js +2 -1
- package/dist/components/button/DropdownIconButton.js.map +1 -1
- package/dist/components/button/IconButton.d.ts +31 -10
- package/dist/components/button/IconButton.d.ts.map +1 -1
- package/dist/components/button/IconButton.js +8 -2
- package/dist/components/button/IconButton.js.map +1 -1
- package/dist/components/button/ToggleIconButton.d.ts +4 -1
- package/dist/components/button/ToggleIconButton.d.ts.map +1 -1
- package/dist/components/button/ToggleIconButton.js +1 -0
- package/dist/components/button/ToggleIconButton.js.map +1 -1
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/button/index.d.ts.map +1 -1
- package/dist/components/combo-box/ComboBox.d.ts +8 -0
- package/dist/components/combo-box/ComboBox.d.ts.map +1 -1
- package/dist/components/combo-box/ComboBox.js +31 -5
- package/dist/components/combo-box/ComboBox.js.map +1 -1
- package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
- package/dist/components/date-picker/DatePicker.js +18 -14
- package/dist/components/date-picker/DatePicker.js.map +1 -1
- package/dist/components/internal/LoadingAnnouncement.d.ts +11 -0
- package/dist/components/internal/LoadingAnnouncement.d.ts.map +1 -0
- package/dist/components/internal/LoadingAnnouncement.js +21 -0
- package/dist/components/internal/LoadingAnnouncement.js.map +1 -0
- package/dist/components/internal/alert-dialog/AlertDialog.d.ts +56 -0
- package/dist/components/internal/alert-dialog/AlertDialog.d.ts.map +1 -0
- package/dist/components/internal/alert-dialog/AlertDialog.js +68 -0
- package/dist/components/internal/alert-dialog/AlertDialog.js.map +1 -0
- package/dist/components/internal/alert-dialog/index.d.ts +5 -0
- package/dist/components/internal/alert-dialog/index.d.ts.map +1 -0
- package/dist/components/internal/index.d.ts +1 -0
- package/dist/components/internal/index.d.ts.map +1 -1
- package/dist/components/internal/tooltip/Tooltip.d.ts +13 -5
- package/dist/components/internal/tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/internal/tooltip/Tooltip.js +63 -8
- package/dist/components/internal/tooltip/Tooltip.js.map +1 -1
- package/dist/components/internal/tooltip/TooltipTriggerContext.d.ts +3 -3
- package/dist/components/internal/tooltip/TooltipTriggerContext.d.ts.map +1 -1
- package/dist/components/internal/tooltip/TooltipTriggerContext.js +1 -1
- package/dist/components/internal/tooltip/TooltipTriggerContext.js.map +1 -1
- package/dist/components/internal/tooltip/index.d.ts +1 -1
- package/dist/components/internal/tooltip/index.d.ts.map +1 -1
- package/dist/components/link/BaseLink.d.ts.map +1 -1
- package/dist/components/link/BaseLink.js +15 -3
- package/dist/components/link/BaseLink.js.map +1 -1
- package/dist/components/link/IconLink.d.ts +28 -290
- package/dist/components/link/IconLink.d.ts.map +1 -1
- package/dist/components/link/IconLink.js +9 -2
- package/dist/components/link/IconLink.js.map +1 -1
- package/dist/components/page-header/defineElements.js +1 -1
- package/dist/components/pane/Pane.d.ts +1 -1
- package/dist/components/pane/Pane.js +1 -1
- package/dist/components/pane/Pane.js.map +1 -1
- package/dist/components/pane/PaneBody.d.ts +1 -1
- package/dist/components/pane/PaneBody.js +1 -1
- package/dist/components/pane/PaneBody.js.map +1 -1
- package/dist/components/pane/PaneDivider.d.ts +6 -3
- package/dist/components/pane/PaneDivider.d.ts.map +1 -1
- package/dist/components/pane/PaneDivider.js +3 -3
- package/dist/components/pane/PaneDivider.js.map +1 -1
- package/dist/components/pane/PaneFooter.d.ts +1 -1
- package/dist/components/pane/PaneFooter.js +1 -1
- package/dist/components/pane/PaneFooter.js.map +1 -1
- package/dist/components/pane/PaneHeader.d.ts +1 -1
- package/dist/components/pane/PaneHeader.js +1 -1
- package/dist/components/pane/PaneHeader.js.map +1 -1
- package/dist/components/pane/PaneHeaderActions.d.ts +1 -1
- package/dist/components/pane/PaneHeaderActions.js +1 -1
- package/dist/components/pane/PaneHeaderActions.js.map +1 -1
- package/dist/components/sidenav/defineElements.js +1 -1
- package/dist/components/time-field/TimeField.d.ts.map +1 -1
- package/dist/components/time-field/TimeField.js +7 -3
- package/dist/components/time-field/TimeField.js.map +1 -1
- package/dist/index.css +169 -27
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/packages/tapestry-wc/dist/components/{p-np7vhMVg.js → p-A1JK45WV.js} +3 -3
- package/dist/packages/tapestry-wc/dist/components/p-A1JK45WV.js.map +1 -0
- package/dist/packages/tapestry-wc/dist/components/{p-BVvtAaVT.js → p-BbuNAv9q.js} +3 -3
- package/dist/packages/tapestry-wc/dist/components/p-BbuNAv9q.js.map +1 -0
- package/dist/packages/tapestry-wc/dist/components/{p-B2xqMgNQ.js → p-CBFtMIxJ.js} +2 -2
- package/dist/packages/tapestry-wc/dist/components/p-CBFtMIxJ.js.map +1 -0
- package/dist/packages/tapestry-wc/dist/components/{p-Rn6lOB18.js → p-CY_DC4d_.js} +3 -3
- package/dist/packages/tapestry-wc/dist/components/p-CY_DC4d_.js.map +1 -0
- package/dist/packages/tapestry-wc/dist/components/{p-6NO22Vi_.js → p-DNHgMtxw.js} +2 -2
- package/dist/packages/tapestry-wc/dist/components/p-DNHgMtxw.js.map +1 -0
- package/dist/packages/tapestry-wc/dist/components/tds-page-header-nav.js +2 -2
- package/dist/packages/tapestry-wc/dist/components/tds-page-header-nav.js.map +1 -1
- package/dist/packages/tapestry-wc/dist/components/tds-page-header.js +3 -3
- package/dist/packages/tapestry-wc/dist/components/tds-page-header.js.map +1 -1
- package/dist/packages/tapestry-wc/dist/components/tds-sidenav-item.js +3 -3
- package/dist/packages/tapestry-wc/dist/components/tds-sidenav-item.js.map +1 -1
- package/dist/packages/tapestry-wc/dist/components/tds-sidenav-responsive-header.js +2 -2
- package/dist/packages/tapestry-wc/dist/components/tds-sidenav-responsive-header.js.map +1 -1
- package/dist/packages/tapestry-wc/dist/components/tds-sidenav-section.js +3 -3
- package/dist/packages/tapestry-wc/dist/components/tds-sidenav-section.js.map +1 -1
- package/dist/packages/tapestry-wc/dist/components/tds-sidenav.js +5 -5
- package/dist/packages/tapestry-wc/dist/components/tds-sidenav.js.map +1 -1
- package/dist/reactRender.css +756 -574
- package/dist/reactRender.css.map +1 -1
- package/dist/reactRenderLegacy.css +756 -574
- package/dist/reactRenderLegacy.css.map +1 -1
- package/dist/tapestryMount.css +756 -574
- package/dist/tapestryMount.css.map +1 -1
- package/dist/tapestryMountLegacy.css +756 -574
- package/dist/tapestryMountLegacy.css.map +1 -1
- package/dist/unstable.css +309 -127
- package/dist/unstable.css.map +1 -1
- package/dist/unstable.d.ts +0 -1
- package/dist/unstable.d.ts.map +1 -1
- package/dist/unstable.js +6 -6
- package/dist/utilities/dateFieldLocale.d.ts +2 -0
- package/dist/utilities/dateFieldLocale.d.ts.map +1 -0
- package/dist/utilities/dateFieldLocale.js +32 -0
- package/dist/utilities/dateFieldLocale.js.map +1 -0
- package/dist/utilities/useAnnounce.d.ts +22 -0
- package/dist/utilities/useAnnounce.d.ts.map +1 -0
- package/dist/utilities/useAnnounce.js +27 -0
- package/dist/utilities/useAnnounce.js.map +1 -0
- package/dist/utilities/useDateFieldLocale.d.ts +2 -0
- package/dist/utilities/useDateFieldLocale.d.ts.map +1 -0
- package/dist/utilities/useDateFieldLocale.js +11 -0
- package/dist/utilities/useDateFieldLocale.js.map +1 -0
- package/package.json +4 -4
- package/dist/packages/tapestry-wc/dist/components/p-6NO22Vi_.js.map +0 -1
- package/dist/packages/tapestry-wc/dist/components/p-B2xqMgNQ.js.map +0 -1
- package/dist/packages/tapestry-wc/dist/components/p-BVvtAaVT.js.map +0 -1
- package/dist/packages/tapestry-wc/dist/components/p-Rn6lOB18.js.map +0 -1
- package/dist/packages/tapestry-wc/dist/components/p-np7vhMVg.js.map +0 -1
|
@@ -1,15 +1,27 @@
|
|
|
1
|
+
import { TooltipTriggerContext } from '../internal/tooltip/TooltipTriggerContext.js';
|
|
1
2
|
import { Slot, Slottable } from '@radix-ui/react-slot';
|
|
2
3
|
import { COMPONENT_SIZE_CLASS_MAP, COMPONENT_KIND_CLASS_MAP, wrapStringWithSpan } from '../../utilities/buttonLinkShared.js';
|
|
3
4
|
import classNames from 'classnames';
|
|
4
|
-
import React__default, { forwardRef } from 'react';
|
|
5
|
+
import React__default, { forwardRef, useContext } from 'react';
|
|
6
|
+
import { mergeProps } from 'react-aria/mergeProps';
|
|
7
|
+
import { mergeRefs } from 'react-aria/mergeRefs';
|
|
5
8
|
|
|
6
|
-
const BaseLink = forwardRef(({ asChild = false, children, className, external = false, fullWidth, href, kind, label, prefix, size, suffix, ...restProps }, ref) => {
|
|
9
|
+
const BaseLink = forwardRef(({ asChild = false, "aria-describedby": ariaDescribedBy, children, className, external = false, fullWidth, href, kind, label, prefix, size, suffix, ...restProps }, ref) => {
|
|
10
|
+
const tooltip = useContext(TooltipTriggerContext);
|
|
11
|
+
const { "aria-describedby": tooltipId, ...tooltipTriggerProps } = tooltip?.triggerProps ?? {};
|
|
12
|
+
const mergedProps = tooltip
|
|
13
|
+
? mergeProps(restProps, tooltipTriggerProps)
|
|
14
|
+
: restProps;
|
|
15
|
+
const mergedRef = tooltip
|
|
16
|
+
? mergeRefs(ref, tooltip.ref)
|
|
17
|
+
: ref;
|
|
18
|
+
const describedBy = [ariaDescribedBy, tooltipId].filter(Boolean).join(" ") || undefined;
|
|
7
19
|
const combinedClassName = classNames(kind && "tds-btn", size && size !== "md" && kind && COMPONENT_SIZE_CLASS_MAP[size], kind && COMPONENT_KIND_CLASS_MAP[kind], fullWidth && "tds-btn--full-width", className, { "tds-btn--prefix": prefix, "tds-btn--suffix": suffix });
|
|
8
20
|
const externalProps = external
|
|
9
21
|
? { rel: "noopener noreferrer", target: "_blank" }
|
|
10
22
|
: {};
|
|
11
23
|
const Comp = asChild ? Slot : "a";
|
|
12
|
-
return (React__default.createElement(Comp, { ...(!asChild && { href }), className: combinedClassName, ref:
|
|
24
|
+
return (React__default.createElement(Comp, { ...(!asChild && { href }), className: combinedClassName, ref: mergedRef, ...mergedProps, "aria-describedby": describedBy, ...externalProps },
|
|
13
25
|
wrapStringWithSpan(prefix),
|
|
14
26
|
React__default.createElement(Slottable, null, label || children),
|
|
15
27
|
wrapStringWithSpan(suffix)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseLink.js","sources":["../../../src/components/link/BaseLink.tsx"],"sourcesContent":["import \"../button/btn.css\"\n\nimport { Slot, Slottable } from \"@radix-ui/react-slot\"\nimport {\n BaseComponentProps,\n COMPONENT_KIND_CLASS_MAP,\n COMPONENT_SIZE_CLASS_MAP,\n ComponentKind,\n wrapStringWithSpan,\n} from \"@utilities/buttonLinkShared\"\nimport { Simplify } from \"@utilities/typeUtils\"\nimport classNames from \"classnames\"\nimport React, {
|
|
1
|
+
{"version":3,"file":"BaseLink.js","sources":["../../../src/components/link/BaseLink.tsx"],"sourcesContent":["import \"../button/btn.css\"\n\nimport { TooltipTriggerContext } from \"@components/internal/tooltip/TooltipTriggerContext\"\nimport { Slot, Slottable } from \"@radix-ui/react-slot\"\nimport {\n BaseComponentProps,\n COMPONENT_KIND_CLASS_MAP,\n COMPONENT_SIZE_CLASS_MAP,\n ComponentKind,\n wrapStringWithSpan,\n} from \"@utilities/buttonLinkShared\"\nimport { Simplify } from \"@utilities/typeUtils\"\nimport classNames from \"classnames\"\nimport React, {\n AnchorHTMLAttributes,\n forwardRef,\n RefObject,\n useContext,\n} from \"react\"\nimport { mergeProps } from \"react-aria/mergeProps\"\nimport { mergeRefs } from \"react-aria/mergeRefs\"\n\ntype BaseLinkBaseProps = BaseComponentProps &\n Omit<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n keyof BaseComponentProps | \"children\" | \"href\"\n > & {\n children?: React.ReactNode\n external?: boolean\n kind?: ComponentKind\n label?: React.ReactNode\n }\n\nexport type BaseLinkElementProps =\n | Simplify<\n BaseLinkBaseProps & {\n /**\n * When true, merges the link's styling onto the child element instead\n * of rendering an `<a>`. Use to wrap a router link (e.g. react-router,\n * Next.js) or any link-like component. The `external` prop still\n * applies — it spreads `rel`/`target` onto the child element.\n */\n asChild: true\n href?: never\n }\n >\n | Simplify<BaseLinkBaseProps & { asChild?: false; href: string }>\n\nexport const BaseLink = forwardRef<HTMLAnchorElement, BaseLinkElementProps>(\n (\n {\n asChild = false,\n \"aria-describedby\": ariaDescribedBy,\n children,\n className,\n external = false,\n fullWidth,\n href,\n kind,\n label,\n prefix,\n size,\n suffix,\n ...restProps\n }: BaseLinkElementProps,\n ref\n ) => {\n const tooltip = useContext(TooltipTriggerContext)\n const { \"aria-describedby\": tooltipId, ...tooltipTriggerProps } =\n tooltip?.triggerProps ?? {}\n\n const mergedProps = tooltip\n ? mergeProps(restProps, tooltipTriggerProps)\n : restProps\n const mergedRef = tooltip\n ? mergeRefs<HTMLAnchorElement>(\n ref,\n tooltip.ref as RefObject<HTMLAnchorElement>\n )\n : ref\n const describedBy =\n [ariaDescribedBy, tooltipId].filter(Boolean).join(\" \") || undefined\n\n const combinedClassName = classNames(\n kind && \"tds-btn\",\n size && size !== \"md\" && kind && COMPONENT_SIZE_CLASS_MAP[size],\n kind && COMPONENT_KIND_CLASS_MAP[kind],\n fullWidth && \"tds-btn--full-width\",\n className,\n { \"tds-btn--prefix\": prefix, \"tds-btn--suffix\": suffix }\n )\n\n const externalProps = external\n ? { rel: \"noopener noreferrer\", target: \"_blank\" }\n : {}\n\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n {...(!asChild && { href })}\n className={combinedClassName}\n ref={mergedRef}\n {...mergedProps}\n aria-describedby={describedBy}\n {...externalProps}\n >\n {wrapStringWithSpan(prefix)}\n <Slottable>{label || children}</Slottable>\n {wrapStringWithSpan(suffix)}\n </Comp>\n )\n }\n)\n\nBaseLink.displayName = \"BaseLink\"\n"],"names":["React"],"mappings":";;;;;;;;MAgDa,QAAQ,GAAG,UAAU,CAChC,CACE,EACE,OAAO,GAAG,KAAK,EACf,kBAAkB,EAAE,eAAe,EACnC,QAAQ,EACR,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,GAAG,SAAS,EACS,EACvB,GAAG,KACD;AACF,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC;AACjD,IAAA,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,GAAG,mBAAmB,EAAE,GAC7D,OAAO,EAAE,YAAY,IAAI,EAAE;IAE7B,MAAM,WAAW,GAAG;AAClB,UAAE,UAAU,CAAC,SAAS,EAAE,mBAAmB;UACzC,SAAS;IACb,MAAM,SAAS,GAAG;UACd,SAAS,CACP,GAAG,EACH,OAAO,CAAC,GAAmC;UAE7C,GAAG;AACP,IAAA,MAAM,WAAW,GACf,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;IAErE,MAAM,iBAAiB,GAAG,UAAU,CAClC,IAAI,IAAI,SAAS,EACjB,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAC/D,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC,EACtC,SAAS,IAAI,qBAAqB,EAClC,SAAS,EACT,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,CACzD;IAED,MAAM,aAAa,GAAG;UAClB,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,QAAQ;UAC9C,EAAE;IAEN,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG;IAEjC,QACEA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAA,IACE,CAAC,OAAO,IAAI,EAAE,IAAI,EAAE,CAAC,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,GAAG,EAAE,SAAS,EAAA,GACV,WAAW,EAAA,kBAAA,EACG,WAAW,EAAA,GACzB,aAAa,EAAA;QAEhB,kBAAkB,CAAC,MAAM,CAAC;AAC3B,QAAAA,cAAA,CAAA,aAAA,CAAC,SAAS,EAAA,IAAA,EAAE,KAAK,IAAI,QAAQ,CAAa;AACzC,QAAA,kBAAkB,CAAC,MAAM,CAAC,CACtB;AAEX,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
|
|
@@ -1,305 +1,43 @@
|
|
|
1
1
|
import "../button/btn.css";
|
|
2
|
+
import { type TooltipPlacement } from "../internal/tooltip";
|
|
2
3
|
import React from "react";
|
|
3
4
|
import { BaseLinkElementProps } from "./BaseLink";
|
|
4
|
-
|
|
5
|
+
type IconLinkSharedProps = Omit<Extract<BaseLinkElementProps, {
|
|
5
6
|
asChild?: false;
|
|
6
7
|
}>, "label" | "children"> & {
|
|
7
|
-
"aria-label": string;
|
|
8
8
|
/** The icon element to display. */
|
|
9
9
|
icon: React.ReactNode;
|
|
10
10
|
};
|
|
11
|
+
type IconLinkTooltipProps = {
|
|
12
|
+
/** Accessible label. Required for icon-only links to provide context about the link's purpose. Not required when `tooltip` is set. When both are set, this is the name and the tooltip is visual only. */
|
|
13
|
+
"aria-label"?: string;
|
|
14
|
+
/** Text shown on hover and focus. Without `aria-label`, it is also used as the `aria-label`. With `aria-label`, start the `aria-label` with the same text (e.g. tooltip `"Download"`, aria-label `"Download, report.pdf"`). The tooltip itself is hidden from screen readers. Ignores `aria-labelledby`. */
|
|
15
|
+
tooltip: string;
|
|
16
|
+
};
|
|
17
|
+
type IconLinkAriaLabelProps = {
|
|
18
|
+
/** Accessible label. Required for icon-only links to provide context about the link's purpose. Not required when `tooltip` is set. When both are set, this is the name and the tooltip is visual only. */
|
|
19
|
+
"aria-label": string;
|
|
20
|
+
/** Text shown on hover and focus. Without `aria-label`, it is also used as the `aria-label`. With `aria-label`, start the `aria-label` with the same text (e.g. tooltip `"Download"`, aria-label `"Download, report.pdf"`). The tooltip itself is hidden from screen readers. Ignores `aria-labelledby`. */
|
|
21
|
+
tooltip?: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* An icon-only link needs a name: `aria-label`, `tooltip`, or both.
|
|
25
|
+
* `IconLinkAriaLabelProps` is declared last so that a missing name
|
|
26
|
+
* reports "aria-label is missing", not "tooltip is missing".
|
|
27
|
+
*/
|
|
28
|
+
type IconLinkNameProps = IconLinkAriaLabelProps | IconLinkTooltipProps;
|
|
29
|
+
export type IconLinkProps = IconLinkSharedProps & IconLinkNameProps & {
|
|
30
|
+
/** Where the tooltip renders relative to the link. Default `"bottom"`. Has no effect without `tooltip`. */
|
|
31
|
+
tooltipPlacement?: TooltipPlacement;
|
|
32
|
+
};
|
|
11
33
|
/**
|
|
12
34
|
* An icon-only link component that renders as an HTML `<a>` element with
|
|
13
|
-
* button-like styling. Requires an `icon
|
|
35
|
+
* button-like styling. Requires an `icon`, and an `aria-label` or `tooltip`
|
|
36
|
+
* for accessibility.
|
|
14
37
|
*
|
|
15
38
|
* @component
|
|
16
39
|
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/links-icon-link--docs | Storybook Documentation}
|
|
17
40
|
*/
|
|
18
|
-
export declare const IconLink: React.ForwardRefExoticComponent<
|
|
19
|
-
|
|
20
|
-
kind?: import("../../utilities/buttonLinkShared").ComponentKind | undefined;
|
|
21
|
-
prefix?: React.ReactNode;
|
|
22
|
-
size?: import("../../utilities/buttonLinkShared").ComponentSize | undefined;
|
|
23
|
-
suffix?: React.ReactNode;
|
|
24
|
-
slot?: string | undefined | undefined;
|
|
25
|
-
style?: React.CSSProperties | undefined;
|
|
26
|
-
title?: string | undefined | undefined;
|
|
27
|
-
dir?: string | undefined | undefined;
|
|
28
|
-
className?: string | undefined | undefined;
|
|
29
|
-
target?: React.HTMLAttributeAnchorTarget | undefined;
|
|
30
|
-
popover?: "" | "auto" | "manual" | undefined;
|
|
31
|
-
"aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
|
|
32
|
-
type?: string | undefined | undefined;
|
|
33
|
-
id?: string | undefined | undefined;
|
|
34
|
-
"aria-expanded"?: (boolean | "true" | "false") | undefined;
|
|
35
|
-
defaultChecked?: boolean | undefined | undefined;
|
|
36
|
-
defaultValue?: string | number | readonly string[] | undefined;
|
|
37
|
-
suppressContentEditableWarning?: boolean | undefined | undefined;
|
|
38
|
-
suppressHydrationWarning?: boolean | undefined | undefined;
|
|
39
|
-
accessKey?: string | undefined | undefined;
|
|
40
|
-
autoFocus?: boolean | undefined | undefined;
|
|
41
|
-
contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
42
|
-
contextMenu?: string | undefined | undefined;
|
|
43
|
-
draggable?: (boolean | "true" | "false") | undefined;
|
|
44
|
-
hidden?: boolean | undefined | undefined;
|
|
45
|
-
lang?: string | undefined | undefined;
|
|
46
|
-
nonce?: string | undefined | undefined;
|
|
47
|
-
spellCheck?: (boolean | "true" | "false") | undefined;
|
|
48
|
-
tabIndex?: number | undefined | undefined;
|
|
49
|
-
translate?: "yes" | "no" | undefined | undefined;
|
|
50
|
-
radioGroup?: string | undefined | undefined;
|
|
51
|
-
role?: React.AriaRole | undefined;
|
|
52
|
-
about?: string | undefined | undefined;
|
|
53
|
-
content?: string | undefined | undefined;
|
|
54
|
-
datatype?: string | undefined | undefined;
|
|
55
|
-
inlist?: any;
|
|
56
|
-
property?: string | undefined | undefined;
|
|
57
|
-
rel?: string | undefined | undefined;
|
|
58
|
-
resource?: string | undefined | undefined;
|
|
59
|
-
rev?: string | undefined | undefined;
|
|
60
|
-
typeof?: string | undefined | undefined;
|
|
61
|
-
vocab?: string | undefined | undefined;
|
|
62
|
-
autoCapitalize?: string | undefined | undefined;
|
|
63
|
-
autoCorrect?: string | undefined | undefined;
|
|
64
|
-
autoSave?: string | undefined | undefined;
|
|
65
|
-
color?: string | undefined | undefined;
|
|
66
|
-
itemProp?: string | undefined | undefined;
|
|
67
|
-
itemScope?: boolean | undefined | undefined;
|
|
68
|
-
itemType?: string | undefined | undefined;
|
|
69
|
-
itemID?: string | undefined | undefined;
|
|
70
|
-
itemRef?: string | undefined | undefined;
|
|
71
|
-
results?: number | undefined | undefined;
|
|
72
|
-
security?: string | undefined | undefined;
|
|
73
|
-
unselectable?: "on" | "off" | undefined | undefined;
|
|
74
|
-
inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
75
|
-
is?: string | undefined | undefined;
|
|
76
|
-
"aria-activedescendant"?: string | undefined | undefined;
|
|
77
|
-
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
78
|
-
"aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
|
|
79
|
-
"aria-braillelabel"?: string | undefined | undefined;
|
|
80
|
-
"aria-brailleroledescription"?: string | undefined | undefined;
|
|
81
|
-
"aria-busy"?: (boolean | "true" | "false") | undefined;
|
|
82
|
-
"aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
|
|
83
|
-
"aria-colcount"?: number | undefined | undefined;
|
|
84
|
-
"aria-colindex"?: number | undefined | undefined;
|
|
85
|
-
"aria-colindextext"?: string | undefined | undefined;
|
|
86
|
-
"aria-colspan"?: number | undefined | undefined;
|
|
87
|
-
"aria-controls"?: string | undefined | undefined;
|
|
88
|
-
"aria-describedby"?: string | undefined | undefined;
|
|
89
|
-
"aria-description"?: string | undefined | undefined;
|
|
90
|
-
"aria-details"?: string | undefined | undefined;
|
|
91
|
-
"aria-disabled"?: (boolean | "true" | "false") | undefined;
|
|
92
|
-
"aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
|
|
93
|
-
"aria-errormessage"?: string | undefined | undefined;
|
|
94
|
-
"aria-flowto"?: string | undefined | undefined;
|
|
95
|
-
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
|
|
96
|
-
"aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
|
|
97
|
-
"aria-hidden"?: (boolean | "true" | "false") | undefined;
|
|
98
|
-
"aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
|
|
99
|
-
"aria-keyshortcuts"?: string | undefined | undefined;
|
|
100
|
-
"aria-label"?: string | undefined | undefined;
|
|
101
|
-
"aria-labelledby"?: string | undefined | undefined;
|
|
102
|
-
"aria-level"?: number | undefined | undefined;
|
|
103
|
-
"aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
|
|
104
|
-
"aria-modal"?: (boolean | "true" | "false") | undefined;
|
|
105
|
-
"aria-multiline"?: (boolean | "true" | "false") | undefined;
|
|
106
|
-
"aria-multiselectable"?: (boolean | "true" | "false") | undefined;
|
|
107
|
-
"aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
|
|
108
|
-
"aria-owns"?: string | undefined | undefined;
|
|
109
|
-
"aria-placeholder"?: string | undefined | undefined;
|
|
110
|
-
"aria-posinset"?: number | undefined | undefined;
|
|
111
|
-
"aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
|
|
112
|
-
"aria-readonly"?: (boolean | "true" | "false") | undefined;
|
|
113
|
-
"aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
|
|
114
|
-
"aria-required"?: (boolean | "true" | "false") | undefined;
|
|
115
|
-
"aria-roledescription"?: string | undefined | undefined;
|
|
116
|
-
"aria-rowcount"?: number | undefined | undefined;
|
|
117
|
-
"aria-rowindex"?: number | undefined | undefined;
|
|
118
|
-
"aria-rowindextext"?: string | undefined | undefined;
|
|
119
|
-
"aria-rowspan"?: number | undefined | undefined;
|
|
120
|
-
"aria-selected"?: (boolean | "true" | "false") | undefined;
|
|
121
|
-
"aria-setsize"?: number | undefined | undefined;
|
|
122
|
-
"aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
|
|
123
|
-
"aria-valuemax"?: number | undefined | undefined;
|
|
124
|
-
"aria-valuemin"?: number | undefined | undefined;
|
|
125
|
-
"aria-valuenow"?: number | undefined | undefined;
|
|
126
|
-
"aria-valuetext"?: string | undefined | undefined;
|
|
127
|
-
dangerouslySetInnerHTML?: {
|
|
128
|
-
__html: string | TrustedHTML;
|
|
129
|
-
} | undefined | undefined;
|
|
130
|
-
onCopy?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
131
|
-
onCopyCapture?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
132
|
-
onCut?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
133
|
-
onCutCapture?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
134
|
-
onPaste?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
135
|
-
onPasteCapture?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
136
|
-
onCompositionEnd?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
137
|
-
onCompositionEndCapture?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
138
|
-
onCompositionStart?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
139
|
-
onCompositionStartCapture?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
140
|
-
onCompositionUpdate?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
141
|
-
onCompositionUpdateCapture?: React.CompositionEventHandler<HTMLAnchorElement> | undefined;
|
|
142
|
-
onFocus?: React.FocusEventHandler<HTMLAnchorElement> | undefined;
|
|
143
|
-
onFocusCapture?: React.FocusEventHandler<HTMLAnchorElement> | undefined;
|
|
144
|
-
onBlur?: React.FocusEventHandler<HTMLAnchorElement> | undefined;
|
|
145
|
-
onBlurCapture?: React.FocusEventHandler<HTMLAnchorElement> | undefined;
|
|
146
|
-
onChange?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
147
|
-
onChangeCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
148
|
-
onBeforeInput?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
149
|
-
onBeforeInputCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
150
|
-
onInput?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
151
|
-
onInputCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
152
|
-
onReset?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
153
|
-
onResetCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
154
|
-
onSubmit?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
155
|
-
onSubmitCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
156
|
-
onInvalid?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
157
|
-
onInvalidCapture?: React.FormEventHandler<HTMLAnchorElement> | undefined;
|
|
158
|
-
onLoad?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
159
|
-
onLoadCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
160
|
-
onError?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
161
|
-
onErrorCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
162
|
-
onKeyDown?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
163
|
-
onKeyDownCapture?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
164
|
-
onKeyPress?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
165
|
-
onKeyPressCapture?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
166
|
-
onKeyUp?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
167
|
-
onKeyUpCapture?: React.KeyboardEventHandler<HTMLAnchorElement> | undefined;
|
|
168
|
-
onAbort?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
169
|
-
onAbortCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
170
|
-
onCanPlay?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
171
|
-
onCanPlayCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
172
|
-
onCanPlayThrough?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
173
|
-
onCanPlayThroughCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
174
|
-
onDurationChange?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
175
|
-
onDurationChangeCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
176
|
-
onEmptied?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
177
|
-
onEmptiedCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
178
|
-
onEncrypted?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
179
|
-
onEncryptedCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
180
|
-
onEnded?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
181
|
-
onEndedCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
182
|
-
onLoadedData?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
183
|
-
onLoadedDataCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
184
|
-
onLoadedMetadata?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
185
|
-
onLoadedMetadataCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
186
|
-
onLoadStart?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
187
|
-
onLoadStartCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
188
|
-
onPause?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
189
|
-
onPauseCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
190
|
-
onPlay?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
191
|
-
onPlayCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
192
|
-
onPlaying?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
193
|
-
onPlayingCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
194
|
-
onProgress?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
195
|
-
onProgressCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
196
|
-
onRateChange?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
197
|
-
onRateChangeCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
198
|
-
onResize?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
199
|
-
onResizeCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
200
|
-
onSeeked?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
201
|
-
onSeekedCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
202
|
-
onSeeking?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
203
|
-
onSeekingCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
204
|
-
onStalled?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
205
|
-
onStalledCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
206
|
-
onSuspend?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
207
|
-
onSuspendCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
208
|
-
onTimeUpdate?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
209
|
-
onTimeUpdateCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
210
|
-
onVolumeChange?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
211
|
-
onVolumeChangeCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
212
|
-
onWaiting?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
213
|
-
onWaitingCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
214
|
-
onAuxClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
215
|
-
onAuxClickCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
216
|
-
onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
217
|
-
onClickCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
218
|
-
onContextMenu?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
219
|
-
onContextMenuCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
220
|
-
onDoubleClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
221
|
-
onDoubleClickCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
222
|
-
onDrag?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
223
|
-
onDragCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
224
|
-
onDragEnd?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
225
|
-
onDragEndCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
226
|
-
onDragEnter?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
227
|
-
onDragEnterCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
228
|
-
onDragExit?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
229
|
-
onDragExitCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
230
|
-
onDragLeave?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
231
|
-
onDragLeaveCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
232
|
-
onDragOver?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
233
|
-
onDragOverCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
234
|
-
onDragStart?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
235
|
-
onDragStartCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
236
|
-
onDrop?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
237
|
-
onDropCapture?: React.DragEventHandler<HTMLAnchorElement> | undefined;
|
|
238
|
-
onMouseDown?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
239
|
-
onMouseDownCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
240
|
-
onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
241
|
-
onMouseLeave?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
242
|
-
onMouseMove?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
243
|
-
onMouseMoveCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
244
|
-
onMouseOut?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
245
|
-
onMouseOutCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
246
|
-
onMouseOver?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
247
|
-
onMouseOverCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
248
|
-
onMouseUp?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
249
|
-
onMouseUpCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
250
|
-
onSelect?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
251
|
-
onSelectCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
252
|
-
onTouchCancel?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
253
|
-
onTouchCancelCapture?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
254
|
-
onTouchEnd?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
255
|
-
onTouchEndCapture?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
256
|
-
onTouchMove?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
257
|
-
onTouchMoveCapture?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
258
|
-
onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
259
|
-
onTouchStartCapture?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
|
|
260
|
-
onPointerDown?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
261
|
-
onPointerDownCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
262
|
-
onPointerMove?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
263
|
-
onPointerMoveCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
264
|
-
onPointerUp?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
265
|
-
onPointerUpCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
266
|
-
onPointerCancel?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
267
|
-
onPointerCancelCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
268
|
-
onPointerEnter?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
269
|
-
onPointerLeave?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
270
|
-
onPointerOver?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
271
|
-
onPointerOverCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
272
|
-
onPointerOut?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
273
|
-
onPointerOutCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
274
|
-
onGotPointerCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
275
|
-
onGotPointerCaptureCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
276
|
-
onLostPointerCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
277
|
-
onLostPointerCaptureCapture?: React.PointerEventHandler<HTMLAnchorElement> | undefined;
|
|
278
|
-
onScroll?: React.UIEventHandler<HTMLAnchorElement> | undefined;
|
|
279
|
-
onScrollCapture?: React.UIEventHandler<HTMLAnchorElement> | undefined;
|
|
280
|
-
onWheel?: React.WheelEventHandler<HTMLAnchorElement> | undefined;
|
|
281
|
-
onWheelCapture?: React.WheelEventHandler<HTMLAnchorElement> | undefined;
|
|
282
|
-
onAnimationStart?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
283
|
-
onAnimationStartCapture?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
284
|
-
onAnimationEnd?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
285
|
-
onAnimationEndCapture?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
286
|
-
onAnimationIteration?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
287
|
-
onAnimationIterationCapture?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
288
|
-
onTransitionEnd?: React.TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
289
|
-
onTransitionEndCapture?: React.TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
290
|
-
media?: string | undefined | undefined;
|
|
291
|
-
download?: any;
|
|
292
|
-
hrefLang?: string | undefined | undefined;
|
|
293
|
-
ping?: string | undefined | undefined;
|
|
294
|
-
referrerPolicy?: React.HTMLAttributeReferrerPolicy | undefined;
|
|
295
|
-
children?: React.ReactNode;
|
|
296
|
-
external?: boolean | undefined;
|
|
297
|
-
label?: React.ReactNode;
|
|
298
|
-
asChild?: false | undefined;
|
|
299
|
-
href: string;
|
|
300
|
-
}, "label" | "children"> & {
|
|
301
|
-
"aria-label": string;
|
|
302
|
-
/** The icon element to display. */
|
|
303
|
-
icon: React.ReactNode;
|
|
304
|
-
} & React.RefAttributes<HTMLAnchorElement>>;
|
|
41
|
+
export declare const IconLink: React.ForwardRefExoticComponent<IconLinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
42
|
+
export {};
|
|
305
43
|
//# sourceMappingURL=IconLink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconLink.d.ts","sourceRoot":"","sources":["../../../src/components/link/IconLink.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"IconLink.d.ts","sourceRoot":"","sources":["../../../src/components/link/IconLink.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAA;AAE1B,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE7E,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAY,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAE3D,KAAK,mBAAmB,GAAG,IAAI,CAC7B,OAAO,CAAC,oBAAoB,EAAE;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,EAClD,OAAO,GAAG,UAAU,CACrB,GAAG;IACF,mCAAmC;IACnC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,0MAA0M;IAC1M,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4SAA4S;IAC5S,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,0MAA0M;IAC1M,YAAY,EAAE,MAAM,CAAA;IACpB,4SAA4S;IAC5S,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;GAIG;AACH,KAAK,iBAAiB,GAAG,sBAAsB,GAAG,oBAAoB,CAAA;AAEtE,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAC7C,iBAAiB,GAAG;IAClB,2GAA2G;IAC3G,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CACpC,CAAA;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,yFA6CpB,CAAA"}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
|
+
import { Tooltip } from '../internal/tooltip/Tooltip.js';
|
|
1
2
|
import classNames from 'classnames';
|
|
2
3
|
import React__default, { forwardRef } from 'react';
|
|
3
4
|
import { BaseLink } from './BaseLink.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* An icon-only link component that renders as an HTML `<a>` element with
|
|
7
|
-
* button-like styling. Requires an `icon
|
|
8
|
+
* button-like styling. Requires an `icon`, and an `aria-label` or `tooltip`
|
|
9
|
+
* for accessibility.
|
|
8
10
|
*
|
|
9
11
|
* @component
|
|
10
12
|
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/links-icon-link--docs | Storybook Documentation}
|
|
11
13
|
*/
|
|
12
|
-
const IconLink = forwardRef(({ className, href, icon, ...restProps }, ref) => {
|
|
14
|
+
const IconLink = forwardRef(({ className, href, icon, tooltip, tooltipPlacement = "bottom", ...restProps }, ref) => {
|
|
13
15
|
const iconOnlyClassName = classNames("tds-btn--icononly", className);
|
|
16
|
+
if (tooltip) {
|
|
17
|
+
const { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...linkProps } = restProps;
|
|
18
|
+
return (React__default.createElement(Tooltip, { content: tooltip, placement: tooltipPlacement, visualOnly: true },
|
|
19
|
+
React__default.createElement(BaseLink, { href: href, label: icon, className: iconOnlyClassName, ref: ref, ...linkProps, "aria-label": ariaLabel || tooltip })));
|
|
20
|
+
}
|
|
14
21
|
return (React__default.createElement(BaseLink, { href: href, label: icon, className: iconOnlyClassName, ref: ref, ...restProps }));
|
|
15
22
|
});
|
|
16
23
|
IconLink.displayName = "IconLink";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconLink.js","sources":["../../../src/components/link/IconLink.tsx"],"sourcesContent":["import \"../button/btn.css\"\n\nimport classNames from \"classnames\"\nimport React, { forwardRef } from \"react\"\n\nimport { BaseLink, BaseLinkElementProps } from \"./BaseLink\"\n\
|
|
1
|
+
{"version":3,"file":"IconLink.js","sources":["../../../src/components/link/IconLink.tsx"],"sourcesContent":["import \"../button/btn.css\"\n\nimport { Tooltip, type TooltipPlacement } from \"@components/internal/tooltip\"\nimport classNames from \"classnames\"\nimport React, { forwardRef } from \"react\"\n\nimport { BaseLink, BaseLinkElementProps } from \"./BaseLink\"\n\ntype IconLinkSharedProps = Omit<\n Extract<BaseLinkElementProps, { asChild?: false }>,\n \"label\" | \"children\"\n> & {\n /** The icon element to display. */\n icon: React.ReactNode\n}\n\ntype IconLinkTooltipProps = {\n /** Accessible label. Required for icon-only links to provide context about the link's purpose. Not required when `tooltip` is set. When both are set, this is the name and the tooltip is visual only. */\n \"aria-label\"?: string\n /** Text shown on hover and focus. Without `aria-label`, it is also used as the `aria-label`. With `aria-label`, start the `aria-label` with the same text (e.g. tooltip `\"Download\"`, aria-label `\"Download, report.pdf\"`). The tooltip itself is hidden from screen readers. Ignores `aria-labelledby`. */\n tooltip: string\n}\n\ntype IconLinkAriaLabelProps = {\n /** Accessible label. Required for icon-only links to provide context about the link's purpose. Not required when `tooltip` is set. When both are set, this is the name and the tooltip is visual only. */\n \"aria-label\": string\n /** Text shown on hover and focus. Without `aria-label`, it is also used as the `aria-label`. With `aria-label`, start the `aria-label` with the same text (e.g. tooltip `\"Download\"`, aria-label `\"Download, report.pdf\"`). The tooltip itself is hidden from screen readers. Ignores `aria-labelledby`. */\n tooltip?: string\n}\n\n/**\n * An icon-only link needs a name: `aria-label`, `tooltip`, or both.\n * `IconLinkAriaLabelProps` is declared last so that a missing name\n * reports \"aria-label is missing\", not \"tooltip is missing\".\n */\ntype IconLinkNameProps = IconLinkAriaLabelProps | IconLinkTooltipProps\n\nexport type IconLinkProps = IconLinkSharedProps &\n IconLinkNameProps & {\n /** Where the tooltip renders relative to the link. Default `\"bottom\"`. Has no effect without `tooltip`. */\n tooltipPlacement?: TooltipPlacement\n }\n\n/**\n * An icon-only link component that renders as an HTML `<a>` element with\n * button-like styling. Requires an `icon`, and an `aria-label` or `tooltip`\n * for accessibility.\n *\n * @component\n * @see {@link https://planningcenter.github.io/tapestry/?path=/docs/links-icon-link--docs | Storybook Documentation}\n */\nexport const IconLink = forwardRef<HTMLAnchorElement, IconLinkProps>(\n (\n {\n className,\n href,\n icon,\n tooltip,\n tooltipPlacement = \"bottom\",\n ...restProps\n }: IconLinkProps,\n ref\n ) => {\n const iconOnlyClassName = classNames(\"tds-btn--icononly\", className)\n\n if (tooltip) {\n const {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ...linkProps\n } = restProps\n\n return (\n <Tooltip content={tooltip} placement={tooltipPlacement} visualOnly>\n <BaseLink\n href={href}\n label={icon}\n className={iconOnlyClassName}\n ref={ref}\n {...linkProps}\n aria-label={ariaLabel || tooltip}\n />\n </Tooltip>\n )\n }\n\n return (\n <BaseLink\n href={href}\n label={icon}\n className={iconOnlyClassName}\n ref={ref}\n {...restProps}\n />\n )\n }\n)\n\nIconLink.displayName = \"IconLink\"\n"],"names":["React"],"mappings":";;;;;AA2CA;;;;;;;AAOG;AACI,MAAM,QAAQ,GAAG,UAAU,CAChC,CACE,EACE,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,gBAAgB,GAAG,QAAQ,EAC3B,GAAG,SAAS,EACE,EAChB,GAAG,KACD;IACF,MAAM,iBAAiB,GAAG,UAAU,CAAC,mBAAmB,EAAE,SAAS,CAAC;IAEpE,IAAI,OAAO,EAAE;AACX,QAAA,MAAM,EACJ,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,GAAG,SAAS,EACb,GAAG,SAAS;AAEb,QAAA,QACEA,cAAA,CAAA,aAAA,CAAC,OAAO,EAAA,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAA,IAAA,EAAA;YAChEA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EACP,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,EACX,SAAS,EAAE,iBAAiB,EAC5B,GAAG,EAAE,GAAG,EAAA,GACJ,SAAS,EAAA,YAAA,EACD,SAAS,IAAI,OAAO,EAAA,CAChC,CACM;IAEd;IAEA,QACEA,6BAAC,QAAQ,EAAA,EACP,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,EACX,SAAS,EAAE,iBAAiB,EAC5B,GAAG,EAAE,GAAG,EAAA,GACJ,SAAS,EAAA,CACb;AAEN,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '../../packages/tapestry-wc/dist/components/p-
|
|
1
|
+
import '../../packages/tapestry-wc/dist/components/p-CBFtMIxJ.js';
|
|
2
2
|
import { defineCustomElement } from '../../packages/tapestry-wc/dist/components/tds-page-header.js';
|
|
3
3
|
import { defineCustomElement as defineCustomElement$1 } from '../../packages/tapestry-wc/dist/components/tds-page-header-nav.js';
|
|
4
4
|
import { defineTdsScrollToSelectedInUnorderedList } from './tds-scroll-to-selected-in-unordered-list.js';
|
|
@@ -13,7 +13,7 @@ export type PaneElementProps = Omit<HTMLAttributes<HTMLDivElement>, keyof PanePr
|
|
|
13
13
|
* `Flex` or another layout primitive.
|
|
14
14
|
*
|
|
15
15
|
* @component
|
|
16
|
-
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
16
|
+
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}
|
|
17
17
|
*/
|
|
18
18
|
export declare function Pane({ children, className, id, ...restProps }: PaneElementProps): React.JSX.Element;
|
|
19
19
|
export declare namespace Pane {
|
|
@@ -31,7 +31,7 @@ function flattenChildren(children) {
|
|
|
31
31
|
* `Flex` or another layout primitive.
|
|
32
32
|
*
|
|
33
33
|
* @component
|
|
34
|
-
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
34
|
+
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}
|
|
35
35
|
*/
|
|
36
36
|
function Pane({ children, className, id, ...restProps }) {
|
|
37
37
|
const stableId = useId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pane.js","sources":["../../../src/components/pane/Pane.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport { useId } from \"@utilities/useId\"\nimport classNames from \"classnames\"\nimport React, { type HTMLAttributes } from \"react\"\n\nimport { PaneContext } from \"./PaneContext\"\nimport { hasRenderableContent, PaneHeader } from \"./PaneHeader\"\n\nexport interface PaneProps {\n /** `PaneHeader` / `PaneBody` / `PaneFooter`. */\n children: React.ReactNode\n}\n\nexport type PaneElementProps = Omit<\n HTMLAttributes<HTMLDivElement>,\n keyof PaneProps\n> &\n PaneProps\n\n/**\n * Flattens Fragments so a `PaneHeader` can be found regardless of whether\n * children arrive as direct JSX children or as a single Fragment value (as\n * happens when `children` is passed via props, e.g. Storybook args or\n * `tapestry-render`).\n */\nfunction flattenChildren(children: React.ReactNode): React.ReactNode[] {\n const result: React.ReactNode[] = []\n\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === React.Fragment) {\n const fragmentProps = child.props as { children?: React.ReactNode }\n result.push(...flattenChildren(fragmentProps.children))\n } else {\n result.push(child)\n }\n })\n\n return result\n}\n\n/**\n * A decorative, static surface — a card-toned container with rounded corners\n * used to visually group related content. Renders a fixed anatomy: an\n * optional `PaneHeader`, a `PaneBody`, and an optional `PaneFooter`. Pane does\n * not manage layout — arrange Panes on a page, and content within one, with\n * `Flex` or another layout primitive.\n *\n * @component\n * @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
1
|
+
{"version":3,"file":"Pane.js","sources":["../../../src/components/pane/Pane.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport { useId } from \"@utilities/useId\"\nimport classNames from \"classnames\"\nimport React, { type HTMLAttributes } from \"react\"\n\nimport { PaneContext } from \"./PaneContext\"\nimport { hasRenderableContent, PaneHeader } from \"./PaneHeader\"\n\nexport interface PaneProps {\n /** `PaneHeader` / `PaneBody` / `PaneFooter`. */\n children: React.ReactNode\n}\n\nexport type PaneElementProps = Omit<\n HTMLAttributes<HTMLDivElement>,\n keyof PaneProps\n> &\n PaneProps\n\n/**\n * Flattens Fragments so a `PaneHeader` can be found regardless of whether\n * children arrive as direct JSX children or as a single Fragment value (as\n * happens when `children` is passed via props, e.g. Storybook args or\n * `tapestry-render`).\n */\nfunction flattenChildren(children: React.ReactNode): React.ReactNode[] {\n const result: React.ReactNode[] = []\n\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === React.Fragment) {\n const fragmentProps = child.props as { children?: React.ReactNode }\n result.push(...flattenChildren(fragmentProps.children))\n } else {\n result.push(child)\n }\n })\n\n return result\n}\n\n/**\n * A decorative, static surface — a card-toned container with rounded corners\n * used to visually group related content. Renders a fixed anatomy: an\n * optional `PaneHeader`, a `PaneBody`, and an optional `PaneFooter`. Pane does\n * not manage layout — arrange Panes on a page, and content within one, with\n * `Flex` or another layout primitive.\n *\n * @component\n * @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}\n */\nexport function Pane({\n children,\n className,\n id,\n ...restProps\n}: PaneElementProps) {\n const stableId = useId()\n const paneId = id || `tds-pane-${stableId}`\n const titleId = `${paneId}-title`\n const combinedClassName = classNames(\"tds-pane\", className)\n\n const paneHeader = flattenChildren(children).find(\n (child): child is React.ReactElement<{ title?: React.ReactNode }> =>\n React.isValidElement(child) && child.type === PaneHeader\n )\n const hasTitle = hasRenderableContent(paneHeader?.props.title)\n\n return (\n <div\n {...restProps}\n aria-labelledby={hasTitle ? titleId : undefined}\n className={combinedClassName}\n id={paneId}\n role={hasTitle ? \"region\" : undefined}\n >\n <PaneContext.Provider value={{ paneId, titleId }}>\n {children}\n </PaneContext.Provider>\n </div>\n )\n}\n\nPane.displayName = \"Pane\"\n"],"names":["React"],"mappings":";;;;;;AAoBA;;;;;AAKG;AACH,SAAS,eAAe,CAAC,QAAyB,EAAA;IAChD,MAAM,MAAM,GAAsB,EAAE;IAEpCA,cAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;AACzC,QAAA,IAAIA,cAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAKA,cAAK,CAAC,QAAQ,EAAE;AAChE,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,KAAuC;YACnE,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD;aAAO;AACL,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACpB;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACf;AAEA;;;;;;;;;AASG;AACG,SAAU,IAAI,CAAC,EACnB,QAAQ,EACR,SAAS,EACT,EAAE,EACF,GAAG,SAAS,EACK,EAAA;AACjB,IAAA,MAAM,QAAQ,GAAG,KAAK,EAAE;AACxB,IAAA,MAAM,MAAM,GAAG,EAAE,IAAI,CAAA,SAAA,EAAY,QAAQ,EAAE;AAC3C,IAAA,MAAM,OAAO,GAAG,CAAA,EAAG,MAAM,QAAQ;IACjC,MAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC;IAE3D,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC/C,CAAC,KAAK,KACJA,cAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAC3D;IACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;AAE9D,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,GACM,SAAS,EAAA,iBAAA,EACI,QAAQ,GAAG,OAAO,GAAG,SAAS,EAC/C,SAAS,EAAE,iBAAiB,EAC5B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAAA;AAErC,QAAAA,cAAA,CAAA,aAAA,CAAC,WAAW,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAA,EAC7C,QAAQ,CACY,CACnB;AAEV;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;;;"}
|
|
@@ -9,7 +9,7 @@ export type PaneBodyElementProps = Omit<HTMLAttributes<HTMLDivElement>, keyof Pa
|
|
|
9
9
|
* The body region of a `Pane` — holds arbitrary content.
|
|
10
10
|
*
|
|
11
11
|
* @component
|
|
12
|
-
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
12
|
+
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}
|
|
13
13
|
*/
|
|
14
14
|
export declare function PaneBody({ children, className, ...restProps }: PaneBodyElementProps): React.JSX.Element;
|
|
15
15
|
export declare namespace PaneBody {
|
|
@@ -5,7 +5,7 @@ import React__default from 'react';
|
|
|
5
5
|
* The body region of a `Pane` — holds arbitrary content.
|
|
6
6
|
*
|
|
7
7
|
* @component
|
|
8
|
-
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
8
|
+
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}
|
|
9
9
|
*/
|
|
10
10
|
function PaneBody({ children, className, ...restProps }) {
|
|
11
11
|
const combinedClassName = classNames("tds-pane-body", className);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaneBody.js","sources":["../../../src/components/pane/PaneBody.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport classNames from \"classnames\"\nimport React, { type HTMLAttributes } from \"react\"\n\nexport interface PaneBodyProps {\n /** Arbitrary content; may include a `PaneDivider` between sub-sections. */\n children: React.ReactNode\n}\n\nexport type PaneBodyElementProps = Omit<\n HTMLAttributes<HTMLDivElement>,\n keyof PaneBodyProps\n> &\n PaneBodyProps\n\n/**\n * The body region of a `Pane` — holds arbitrary content.\n *\n * @component\n * @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
1
|
+
{"version":3,"file":"PaneBody.js","sources":["../../../src/components/pane/PaneBody.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport classNames from \"classnames\"\nimport React, { type HTMLAttributes } from \"react\"\n\nexport interface PaneBodyProps {\n /** Arbitrary content; may include a `PaneDivider` between sub-sections. */\n children: React.ReactNode\n}\n\nexport type PaneBodyElementProps = Omit<\n HTMLAttributes<HTMLDivElement>,\n keyof PaneBodyProps\n> &\n PaneBodyProps\n\n/**\n * The body region of a `Pane` — holds arbitrary content.\n *\n * @component\n * @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}\n */\nexport function PaneBody({\n children,\n className,\n ...restProps\n}: PaneBodyElementProps) {\n const combinedClassName = classNames(\"tds-pane-body\", className)\n\n return (\n <div {...restProps} className={combinedClassName}>\n {children}\n </div>\n )\n}\n\nPaneBody.displayName = \"PaneBody\"\n"],"names":["React"],"mappings":";;;AAgBA;;;;;AAKG;AACG,SAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,SAAS,EACT,GAAG,SAAS,EACS,EAAA;IACrB,MAAM,iBAAiB,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC;IAEhE,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,GAAS,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAA,EAC7C,QAAQ,CACL;AAEV;AAEA,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import "./index.css";
|
|
2
2
|
import React, { type HTMLAttributes } from "react";
|
|
3
|
-
export type PaneDividerElementProps = HTMLAttributes<HTMLHRElement
|
|
3
|
+
export type PaneDividerElementProps = HTMLAttributes<HTMLHRElement> & {
|
|
4
|
+
/** Keeps the rule inside `PaneBody`'s padding instead of bleeding to the Pane's edges. */
|
|
5
|
+
inset?: boolean;
|
|
6
|
+
};
|
|
4
7
|
/**
|
|
5
8
|
* A 1px rule between sub-sections inside a `PaneBody`.
|
|
6
9
|
*
|
|
7
10
|
* @component
|
|
8
|
-
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
11
|
+
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}
|
|
9
12
|
*/
|
|
10
|
-
export declare function PaneDivider({ className, ...restProps }: PaneDividerElementProps): React.JSX.Element;
|
|
13
|
+
export declare function PaneDivider({ className, inset, ...restProps }: PaneDividerElementProps): React.JSX.Element;
|
|
11
14
|
export declare namespace PaneDivider {
|
|
12
15
|
var displayName: string;
|
|
13
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaneDivider.d.ts","sourceRoot":"","sources":["../../../src/components/pane/PaneDivider.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AAElD,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"PaneDivider.d.ts","sourceRoot":"","sources":["../../../src/components/pane/PaneDivider.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AAElD,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG;IACpE,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,KAAa,EACb,GAAG,SAAS,EACb,EAAE,uBAAuB,qBAQzB;yBAZe,WAAW"}
|
|
@@ -5,10 +5,10 @@ import React__default from 'react';
|
|
|
5
5
|
* A 1px rule between sub-sections inside a `PaneBody`.
|
|
6
6
|
*
|
|
7
7
|
* @component
|
|
8
|
-
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
8
|
+
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}
|
|
9
9
|
*/
|
|
10
|
-
function PaneDivider({ className, ...restProps }) {
|
|
11
|
-
const combinedClassName = classNames("tds-pane-divider", className);
|
|
10
|
+
function PaneDivider({ className, inset = false, ...restProps }) {
|
|
11
|
+
const combinedClassName = classNames("tds-pane-divider", { "tds-pane-divider--inset": inset }, className);
|
|
12
12
|
return React__default.createElement("hr", { ...restProps, className: combinedClassName });
|
|
13
13
|
}
|
|
14
14
|
PaneDivider.displayName = "PaneDivider";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaneDivider.js","sources":["../../../src/components/pane/PaneDivider.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport classNames from \"classnames\"\nimport React, { type HTMLAttributes } from \"react\"\n\nexport type PaneDividerElementProps = HTMLAttributes<HTMLHRElement
|
|
1
|
+
{"version":3,"file":"PaneDivider.js","sources":["../../../src/components/pane/PaneDivider.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport classNames from \"classnames\"\nimport React, { type HTMLAttributes } from \"react\"\n\nexport type PaneDividerElementProps = HTMLAttributes<HTMLHRElement> & {\n /** Keeps the rule inside `PaneBody`'s padding instead of bleeding to the Pane's edges. */\n inset?: boolean\n}\n\n/**\n * A 1px rule between sub-sections inside a `PaneBody`.\n *\n * @component\n * @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}\n */\nexport function PaneDivider({\n className,\n inset = false,\n ...restProps\n}: PaneDividerElementProps) {\n const combinedClassName = classNames(\n \"tds-pane-divider\",\n { \"tds-pane-divider--inset\": inset },\n className\n )\n\n return <hr {...restProps} className={combinedClassName} />\n}\n\nPaneDivider.displayName = \"PaneDivider\"\n"],"names":["React"],"mappings":";;;AAUA;;;;;AAKG;AACG,SAAU,WAAW,CAAC,EAC1B,SAAS,EACT,KAAK,GAAG,KAAK,EACb,GAAG,SAAS,EACY,EAAA;AACxB,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAClC,kBAAkB,EAClB,EAAE,yBAAyB,EAAE,KAAK,EAAE,EACpC,SAAS,CACV;AAED,IAAA,OAAOA,wCAAQ,SAAS,EAAE,SAAS,EAAE,iBAAiB,GAAI;AAC5D;AAEA,WAAW,CAAC,WAAW,GAAG,aAAa;;;;"}
|
|
@@ -18,7 +18,7 @@ export type PaneFooterElementProps = DistributiveOmit<FlexProps, "as"> & PaneFoo
|
|
|
18
18
|
* controls spacing and alignment without reaching for a wrapper element.
|
|
19
19
|
*
|
|
20
20
|
* @component
|
|
21
|
-
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
21
|
+
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}
|
|
22
22
|
*/
|
|
23
23
|
export declare function PaneFooter({ children, className, ...restProps }: PaneFooterElementProps): React.JSX.Element;
|
|
24
24
|
export declare namespace PaneFooter {
|
|
@@ -8,7 +8,7 @@ import React__default from 'react';
|
|
|
8
8
|
* controls spacing and alignment without reaching for a wrapper element.
|
|
9
9
|
*
|
|
10
10
|
* @component
|
|
11
|
-
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
11
|
+
* @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}
|
|
12
12
|
*/
|
|
13
13
|
function PaneFooter({ children, className, ...restProps }) {
|
|
14
14
|
const combinedClassName = classNames("tds-pane-footer", className);
|