@planningcenter/tapestry 2.8.0-rc.1 → 2.8.0-rc.11

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 (49) hide show
  1. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  2. package/dist/components/checkbox/Checkbox.js +6 -4
  3. package/dist/components/checkbox/Checkbox.js.map +1 -1
  4. package/dist/components/page-header/PageHeader.d.ts.map +1 -1
  5. package/dist/components/page-header/PageHeader.js +39 -7
  6. package/dist/components/page-header/PageHeader.js.map +1 -1
  7. package/dist/components/page-header/index.js +1 -1
  8. package/dist/components/sidenav/index.js +1 -1
  9. package/dist/index.css +9 -9
  10. package/dist/index.css.map +1 -1
  11. package/dist/reactRender.css +446 -428
  12. package/dist/reactRender.css.map +1 -1
  13. package/dist/reactRenderLegacy.css +446 -428
  14. package/dist/reactRenderLegacy.css.map +1 -1
  15. package/dist/tapestry-wc/dist/components/{p-DyuxdWHB.js → p-B5ytoT1u.js} +2 -2
  16. package/dist/tapestry-wc/dist/components/p-B5ytoT1u.js.map +1 -0
  17. package/dist/tapestry-wc/dist/components/{p-DhVoKIg5.js → p-BbMC233n.js} +3 -3
  18. package/dist/tapestry-wc/dist/components/p-BbMC233n.js.map +1 -0
  19. package/dist/tapestry-wc/dist/components/{p-0A08CXL_.js → p-BedqK81s.js} +2 -2
  20. package/dist/tapestry-wc/dist/components/p-BedqK81s.js.map +1 -0
  21. package/dist/tapestry-wc/dist/components/{p-5mZYbcme.js → p-DR1nPBoM.js} +3 -3
  22. package/dist/tapestry-wc/dist/components/p-DR1nPBoM.js.map +1 -0
  23. package/dist/tapestry-wc/dist/components/{p-BhPfBZD-.js → p-oCoUE-Tb.js} +3 -3
  24. package/dist/tapestry-wc/dist/components/p-oCoUE-Tb.js.map +1 -0
  25. package/dist/tapestry-wc/dist/components/tds-page-header-nav.js +2 -2
  26. package/dist/tapestry-wc/dist/components/tds-page-header-nav.js.map +1 -1
  27. package/dist/tapestry-wc/dist/components/tds-page-header.js +3 -3
  28. package/dist/tapestry-wc/dist/components/tds-page-header.js.map +1 -1
  29. package/dist/tapestry-wc/dist/components/tds-sidenav-item.js +3 -3
  30. package/dist/tapestry-wc/dist/components/tds-sidenav-item.js.map +1 -1
  31. package/dist/tapestry-wc/dist/components/tds-sidenav-responsive-header.js +2 -2
  32. package/dist/tapestry-wc/dist/components/tds-sidenav-responsive-header.js.map +1 -1
  33. package/dist/tapestry-wc/dist/components/tds-sidenav-section.js +3 -3
  34. package/dist/tapestry-wc/dist/components/tds-sidenav-section.js.map +1 -1
  35. package/dist/tapestry-wc/dist/components/tds-sidenav.js +5 -5
  36. package/dist/tapestry-wc/dist/components/tds-sidenav.js.map +1 -1
  37. package/dist/tokens/tokens-deprecated.json +32 -16
  38. package/dist/tokens.css +7 -7
  39. package/dist/tokens.css.map +1 -1
  40. package/dist/unstable.css +77 -59
  41. package/dist/unstable.css.map +1 -1
  42. package/dist/unstable.js +1 -0
  43. package/dist/unstable.js.map +1 -1
  44. package/package.json +5 -4
  45. package/dist/tapestry-wc/dist/components/p-0A08CXL_.js.map +0 -1
  46. package/dist/tapestry-wc/dist/components/p-5mZYbcme.js.map +0 -1
  47. package/dist/tapestry-wc/dist/components/p-BhPfBZD-.js.map +0 -1
  48. package/dist/tapestry-wc/dist/components/p-DhVoKIg5.js.map +0 -1
  49. package/dist/tapestry-wc/dist/components/p-DyuxdWHB.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAE,EAAc,mBAAmB,EAAe,MAAM,OAAO,CAAA;AAE3E,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAA;AAEtC,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,aAAa,GAAG,MAAM,CAC7B,GACC,aAAa,CAAA;AAwBf;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,0KAmEpB,CAAA"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,EAAc,mBAAmB,EAAe,MAAM,OAAO,CAAA;AAE3E,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAA;AAEtC,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,aAAa,GAAG,MAAM,CAC7B,GACC,aAAa,CAAA;AAqBf;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,0KAuEpB,CAAA"}
@@ -1,9 +1,10 @@
1
+ import Icon from '../../utilities/Icon.js';
1
2
  import classNames from 'classnames';
2
3
  import React, { forwardRef, useCallback } from 'react';
3
4
 
4
5
  let idCounter = 0;
5
- const buildCheckboxClassName = ({ className, invalid, indeterminate, size, }) => {
6
- return classNames("tds-checkbox", size && size !== "md" && `tds-checkbox--${size}`, invalid && "tds-checkbox--invalid", indeterminate && "tds-checkbox--indeterminate", className);
6
+ const buildCheckboxClassName = ({ className, invalid, size, }) => {
7
+ return classNames("tds-checkbox", size && size !== "md" && `tds-checkbox--${size}`, invalid && "tds-checkbox--invalid", className);
7
8
  };
8
9
  /**
9
10
  * A checkbox component that renders as a checkbox input with label.
@@ -27,7 +28,6 @@ const Checkbox = forwardRef(({ className, description, disabled, id, indetermina
27
28
  }, [ref, indeterminate]);
28
29
  const combinedClassName = buildCheckboxClassName({
29
30
  className,
30
- indeterminate,
31
31
  invalid,
32
32
  size,
33
33
  });
@@ -35,7 +35,9 @@ const Checkbox = forwardRef(({ className, description, disabled, id, indetermina
35
35
  return (React.createElement("div", { className: combinedClassName },
36
36
  React.createElement("input", { ...restProps, "aria-describedby": description ? `${checkboxId}-description` : undefined, "aria-invalid": invalid, disabled: disabled, id: checkboxId, ref: callbackRef, required: required, type: "checkbox" }),
37
37
  React.createElement("label", { htmlFor: checkboxId }, label),
38
- description && (React.createElement("p", { id: `${checkboxId}-description`, className: "tds-checkbox-description" }, description))));
38
+ description && (React.createElement("p", { id: `${checkboxId}-description`, className: "tds-checkbox-description" },
39
+ React.createElement(Icon, { className: "tds-checkbox-description-invalid-icon", symbol: "general#exclamation-triangle", "aria-hidden": true }),
40
+ description))));
39
41
  });
40
42
  Checkbox.displayName = "Checkbox";
41
43
 
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport classNames from \"classnames\"\nimport React, { forwardRef, InputHTMLAttributes, useCallback } from \"react\"\n\nexport type CheckboxSize = \"md\" | \"sm\"\n\nexport interface CheckboxProps {\n description?: string\n disabled?: boolean\n id?: string\n indeterminate?: boolean\n invalid?: boolean\n label: string\n required?: boolean\n size?: CheckboxSize\n}\n\nexport type CheckboxElementProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n keyof CheckboxProps | \"type\"\n> &\n CheckboxProps\n\nlet idCounter = 0\n\nconst buildCheckboxClassName = ({\n className,\n invalid,\n indeterminate,\n size,\n}: {\n className?: string\n indeterminate?: boolean\n invalid?: boolean\n size?: CheckboxSize\n}): string => {\n return classNames(\n \"tds-checkbox\",\n size && size !== \"md\" && `tds-checkbox--${size}`,\n invalid && \"tds-checkbox--invalid\",\n indeterminate && \"tds-checkbox--indeterminate\",\n className\n )\n}\n\n/**\n * A checkbox component that renders as a checkbox input with label.\n * Supports various sizes, error states, and disabled states.\n * Label must be a string.\n *\n * @component\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxElementProps>(\n (\n {\n className,\n description,\n disabled,\n id,\n indeterminate = false,\n invalid,\n label,\n required = false,\n size = \"md\",\n ...restProps\n }: CheckboxElementProps,\n ref\n ) => {\n const callbackRef = useCallback(\n (element: HTMLInputElement | null) => {\n if (element) {\n element.indeterminate = indeterminate\n }\n\n // Handle the forwarded ref\n if (typeof ref === \"function\") {\n ref(element)\n } else if (ref && typeof ref === \"object\") {\n ref.current = element\n }\n },\n [ref, indeterminate]\n )\n\n const combinedClassName = buildCheckboxClassName({\n className,\n indeterminate,\n invalid,\n size,\n })\n\n const checkboxId = id || `tds-checkbox-${idCounter++}`\n\n return (\n <div className={combinedClassName}>\n <input\n {...restProps}\n aria-describedby={\n description ? `${checkboxId}-description` : undefined\n }\n aria-invalid={invalid}\n disabled={disabled}\n id={checkboxId}\n ref={callbackRef}\n required={required}\n type=\"checkbox\"\n />\n <label htmlFor={checkboxId}>{label}</label>\n {description && (\n <p\n id={`${checkboxId}-description`}\n className=\"tds-checkbox-description\"\n >\n {description}\n </p>\n )}\n </div>\n )\n }\n)\n\nCheckbox.displayName = \"Checkbox\"\n"],"names":[],"mappings":";;;AAwBA,IAAI,SAAS,GAAG,CAAC;AAEjB,MAAM,sBAAsB,GAAG,CAAC,EAC9B,SAAS,EACT,OAAO,EACP,aAAa,EACb,IAAI,GAML,KAAY;IACX,OAAO,UAAU,CACf,cAAc,EACd,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAA,cAAA,EAAiB,IAAI,EAAE,EAChD,OAAO,IAAI,uBAAuB,EAClC,aAAa,IAAI,6BAA6B,EAC9C,SAAS,CACV;AACH,CAAC;AAED;;;;;;AAMG;AACI,MAAM,QAAQ,GAAG,UAAU,CAChC,CACE,EACE,SAAS,EACT,WAAW,EACX,QAAQ,EACR,EAAE,EACF,aAAa,GAAG,KAAK,EACrB,OAAO,EACP,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,IAAI,EACX,GAAG,SAAS,EACS,EACvB,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,OAAgC,KAAI;QACnC,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,aAAa,GAAG,aAAa;QACvC;;AAGA,QAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;YAC7B,GAAG,CAAC,OAAO,CAAC;QACd;AAAO,aAAA,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzC,YAAA,GAAG,CAAC,OAAO,GAAG,OAAO;QACvB;AACF,IAAA,CAAC,EACD,CAAC,GAAG,EAAE,aAAa,CAAC,CACrB;IAED,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;QAC/C,SAAS;QACT,aAAa;QACb,OAAO;QACP,IAAI;AACL,KAAA,CAAC;IAEF,MAAM,UAAU,GAAG,EAAE,IAAI,gBAAgB,SAAS,EAAE,EAAE;AAEtD,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,iBAAiB,EAAA;AAC/B,QAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,GACM,SAAS,EAAA,kBAAA,EAEX,WAAW,GAAG,CAAA,EAAG,UAAU,CAAA,YAAA,CAAc,GAAG,SAAS,EAAA,cAAA,EAEzC,OAAO,EACrB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,UAAU,EAAA,CACf;AACF,QAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,UAAU,EAAA,EAAG,KAAK,CAAS;AAC1C,QAAA,WAAW,KACV,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EACE,EAAE,EAAE,CAAA,EAAG,UAAU,CAAA,YAAA,CAAc,EAC/B,SAAS,EAAC,0BAA0B,EAAA,EAEnC,WAAW,CACV,CACL,CACG;AAEV,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport Icon from \"@utilities/Icon\"\nimport classNames from \"classnames\"\nimport React, { forwardRef, InputHTMLAttributes, useCallback } from \"react\"\n\nexport type CheckboxSize = \"md\" | \"sm\"\n\nexport interface CheckboxProps {\n description?: string\n disabled?: boolean\n id?: string\n indeterminate?: boolean\n invalid?: boolean\n label: string\n required?: boolean\n size?: CheckboxSize\n}\n\nexport type CheckboxElementProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n keyof CheckboxProps | \"type\"\n> &\n CheckboxProps\n\nlet idCounter = 0\n\nconst buildCheckboxClassName = ({\n className,\n invalid,\n size,\n}: {\n className?: string\n invalid?: boolean\n size?: CheckboxSize\n}): string => {\n return classNames(\n \"tds-checkbox\",\n size && size !== \"md\" && `tds-checkbox--${size}`,\n invalid && \"tds-checkbox--invalid\",\n className\n )\n}\n\n/**\n * A checkbox component that renders as a checkbox input with label.\n * Supports various sizes, error states, and disabled states.\n * Label must be a string.\n *\n * @component\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxElementProps>(\n (\n {\n className,\n description,\n disabled,\n id,\n indeterminate = false,\n invalid,\n label,\n required = false,\n size = \"md\",\n ...restProps\n }: CheckboxElementProps,\n ref\n ) => {\n const callbackRef = useCallback(\n (element: HTMLInputElement | null) => {\n if (element) {\n element.indeterminate = indeterminate\n }\n\n // Handle the forwarded ref\n if (typeof ref === \"function\") {\n ref(element)\n } else if (ref && typeof ref === \"object\") {\n ref.current = element\n }\n },\n [ref, indeterminate]\n )\n\n const combinedClassName = buildCheckboxClassName({\n className,\n invalid,\n size,\n })\n\n const checkboxId = id || `tds-checkbox-${idCounter++}`\n\n return (\n <div className={combinedClassName}>\n <input\n {...restProps}\n aria-describedby={\n description ? `${checkboxId}-description` : undefined\n }\n aria-invalid={invalid}\n disabled={disabled}\n id={checkboxId}\n ref={callbackRef}\n required={required}\n type=\"checkbox\"\n />\n <label htmlFor={checkboxId}>{label}</label>\n {description && (\n <p\n id={`${checkboxId}-description`}\n className=\"tds-checkbox-description\"\n >\n <Icon\n className=\"tds-checkbox-description-invalid-icon\"\n symbol=\"general#exclamation-triangle\"\n aria-hidden\n />\n {description}\n </p>\n )}\n </div>\n )\n }\n)\n\nCheckbox.displayName = \"Checkbox\"\n"],"names":[],"mappings":";;;;AAyBA,IAAI,SAAS,GAAG,CAAC;AAEjB,MAAM,sBAAsB,GAAG,CAAC,EAC9B,SAAS,EACT,OAAO,EACP,IAAI,GAKL,KAAY;IACX,OAAO,UAAU,CACf,cAAc,EACd,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,iBAAiB,IAAI,CAAA,CAAE,EAChD,OAAO,IAAI,uBAAuB,EAClC,SAAS,CACV;AACH,CAAC;AAED;;;;;;AAMG;AACI,MAAM,QAAQ,GAAG,UAAU,CAChC,CACE,EACE,SAAS,EACT,WAAW,EACX,QAAQ,EACR,EAAE,EACF,aAAa,GAAG,KAAK,EACrB,OAAO,EACP,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,IAAI,EACX,GAAG,SAAS,EACS,EACvB,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,OAAgC,KAAI;QACnC,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,aAAa,GAAG,aAAa;QACvC;;AAGA,QAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;YAC7B,GAAG,CAAC,OAAO,CAAC;QACd;AAAO,aAAA,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzC,YAAA,GAAG,CAAC,OAAO,GAAG,OAAO;QACvB;AACF,IAAA,CAAC,EACD,CAAC,GAAG,EAAE,aAAa,CAAC,CACrB;IAED,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;QAC/C,SAAS;QACT,OAAO;QACP,IAAI;AACL,KAAA,CAAC;IAEF,MAAM,UAAU,GAAG,EAAE,IAAI,gBAAgB,SAAS,EAAE,EAAE;AAEtD,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,iBAAiB,EAAA;AAC/B,QAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,GACM,SAAS,EAAA,kBAAA,EAEX,WAAW,GAAG,CAAA,EAAG,UAAU,CAAA,YAAA,CAAc,GAAG,SAAS,EAAA,cAAA,EAEzC,OAAO,EACrB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,UAAU,EAAA,CACf;AACF,QAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,UAAU,EAAA,EAAG,KAAK,CAAS;QAC1C,WAAW,KACV,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EACE,EAAE,EAAE,CAAA,EAAG,UAAU,CAAA,YAAA,CAAc,EAC/B,SAAS,EAAC,0BAA0B,EAAA;YAEpC,KAAA,CAAA,aAAA,CAAC,IAAI,IACH,SAAS,EAAC,uCAAuC,EACjD,MAAM,EAAC,8BAA8B,EAAA,aAAA,EAAA,IAAA,EAAA,CAErC;AACD,YAAA,WAAW,CACV,CACL,CACG;AAEV,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../../src/components/page-header/PageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAgB,EAChB,OAAe,GAChB,EAAE;IACD;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,qBAUA"}
1
+ {"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../../src/components/page-header/PageHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAEhD,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAgB,EAChB,OAAe,GAChB,EAAE;IACD;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,qBA+BA"}
@@ -1,12 +1,44 @@
1
- import React from 'react';
1
+ import classNames from 'classnames';
2
+ import React, { useRef, useEffect } from 'react';
2
3
 
3
4
  function PageHeader({ children, actions, navigation, className, inactive = false, profile = false, }) {
4
- const inactiveProps = inactive ? { inactive } : {};
5
- const profileProps = profile ? { profile } : {};
6
- return (React.createElement("tds-page-header", { ...inactiveProps, ...profileProps, class: className },
7
- children,
8
- actions && React.createElement("div", { slot: "actions" }, actions),
9
- navigation && React.createElement("nav", { slot: "navigation" }, navigation)));
5
+ const hasMultiActions = actions
6
+ ? React.isValidElement(actions) && actions.type === React.Fragment
7
+ ? React.Children.count(actions.props.children) > 1
8
+ : React.Children.count(actions) > 1
9
+ : false;
10
+ const nav = useScrollToSelected(navigation);
11
+ return (React.createElement("header", { className: classNames("tds-page-header", className, {
12
+ "has-multi-actions": hasMultiActions,
13
+ "has-nav": !!navigation,
14
+ inactive,
15
+ "tds-page-header--profile": profile,
16
+ }) },
17
+ React.createElement("div", { className: "tds-page-header__title-bar" },
18
+ React.createElement("div", { className: "tds-page-header__primary" }, children),
19
+ actions && (React.createElement("div", { className: "tds-page-header__actions tds-no-print" }, actions))),
20
+ navigation && (React.createElement("nav", { ref: nav, className: "tds-page-header__nav tds-no-print" }, navigation))));
21
+ }
22
+ function useScrollToSelected(navigation) {
23
+ const nav = useRef(null);
24
+ useEffect(() => {
25
+ if (!nav.current)
26
+ return;
27
+ const ulElement = nav.current.querySelector("ul");
28
+ if (!ulElement)
29
+ return;
30
+ const selectedItem = ulElement.querySelector(".selected");
31
+ if (selectedItem) {
32
+ const bounds = selectedItem.getBoundingClientRect();
33
+ const ulBounds = ulElement.getBoundingClientRect();
34
+ if (bounds.right > ulBounds.right || bounds.left < ulBounds.left) {
35
+ ulElement.scrollTo({
36
+ left: ulElement.scrollLeft + bounds.left - ulBounds.left,
37
+ });
38
+ }
39
+ }
40
+ }, [navigation]);
41
+ return nav;
10
42
  }
11
43
 
12
44
  export { PageHeader };
@@ -1 +1 @@
1
- {"version":3,"file":"PageHeader.js","sources":["../../../src/components/page-header/PageHeader.tsx"],"sourcesContent":["import React from \"react\"\n\nexport function PageHeader({\n children,\n actions,\n navigation,\n className,\n inactive = false,\n profile = false,\n}: {\n /**\n * Additional content (typically actions) that complements the primary slot.\n */\n actions?: React.ReactNode\n /**\n * The main content of the page header. It will be displayed prominently. For simple pages, providing a h1 will suffice.\n */\n children: React.ReactNode\n className?: string\n /**\n * Indicates whether the page header is inactive or not. When set to true, the page header is visually inactive\n */\n inactive?: boolean\n /**\n * Navigation for the page. Should contain an unstyled unordered list (ul)\n * that contains a list of links or buttons.\n */\n navigation?: React.ReactNode\n /**\n * Indicates whether the page header is a profile page header or not. When set to true, the page header will visually center the title and actions at mobile breakpoints.\n */\n profile?: boolean\n}) {\n const inactiveProps = inactive ? { inactive } : {}\n const profileProps = profile ? { profile } : {}\n return (\n <tds-page-header {...inactiveProps} {...profileProps} class={className}>\n {children}\n {actions && <div slot=\"actions\">{actions}</div>}\n {navigation && <nav slot=\"navigation\">{navigation}</nav>}\n </tds-page-header>\n )\n}\n"],"names":[],"mappings":";;SAEgB,UAAU,CAAC,EACzB,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,GAwBhB,EAAA;AACC,IAAA,MAAM,aAAa,GAAG,QAAQ,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;AAClD,IAAA,MAAM,YAAY,GAAG,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;IAC/C,QACE,4CAAqB,aAAa,EAAA,GAAM,YAAY,EAAE,KAAK,EAAE,SAAS,EAAA;QACnE,QAAQ;AACR,QAAA,OAAO,IAAI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,SAAS,EAAA,EAAE,OAAO,CAAO;QAC9C,UAAU,IAAI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAC,YAAY,IAAE,UAAU,CAAO,CACxC;AAEtB;;;;"}
1
+ {"version":3,"file":"PageHeader.js","sources":["../../../src/components/page-header/PageHeader.tsx"],"sourcesContent":["import classNames from \"classnames\"\nimport React, { useEffect, useRef } from \"react\"\n\nexport function PageHeader({\n children,\n actions,\n navigation,\n className,\n inactive = false,\n profile = false,\n}: {\n /**\n * Additional content (typically actions) that complements the primary slot.\n */\n actions?: React.ReactNode\n /**\n * The main content of the page header. It will be displayed prominently. For simple pages, providing a h1 will suffice.\n */\n children: React.ReactNode\n className?: string\n /**\n * Indicates whether the page header is inactive or not. When set to true, the page header is visually inactive\n */\n inactive?: boolean\n /**\n * Navigation for the page. Should contain an unstyled unordered list (ul)\n * that contains a list of links or buttons.\n */\n navigation?: React.ReactNode\n /**\n * Indicates whether the page header is a profile page header or not. When set to true, the page header will visually center the title and actions at mobile breakpoints.\n */\n profile?: boolean\n}) {\n const hasMultiActions = actions\n ? React.isValidElement(actions) && actions.type === React.Fragment\n ? React.Children.count(actions.props.children) > 1\n : React.Children.count(actions) > 1\n : false\n\n const nav = useScrollToSelected(navigation)\n\n return (\n <header\n className={classNames(\"tds-page-header\", className, {\n \"has-multi-actions\": hasMultiActions,\n \"has-nav\": !!navigation,\n inactive,\n \"tds-page-header--profile\": profile,\n })}\n >\n <div className=\"tds-page-header__title-bar\">\n <div className=\"tds-page-header__primary\">{children}</div>\n {actions && (\n <div className=\"tds-page-header__actions tds-no-print\">{actions}</div>\n )}\n </div>\n {navigation && (\n <nav ref={nav} className=\"tds-page-header__nav tds-no-print\">\n {navigation}\n </nav>\n )}\n </header>\n )\n}\n\nfunction useScrollToSelected(navigation: React.ReactNode) {\n const nav = useRef<HTMLElement>(null)\n useEffect(() => {\n if (!nav.current) return\n const ulElement = nav.current.querySelector(\"ul\")\n if (!ulElement) return\n const selectedItem = ulElement.querySelector(\".selected\")\n if (selectedItem) {\n const bounds = selectedItem.getBoundingClientRect()\n const ulBounds = ulElement.getBoundingClientRect()\n if (bounds.right > ulBounds.right || bounds.left < ulBounds.left) {\n ulElement.scrollTo({\n left: ulElement.scrollLeft + bounds.left - ulBounds.left,\n })\n }\n }\n }, [navigation])\n return nav\n}\n"],"names":[],"mappings":";;;SAGgB,UAAU,CAAC,EACzB,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,GAwBhB,EAAA;IACC,MAAM,eAAe,GAAG;AACtB,UAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC;AACxD,cAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG;cAC/C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;UAClC,KAAK;AAET,IAAA,MAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,CAAC;IAE3C,QACE,gCACE,SAAS,EAAE,UAAU,CAAC,iBAAiB,EAAE,SAAS,EAAE;AAClD,YAAA,mBAAmB,EAAE,eAAe;YACpC,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,QAAQ;AACR,YAAA,0BAA0B,EAAE,OAAO;SACpC,CAAC,EAAA;QAEF,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,EAAA;AACzC,YAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0BAA0B,EAAA,EAAE,QAAQ,CAAO;YACzD,OAAO,KACN,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uCAAuC,EAAA,EAAE,OAAO,CAAO,CACvE,CACG;AACL,QAAA,UAAU,KACT,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,mCAAmC,IACzD,UAAU,CACP,CACP,CACM;AAEb;AAEA,SAAS,mBAAmB,CAAC,UAA2B,EAAA;AACtD,IAAA,MAAM,GAAG,GAAG,MAAM,CAAc,IAAI,CAAC;IACrC,SAAS,CAAC,MAAK;QACb,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE;QAClB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS;YAAE;QAChB,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC;QACzD,IAAI,YAAY,EAAE;AAChB,YAAA,MAAM,MAAM,GAAG,YAAY,CAAC,qBAAqB,EAAE;AACnD,YAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,qBAAqB,EAAE;AAClD,YAAA,IAAI,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE;gBAChE,SAAS,CAAC,QAAQ,CAAC;oBACjB,IAAI,EAAE,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI;AACzD,iBAAA,CAAC;YACJ;QACF;AACF,IAAA,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAChB,IAAA,OAAO,GAAG;AACZ;;;;"}
@@ -1,4 +1,4 @@
1
- import '../../tapestry-wc/dist/components/p-DyuxdWHB.js';
1
+ import '../../tapestry-wc/dist/components/p-B5ytoT1u.js';
2
2
  import { defineCustomElement } from '../../tapestry-wc/dist/components/tds-page-header.js';
3
3
  import { defineCustomElement as defineCustomElement$1 } from '../../tapestry-wc/dist/components/tds-page-header-nav.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import '../../tapestry-wc/dist/components/p-DyuxdWHB.js';
1
+ import '../../tapestry-wc/dist/components/p-B5ytoT1u.js';
2
2
  import { defineCustomElement } from '../../tapestry-wc/dist/components/tds-sidenav.js';
3
3
  import { defineCustomElement as defineCustomElement$1 } from '../../tapestry-wc/dist/components/tds-sidenav-item.js';
4
4
  import { defineCustomElement as defineCustomElement$3 } from '../../tapestry-wc/dist/components/tds-sidenav-responsive-header.js';
package/dist/index.css CHANGED
@@ -6,7 +6,7 @@
6
6
  --t-border-radius-lg:8px;
7
7
  --t-border-radius-xl:16px;
8
8
  --t-border-radius-round:56px;
9
- --t-border-radius:4px;
9
+ --t-border-radius:var(--t-border-radius-md);
10
10
  --t-border-width:1px;
11
11
  --t-border-width-thick:2px;
12
12
  --t-spacing-1:8px;
@@ -119,8 +119,8 @@
119
119
  --t-fill-color-control-neutral-off:hsl(0, 0%, 58%);
120
120
  --t-fill-color-control-neutral-on:hsl(0, 0%, 24%);
121
121
  --t-fill-color-control:hsl(204, 100%, 40%);
122
- --t-fill-color-control-secondary:hsl(97, 57%, 40%);
123
122
  --t-fill-color-control-error:hsl(8, 60%, 47%);
123
+ --t-fill-color-control-secondary:hsl(97, 57%, 40%);
124
124
  --t-fill-color-control-disabled:hsl(0, 0%, 81%);
125
125
  --t-fill-color-status-neutral:hsl(0, 0%, 42%);
126
126
  --t-fill-color-status-neutral-ghost:hsl(0, 0%, 93%);
@@ -318,9 +318,9 @@
318
318
  --t-fill-color-button-neutral-ghost-hover:hsl(0, 0%, 95%);
319
319
  --t-fill-color-button-neutral-ghost-active:hsl(0, 0%, 93%);
320
320
  --t-fill-color-button-neutral-ghost-disabled:hsla(0, 0%, 100%, 0);
321
- --t-fill-color-button-neutral-responsive-header:hsla(0, 0%, 0%, 0.1);
322
- --t-fill-color-button-neutral-responsive-header-hover:hsla(0, 0%, 0%, 0.2);
323
- --t-fill-color-button-neutral-responsive-header-active:hsla(0, 0%, 0%, 0.3);
321
+ --t-fill-color-button-neutral-responsive-header:var(--t-fill-color-transparency-dark-010);
322
+ --t-fill-color-button-neutral-responsive-header-hover:var(--t-fill-color-transparency-dark-020);
323
+ --t-fill-color-button-neutral-responsive-header-active:var(--t-fill-color-transparency-dark-030);
324
324
  --t-fill-color-button-neutral-responsive-header-disabled:hsla(0, 0%, 0%, 0.05);
325
325
  --t-fill-color-button-interaction-solid:hsl(204, 100%, 40%);
326
326
  --t-fill-color-button-interaction-solid-hover:hsl(204, 100%, 35%);
@@ -377,8 +377,8 @@
377
377
  --t-fill-color-transparency-dark-static-070:hsla(0, 0%, 0%, 0.7);
378
378
  --t-fill-color-transparency-dark-static-080:hsla(0, 0%, 0%, 0.8);
379
379
  --t-fill-color-transparency-dark-static-090:hsla(0, 0%, 0%, 0.9);
380
- --t-surface-color-card:hsl(0, 0%, 100%);
381
- --t-surface-color-canvas:hsl(0, 0%, 100%);
380
+ --t-surface-color-card:var(--t-fill-color-neutral-100);
381
+ --t-surface-color-canvas:var(--t-fill-color-neutral-100);
382
382
  --t-border-color:hsl(0, 0%, 88%);
383
383
  --t-border-color-dark:hsl(0, 0%, 81%);
384
384
  --t-border-color-darker:hsl(0, 0%, 68%);
@@ -1077,7 +1077,7 @@
1077
1077
  overflow-wrap:break-word;
1078
1078
  }
1079
1079
 
1080
- .tds-page-header [slot="actions"]{
1080
+ .tds-page-header [slot="actions"], .tds-page-header .tds-page-header__actions{
1081
1081
  width:100%;
1082
1082
  }
1083
1083
 
@@ -1206,7 +1206,7 @@
1206
1206
  align-items:flex-start;
1207
1207
  }
1208
1208
 
1209
- .tds-page-header [slot="actions"]{
1209
+ .tds-page-header [slot="actions"], .tds-page-header .tds-page-header__actions{
1210
1210
  width:auto;
1211
1211
  }
1212
1212