@canonical/react-ds-core-form 0.9.0-experimental.10 → 0.9.0-experimental.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 (90) hide show
  1. package/dist/esm/ui/Field/Field.js +3 -5
  2. package/dist/esm/ui/Field/Field.js.map +1 -1
  3. package/dist/esm/ui/Field/common/Error/Error.js +12 -0
  4. package/dist/esm/ui/Field/common/Error/Error.js.map +1 -0
  5. package/dist/esm/ui/Field/common/Error/index.js +4 -0
  6. package/dist/esm/ui/Field/common/Error/index.js.map +1 -0
  7. package/dist/esm/ui/Field/common/Error/styles.css +7 -0
  8. package/dist/esm/ui/Field/common/Error/types.js +2 -0
  9. package/dist/esm/ui/Field/common/Error/types.js.map +1 -0
  10. package/dist/esm/ui/Field/common/Label/Label.js +7 -3
  11. package/dist/esm/ui/Field/common/Label/Label.js.map +1 -1
  12. package/dist/esm/ui/Field/common/Wrapper/Wrapper.js +13 -4
  13. package/dist/esm/ui/Field/common/Wrapper/Wrapper.js.map +1 -1
  14. package/dist/esm/ui/Field/common/Wrapper/hooks/index.js +2 -0
  15. package/dist/esm/ui/Field/common/Wrapper/hooks/index.js.map +1 -0
  16. package/dist/esm/ui/Field/common/Wrapper/hooks/useFieldWrapper.js +41 -0
  17. package/dist/esm/ui/Field/common/Wrapper/hooks/useFieldWrapper.js.map +1 -0
  18. package/dist/esm/ui/Field/common/Wrapper/messages.js +4 -0
  19. package/dist/esm/ui/Field/common/Wrapper/messages.js.map +1 -0
  20. package/dist/esm/ui/Field/common/Wrapper/styles.css +1 -1
  21. package/dist/esm/ui/Field/common/Wrapper/withWrapper.js +24 -1
  22. package/dist/esm/ui/Field/common/Wrapper/withWrapper.js.map +1 -1
  23. package/dist/esm/ui/Field/common/index.js +1 -0
  24. package/dist/esm/ui/Field/common/index.js.map +1 -1
  25. package/dist/esm/ui/Field/constants.js +2 -0
  26. package/dist/esm/ui/Field/constants.js.map +1 -0
  27. package/dist/esm/ui/Field/hooks/index.js +3 -0
  28. package/dist/esm/ui/Field/hooks/index.js.map +1 -0
  29. package/dist/esm/ui/Field/hooks/useFieldAriaProperties.js +31 -0
  30. package/dist/esm/ui/Field/hooks/useFieldAriaProperties.js.map +1 -0
  31. package/dist/esm/ui/Field/hooks/useFieldError.js +28 -0
  32. package/dist/esm/ui/Field/hooks/useFieldError.js.map +1 -0
  33. package/dist/esm/ui/Field/inputs/Checkbox/Checkbox.js +4 -2
  34. package/dist/esm/ui/Field/inputs/Checkbox/Checkbox.js.map +1 -1
  35. package/dist/esm/ui/Field/inputs/Checkbox/styles.css +1 -1
  36. package/dist/esm/ui/Field/inputs/Text/Text.js +3 -2
  37. package/dist/esm/ui/Field/inputs/Text/Text.js.map +1 -1
  38. package/dist/esm/ui/Field/inputs/Text/styles.css +1 -1
  39. package/dist/esm/ui/Field/inputs/Textarea/Textarea.js +3 -2
  40. package/dist/esm/ui/Field/inputs/Textarea/Textarea.js.map +1 -1
  41. package/dist/esm/ui/Field/inputs/Textarea/styles.css +1 -1
  42. package/dist/esm/ui/Field/types.js +1 -18
  43. package/dist/esm/ui/Field/types.js.map +1 -1
  44. package/dist/types/ui/Field/Field.d.ts +1 -5
  45. package/dist/types/ui/Field/Field.d.ts.map +1 -1
  46. package/dist/types/ui/Field/common/Error/Error.d.ts +10 -0
  47. package/dist/types/ui/Field/common/Error/Error.d.ts.map +1 -0
  48. package/dist/types/ui/Field/common/Error/index.d.ts +3 -0
  49. package/dist/types/ui/Field/common/Error/index.d.ts.map +1 -0
  50. package/dist/types/ui/Field/common/Error/types.d.ts +8 -0
  51. package/dist/types/ui/Field/common/Error/types.d.ts.map +1 -0
  52. package/dist/types/ui/Field/common/Label/Label.d.ts +1 -1
  53. package/dist/types/ui/Field/common/Label/Label.d.ts.map +1 -1
  54. package/dist/types/ui/Field/common/Label/types.d.ts +9 -0
  55. package/dist/types/ui/Field/common/Label/types.d.ts.map +1 -1
  56. package/dist/types/ui/Field/common/Wrapper/Wrapper.d.ts +1 -1
  57. package/dist/types/ui/Field/common/Wrapper/Wrapper.d.ts.map +1 -1
  58. package/dist/types/ui/Field/common/Wrapper/hooks/index.d.ts +2 -0
  59. package/dist/types/ui/Field/common/Wrapper/hooks/index.d.ts.map +1 -0
  60. package/dist/types/ui/Field/common/Wrapper/hooks/useFieldWrapper.d.ts +497 -0
  61. package/dist/types/ui/Field/common/Wrapper/hooks/useFieldWrapper.d.ts.map +1 -0
  62. package/dist/types/ui/Field/common/Wrapper/messages.d.ts +5 -0
  63. package/dist/types/ui/Field/common/Wrapper/messages.d.ts.map +1 -0
  64. package/dist/types/ui/Field/common/Wrapper/types.d.ts +13 -2
  65. package/dist/types/ui/Field/common/Wrapper/types.d.ts.map +1 -1
  66. package/dist/types/ui/Field/common/Wrapper/withWrapper.d.ts +7 -1
  67. package/dist/types/ui/Field/common/Wrapper/withWrapper.d.ts.map +1 -1
  68. package/dist/types/ui/Field/common/index.d.ts +1 -0
  69. package/dist/types/ui/Field/common/index.d.ts.map +1 -1
  70. package/dist/types/ui/Field/constants.d.ts +2 -0
  71. package/dist/types/ui/Field/constants.d.ts.map +1 -0
  72. package/dist/types/ui/Field/hooks/index.d.ts +3 -0
  73. package/dist/types/ui/Field/hooks/index.d.ts.map +1 -0
  74. package/dist/types/ui/Field/hooks/useFieldAriaProperties.d.ts +26 -0
  75. package/dist/types/ui/Field/hooks/useFieldAriaProperties.d.ts.map +1 -0
  76. package/dist/types/ui/Field/hooks/useFieldError.d.ts +4 -0
  77. package/dist/types/ui/Field/hooks/useFieldError.d.ts.map +1 -0
  78. package/dist/types/ui/Field/inputs/Checkbox/Checkbox.d.ts +2 -7
  79. package/dist/types/ui/Field/inputs/Checkbox/Checkbox.d.ts.map +1 -1
  80. package/dist/types/ui/Field/inputs/Text/Text.d.ts +2 -7
  81. package/dist/types/ui/Field/inputs/Text/Text.d.ts.map +1 -1
  82. package/dist/types/ui/Field/inputs/Textarea/Textarea.d.ts +2 -7
  83. package/dist/types/ui/Field/inputs/Textarea/Textarea.d.ts.map +1 -1
  84. package/dist/types/ui/Field/inputs/index.d.ts +1 -0
  85. package/dist/types/ui/Field/inputs/index.d.ts.map +1 -1
  86. package/dist/types/ui/Field/inputs/types.d.ts +4 -0
  87. package/dist/types/ui/Field/inputs/types.d.ts.map +1 -1
  88. package/dist/types/ui/Field/types.d.ts +25 -14
  89. package/dist/types/ui/Field/types.d.ts.map +1 -1
  90. package/package.json +3 -3
@@ -1,10 +1,5 @@
1
1
  import type React from "react";
2
- import type { CheckboxProps } from "./types.js";
3
2
  import "./styles.css";
4
- /**
5
- * description of the Checkbox component
6
- * @returns {React.ReactElement} - Rendered Checkbox
7
- */
8
- declare const Checkbox: ({ id, className, style, name, registerProps, }: CheckboxProps) => React.ReactElement;
9
- export default Checkbox;
3
+ declare const _default: ({ middleware, WrapperComponent, ...props }: import("../../types.js").BaseFieldProps) => React.ReactElement;
4
+ export default _default;
10
5
  //# sourceMappingURL=Checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/Field/inputs/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,cAAc,CAAC;AAItB;;;GAGG;AACH,QAAA,MAAM,QAAQ,mDAMX,aAAa,KAAG,KAAK,CAAC,YAWxB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/Field/inputs/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,cAAc,CAAC;;AA6BtB,wBAAqC"}
@@ -1,10 +1,5 @@
1
1
  import type React from "react";
2
- import type { TextProps } from "./types.js";
3
2
  import "./styles.css";
4
- /**
5
- * description of the Text component
6
- * @returns {React.ReactElement} - Rendered Text
7
- */
8
- declare const Text: ({ id, className, style, inputType, name, registerProps, }: TextProps) => React.ReactElement;
9
- export default Text;
3
+ declare const _default: ({ middleware, WrapperComponent, ...props }: import("../../types.js").BaseFieldProps) => React.ReactElement;
4
+ export default _default;
10
5
  //# sourceMappingURL=Text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/Field/inputs/Text/Text.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,cAAc,CAAC;AAItB;;;GAGG;AACH,QAAA,MAAM,IAAI,8DAOP,SAAS,KAAG,KAAK,CAAC,YAWpB,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/Field/inputs/Text/Text.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,cAAc,CAAC;;AA4BtB,wBAAiC"}
@@ -1,10 +1,5 @@
1
1
  import type React from "react";
2
- import type { TextareaProps } from "./types.js";
3
2
  import "./styles.css";
4
- /**
5
- * description of the Textarea component
6
- * @returns {React.ReactElement} - Rendered Textarea
7
- */
8
- declare const Textarea: ({ id, className, style, name, registerProps, }: TextareaProps) => React.ReactElement;
9
- export default Textarea;
3
+ declare const _default: ({ middleware, WrapperComponent, ...props }: import("../../types.js").BaseFieldProps) => React.ReactElement;
4
+ export default _default;
10
5
  //# sourceMappingURL=Textarea.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/Field/inputs/Textarea/Textarea.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,cAAc,CAAC;AAItB;;;GAGG;AACH,QAAA,MAAM,QAAQ,mDAMX,aAAa,KAAG,KAAK,CAAC,YAUxB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/Field/inputs/Textarea/Textarea.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,cAAc,CAAC;;AA2BtB,wBAAqC"}
@@ -1,4 +1,5 @@
1
1
  export * from "./Textarea/index.js";
2
2
  export * from "./Text/index.js";
3
3
  export * from "./Checkbox/index.js";
4
+ export type * from "./types.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Field/inputs/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AAEpC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Field/inputs/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AAEpC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,qBAAqB,CAAC;AAEpC,mBAAmB,YAAY,CAAC"}
@@ -1,3 +1,6 @@
1
+ import type { CheckboxProps } from "./Checkbox/types.js";
2
+ import type { TextProps } from "./Text/types.js";
3
+ import type { TextareaProps } from "./Textarea/types.js";
1
4
  export type BaseInputProps = {
2
5
  id?: string;
3
6
  children?: React.ReactNode;
@@ -6,4 +9,5 @@ export type BaseInputProps = {
6
9
  name: string;
7
10
  registerProps?: Record<string, unknown>;
8
11
  };
12
+ export type InputProps = CheckboxProps | TextProps | TextareaProps;
9
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Field/inputs/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Field/inputs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,aAAa,CAAC"}
@@ -1,17 +1,27 @@
1
1
  import type React from "react";
2
- import type { CheckboxProps, TextProps, TextareaProps } from "./inputs/index.js";
3
- export declare enum InputType {
4
- Text = "text",
5
- Password = "password",
6
- Email = "email",
7
- Number = "number",
8
- Tel = "tel",
9
- Url = "url",
10
- Textarea = "textarea",
11
- Custom = "custom",
12
- Checkbox = "checkbox"
13
- }
14
- export type InputProps = CheckboxProps | TextProps | TextareaProps;
2
+ import type { InputProps } from "./inputs/index.js";
3
+ /**
4
+ * Represents the type of input to render.
5
+ */
6
+ export type InputType = "text" | "password" | "email" | "number" | "tel" | "url" | "textarea" | "custom" | "checkbox";
7
+ export type BaseWrapperProps = {
8
+ /**
9
+ * middleware to apply to the input
10
+ **/
11
+ middleware?: FormInputHOC[];
12
+ /**
13
+ * An optional wrapper component to render around the input.
14
+ */
15
+ WrapperComponent?: React.ElementType;
16
+ };
17
+ /**
18
+ * A type for an instantiated higher-order component (HOC) wrapping an Input.
19
+ * This accurately represents the props that can be passed to the HOC.
20
+ */
21
+ export type BaseFieldProps = BaseWrapperProps & InputProps;
22
+ /**
23
+ * The props for the Field component, switching between different input types.
24
+ */
15
25
  export type FieldProps = {
16
26
  /**
17
27
  * Type of input to render
@@ -21,5 +31,6 @@ export type FieldProps = {
21
31
  * Custom component to render
22
32
  **/
23
33
  CustomComponent?: React.ElementType;
24
- } & InputProps;
34
+ } & BaseFieldProps;
35
+ export type FormInputHOC<ExtendedProps extends BaseFieldProps = BaseFieldProps> = (WrappedComponent: React.ComponentType<BaseFieldProps>) => React.ComponentType<ExtendedProps>;
25
36
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ui/Field/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;CAOtB;AAED,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,aAAa,CAAC;AAEnE,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;QAEI;IACJ,eAAe,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CACrC,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ui/Field/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,UAAU,GACV,OAAO,GACP,QAAQ,GACR,KAAK,GACL,KAAK,GACL,UAAU,GACV,QAAQ,GACR,UAAU,CAAC;AAQf,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;QAEI;IACJ,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAE5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CACtC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,UAAU,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;QAEI;IACJ,eAAe,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CACrC,GAAG,cAAc,CAAC;AAEnB,MAAM,MAAM,YAAY,CACtB,aAAa,SAAS,cAAc,GAAG,cAAc,IACnD,CACF,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAClD,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canonical/react-ds-core-form",
3
- "version": "0.9.0-experimental.10",
3
+ "version": "0.9.0-experimental.11",
4
4
  "type": "module",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -38,7 +38,7 @@
38
38
  "test:vitest:watch": "vitest"
39
39
  },
40
40
  "dependencies": {
41
- "@canonical/storybook-config": "^0.9.0-experimental.5",
41
+ "@canonical/storybook-config": "^0.9.0-experimental.11",
42
42
  "@canonical/styles": "^0.9.0-experimental.9",
43
43
  "react": "^19.0.0",
44
44
  "react-dom": "^19.0.0",
@@ -67,5 +67,5 @@
67
67
  "vite-tsconfig-paths": "^5.1.4",
68
68
  "vitest": "^3.0.9"
69
69
  },
70
- "gitHead": "9f5cceda31194238d239de8113a3f035b06c9316"
70
+ "gitHead": "5a5c35f36022ab346ab6cb40f74affc712e7beda"
71
71
  }