@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.
Files changed (143) hide show
  1. package/dist/components/DataTable/CollectionEditorsLazy.js +2 -1
  2. package/dist/components/DataTable/CollectionEditorsLazy.js.map +1 -1
  3. package/dist/components/DataTable/DataTable.d.ts +5 -4
  4. package/dist/components/DataTable/DataTable.d.ts.map +1 -1
  5. package/dist/components/DataTable/DataTable.js +4 -2
  6. package/dist/components/DataTable/DataTable.js.map +1 -1
  7. package/dist/components/DataTable/ManageSavedViewsModal.d.ts +5 -2
  8. package/dist/components/DataTable/ManageSavedViewsModal.d.ts.map +1 -1
  9. package/dist/components/DataTable/ManageSavedViewsModal.js +167 -18
  10. package/dist/components/DataTable/ManageSavedViewsModal.js.map +1 -1
  11. package/dist/components/DataTable/ManageSavedViewsModal.module.css.js +1 -1
  12. package/dist/components/DataTable/SavedViewsBar.d.ts.map +1 -1
  13. package/dist/components/DataTable/SavedViewsBar.js +23 -9
  14. package/dist/components/DataTable/SavedViewsBar.js.map +1 -1
  15. package/dist/components/DataTable/savedViews.d.ts +24 -0
  16. package/dist/components/DataTable/savedViews.d.ts.map +1 -1
  17. package/dist/components/DataTable/savedViews.js +58 -1
  18. package/dist/components/DataTable/savedViews.js.map +1 -1
  19. package/dist/components/button/ActionsDropdownIconButton.d.ts +3 -2
  20. package/dist/components/button/ActionsDropdownIconButton.d.ts.map +1 -1
  21. package/dist/components/button/ActionsDropdownIconButton.js.map +1 -1
  22. package/dist/components/button/BaseButton.d.ts.map +1 -1
  23. package/dist/components/button/BaseButton.js +2 -1
  24. package/dist/components/button/BaseButton.js.map +1 -1
  25. package/dist/components/button/IconButton.d.ts +1 -3
  26. package/dist/components/button/IconButton.d.ts.map +1 -1
  27. package/dist/components/button/IconButton.js.map +1 -1
  28. package/dist/components/button/ToggleIconButton.d.ts +5 -2
  29. package/dist/components/button/ToggleIconButton.d.ts.map +1 -1
  30. package/dist/components/button/ToggleIconButton.js +1 -0
  31. package/dist/components/button/ToggleIconButton.js.map +1 -1
  32. package/dist/components/button/index.d.ts +1 -1
  33. package/dist/components/button/index.d.ts.map +1 -1
  34. package/dist/components/combo-box/ComboBox.d.ts +2 -0
  35. package/dist/components/combo-box/ComboBox.d.ts.map +1 -1
  36. package/dist/components/combo-box/ComboBox.js +31 -5
  37. package/dist/components/combo-box/ComboBox.js.map +1 -1
  38. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  39. package/dist/components/date-picker/DatePicker.js +18 -14
  40. package/dist/components/date-picker/DatePicker.js.map +1 -1
  41. package/dist/components/internal/LoadingAnnouncement.d.ts +11 -0
  42. package/dist/components/internal/LoadingAnnouncement.d.ts.map +1 -0
  43. package/dist/components/internal/LoadingAnnouncement.js +21 -0
  44. package/dist/components/internal/LoadingAnnouncement.js.map +1 -0
  45. package/dist/components/internal/index.d.ts +1 -0
  46. package/dist/components/internal/index.d.ts.map +1 -1
  47. package/dist/components/internal/tooltip/Tooltip.d.ts +4 -2
  48. package/dist/components/internal/tooltip/Tooltip.d.ts.map +1 -1
  49. package/dist/components/internal/tooltip/Tooltip.js.map +1 -1
  50. package/dist/components/internal/tooltip/TooltipTriggerContext.d.ts +3 -3
  51. package/dist/components/internal/tooltip/TooltipTriggerContext.d.ts.map +1 -1
  52. package/dist/components/internal/tooltip/TooltipTriggerContext.js +1 -1
  53. package/dist/components/internal/tooltip/TooltipTriggerContext.js.map +1 -1
  54. package/dist/components/internal/tooltip/index.d.ts +1 -1
  55. package/dist/components/internal/tooltip/index.d.ts.map +1 -1
  56. package/dist/components/link/BaseLink.d.ts.map +1 -1
  57. package/dist/components/link/BaseLink.js +15 -3
  58. package/dist/components/link/BaseLink.js.map +1 -1
  59. package/dist/components/link/IconLink.d.ts +28 -290
  60. package/dist/components/link/IconLink.d.ts.map +1 -1
  61. package/dist/components/link/IconLink.js +9 -2
  62. package/dist/components/link/IconLink.js.map +1 -1
  63. package/dist/components/page-header/defineElements.js +1 -1
  64. package/dist/components/pane/Pane.d.ts +1 -1
  65. package/dist/components/pane/Pane.js +1 -1
  66. package/dist/components/pane/Pane.js.map +1 -1
  67. package/dist/components/pane/PaneBody.d.ts +1 -1
  68. package/dist/components/pane/PaneBody.js +1 -1
  69. package/dist/components/pane/PaneBody.js.map +1 -1
  70. package/dist/components/pane/PaneDivider.d.ts +1 -1
  71. package/dist/components/pane/PaneDivider.js +1 -1
  72. package/dist/components/pane/PaneDivider.js.map +1 -1
  73. package/dist/components/pane/PaneFooter.d.ts +1 -1
  74. package/dist/components/pane/PaneFooter.js +1 -1
  75. package/dist/components/pane/PaneFooter.js.map +1 -1
  76. package/dist/components/pane/PaneHeader.d.ts +1 -1
  77. package/dist/components/pane/PaneHeader.js +1 -1
  78. package/dist/components/pane/PaneHeader.js.map +1 -1
  79. package/dist/components/pane/PaneHeaderActions.d.ts +1 -1
  80. package/dist/components/pane/PaneHeaderActions.js +1 -1
  81. package/dist/components/pane/PaneHeaderActions.js.map +1 -1
  82. package/dist/components/sidenav/defineElements.js +1 -1
  83. package/dist/components/time-field/TimeField.d.ts.map +1 -1
  84. package/dist/components/time-field/TimeField.js +7 -3
  85. package/dist/components/time-field/TimeField.js.map +1 -1
  86. package/dist/index.css +142 -0
  87. package/dist/index.css.map +1 -1
  88. package/dist/index.d.ts +1 -0
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +6 -0
  91. package/dist/index.js.map +1 -1
  92. package/dist/packages/tapestry-wc/dist/components/{p-np7vhMVg.js → p-A1JK45WV.js} +3 -3
  93. package/dist/packages/tapestry-wc/dist/components/p-A1JK45WV.js.map +1 -0
  94. package/dist/packages/tapestry-wc/dist/components/{p-BVvtAaVT.js → p-BbuNAv9q.js} +3 -3
  95. package/dist/packages/tapestry-wc/dist/components/p-BbuNAv9q.js.map +1 -0
  96. package/dist/packages/tapestry-wc/dist/components/{p-B2xqMgNQ.js → p-CBFtMIxJ.js} +2 -2
  97. package/dist/packages/tapestry-wc/dist/components/p-CBFtMIxJ.js.map +1 -0
  98. package/dist/packages/tapestry-wc/dist/components/{p-Rn6lOB18.js → p-CY_DC4d_.js} +3 -3
  99. package/dist/packages/tapestry-wc/dist/components/p-CY_DC4d_.js.map +1 -0
  100. package/dist/packages/tapestry-wc/dist/components/{p-6NO22Vi_.js → p-DNHgMtxw.js} +2 -2
  101. package/dist/packages/tapestry-wc/dist/components/p-DNHgMtxw.js.map +1 -0
  102. package/dist/packages/tapestry-wc/dist/components/tds-page-header-nav.js +2 -2
  103. package/dist/packages/tapestry-wc/dist/components/tds-page-header-nav.js.map +1 -1
  104. package/dist/packages/tapestry-wc/dist/components/tds-page-header.js +3 -3
  105. package/dist/packages/tapestry-wc/dist/components/tds-page-header.js.map +1 -1
  106. package/dist/packages/tapestry-wc/dist/components/tds-sidenav-item.js +3 -3
  107. package/dist/packages/tapestry-wc/dist/components/tds-sidenav-item.js.map +1 -1
  108. package/dist/packages/tapestry-wc/dist/components/tds-sidenav-responsive-header.js +2 -2
  109. package/dist/packages/tapestry-wc/dist/components/tds-sidenav-responsive-header.js.map +1 -1
  110. package/dist/packages/tapestry-wc/dist/components/tds-sidenav-section.js +3 -3
  111. package/dist/packages/tapestry-wc/dist/components/tds-sidenav-section.js.map +1 -1
  112. package/dist/packages/tapestry-wc/dist/components/tds-sidenav.js +5 -5
  113. package/dist/packages/tapestry-wc/dist/components/tds-sidenav.js.map +1 -1
  114. package/dist/reactRender.css +1171 -1101
  115. package/dist/reactRender.css.map +1 -1
  116. package/dist/reactRenderLegacy.css +1171 -1101
  117. package/dist/reactRenderLegacy.css.map +1 -1
  118. package/dist/tapestryMount.css +1171 -1101
  119. package/dist/tapestryMount.css.map +1 -1
  120. package/dist/tapestryMountLegacy.css +1171 -1101
  121. package/dist/tapestryMountLegacy.css.map +1 -1
  122. package/dist/unstable.css +201 -131
  123. package/dist/unstable.css.map +1 -1
  124. package/dist/unstable.d.ts +0 -1
  125. package/dist/unstable.d.ts.map +1 -1
  126. package/dist/unstable.js +6 -6
  127. package/dist/utilities/dateFieldLocale.d.ts +2 -0
  128. package/dist/utilities/dateFieldLocale.d.ts.map +1 -0
  129. package/dist/utilities/dateFieldLocale.js +32 -0
  130. package/dist/utilities/dateFieldLocale.js.map +1 -0
  131. package/dist/utilities/useAnnounce.d.ts +8 -1
  132. package/dist/utilities/useAnnounce.d.ts.map +1 -1
  133. package/dist/utilities/useAnnounce.js.map +1 -1
  134. package/dist/utilities/useDateFieldLocale.d.ts +2 -0
  135. package/dist/utilities/useDateFieldLocale.d.ts.map +1 -0
  136. package/dist/utilities/useDateFieldLocale.js +11 -0
  137. package/dist/utilities/useDateFieldLocale.js.map +1 -0
  138. package/package.json +4 -3
  139. package/dist/packages/tapestry-wc/dist/components/p-6NO22Vi_.js.map +0 -1
  140. package/dist/packages/tapestry-wc/dist/components/p-B2xqMgNQ.js.map +0 -1
  141. package/dist/packages/tapestry-wc/dist/components/p-BVvtAaVT.js.map +0 -1
  142. package/dist/packages/tapestry-wc/dist/components/p-Rn6lOB18.js.map +0 -1
  143. 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/unstable-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
+ {"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-B2xqMgNQ.js';
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;AAEhF,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,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,qBAyDvB"}
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(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"
28
- ? "tds-field-date-segment-separator"
29
- : "tds-field-date-segment", segment: segment }))),
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 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 {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":";;;;;;AA0EA;;;;;;;;;;;;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;IAED,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,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,kBAAE;kBACA,wBAAwB,EAE9B,OAAO,EAAE,OAAO,EAAA,CAChB,CACH,CACS;AACX,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;;;;"}
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;