@planningcenter/tapestry 3.0.0 → 3.0.1-rc.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/Banner/Banner.js +7 -7
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/button/BaseButton.js +4 -4
- package/dist/components/button/BaseButton.js.map +1 -1
- package/dist/components/button/Button.js +2 -2
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/DropdownButton.js +3 -3
- package/dist/components/button/DropdownButton.js.map +1 -1
- package/dist/components/button/DropdownIconButton.js +2 -2
- package/dist/components/button/DropdownIconButton.js.map +1 -1
- package/dist/components/button/IconButton.js +2 -2
- package/dist/components/button/IconButton.js.map +1 -1
- package/dist/components/button/LoadingButton.js +2 -2
- package/dist/components/button/LoadingButton.js.map +1 -1
- package/dist/components/button/PageHeaderActionsDropdownButton.js +3 -3
- package/dist/components/button/PageHeaderActionsDropdownButton.js.map +1 -1
- package/dist/components/checkbox/Checkbox.js +6 -6
- package/dist/components/checkbox/Checkbox.js.map +1 -1
- package/dist/components/input/Input.d.ts.map +1 -1
- package/dist/components/input/Input.js +5 -18
- package/dist/components/input/Input.js.map +1 -1
- package/dist/components/input-text-base/InputTextBase.d.ts +17 -0
- package/dist/components/input-text-base/InputTextBase.d.ts.map +1 -0
- package/dist/components/input-text-base/InputTextBase.js +26 -0
- package/dist/components/input-text-base/InputTextBase.js.map +1 -0
- package/dist/components/input-text-base/index.d.ts +4 -0
- package/dist/components/input-text-base/index.d.ts.map +1 -0
- package/dist/components/internal/LoadingSpinner.js +2 -2
- package/dist/components/internal/LoadingSpinner.js.map +1 -1
- package/dist/components/link/BaseLink.js +2 -2
- package/dist/components/link/BaseLink.js.map +1 -1
- package/dist/components/link/IconLink.js +2 -2
- package/dist/components/link/IconLink.js.map +1 -1
- package/dist/components/link/Link.js +2 -2
- package/dist/components/link/Link.js.map +1 -1
- package/dist/components/radio/Radio.js +5 -5
- package/dist/components/radio/Radio.js.map +1 -1
- package/dist/components/text-area/TextArea.d.ts.map +1 -0
- package/dist/components/text-area/TextArea.js +16 -0
- package/dist/components/text-area/TextArea.js.map +1 -0
- package/dist/components/text-area/index.d.ts.map +1 -0
- package/dist/components/toggle-switch/ToggleSwitch.js +6 -6
- package/dist/components/toggle-switch/ToggleSwitch.js.map +1 -1
- package/dist/index.css +1 -0
- package/dist/index.css.map +1 -1
- package/dist/reactRender.css +172 -289
- package/dist/reactRender.css.map +1 -1
- package/dist/reactRenderLegacy.css +172 -289
- package/dist/reactRenderLegacy.css.map +1 -1
- package/dist/tapestry-reset.css +10 -2
- package/dist/tapestry-reset.css.map +1 -1
- package/dist/unstable.css +91 -208
- package/dist/unstable.css.map +1 -1
- package/dist/unstable.d.ts +1 -1
- package/dist/unstable.d.ts.map +1 -1
- package/dist/unstable.js +1 -1
- package/dist/utilities/Icon.js +2 -2
- package/dist/utilities/Icon.js.map +1 -1
- package/dist/utilities/buttonLinkShared.js +4 -4
- package/dist/utilities/buttonLinkShared.js.map +1 -1
- package/package.json +8 -6
- package/dist/components/textarea/TextArea.d.ts.map +0 -1
- package/dist/components/textarea/TextArea.js +0 -27
- package/dist/components/textarea/TextArea.js.map +0 -1
- package/dist/components/textarea/index.d.ts.map +0 -1
- package/react-types/popover.d.ts +0 -7
- /package/dist/components/{textarea → text-area}/TextArea.d.ts +0 -0
- /package/dist/components/{textarea → text-area}/index.d.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import classNames from 'classnames';
|
|
2
|
-
import
|
|
2
|
+
import React__default from 'react';
|
|
3
3
|
|
|
4
4
|
const COMPONENT_KIND_CLASS_MAP = {
|
|
5
5
|
delete: "tds-btn--delete",
|
|
@@ -28,16 +28,16 @@ const COMPONENT_SIZE_CLASS_MAP = {
|
|
|
28
28
|
const enhanceElementWithClassName = (element, className) => {
|
|
29
29
|
if (!element)
|
|
30
30
|
return null;
|
|
31
|
-
if (
|
|
31
|
+
if (React__default.isValidElement(element)) {
|
|
32
32
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
33
|
-
return
|
|
33
|
+
return React__default.cloneElement(element, {
|
|
34
34
|
className: classNames(
|
|
35
35
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
36
|
element.props.className, className),
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
if (typeof element === "string" && element.trim()) {
|
|
40
|
-
return
|
|
40
|
+
return React__default.createElement("span", { className }, element);
|
|
41
41
|
}
|
|
42
42
|
return null;
|
|
43
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonLinkShared.js","sources":["../../src/utilities/buttonLinkShared.ts"],"sourcesContent":["import classNames from \"classnames\"\nimport React from \"react\"\n\nexport const COMPONENT_KIND_CLASS_MAP = {\n delete: \"tds-btn--delete\",\n ghost: \"tds-btn--ghost-neutral\",\n \"ghost-delete\": \"tds-btn--ghost-delete\",\n \"ghost-interaction\": \"tds-btn--ghost-interaction\",\n \"inline-text\": \"tds-btn--inline-text\",\n neutral: \"tds-btn--neutral\",\n \"neutral-inline\": \"tds-btn--neutral-inline\",\n pill: \"tds-btn--pill\",\n primary: \"tds-btn--interaction\",\n \"primary-page-header\": \"tds-btn--primary-page-header\",\n secondary: \"tds-btn--outline-neutral\",\n \"secondary-delete\": \"tds-btn--outline-delete\",\n \"secondary-interaction\": \"tds-btn--outline-interaction\",\n \"secondary-page-header\": \"tds-btn--secondary-page-header\",\n \"staff-only\": \"tds-btn--staff-only\",\n} as const\n\nexport const COMPONENT_SIZE_CLASS_MAP = {\n lg: \"tds-btn--lg\",\n md: \"\",\n sm: \"tds-btn--sm\",\n xl: \"tds-btn--xl\",\n xs: \"tds-btn--xs\",\n} as const\n\nexport type ComponentSize = keyof typeof COMPONENT_SIZE_CLASS_MAP\n\nexport type ComponentKind = keyof typeof COMPONENT_KIND_CLASS_MAP\n\nexport interface BaseComponentProps {\n fullWidth?: boolean\n kind?: ComponentKind\n prefix?: React.ReactNode\n size?: ComponentSize\n suffix?: React.ReactNode\n}\n\nexport const enhanceElementWithClassName = (\n element: React.ReactNode,\n className: string\n): React.ReactNode => {\n if (!element) return null\n\n if (React.isValidElement(element)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(element as React.ReactElement<any>, {\n className: classNames(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (element as React.ReactElement<any>).props.className,\n className\n ),\n })\n }\n\n if (typeof element === \"string\" && element.trim()) {\n return React.createElement(\"span\", { className }, element)\n }\n\n return null\n}\n"],"names":[],"mappings":";;;AAGO,MAAM,wBAAwB,GAAG;AACtC,IAAA,MAAM,EAAE,iBAAiB;AACzB,IAAA,KAAK,EAAE,wBAAwB;AAC/B,IAAA,cAAc,EAAE,uBAAuB;AACvC,IAAA,mBAAmB,EAAE,4BAA4B;AACjD,IAAA,aAAa,EAAE,sBAAsB;AACrC,IAAA,OAAO,EAAE,kBAAkB;AAC3B,IAAA,gBAAgB,EAAE,yBAAyB;AAC3C,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,OAAO,EAAE,sBAAsB;AAC/B,IAAA,qBAAqB,EAAE,8BAA8B;AACrD,IAAA,SAAS,EAAE,0BAA0B;AACrC,IAAA,kBAAkB,EAAE,yBAAyB;AAC7C,IAAA,uBAAuB,EAAE,8BAA8B;AACvD,IAAA,uBAAuB,EAAE,gCAAgC;AACzD,IAAA,YAAY,EAAE,qBAAqB;;AAG9B,MAAM,wBAAwB,GAAG;AACtC,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,aAAa;;MAeN,2BAA2B,GAAG,CACzC,OAAwB,EACxB,SAAiB,KACE;AACnB,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI;AAEzB,IAAA,
|
|
1
|
+
{"version":3,"file":"buttonLinkShared.js","sources":["../../src/utilities/buttonLinkShared.ts"],"sourcesContent":["import classNames from \"classnames\"\nimport React from \"react\"\n\nexport const COMPONENT_KIND_CLASS_MAP = {\n delete: \"tds-btn--delete\",\n ghost: \"tds-btn--ghost-neutral\",\n \"ghost-delete\": \"tds-btn--ghost-delete\",\n \"ghost-interaction\": \"tds-btn--ghost-interaction\",\n \"inline-text\": \"tds-btn--inline-text\",\n neutral: \"tds-btn--neutral\",\n \"neutral-inline\": \"tds-btn--neutral-inline\",\n pill: \"tds-btn--pill\",\n primary: \"tds-btn--interaction\",\n \"primary-page-header\": \"tds-btn--primary-page-header\",\n secondary: \"tds-btn--outline-neutral\",\n \"secondary-delete\": \"tds-btn--outline-delete\",\n \"secondary-interaction\": \"tds-btn--outline-interaction\",\n \"secondary-page-header\": \"tds-btn--secondary-page-header\",\n \"staff-only\": \"tds-btn--staff-only\",\n} as const\n\nexport const COMPONENT_SIZE_CLASS_MAP = {\n lg: \"tds-btn--lg\",\n md: \"\",\n sm: \"tds-btn--sm\",\n xl: \"tds-btn--xl\",\n xs: \"tds-btn--xs\",\n} as const\n\nexport type ComponentSize = keyof typeof COMPONENT_SIZE_CLASS_MAP\n\nexport type ComponentKind = keyof typeof COMPONENT_KIND_CLASS_MAP\n\nexport interface BaseComponentProps {\n fullWidth?: boolean\n kind?: ComponentKind\n prefix?: React.ReactNode\n size?: ComponentSize\n suffix?: React.ReactNode\n}\n\nexport const enhanceElementWithClassName = (\n element: React.ReactNode,\n className: string\n): React.ReactNode => {\n if (!element) return null\n\n if (React.isValidElement(element)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(element as React.ReactElement<any>, {\n className: classNames(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (element as React.ReactElement<any>).props.className,\n className\n ),\n })\n }\n\n if (typeof element === \"string\" && element.trim()) {\n return React.createElement(\"span\", { className }, element)\n }\n\n return null\n}\n"],"names":["React"],"mappings":";;;AAGO,MAAM,wBAAwB,GAAG;AACtC,IAAA,MAAM,EAAE,iBAAiB;AACzB,IAAA,KAAK,EAAE,wBAAwB;AAC/B,IAAA,cAAc,EAAE,uBAAuB;AACvC,IAAA,mBAAmB,EAAE,4BAA4B;AACjD,IAAA,aAAa,EAAE,sBAAsB;AACrC,IAAA,OAAO,EAAE,kBAAkB;AAC3B,IAAA,gBAAgB,EAAE,yBAAyB;AAC3C,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,OAAO,EAAE,sBAAsB;AAC/B,IAAA,qBAAqB,EAAE,8BAA8B;AACrD,IAAA,SAAS,EAAE,0BAA0B;AACrC,IAAA,kBAAkB,EAAE,yBAAyB;AAC7C,IAAA,uBAAuB,EAAE,8BAA8B;AACvD,IAAA,uBAAuB,EAAE,gCAAgC;AACzD,IAAA,YAAY,EAAE,qBAAqB;;AAG9B,MAAM,wBAAwB,GAAG;AACtC,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,aAAa;AACjB,IAAA,EAAE,EAAE,aAAa;;MAeN,2BAA2B,GAAG,CACzC,OAAwB,EACxB,SAAiB,KACE;AACnB,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI;AAEzB,IAAA,IAAIA,cAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;;AAEjC,QAAA,OAAOA,cAAK,CAAC,YAAY,CAAC,OAAkC,EAAE;AAC5D,YAAA,SAAS,EAAE,UAAU;;AAElB,YAAA,OAAmC,CAAC,KAAK,CAAC,SAAS,EACpD,SAAS,CACV;AACF,SAAA,CAAC;IACJ;IAEA,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;AACjD,QAAA,OAAOA,cAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC;IAC5D;AAEA,IAAA,OAAO,IAAI;AACb;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planningcenter/tapestry",
|
|
3
|
-
"version": "3.0.0",
|
|
3
|
+
"version": "3.0.1-rc.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
"test": "vitest run",
|
|
17
17
|
"test:visual": "bash scripts/docker-visual-test.sh",
|
|
18
18
|
"test:visual:clean": "node scripts/clean-unused-snapshots.js",
|
|
19
|
-
"test:visual:update": "bash scripts/docker-visual-test.sh --update"
|
|
19
|
+
"test:visual:update": "bash scripts/docker-visual-test.sh --update",
|
|
20
|
+
"generate:test-cases": "tsx test/railsCompare/generateTestCases.ts",
|
|
21
|
+
"generate:react-html": "yarn generate:test-cases && tsx test/railsCompare/renderReactHtml.ts"
|
|
20
22
|
},
|
|
21
23
|
"peerDependencies": {
|
|
22
24
|
"react": "^17 || ^18 || ^19",
|
|
@@ -48,7 +50,7 @@
|
|
|
48
50
|
},
|
|
49
51
|
"types": "./dist/index.d.ts",
|
|
50
52
|
"devDependencies": {
|
|
51
|
-
"@planningcenter/tapestry-render": "^3.0.0",
|
|
53
|
+
"@planningcenter/tapestry-render": "^3.0.1-rc.0",
|
|
52
54
|
"@rollup/plugin-commonjs": "^26.0.1",
|
|
53
55
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
54
56
|
"@rollup/plugin-typescript": "^12.3.0",
|
|
@@ -95,7 +97,7 @@
|
|
|
95
97
|
"shadow-dom-testing-library": "^1.11.3",
|
|
96
98
|
"storybook": "9.1.19",
|
|
97
99
|
"style-dictionary": "^4.2.0",
|
|
98
|
-
"tapestry-wc": "^3.0.0",
|
|
100
|
+
"tapestry-wc": "^3.0.1-rc.0",
|
|
99
101
|
"tsc-alias": "^1.8.16",
|
|
100
102
|
"typescript": "^5.5.3",
|
|
101
103
|
"vite": "^6.4.1",
|
|
@@ -103,9 +105,9 @@
|
|
|
103
105
|
},
|
|
104
106
|
"dependencies": {
|
|
105
107
|
"@planningcenter/icons": "^15.29.0",
|
|
106
|
-
"@planningcenter/tapestry-tokens": "^3.0.0",
|
|
108
|
+
"@planningcenter/tapestry-tokens": "^3.0.1-rc.0",
|
|
107
109
|
"classnames": "^2.5.1",
|
|
108
110
|
"lodash": "^4.17.21"
|
|
109
111
|
},
|
|
110
|
-
"gitHead": "
|
|
112
|
+
"gitHead": "b9aec407fa9c67f303af0c71d8384d0f0af17e5a"
|
|
111
113
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../src/components/textarea/TextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAKpB,OAAO,KAAK,EAAE,EAAc,KAAK,sBAAsB,EAAE,MAAM,OAAO,CAAA;AAEtE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;AAEzD,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAA;AAEtC,UAAU,iBAAiB;IACzB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,UAAU,wBAAyB,SAAQ,iBAAiB;IAC1D,wEAAwE;IACxE,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,8CAA8C;IAC9C,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB;AAED,UAAU,uBAAwB,SAAQ,iBAAiB;IACzD,wEAAwE;IACxE,SAAS,EAAE,IAAI,CAAA;IACf,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,0BAA2B,SAAQ,iBAAiB;IAC5D,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,MAAM,MAAM,mBAAmB,GAC3B,0BAA0B,GAC1B,uBAAuB,GACvB,wBAAwB,CAAA;AAE5B,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,sBAAsB,CAAC,mBAAmB,CAAC,EAC3C,MAAM,mBAAmB,GAAG,MAAM,CACnC,GACC,mBAAmB,CAAA;AAErB,eAAO,MAAM,QAAQ,2FA4DpB,CAAA"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import Icon from '../../utilities/Icon.js';
|
|
2
|
-
import { useId } from '../../utilities/useId.js';
|
|
3
|
-
import classNames from 'classnames';
|
|
4
|
-
import React, { forwardRef } from 'react';
|
|
5
|
-
|
|
6
|
-
const TextArea = forwardRef(function TextArea({ "aria-label": ariaLabel, className, description, hideLabel, id, invalid, label, resize = "vertical", rows = 3, size = "md", ...restProps }, ref) {
|
|
7
|
-
const combinedClassName = classNames("tds-textarea", {
|
|
8
|
-
"tds-textarea--invalid": invalid,
|
|
9
|
-
"tds-textarea--lg": size === "lg",
|
|
10
|
-
"tds-textarea--resize-auto": resize === "auto",
|
|
11
|
-
"tds-textarea--resize-none": resize === "none",
|
|
12
|
-
"tds-textarea--resize-vertical": resize === "vertical",
|
|
13
|
-
}, className);
|
|
14
|
-
const stableId = useId();
|
|
15
|
-
const textareaId = id || `tds-textarea-${stableId}`;
|
|
16
|
-
const descriptionId = description ? `${textareaId}-description` : undefined;
|
|
17
|
-
return (React.createElement("div", { className: combinedClassName },
|
|
18
|
-
!hideLabel && label ? (React.createElement("label", { htmlFor: textareaId }, label)) : null,
|
|
19
|
-
React.createElement("textarea", { ...restProps, "aria-describedby": descriptionId, "aria-invalid": invalid || undefined, "aria-label": hideLabel ? ariaLabel || label : ariaLabel, id: textareaId, ref: ref, rows: rows }),
|
|
20
|
-
description && (React.createElement("p", { className: "tds-textarea-description", id: descriptionId },
|
|
21
|
-
React.createElement(Icon, { "aria-hidden": true, className: "tds-textarea-description-invalid-icon", symbol: "general#exclamation-triangle" }),
|
|
22
|
-
description))));
|
|
23
|
-
});
|
|
24
|
-
TextArea.displayName = "TextArea";
|
|
25
|
-
|
|
26
|
-
export { TextArea };
|
|
27
|
-
//# sourceMappingURL=TextArea.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea.js","sources":["../../../src/components/textarea/TextArea.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport Icon from \"@utilities/Icon\"\nimport { useId } from \"@utilities/useId\"\nimport classNames from \"classnames\"\nimport React, { forwardRef, type TextareaHTMLAttributes } from \"react\"\n\nexport type TextAreaResize = \"auto\" | \"none\" | \"vertical\"\n\nexport type TextAreaSize = \"lg\" | \"md\"\n\ninterface TextAreaBaseProps {\n /** Helper text displayed below the field. Styles as error text when `invalid` is true. */\n description?: string\n /** If true, applies error styling to border and description. */\n invalid?: boolean\n /** Controls resize behavior. Defaults to `'vertical'`. */\n resize?: TextAreaResize\n /** Specifies visible height in lines. Defaults to `3`. */\n rows?: number\n /** Controls spacing and font size. Defaults to `'md'`. */\n size?: TextAreaSize\n}\n\ninterface TextAreaWithVisibleLabel extends TextAreaBaseProps {\n /** If true, label is rendered as aria-label instead of visible label */\n hideLabel?: false\n /** Label text displayed above the textarea */\n label: React.ReactNode\n}\n\ninterface TextAreaWithHiddenLabel extends TextAreaBaseProps {\n /** If true, label is rendered as aria-label instead of visible label */\n hideLabel: true\n /** Label text used as aria-label (must be string when hidden) */\n label: string\n}\n\ninterface TextAreaWithAriaLabelledBy extends TextAreaBaseProps {\n \"aria-labelledby\": string\n hideLabel?: never\n label?: never\n}\n\nexport type TextAreaCustomProps =\n | TextAreaWithAriaLabelledBy\n | TextAreaWithHiddenLabel\n | TextAreaWithVisibleLabel\n\nexport type TextAreaProps = Omit<\n TextareaHTMLAttributes<HTMLTextAreaElement>,\n keyof TextAreaCustomProps | \"rows\"\n> &\n TextAreaCustomProps\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(\n {\n \"aria-label\": ariaLabel,\n className,\n description,\n hideLabel,\n id,\n invalid,\n label,\n resize = \"vertical\",\n rows = 3,\n size = \"md\",\n ...restProps\n }: TextAreaProps,\n ref\n ) {\n const combinedClassName = classNames(\n \"tds-textarea\",\n {\n \"tds-textarea--invalid\": invalid,\n \"tds-textarea--lg\": size === \"lg\",\n \"tds-textarea--resize-auto\": resize === \"auto\",\n \"tds-textarea--resize-none\": resize === \"none\",\n \"tds-textarea--resize-vertical\": resize === \"vertical\",\n },\n className\n )\n\n const stableId = useId()\n const textareaId = id || `tds-textarea-${stableId}`\n const descriptionId = description ? `${textareaId}-description` : undefined\n\n return (\n <div className={combinedClassName}>\n {!hideLabel && label ? (\n <label htmlFor={textareaId}>{label}</label>\n ) : null}\n <textarea\n {...restProps}\n aria-describedby={descriptionId}\n aria-invalid={invalid || undefined}\n aria-label={hideLabel ? ariaLabel || (label as string) : ariaLabel}\n id={textareaId}\n ref={ref}\n rows={rows}\n />\n {description && (\n <p className=\"tds-textarea-description\" id={descriptionId}>\n <Icon\n aria-hidden\n className=\"tds-textarea-description-invalid-icon\"\n symbol=\"general#exclamation-triangle\"\n />\n {description}\n </p>\n )}\n </div>\n )\n }\n)\n\nTextArea.displayName = \"TextArea\"\n"],"names":[],"mappings":";;;;;AAuDO,MAAM,QAAQ,GAAG,UAAU,CAChC,SAAS,QAAQ,CACf,EACE,YAAY,EAAE,SAAS,EACvB,SAAS,EACT,WAAW,EACX,SAAS,EACT,EAAE,EACF,OAAO,EACP,KAAK,EACL,MAAM,GAAG,UAAU,EACnB,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,IAAI,EACX,GAAG,SAAS,EACE,EAChB,GAAG,EAAA;AAEH,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAClC,cAAc,EACd;AACE,QAAA,uBAAuB,EAAE,OAAO;QAChC,kBAAkB,EAAE,IAAI,KAAK,IAAI;QACjC,2BAA2B,EAAE,MAAM,KAAK,MAAM;QAC9C,2BAA2B,EAAE,MAAM,KAAK,MAAM;QAC9C,+BAA+B,EAAE,MAAM,KAAK,UAAU;KACvD,EACD,SAAS,CACV;AAED,IAAA,MAAM,QAAQ,GAAG,KAAK,EAAE;AACxB,IAAA,MAAM,UAAU,GAAG,EAAE,IAAI,CAAA,aAAA,EAAgB,QAAQ,EAAE;AACnD,IAAA,MAAM,aAAa,GAAG,WAAW,GAAG,CAAA,EAAG,UAAU,CAAA,YAAA,CAAc,GAAG,SAAS;AAE3E,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,iBAAiB,EAAA;AAC9B,QAAA,CAAC,SAAS,IAAI,KAAK,IAClB,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,UAAU,IAAG,KAAK,CAAS,IACzC,IAAI;AACR,QAAA,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAA,GACM,SAAS,EAAA,kBAAA,EACK,aAAa,EAAA,cAAA,EACjB,OAAO,IAAI,SAAS,EAAA,YAAA,EACtB,SAAS,GAAG,SAAS,IAAK,KAAgB,GAAG,SAAS,EAClE,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EAAA,CACV;QACD,WAAW,KACV,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,0BAA0B,EAAC,EAAE,EAAE,aAAa,EAAA;YACvD,KAAA,CAAA,aAAA,CAAC,IAAI,yBAEH,SAAS,EAAC,uCAAuC,EACjD,MAAM,EAAC,8BAA8B,EAAA,CACrC;AACD,YAAA,WAAW,CACV,CACL,CACG;AAEV,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/textarea/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
|
package/react-types/popover.d.ts
DELETED
|
File without changes
|
|
File without changes
|