@planningcenter/tapestry 4.12.0-rc.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 +5 -4
- package/dist/components/DataTable/DataTable.d.ts.map +1 -1
- package/dist/components/DataTable/DataTable.js +4 -2
- package/dist/components/DataTable/DataTable.js.map +1 -1
- package/dist/components/DataTable/ManageSavedViewsModal.d.ts +5 -2
- package/dist/components/DataTable/ManageSavedViewsModal.d.ts.map +1 -1
- package/dist/components/DataTable/ManageSavedViewsModal.js +167 -18
- package/dist/components/DataTable/ManageSavedViewsModal.js.map +1 -1
- package/dist/components/DataTable/ManageSavedViewsModal.module.css.js +1 -1
- package/dist/components/DataTable/SavedViewsBar.d.ts.map +1 -1
- package/dist/components/DataTable/SavedViewsBar.js +23 -9
- package/dist/components/DataTable/SavedViewsBar.js.map +1 -1
- package/dist/components/DataTable/savedViews.d.ts +24 -0
- package/dist/components/DataTable/savedViews.d.ts.map +1 -1
- package/dist/components/DataTable/savedViews.js +58 -1
- package/dist/components/DataTable/savedViews.js.map +1 -1
- package/dist/components/button/ActionsDropdownIconButton.d.ts +3 -2
- package/dist/components/button/ActionsDropdownIconButton.d.ts.map +1 -1
- 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/IconButton.d.ts +1 -3
- package/dist/components/button/IconButton.d.ts.map +1 -1
- package/dist/components/button/IconButton.js.map +1 -1
- package/dist/components/button/ToggleIconButton.d.ts +5 -2
- 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 -1
- package/dist/components/button/index.d.ts.map +1 -1
- package/dist/components/combo-box/ComboBox.d.ts +2 -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/index.d.ts +1 -0
- package/dist/components/internal/index.d.ts.map +1 -1
- package/dist/components/internal/tooltip/Tooltip.d.ts +4 -2
- package/dist/components/internal/tooltip/Tooltip.d.ts.map +1 -1
- 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 +1 -1
- package/dist/components/pane/PaneDivider.js +1 -1
- 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 +142 -0
- 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 +1171 -1101
- package/dist/reactRender.css.map +1 -1
- package/dist/reactRenderLegacy.css +1171 -1101
- package/dist/reactRenderLegacy.css.map +1 -1
- package/dist/tapestryMount.css +1171 -1101
- package/dist/tapestryMount.css.map +1 -1
- package/dist/tapestryMountLegacy.css +1171 -1101
- package/dist/tapestryMountLegacy.css.map +1 -1
- package/dist/unstable.css +201 -131
- 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 +8 -1
- package/dist/utilities/useAnnounce.d.ts.map +1 -1
- package/dist/utilities/useAnnounce.js.map +1 -1
- 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 -3
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaneHeaderActions.js","sources":["../../../src/components/pane/PaneHeaderActions.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport { Flex, type FlexProps } from \"@components/flex\"\nimport classNames from \"classnames\"\nimport React from \"react\"\n\nexport interface PaneHeaderActionsProps {\n /**\n * The actions themselves — buttons that affect the whole pane (e.g. Save /\n * Cancel). Laid out in a row; pass any `Flex` prop to adjust the layout.\n */\n children: React.ReactNode\n}\n\nexport type PaneHeaderActionsElementProps = FlexProps & PaneHeaderActionsProps\n\n/**\n * The trailing action cluster of a `PaneHeader`. Wraps its children in a\n * `Flex` row and accepts every `Flex` prop, so the caller controls spacing and\n * alignment without reaching for a wrapper element.\n *\n * @component\n * @see {@link https://planningcenter.github.io/tapestry/?path=/docs/
|
|
1
|
+
{"version":3,"file":"PaneHeaderActions.js","sources":["../../../src/components/pane/PaneHeaderActions.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport { Flex, type FlexProps } from \"@components/flex\"\nimport classNames from \"classnames\"\nimport React from \"react\"\n\nexport interface PaneHeaderActionsProps {\n /**\n * The actions themselves — buttons that affect the whole pane (e.g. Save /\n * Cancel). Laid out in a row; pass any `Flex` prop to adjust the layout.\n */\n children: React.ReactNode\n}\n\nexport type PaneHeaderActionsElementProps = FlexProps & PaneHeaderActionsProps\n\n/**\n * The trailing action cluster of a `PaneHeader`. Wraps its children in a\n * `Flex` row and accepts every `Flex` prop, so the caller controls spacing and\n * alignment without reaching for a wrapper element.\n *\n * @component\n * @see {@link https://planningcenter.github.io/tapestry/?path=/docs/layout-pane--docs | Storybook Documentation}\n */\nexport function PaneHeaderActions({\n children,\n className,\n ...restProps\n}: PaneHeaderActionsElementProps) {\n const combinedClassName = classNames(\"tds-pane-header-actions\", className)\n\n return (\n <Flex\n align=\"center\"\n direction=\"row\"\n gap={1}\n {...restProps}\n className={combinedClassName}\n >\n {children}\n </Flex>\n )\n}\n\nPaneHeaderActions.displayName = \"PaneHeaderActions\"\n"],"names":["React"],"mappings":";;;;AAgBA;;;;;;;AAOG;AACG,SAAU,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,GAAG,SAAS,EACkB,EAAA;IAC9B,MAAM,iBAAiB,GAAG,UAAU,CAAC,yBAAyB,EAAE,SAAS,CAAC;IAE1E,QACEA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EACH,KAAK,EAAC,QAAQ,EACd,SAAS,EAAC,KAAK,EACf,GAAG,EAAE,CAAC,EAAA,GACF,SAAS,EACb,SAAS,EAAE,iBAAiB,EAAA,EAE3B,QAAQ,CACJ;AAEX;AAEA,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;;;;"}
|
|
@@ -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-sidenav.js';
|
|
3
3
|
import { defineCustomElement as defineCustomElement$1 } from '../../packages/tapestry-wc/dist/components/tds-sidenav-item.js';
|
|
4
4
|
import { defineCustomElement as defineCustomElement$3 } from '../../packages/tapestry-wc/dist/components/tds-sidenav-responsive-header.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeField.d.ts","sourceRoot":"","sources":["../../../src/components/time-field/TimeField.tsx"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAC3B,OAAO,aAAa,CAAA;AAEpB,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,IAAI,EACT,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"TimeField.d.ts","sourceRoot":"","sources":["../../../src/components/time-field/TimeField.tsx"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAA;AAC3B,OAAO,aAAa,CAAA;AAEpB,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,IAAI,EACT,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAA;AAGhF,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAML,KAAK,cAAc,IAAI,kBAAkB,EAC1C,MAAM,iCAAiC,CAAA;AAExC,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAA;AAEvC,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,IAAI,GAAG,aAAa,CAAA;AAEpE,MAAM,WAAW,cAAc;IAC7B,0GAA0G;IAC1G,YAAY,CAAC,EAAE,cAAc,GAAG,MAAM,CAAA;IACtC,gGAAgG;IAChG,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,mGAAmG;IACnG,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM,CAAA;IAC7B,mGAAmG;IACnG,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM,CAAA;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,IAAI,CAAC,EAAE,aAAa,CAAA;CACrB;AAED,KAAK,wBAAwB,GACzB,UAAU,GACV,aAAa,GACb,kBAAkB,GAClB,yBAAyB,GACzB,MAAM,CAAA;AAEV,KAAK,2BAA2B,GAC5B,cAAc,GACd,WAAW,GACX,MAAM,GACN,UAAU,GACV,OAAO,CAAA;AAEX,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,CACjE,kBAAkB,CAAC,cAAc,CAAC,EAClC,cAAc,EACd,wBAAwB,EACxB,2BAA2B,CAC5B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,KAAK,EACL,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,IAAW,EACX,GAAG,SAAS,EACb,EAAE,qBAAqB,qBA6DvB"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { parseTime as $58246871e4652552$export$c9698ec7f05a07e1 } from './../../ext/@internationalized/date/dist/private/string.js';
|
|
2
2
|
import Icon from '../../utilities/Icon.js';
|
|
3
|
+
import { useDateFieldLocale } from '../../utilities/useDateFieldLocale.js';
|
|
3
4
|
import classNames from 'classnames';
|
|
4
5
|
import React from 'react';
|
|
6
|
+
import { I18nProvider } from 'react-aria/I18nProvider';
|
|
5
7
|
import { TimeField as TimeField$1, Label, DateInput, DateSegment, Text } from 'react-aria-components/TimeField';
|
|
6
8
|
|
|
7
9
|
/**
|
|
@@ -22,11 +24,13 @@ function TimeField({ className, defaultValue, description, disabled, forceLeadin
|
|
|
22
24
|
"tds-field--lg": size === "lg",
|
|
23
25
|
"tds-time-field--lg": size === "lg",
|
|
24
26
|
}, className);
|
|
27
|
+
const dateFieldLocale = useDateFieldLocale();
|
|
25
28
|
return (React.createElement(TimeField$1, { ...restProps, "aria-label": hideLabel ? label : undefined, className: combinedClassName, defaultValue: asTimeFieldValue(defaultValue), granularity: "minute", isDisabled: disabled, isReadOnly: readOnly, isRequired: required, maxValue: asTimeFieldValue(max), minValue: asTimeFieldValue(min), shouldForceLeadingZeros: forceLeadingZeros },
|
|
26
29
|
!hideLabel && React.createElement(Label, { className: "tds-field-label" }, label),
|
|
27
|
-
React.createElement(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
React.createElement(I18nProvider, { locale: dateFieldLocale },
|
|
31
|
+
React.createElement(DateInput, { "aria-invalid": invalid || undefined, className: "tds-field-control tds-time-field-input" }, (segment) => (React.createElement(DateSegment, { "aria-invalid": invalid || undefined, className: segment.type === "literal"
|
|
32
|
+
? "tds-field-date-segment-separator"
|
|
33
|
+
: "tds-field-date-segment", segment: segment })))),
|
|
30
34
|
description && (React.createElement(Text, { elementType: "p", className: "tds-field-description", slot: "description" },
|
|
31
35
|
React.createElement(Icon, { "aria-hidden": true, className: "tds-field-description-invalid-icon", symbol: "general#exclamation-triangle" }),
|
|
32
36
|
description))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeField.js","sources":["../../../src/components/time-field/TimeField.tsx"],"sourcesContent":["import \"../field/index.css\"\nimport \"./index.css\"\n\nimport {\n type CalendarDateTime,\n parseTime,\n type Time,\n type ZonedDateTime,\n} from \"@internationalized/date\"\nimport Icon from \"@utilities/Icon\"\nimport type { CombineAriaPropsWithCustomProps } from \"@utilities/reactAriaProps\"\nimport classNames from \"classnames\"\nimport React from \"react\"\nimport {\n DateInput,\n DateSegment,\n Label,\n Text,\n TimeField as AriaTimeField,\n type TimeFieldProps as AriaTimeFieldProps,\n} from \"react-aria-components/TimeField\"\n\nexport type TimeFieldSize = \"md\" | \"lg\"\n\nexport type TimeFieldValue = CalendarDateTime | Time | ZonedDateTime\n\nexport interface TimeFieldProps {\n /** The default value for the field, as a `TimeFieldValue` or an ISO 8601 time string (e.g. `\"12:00\"`). */\n defaultValue?: TimeFieldValue | string\n /** Helper text displayed below the component. Styled as error text when `invalid` is `true`. */\n description?: React.ReactNode\n /** Disables the field. */\n disabled?: boolean\n /** If `true`, always shows leading zeros in the hour field. */\n forceLeadingZeros?: boolean\n /** If `true`, renders the label visually hidden. */\n hideLabel?: boolean\n /** If `true`, applies error styling to the field and description. */\n invalid?: boolean\n /** Accessible label for the field. */\n label: string\n /** The maximum allowed time, as a `TimeFieldValue` or an ISO 8601 time string (e.g. `\"17:00\"`). */\n max?: TimeFieldValue | string\n /** The minimum allowed time, as a `TimeFieldValue` or an ISO 8601 time string (e.g. `\"09:00\"`). */\n min?: TimeFieldValue | string\n /** Allows the value to be read but not changed. */\n readOnly?: boolean\n /** If `true`, appends an asterisk after the label text. */\n required?: boolean\n /** The size of the time field. */\n size?: TimeFieldSize\n}\n\ntype AriaTimeFieldPropsToOmit =\n | \"children\"\n | \"granularity\"\n | \"placeholderValue\"\n | \"shouldForceLeadingZeros\"\n | \"slot\"\n\ntype AriaTimeFieldPropsToInclude =\n | \"hideTimeZone\"\n | \"hourCycle\"\n | \"name\"\n | \"onChange\"\n | \"value\"\n\nexport type TimeFieldElementProps = CombineAriaPropsWithCustomProps<\n AriaTimeFieldProps<TimeFieldValue>,\n TimeFieldProps,\n AriaTimeFieldPropsToOmit,\n AriaTimeFieldPropsToInclude\n>\n\n/**\n * A time field component allows users to enter and edit time values as individual\n * segments. Each segment supports keyboard entry, increment/decrement\n * with arrow keys, and respects the user's locale (12- vs 24-hour clock),\n * which can be overridden with `hourCycle`.\n *\n * Values are `Time`, `CalendarDateTime`, or `ZonedDateTime` from\n * `@internationalized/date`. Restrict the allowed range with `min`/`max`.\n *\n * @component\n * @see {@link https://planningcenter.github.io/tapestry/?path=/docs/forms-timefield--docs | Storybook Documentation}\n * @see {@link https://github.com/planningcenter/tapestry/tree/main/packages/tapestry-migration-cli | Migration CLI: Available}\n */\nexport function TimeField({\n className,\n defaultValue,\n description,\n disabled,\n forceLeadingZeros,\n hideLabel,\n invalid,\n label,\n max,\n min,\n readOnly,\n required,\n size = \"md\",\n ...restProps\n}: TimeFieldElementProps) {\n const combinedClassName = classNames(\n \"tds-field tds-time-field\",\n {\n \"tds-field--lg\": size === \"lg\",\n \"tds-time-field--lg\": size === \"lg\",\n },\n className\n )\n\n return (\n <AriaTimeField\n {...restProps}\n aria-label={hideLabel ? label : undefined}\n className={combinedClassName}\n defaultValue={asTimeFieldValue(defaultValue)}\n granularity=\"minute\"\n isDisabled={disabled}\n isReadOnly={readOnly}\n isRequired={required}\n maxValue={asTimeFieldValue(max)}\n minValue={asTimeFieldValue(min)}\n shouldForceLeadingZeros={forceLeadingZeros}\n >\n {!hideLabel && <Label className=\"tds-field-label\">{label}</Label>}\n <DateInput\n
|
|
1
|
+
{"version":3,"file":"TimeField.js","sources":["../../../src/components/time-field/TimeField.tsx"],"sourcesContent":["import \"../field/index.css\"\nimport \"./index.css\"\n\nimport {\n type CalendarDateTime,\n parseTime,\n type Time,\n type ZonedDateTime,\n} from \"@internationalized/date\"\nimport Icon from \"@utilities/Icon\"\nimport type { CombineAriaPropsWithCustomProps } from \"@utilities/reactAriaProps\"\nimport { useDateFieldLocale } from \"@utilities/useDateFieldLocale\"\nimport classNames from \"classnames\"\nimport React from \"react\"\nimport { I18nProvider } from \"react-aria/I18nProvider\"\nimport {\n DateInput,\n DateSegment,\n Label,\n Text,\n TimeField as AriaTimeField,\n type TimeFieldProps as AriaTimeFieldProps,\n} from \"react-aria-components/TimeField\"\n\nexport type TimeFieldSize = \"md\" | \"lg\"\n\nexport type TimeFieldValue = CalendarDateTime | Time | ZonedDateTime\n\nexport interface TimeFieldProps {\n /** The default value for the field, as a `TimeFieldValue` or an ISO 8601 time string (e.g. `\"12:00\"`). */\n defaultValue?: TimeFieldValue | string\n /** Helper text displayed below the component. Styled as error text when `invalid` is `true`. */\n description?: React.ReactNode\n /** Disables the field. */\n disabled?: boolean\n /** If `true`, always shows leading zeros in the hour field. */\n forceLeadingZeros?: boolean\n /** If `true`, renders the label visually hidden. */\n hideLabel?: boolean\n /** If `true`, applies error styling to the field and description. */\n invalid?: boolean\n /** Accessible label for the field. */\n label: string\n /** The maximum allowed time, as a `TimeFieldValue` or an ISO 8601 time string (e.g. `\"17:00\"`). */\n max?: TimeFieldValue | string\n /** The minimum allowed time, as a `TimeFieldValue` or an ISO 8601 time string (e.g. `\"09:00\"`). */\n min?: TimeFieldValue | string\n /** Allows the value to be read but not changed. */\n readOnly?: boolean\n /** If `true`, appends an asterisk after the label text. */\n required?: boolean\n /** The size of the time field. */\n size?: TimeFieldSize\n}\n\ntype AriaTimeFieldPropsToOmit =\n | \"children\"\n | \"granularity\"\n | \"placeholderValue\"\n | \"shouldForceLeadingZeros\"\n | \"slot\"\n\ntype AriaTimeFieldPropsToInclude =\n | \"hideTimeZone\"\n | \"hourCycle\"\n | \"name\"\n | \"onChange\"\n | \"value\"\n\nexport type TimeFieldElementProps = CombineAriaPropsWithCustomProps<\n AriaTimeFieldProps<TimeFieldValue>,\n TimeFieldProps,\n AriaTimeFieldPropsToOmit,\n AriaTimeFieldPropsToInclude\n>\n\n/**\n * A time field component allows users to enter and edit time values as individual\n * segments. Each segment supports keyboard entry, increment/decrement\n * with arrow keys, and respects the user's locale (12- vs 24-hour clock),\n * which can be overridden with `hourCycle`.\n *\n * Values are `Time`, `CalendarDateTime`, or `ZonedDateTime` from\n * `@internationalized/date`. Restrict the allowed range with `min`/`max`.\n *\n * @component\n * @see {@link https://planningcenter.github.io/tapestry/?path=/docs/forms-timefield--docs | Storybook Documentation}\n * @see {@link https://github.com/planningcenter/tapestry/tree/main/packages/tapestry-migration-cli | Migration CLI: Available}\n */\nexport function TimeField({\n className,\n defaultValue,\n description,\n disabled,\n forceLeadingZeros,\n hideLabel,\n invalid,\n label,\n max,\n min,\n readOnly,\n required,\n size = \"md\",\n ...restProps\n}: TimeFieldElementProps) {\n const combinedClassName = classNames(\n \"tds-field tds-time-field\",\n {\n \"tds-field--lg\": size === \"lg\",\n \"tds-time-field--lg\": size === \"lg\",\n },\n className\n )\n\n const dateFieldLocale = useDateFieldLocale()\n\n return (\n <AriaTimeField\n {...restProps}\n aria-label={hideLabel ? label : undefined}\n className={combinedClassName}\n defaultValue={asTimeFieldValue(defaultValue)}\n granularity=\"minute\"\n isDisabled={disabled}\n isReadOnly={readOnly}\n isRequired={required}\n maxValue={asTimeFieldValue(max)}\n minValue={asTimeFieldValue(min)}\n shouldForceLeadingZeros={forceLeadingZeros}\n >\n {!hideLabel && <Label className=\"tds-field-label\">{label}</Label>}\n <I18nProvider locale={dateFieldLocale}>\n <DateInput\n aria-invalid={invalid || undefined}\n className=\"tds-field-control tds-time-field-input\"\n >\n {(segment) => (\n <DateSegment\n aria-invalid={invalid || undefined}\n className={\n segment.type === \"literal\"\n ? \"tds-field-date-segment-separator\"\n : \"tds-field-date-segment\"\n }\n segment={segment}\n />\n )}\n </DateInput>\n </I18nProvider>\n {description && (\n <Text\n elementType=\"p\"\n className=\"tds-field-description\"\n slot=\"description\"\n >\n <Icon\n aria-hidden\n className=\"tds-field-description-invalid-icon\"\n symbol=\"general#exclamation-triangle\"\n />\n {description}\n </Text>\n )}\n </AriaTimeField>\n )\n}\n\nfunction asTimeFieldValue(\n value: TimeFieldValue | string | undefined\n): TimeFieldValue | undefined {\n if (typeof value === \"string\") {\n return parseTime(value)\n }\n return value ?? undefined\n}\n"],"names":["AriaTimeField","parseTime"],"mappings":";;;;;;;;AA4EA;;;;;;;;;;;;AAYG;AACG,SAAU,SAAS,CAAC,EACxB,SAAS,EACT,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,KAAK,EACL,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,GAAG,SAAS,EACU,EAAA;AACtB,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAClC,0BAA0B,EAC1B;QACE,eAAe,EAAE,IAAI,KAAK,IAAI;QAC9B,oBAAoB,EAAE,IAAI,KAAK,IAAI;KACpC,EACD,SAAS,CACV;AAED,IAAA,MAAM,eAAe,GAAG,kBAAkB,EAAE;IAE5C,QACE,KAAA,CAAA,aAAA,CAACA,WAAa,EAAA,EAAA,GACR,SAAS,EAAA,YAAA,EACD,SAAS,GAAG,KAAK,GAAG,SAAS,EACzC,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAC5C,WAAW,EAAC,QAAQ,EACpB,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAC/B,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAC/B,uBAAuB,EAAE,iBAAiB,EAAA;QAEzC,CAAC,SAAS,IAAI,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,iBAAiB,EAAA,EAAE,KAAK,CAAS;AACjE,QAAA,KAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAC,MAAM,EAAE,eAAe,EAAA;AACnC,YAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAA,cAAA,EACM,OAAO,IAAI,SAAS,EAClC,SAAS,EAAC,wCAAwC,EAAA,EAEjD,CAAC,OAAO,MACP,KAAA,CAAA,aAAA,CAAC,WAAW,EAAA,EAAA,cAAA,EACI,OAAO,IAAI,SAAS,EAClC,SAAS,EACP,OAAO,CAAC,IAAI,KAAK;AACf,sBAAE;sBACA,wBAAwB,EAE9B,OAAO,EAAE,OAAO,EAAA,CAChB,CACH,CACS,CACC;AACd,QAAA,WAAW,KACV,KAAA,CAAA,aAAA,CAAC,IAAI,IACH,WAAW,EAAC,GAAG,EACf,SAAS,EAAC,uBAAuB,EACjC,IAAI,EAAC,aAAa,EAAA;YAElB,KAAA,CAAA,aAAA,CAAC,IAAI,yBAEH,SAAS,EAAC,oCAAoC,EAC9C,MAAM,EAAC,8BAA8B,EAAA,CACrC;AACD,YAAA,WAAW,CACP,CACR,CACa;AAEpB;AAEA,SAAS,gBAAgB,CACvB,KAA0C,EAAA;AAE1C,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAOC,yCAAS,CAAC,KAAK,CAAC;IACzB;IACA,OAAO,KAAK,IAAI,SAAS;AAC3B;;;;"}
|
package/dist/index.css
CHANGED
|
@@ -3388,6 +3388,15 @@ tds-sidenav-section:not(.hydrated) > [slot="ssr"]{
|
|
|
3388
3388
|
--tds-loading-spinner-visibility:visible;
|
|
3389
3389
|
--tds-loading-spinner-animation-play-state:running;
|
|
3390
3390
|
}
|
|
3391
|
+
|
|
3392
|
+
.tds-combo-box-loading-label--hidden{
|
|
3393
|
+
position:absolute;
|
|
3394
|
+
width:1px;
|
|
3395
|
+
height:1px;
|
|
3396
|
+
overflow:hidden;
|
|
3397
|
+
white-space:nowrap;
|
|
3398
|
+
clip-path:inset(50%);
|
|
3399
|
+
}
|
|
3391
3400
|
.tds-combo-box-list-section:not(:first-child){
|
|
3392
3401
|
margin-block-start:var(--t-spacing-half);
|
|
3393
3402
|
}
|
|
@@ -5272,6 +5281,139 @@ a.tds-dropdown-item:is(:hover, :active){
|
|
|
5272
5281
|
margin-inline-end:var(--tds-number-stepper-button-offset);
|
|
5273
5282
|
}
|
|
5274
5283
|
|
|
5284
|
+
.tds-pane{
|
|
5285
|
+
--tds-pane-background-color:var(--t-surface-color-card);
|
|
5286
|
+
--tds-pane-border-radius:var(--t-border-radius-lg);
|
|
5287
|
+
--tds-pane-border-color:var(--t-border-color);
|
|
5288
|
+
|
|
5289
|
+
--tds-pane-header-padding-block:var(--t-spacing-1-half);
|
|
5290
|
+
--tds-pane-header-padding-inline:var(--tds-pane-body-padding);
|
|
5291
|
+
|
|
5292
|
+
--tds-pane-title-color:var(--t-text-color-headline);
|
|
5293
|
+
--tds-pane-title-font-size:var(--t-font-size-lg);
|
|
5294
|
+
--tds-pane-title-font-weight:var(--t-font-weight-medium);
|
|
5295
|
+
--tds-pane-title-line-height:1.4;
|
|
5296
|
+
|
|
5297
|
+
--tds-pane-body-padding:var(--t-spacing-3);
|
|
5298
|
+
|
|
5299
|
+
--tds-pane-footer-padding-block:var(--t-spacing-2);
|
|
5300
|
+
--tds-pane-footer-padding-inline:var(--tds-pane-body-padding);
|
|
5301
|
+
|
|
5302
|
+
--tds-pane-divider-margin-block:var(--tds-pane-body-padding);
|
|
5303
|
+
--tds-pane-divider-margin-inline:calc(-1 * var(--tds-pane-body-padding));
|
|
5304
|
+
|
|
5305
|
+
background:var(--tds-pane-background-color);
|
|
5306
|
+
border-radius:var(--tds-pane-border-radius);
|
|
5307
|
+
border:var(--t-border-width) solid var(--tds-pane-border-color);
|
|
5308
|
+
display:flex;
|
|
5309
|
+
flex-direction:column;
|
|
5310
|
+
}
|
|
5311
|
+
|
|
5312
|
+
.tds-pane-header{
|
|
5313
|
+
border-bottom:var(--t-border-width) solid var(--tds-pane-border-color);
|
|
5314
|
+
padding-block:var(--tds-pane-header-padding-block);
|
|
5315
|
+
padding-inline:var(--tds-pane-header-padding-inline);
|
|
5316
|
+
}
|
|
5317
|
+
|
|
5318
|
+
.tds-pane-header > tds-helper-shelf > .tds-helper-shelf-trigger{
|
|
5319
|
+
margin-inline:calc(-1 * var(--t-spacing-1)) auto;
|
|
5320
|
+
}
|
|
5321
|
+
|
|
5322
|
+
.tds-pane-header > tds-helper-shelf > .tds-helper-shelf{
|
|
5323
|
+
flex-basis:100%;
|
|
5324
|
+
order:1;
|
|
5325
|
+
}
|
|
5326
|
+
|
|
5327
|
+
.tds-pane-header:has( > tds-helper-shelf){
|
|
5328
|
+
row-gap:var(--tds-pane-header-padding-block);
|
|
5329
|
+
padding-block-end:0;
|
|
5330
|
+
}
|
|
5331
|
+
|
|
5332
|
+
.tds-pane-header > tds-helper-shelf > .tds-helper-shelf > .tds-helper-shelf-content{
|
|
5333
|
+
font-size:var(--t-font-size-md);
|
|
5334
|
+
margin-block-end:var(--tds-pane-header-padding-block);
|
|
5335
|
+
}
|
|
5336
|
+
|
|
5337
|
+
.tds-pane-title{
|
|
5338
|
+
color:var(--tds-pane-title-color);
|
|
5339
|
+
font-size:var(--tds-pane-title-font-size);
|
|
5340
|
+
font-weight:var(--tds-pane-title-font-weight);
|
|
5341
|
+
line-height:var(--tds-pane-title-line-height);
|
|
5342
|
+
margin:0;
|
|
5343
|
+
}
|
|
5344
|
+
|
|
5345
|
+
.tds-pane-body{
|
|
5346
|
+
padding:var(--tds-pane-body-padding);
|
|
5347
|
+
}
|
|
5348
|
+
|
|
5349
|
+
.tds-pane-footer{
|
|
5350
|
+
padding-block-end:var(--tds-pane-footer-padding-block);
|
|
5351
|
+
padding-inline:var(--tds-pane-footer-padding-inline);
|
|
5352
|
+
}
|
|
5353
|
+
|
|
5354
|
+
.tds-pane-divider{
|
|
5355
|
+
border:0;
|
|
5356
|
+
border-top:var(--t-border-width) solid var(--tds-pane-border-color);
|
|
5357
|
+
margin-block:var(--tds-pane-divider-margin-block);
|
|
5358
|
+
margin-inline:var(--tds-pane-divider-margin-inline);
|
|
5359
|
+
}
|
|
5360
|
+
|
|
5361
|
+
.tds-pane-divider.tds-pane-divider--inset{
|
|
5362
|
+
margin-inline:0;
|
|
5363
|
+
}
|
|
5364
|
+
|
|
5365
|
+
tds-helper-shelf{
|
|
5366
|
+
display:contents;
|
|
5367
|
+
}
|
|
5368
|
+
|
|
5369
|
+
.tds-helper-shelf{
|
|
5370
|
+
--tds-helper-shelf-background-color:var(--t-fill-color-neutral-090);
|
|
5371
|
+
--tds-helper-shelf-border-radius:var(--t-border-radius-md);
|
|
5372
|
+
--tds-helper-shelf-color:var(--t-text-color);
|
|
5373
|
+
--tds-helper-shelf-font-size:var(--t-font-size-sm);
|
|
5374
|
+
--tds-helper-shelf-line-height:1.5;
|
|
5375
|
+
--tds-helper-shelf-padding:var(--t-spacing-1);
|
|
5376
|
+
|
|
5377
|
+
height:0;
|
|
5378
|
+
overflow:hidden;
|
|
5379
|
+
transition:height var(--t-duration-300) var(--t-ease-in);
|
|
5380
|
+
}
|
|
5381
|
+
|
|
5382
|
+
@media (prefers-reduced-motion: reduce){
|
|
5383
|
+
|
|
5384
|
+
.tds-helper-shelf{
|
|
5385
|
+
transition:none;
|
|
5386
|
+
}
|
|
5387
|
+
}
|
|
5388
|
+
|
|
5389
|
+
.tds-helper-shelf--expanded{
|
|
5390
|
+
height:auto;
|
|
5391
|
+
transition-timing-function:var(--t-ease-out);
|
|
5392
|
+
}
|
|
5393
|
+
|
|
5394
|
+
@supports (interpolate-size: allow-keywords){
|
|
5395
|
+
.tds-helper-shelf{
|
|
5396
|
+
interpolate-size:allow-keywords;
|
|
5397
|
+
}
|
|
5398
|
+
}
|
|
5399
|
+
|
|
5400
|
+
.tds-helper-shelf-content{
|
|
5401
|
+
padding:var(--tds-helper-shelf-padding);
|
|
5402
|
+
font-size:var(--tds-helper-shelf-font-size);
|
|
5403
|
+
line-height:var(--tds-helper-shelf-line-height);
|
|
5404
|
+
color:var(--tds-helper-shelf-color);
|
|
5405
|
+
background:var(--tds-helper-shelf-background-color);
|
|
5406
|
+
border-radius:var(--tds-helper-shelf-border-radius);
|
|
5407
|
+
}
|
|
5408
|
+
|
|
5409
|
+
.tds-helper-shelf-trigger{
|
|
5410
|
+
--tds-helper-shelf-trigger-color-expanded:var(--t-text-color-interaction);
|
|
5411
|
+
}
|
|
5412
|
+
|
|
5413
|
+
.tds-helper-shelf-trigger[aria-expanded="true"]{
|
|
5414
|
+
--tds-btn-color:var(--tds-helper-shelf-trigger-color-expanded);
|
|
5415
|
+
}
|
|
5416
|
+
|
|
5275
5417
|
.tds-popover{
|
|
5276
5418
|
max-inline-size:24rem;
|
|
5277
5419
|
overflow:auto;
|