@plitzi/sdk-elements 0.37.2 → 0.37.4

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 (158) hide show
  1. package/CHANGELOG.md +1180 -0
  2. package/dist/Component/ComponentProvider.mjs +10 -5
  3. package/dist/Element/JsxManager.mjs +1 -0
  4. package/dist/Element/PluginRemote.d.ts +3 -1
  5. package/dist/Element/PluginRemote.mjs +9 -9
  6. package/dist/Element/helpers/elementConstants.mjs +28 -0
  7. package/dist/Element/helpers/elementUtils.mjs +1 -1
  8. package/dist/Element/helpers/loadComponent.d.ts +6 -1
  9. package/dist/Element/helpers/loadComponent.mjs +7 -7
  10. package/dist/Element/helpers/pluginSelector.mjs +1 -0
  11. package/dist/Element/hooks/useElementDataSource.mjs +23 -16
  12. package/dist/Element/hooks/useElementInternal.mjs +60 -52
  13. package/dist/Element/hooks/useInternalClassName.mjs +19 -18
  14. package/dist/Element/hooks/useKeyTriggers.d.ts +18 -0
  15. package/dist/Element/hooks/useKeyTriggers.mjs +36 -0
  16. package/dist/Element/hooks/useRootElementInteractions.mjs +65 -56
  17. package/dist/Element/hooks/useRscData.mjs +20 -15
  18. package/dist/dataSource/GlobalSources.mjs +114 -80
  19. package/dist/dataSource/getSourcesByElementId.mjs +2 -2
  20. package/dist/elements/advanced/BlockJsx/BlockJsx.mjs +1 -1
  21. package/dist/elements/advanced/NodeHtml/declaration.d.ts +1 -1
  22. package/dist/elements/advanced/NodeHtml/index.d.ts +1 -1
  23. package/dist/elements/basic/Button/Button.d.ts +10 -3
  24. package/dist/elements/basic/Button/Button.mjs +5 -5
  25. package/dist/elements/basic/Button/Settings.d.ts +2 -1
  26. package/dist/elements/basic/Button/Settings.mjs +14 -7
  27. package/dist/elements/basic/Button/declaration.d.ts +8 -3
  28. package/dist/elements/basic/Button/declaration.mjs +14 -6
  29. package/dist/elements/basic/Button/index.d.ts +8 -3
  30. package/dist/elements/basic/Dropdown/Dropdown.mjs +48 -39
  31. package/dist/elements/basic/Dropdown/declaration.d.ts +3 -0
  32. package/dist/elements/basic/Dropdown/declaration.mjs +9 -3
  33. package/dist/elements/basic/Dropdown/index.d.ts +3 -0
  34. package/dist/elements/basic/Dropdown/useDropdown.d.ts +6 -1
  35. package/dist/elements/basic/Dropdown/useDropdown.mjs +58 -41
  36. package/dist/elements/basic/Dropdown/useDropdownTrigger.d.ts +26 -0
  37. package/dist/elements/basic/Dropdown/useDropdownTrigger.mjs +30 -0
  38. package/dist/elements/basic/Heading/declaration.d.ts +9 -6
  39. package/dist/elements/basic/Heading/declaration.mjs +17 -9
  40. package/dist/elements/basic/Heading/index.d.ts +9 -6
  41. package/dist/elements/basic/Link/Link.mjs +4 -1
  42. package/dist/elements/basic/Link/Settings.d.ts +2 -1
  43. package/dist/elements/basic/Link/Settings.mjs +31 -24
  44. package/dist/elements/basic/Link/declaration.d.ts +5 -1
  45. package/dist/elements/basic/Link/declaration.mjs +16 -3
  46. package/dist/elements/basic/Link/index.d.ts +5 -1
  47. package/dist/elements/basic/Markdown/declaration.d.ts +1 -1
  48. package/dist/elements/basic/Markdown/declaration.mjs +1 -1
  49. package/dist/elements/basic/Markdown/index.d.ts +1 -1
  50. package/dist/elements/basic/RichText/declaration.d.ts +3 -0
  51. package/dist/elements/basic/RichText/declaration.mjs +8 -3
  52. package/dist/elements/basic/RichText/index.d.ts +3 -0
  53. package/dist/elements/basic/Text/declaration.d.ts +1 -1
  54. package/dist/elements/basic/Text/declaration.mjs +1 -1
  55. package/dist/elements/basic/Text/index.d.ts +1 -1
  56. package/dist/elements/basic/ThemeToggle/ThemeToggle.mjs +3 -0
  57. package/dist/elements/basic/ThemeToggle/declaration.d.ts +3 -0
  58. package/dist/elements/basic/ThemeToggle/declaration.mjs +4 -3
  59. package/dist/elements/basic/ThemeToggle/index.d.ts +3 -0
  60. package/dist/elements/declarations/index.d.ts +217 -17
  61. package/dist/elements/declarations/index.mjs +24 -22
  62. package/dist/elements/form/Form/declaration.d.ts +3 -0
  63. package/dist/elements/form/Form/declaration.mjs +4 -3
  64. package/dist/elements/form/Form/index.d.ts +3 -0
  65. package/dist/elements/form/FormControl/FormControl.d.ts +18 -6
  66. package/dist/elements/form/FormControl/FormControl.mjs +135 -127
  67. package/dist/elements/form/FormControl/Settings.d.ts +3 -1
  68. package/dist/elements/form/FormControl/Settings.mjs +73 -57
  69. package/dist/elements/form/FormControl/components/Label.d.ts +3 -1
  70. package/dist/elements/form/FormControl/components/Label.mjs +20 -18
  71. package/dist/elements/form/FormControl/components/visuallyHidden.d.ts +6 -0
  72. package/dist/elements/form/FormControl/components/visuallyHidden.mjs +14 -0
  73. package/dist/elements/form/FormControl/declaration.d.ts +5 -0
  74. package/dist/elements/form/FormControl/declaration.mjs +46 -30
  75. package/dist/elements/form/FormControl/hocs/withFieldValue.mjs +68 -61
  76. package/dist/elements/form/FormControl/index.d.ts +5 -0
  77. package/dist/elements/form/FormControl/inputs/Checkbox.d.ts +6 -1
  78. package/dist/elements/form/FormControl/inputs/Checkbox.mjs +5 -3
  79. package/dist/elements/form/FormControl/inputs/Input.d.ts +8 -1
  80. package/dist/elements/form/FormControl/inputs/Input.mjs +44 -38
  81. package/dist/elements/form/FormControl/inputs/Select.d.ts +6 -1
  82. package/dist/elements/form/FormControl/inputs/Select.mjs +12 -10
  83. package/dist/elements/form/FormControl/inputs/Textarea.d.ts +8 -1
  84. package/dist/elements/form/FormControl/inputs/Textarea.mjs +26 -21
  85. package/dist/elements/form/FormControl/inputs/useFocusWhenShown.d.ts +7 -0
  86. package/dist/elements/form/FormControl/inputs/useFocusWhenShown.mjs +9 -0
  87. package/dist/elements/index.d.ts +3 -1
  88. package/dist/elements/index.mjs +16 -14
  89. package/dist/elements/internal/LayoutContainer/declaration.d.ts +3 -0
  90. package/dist/elements/internal/LayoutContainer/declaration.mjs +15 -3
  91. package/dist/elements/internal/LayoutContainer/index.d.ts +3 -0
  92. package/dist/elements/media/FontAwesome/FontAwesome.d.ts +8 -1
  93. package/dist/elements/media/FontAwesome/FontAwesome.mjs +12 -5
  94. package/dist/elements/media/FontAwesome/Settings.d.ts +2 -1
  95. package/dist/elements/media/FontAwesome/Settings.mjs +29 -22
  96. package/dist/elements/media/FontAwesome/declaration.d.ts +1 -0
  97. package/dist/elements/media/FontAwesome/index.d.ts +1 -0
  98. package/dist/elements/media/Image/Image.d.ts +13 -2
  99. package/dist/elements/media/Image/Image.mjs +25 -25
  100. package/dist/elements/media/Image/Settings.d.ts +3 -1
  101. package/dist/elements/media/Image/Settings.mjs +29 -15
  102. package/dist/elements/media/Image/declaration.d.ts +7 -1
  103. package/dist/elements/media/Image/declaration.mjs +16 -3
  104. package/dist/elements/media/Image/index.d.ts +7 -1
  105. package/dist/elements/provider/ApiContainer/ApiContainer.mjs +145 -137
  106. package/dist/elements/provider/ApiContainer/declaration.d.ts +14 -1
  107. package/dist/elements/provider/ApiContainer/declaration.mjs +41 -4
  108. package/dist/elements/provider/ApiContainer/helpers/isEmptyAnswer.d.ts +16 -0
  109. package/dist/elements/provider/ApiContainer/helpers/isEmptyAnswer.mjs +4 -0
  110. package/dist/elements/provider/ApiContainer/helpers/queryInput.d.ts +5 -0
  111. package/dist/elements/provider/ApiContainer/helpers/queryInput.mjs +12 -0
  112. package/dist/elements/provider/ApiContainer/index.d.ts +14 -1
  113. package/dist/elements/provider/Channel/Channel.d.ts +26 -0
  114. package/dist/elements/provider/Channel/Channel.mjs +92 -0
  115. package/dist/elements/provider/Channel/Settings.d.ts +9 -0
  116. package/dist/elements/provider/Channel/Settings.mjs +38 -0
  117. package/dist/elements/provider/Channel/declaration.d.ts +138 -0
  118. package/dist/elements/provider/Channel/declaration.mjs +125 -0
  119. package/dist/elements/provider/Channel/index.d.ts +137 -0
  120. package/dist/elements/provider/Channel/index.mjs +6 -0
  121. package/dist/elements/settings.mjs +25 -23
  122. package/dist/elements/structure/Container/Container.d.ts +16 -2
  123. package/dist/elements/structure/Container/Container.mjs +18 -9
  124. package/dist/elements/structure/Container/Settings.d.ts +4 -2
  125. package/dist/elements/structure/Container/Settings.mjs +110 -69
  126. package/dist/elements/structure/Container/declaration.d.ts +12 -1
  127. package/dist/elements/structure/Container/declaration.mjs +35 -3
  128. package/dist/elements/structure/Container/index.d.ts +6 -1
  129. package/dist/elements/structure/Container/index.mjs +3 -3
  130. package/dist/elements/structure/DialogContainer/DialogContainer.mjs +123 -100
  131. package/dist/elements/structure/List/declaration.d.ts +4 -0
  132. package/dist/elements/structure/List/declaration.mjs +7 -3
  133. package/dist/elements/structure/List/index.d.ts +4 -0
  134. package/dist/elements/structure/ModalContainer/ModalContainer.mjs +92 -80
  135. package/dist/elements/structure/ModalContainer/metadataFromText.d.ts +1 -0
  136. package/dist/elements/structure/ModalContainer/metadataFromText.mjs +10 -0
  137. package/dist/elements/structure/ModalContainer/useModalDialog.d.ts +20 -0
  138. package/dist/elements/structure/ModalContainer/useModalDialog.mjs +31 -0
  139. package/dist/elements/structure/Pagination/Pagination.d.ts +6 -1
  140. package/dist/elements/structure/Pagination/Pagination.mjs +23 -21
  141. package/dist/elements/structure/Pagination/Settings.d.ts +2 -1
  142. package/dist/elements/structure/Pagination/Settings.mjs +16 -9
  143. package/dist/elements/structure/Pagination/declaration.d.ts +5 -0
  144. package/dist/elements/structure/Pagination/declaration.mjs +7 -3
  145. package/dist/elements/structure/Pagination/index.d.ts +5 -0
  146. package/dist/elements/structure/TabContainer/TabContainer.mjs +19 -17
  147. package/dist/elements/structure/TabContainer/TabContainerBody/TabContainerBody.mjs +8 -6
  148. package/dist/elements/structure/TabContainer/TabContainerContext.d.ts +2 -0
  149. package/dist/elements/structure/TabContainer/TabContainerHeader/TabContainerHeader.mjs +18 -14
  150. package/dist/elements/structure/TabContainer/TabContainerItem/TabContainerItem.d.ts +5 -1
  151. package/dist/elements/structure/TabContainer/TabContainerItem/TabContainerItem.mjs +48 -13
  152. package/dist/elements/structure/TabContainer/TabContainerItem/declaration.d.ts +1 -1
  153. package/dist/index.d.ts +220 -16
  154. package/dist/index.mjs +20 -17
  155. package/dist/realtime/useChannel.d.ts +35 -0
  156. package/dist/realtime/useChannel.mjs +57 -0
  157. package/package.json +67 -11
  158. package/dist/elements/media/FontAwesome/FontAwesome.stories-paused.d.ts +0 -1
@@ -2,95 +2,95 @@ import e from "../../../Element/hocs/withElement.mjs";
2
2
  import t from "../../../Element/hooks/useElement.mjs";
3
3
  import { RootElement as n } from "../../../Element/RootElement.mjs";
4
4
  import r from "./declaration.mjs";
5
- import i from "./components/Label.mjs";
6
- import a from "./hocs/withFieldValue.mjs";
7
- import o from "./inputs/Checkbox.mjs";
8
- import s from "./inputs/Hidden.mjs";
9
- import c from "./inputs/Input.mjs";
10
- import l from "./inputs/Select.mjs";
11
- import u from "./inputs/Textarea.mjs";
12
- import { use as d, useCallback as f, useEffect as p } from "react";
13
- import m from "@plitzi/sdk-shared/hooks/usePlitziServiceContext";
14
- import { createStoreHook as h } from "@plitzi/nexus/react";
15
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
16
- import v from "clsx";
5
+ import { VISUALLY_HIDDEN as i } from "./components/visuallyHidden.mjs";
6
+ import a from "./components/Label.mjs";
7
+ import o from "./hocs/withFieldValue.mjs";
8
+ import s from "./inputs/Checkbox.mjs";
9
+ import c from "./inputs/Hidden.mjs";
10
+ import l from "./inputs/Input.mjs";
11
+ import u from "./inputs/Select.mjs";
12
+ import d from "./inputs/Textarea.mjs";
13
+ import { use as f, useCallback as p, useEffect as m } from "react";
14
+ import h from "@plitzi/sdk-shared/hooks/usePlitziServiceContext";
15
+ import { createStoreHook as g } from "@plitzi/nexus/react";
16
+ import { jsx as _, jsxs as v } from "react/jsx-runtime";
17
+ import y from "clsx";
17
18
  //#region src/elements/form/FormControl/FormControl.tsx
18
- var y = ({ ref: e, className: a = "", subType: y = "text", name: b = "", label: x = "Label", placeholder: S = "", autoComplete: C = !0, disabled: w = !1, options: T = [], required: E = !0, maxLength: D = 0, readOnly: O = !1, value: k = "", error: A = "", handleChange: j, handleValidate: M }) => {
19
- let { id: N, rootId: P, definition: { styleSelectors: F } } = t(), { settings: { previewMode: I }, contexts: { InteractionsContext: L } } = m(), { interactionsManager: R } = d(L), { useStore: z } = h(), [B] = z("runtime.sources.form"), V = f((e) => {
20
- if (j?.(e), !I) return;
21
- let t = e.target, n = t.type === "checkbox" || y === "switch" ? t.checked : t.value;
22
- R.interactionTrigger(N, "onChange", {
19
+ var b = ({ ref: e, className: o = "", subType: b = "text", name: x = "", label: S = "Label", hideLabel: C = !1, placeholder: w = "", autoComplete: T = !0, autoFocus: E = !1, disabled: D = !1, options: O = [], required: k = !0, maxLength: A = 0, readOnly: j = !1, value: M = "", error: N = "", handleChange: P, handleValidate: F }) => {
20
+ let { id: I, rootId: L, visible: R, definition: { styleSelectors: z } } = t(), { settings: { previewMode: B }, contexts: { InteractionsContext: V } } = h(), { interactionsManager: H } = f(V), { useStore: U } = g(), [W] = U("runtime.sources.form"), G = p((e) => {
21
+ if (P?.(e), !B) return;
22
+ let t = e.target, n = t.type === "checkbox" || b === "switch" ? t.checked : t.value;
23
+ H.interactionTrigger(I, "onChange", {
23
24
  value: n,
24
- name: b
25
+ name: x
25
26
  });
26
27
  }, [
27
- j,
28
- I,
29
- y,
30
- R,
31
- N,
32
- b
33
- ]);
34
- if (!B && !I) return /* @__PURE__ */ g(n, {
35
- ref: e,
36
- className: v("plitzi-component__form-input", { "form-input--out-of-context": !I }, a),
37
- children: /* @__PURE__ */ g("div", { children: "Form Input Only Works inside Form element" })
38
- });
39
- if (!B && I) return null;
40
- let { registerField: H, unregisterField: U } = B, W = ["checkbox", "switch"].includes(y), G = y === "hidden";
41
- return p(() => (H && H({
42
- name: b,
43
- path: b
44
- }), () => {
45
- U && U(b);
46
- }), [
28
+ P,
29
+ B,
47
30
  b,
48
31
  H,
49
- U
50
- ]), /* @__PURE__ */ _(n, {
32
+ I,
33
+ x
34
+ ]), K = W?.registerField, q = W?.unregisterField, J = ["checkbox", "switch"].includes(b), Y = b === "hidden", X = E && B && R, Z = N && B ? `${L}_${I}_error` : void 0;
35
+ return m(() => {
36
+ if (K && q) return K({
37
+ name: x,
38
+ path: x
39
+ }), () => q(x);
40
+ }, [
41
+ x,
42
+ K,
43
+ q
44
+ ]), /* @__PURE__ */ v(n, {
51
45
  ref: e,
52
46
  interactionTriggers: r.triggers,
53
- className: v("plitzi-component__form-control", {
54
- "form-control--invalid": A && I,
55
- [`plitzi-component__form-control-${y}`]: y
56
- }, a),
47
+ className: y("plitzi-component__form-control", {
48
+ "form-control--invalid": N && B,
49
+ [`plitzi-component__form-control-${b}`]: b
50
+ }, o),
57
51
  children: [
58
- !W && !G && x && /* @__PURE__ */ g(i, {
59
- targetInput: `${P}_${N}`,
60
- previewMode: I,
61
- className: F.label,
62
- type: y,
63
- required: E,
64
- children: x
52
+ !J && !Y && S && /* @__PURE__ */ _(a, {
53
+ targetInput: `${L}_${I}`,
54
+ previewMode: B,
55
+ className: z.label,
56
+ type: b,
57
+ required: k,
58
+ hidden: C && B,
59
+ children: S
65
60
  }),
66
- W && x && /* @__PURE__ */ _(i, {
67
- targetInput: `${P}_${N}`,
68
- previewMode: I,
69
- className: F.label,
70
- type: y,
71
- required: E,
72
- children: [y === "checkbox" && /* @__PURE__ */ g(o, {
73
- id: `${P}_${N}`,
74
- name: b,
75
- value: k,
76
- className: F.input,
77
- placeholder: S,
78
- required: E,
79
- disabled: w,
80
- onChange: V,
81
- onValidate: M
82
- }), x]
61
+ J && S && /* @__PURE__ */ v(a, {
62
+ targetInput: `${L}_${I}`,
63
+ previewMode: B,
64
+ className: z.label,
65
+ type: b,
66
+ required: k,
67
+ children: [b === "checkbox" && /* @__PURE__ */ _(s, {
68
+ id: `${L}_${I}`,
69
+ name: x,
70
+ value: M,
71
+ className: z.input,
72
+ placeholder: w,
73
+ required: k,
74
+ disabled: D,
75
+ onChange: G,
76
+ onValidate: F,
77
+ errorId: Z
78
+ }), C && B ? /* @__PURE__ */ _("span", {
79
+ style: i,
80
+ children: S
81
+ }) : S]
83
82
  }),
84
- y === "checkbox" && !x && /* @__PURE__ */ g(o, {
85
- id: `${P}_${N}`,
86
- name: b,
87
- value: k,
88
- className: F.input,
89
- placeholder: S,
90
- required: E,
91
- disabled: w,
92
- onChange: V,
93
- onValidate: M
83
+ b === "checkbox" && !S && /* @__PURE__ */ _(s, {
84
+ id: `${L}_${I}`,
85
+ name: x,
86
+ value: M,
87
+ className: z.input,
88
+ placeholder: w,
89
+ required: k,
90
+ disabled: D,
91
+ onChange: G,
92
+ onValidate: F,
93
+ errorId: Z
94
94
  }),
95
95
  [
96
96
  "text",
@@ -98,60 +98,68 @@ var y = ({ ref: e, className: a = "", subType: y = "text", name: b = "", label:
98
98
  "email",
99
99
  "password",
100
100
  "date",
101
- "time"
102
- ].includes(y) && /* @__PURE__ */ g(c, {
103
- id: `${P}_${N}`,
104
- name: b,
105
- value: k,
106
- type: y,
107
- className: F.input,
108
- placeholder: S,
109
- autoComplete: y !== "password" && C,
110
- required: E,
111
- maxLength: D,
112
- disabled: w,
113
- readOnly: O || !I,
114
- onChange: V,
115
- onValidate: M
101
+ "time",
102
+ "color"
103
+ ].includes(b) && /* @__PURE__ */ _(l, {
104
+ id: `${L}_${I}`,
105
+ name: x,
106
+ value: M,
107
+ type: b,
108
+ className: z.input,
109
+ placeholder: w,
110
+ autoComplete: b !== "password" && T,
111
+ autoFocus: X,
112
+ required: k,
113
+ maxLength: A,
114
+ disabled: D,
115
+ readOnly: j || !B,
116
+ onChange: G,
117
+ onValidate: F,
118
+ errorId: Z
116
119
  }),
117
- y === "hidden" && /* @__PURE__ */ g(s, {
118
- id: `${P}_${N}`,
119
- name: b,
120
- value: k,
121
- required: E,
122
- disabled: w,
123
- previewMode: I
120
+ b === "hidden" && /* @__PURE__ */ _(c, {
121
+ id: `${L}_${I}`,
122
+ name: x,
123
+ value: M,
124
+ required: k,
125
+ disabled: D,
126
+ previewMode: B
124
127
  }),
125
- y === "select" && /* @__PURE__ */ g(l, {
126
- id: `${P}_${N}`,
127
- name: b,
128
- onChange: V,
129
- onValidate: M,
130
- value: k,
131
- className: F.input,
132
- placeholder: S,
133
- disabled: w,
134
- options: T
128
+ b === "select" && /* @__PURE__ */ _(u, {
129
+ id: `${L}_${I}`,
130
+ name: x,
131
+ onChange: G,
132
+ onValidate: F,
133
+ errorId: Z,
134
+ value: M,
135
+ className: z.input,
136
+ placeholder: w,
137
+ disabled: D,
138
+ options: O
135
139
  }),
136
- y === "textarea" && /* @__PURE__ */ g(u, {
137
- id: `${P}_${N}`,
138
- name: b,
139
- value: k,
140
- className: F.input,
141
- placeholder: S,
142
- required: E,
143
- maxLength: D,
144
- disabled: w,
145
- readOnly: O,
146
- onChange: V,
147
- onValidate: M
140
+ b === "textarea" && /* @__PURE__ */ _(d, {
141
+ id: `${L}_${I}`,
142
+ name: x,
143
+ value: M,
144
+ className: z.input,
145
+ placeholder: w,
146
+ autoFocus: X,
147
+ required: k,
148
+ maxLength: A,
149
+ disabled: D,
150
+ readOnly: j,
151
+ onChange: G,
152
+ onValidate: F,
153
+ errorId: Z
148
154
  }),
149
- A && /* @__PURE__ */ g("div", {
150
- className: v("form-control__error-message", F.error),
151
- children: A
155
+ N && /* @__PURE__ */ _("div", {
156
+ id: Z,
157
+ role: "alert",
158
+ className: y("form-control__error-message", z.error),
159
+ children: N
152
160
  })
153
161
  ]
154
162
  });
155
- }, b = e(a(y));
163
+ }, x = e(o(b));
156
164
  //#endregion
157
- export { y as FormControl, b as default };
165
+ export { b as FormControl, x as default };
@@ -2,8 +2,10 @@ type SettingsProps = {
2
2
  subType?: 'text' | 'number' | 'date' | 'time' | 'email' | 'password' | 'select' | 'checkbox' | 'textarea' | 'hidden' | 'color' | 'switch';
3
3
  name?: string;
4
4
  label?: string;
5
+ hideLabel?: boolean;
5
6
  placeholder?: string;
6
7
  autoComplete?: boolean;
8
+ autoFocus?: boolean;
7
9
  defaultValue?: string;
8
10
  options?: string[];
9
11
  required?: boolean;
@@ -22,5 +24,5 @@ type SettingsProps = {
22
24
  previewError?: boolean;
23
25
  onUpdate?: (key: string, value: string | boolean | number | string[]) => void;
24
26
  };
25
- declare const Settings: ({ subType, name, label, defaultValue, placeholder, autoComplete, options, required, requiredMessage, minLength, minLengthMessage, maxLength, maxLengthMessage, formatMessage, pattern, patternMessage, matches, matchesMessage, readOnly, disabled, previewError, onUpdate }: SettingsProps) => import('react').JSX.Element;
27
+ declare const Settings: ({ subType, name, label, hideLabel, defaultValue, placeholder, autoComplete, autoFocus, options, required, requiredMessage, minLength, minLengthMessage, maxLength, maxLengthMessage, formatMessage, pattern, patternMessage, matches, matchesMessage, readOnly, disabled, previewError, onUpdate }: SettingsProps) => import('react').JSX.Element;
26
28
  export default Settings;
@@ -9,46 +9,52 @@ import c from "@plitzi/plitzi-ui/Select";
9
9
  var l = (e) => {
10
10
  let t = parseInt(e, 10);
11
11
  return Number.isNaN(t) || t < 0 ? 0 : t;
12
- }, u = ({ subType: u = "text", name: d = "", label: f = "Label", defaultValue: p = "", placeholder: m = "", autoComplete: h = !0, options: g, required: _ = !0, requiredMessage: v = "", minLength: y = 0, minLengthMessage: b = "", maxLength: x = 0, maxLengthMessage: S = "", formatMessage: C = "", pattern: w = "", patternMessage: T = "", matches: E = "", matchesMessage: D = "", readOnly: O = !1, disabled: k = !1, previewError: A = !1, onUpdate: j }) => {
13
- let M = [
12
+ }, u = ({ subType: u = "text", name: d = "", label: f = "Label", hideLabel: p = !1, defaultValue: m = "", placeholder: h = "", autoComplete: g = !0, autoFocus: _ = !1, options: v, required: y = !0, requiredMessage: b = "", minLength: x = 0, minLengthMessage: S = "", maxLength: C = 0, maxLengthMessage: w = "", formatMessage: T = "", pattern: E = "", patternMessage: D = "", matches: O = "", matchesMessage: k = "", readOnly: A = !1, disabled: j = !1, previewError: M = !1, onUpdate: N }) => {
13
+ let P = [
14
14
  "text",
15
15
  "textarea",
16
16
  "number",
17
17
  "email",
18
18
  "password"
19
- ].includes(u), N = t((e) => j?.("name", e), [j]), ee = t((e) => j?.("label", e), [j]), P = t((e) => j?.("placeholder", e), [j]), F = t((e) => {
20
- j?.("subType", e), j?.("defaultValue", "");
21
- }, [j]), I = t((e) => j?.("defaultValue", e), [j]), L = t((e) => j?.("autoComplete", e.target.checked), [j]), R = t((e) => j?.("required", e.target.checked), [j]), z = t((e) => j?.("requiredMessage", e), [j]), B = t((e) => j?.("minLength", l(e)), [j]), V = t((e) => j?.("minLengthMessage", e), [j]), H = t((e) => j?.("maxLength", l(e)), [j]), U = t((e) => j?.("maxLengthMessage", e), [j]), W = t((e) => j?.("formatMessage", e), [j]), G = t((e) => j?.("pattern", e), [j]), K = t((e) => j?.("patternMessage", e), [j]), q = t((e) => j?.("matches", e), [j]), J = t((e) => j?.("matchesMessage", e), [j]), Y = t((e) => j?.("readOnly", e.target.checked), [j]), X = t((e) => j?.("disabled", e.target.checked), [j]), Z = t((e) => j?.("previewError", e.target.checked), [j]), Q = t((e) => {
19
+ ].includes(u), F = t((e) => N?.("name", e), [N]), I = t((e) => N?.("label", e), [N]), L = t((e) => N?.("hideLabel", e.target.checked), [N]), ee = t((e) => N?.("placeholder", e), [N]), R = t((e) => {
20
+ N?.("subType", e), N?.("defaultValue", "");
21
+ }, [N]), z = t((e) => N?.("defaultValue", e), [N]), B = t((e) => N?.("autoFocus", e.target.checked), [N]), V = t((e) => N?.("autoComplete", e.target.checked), [N]), H = t((e) => N?.("required", e.target.checked), [N]), U = t((e) => N?.("requiredMessage", e), [N]), W = t((e) => N?.("minLength", l(e)), [N]), G = t((e) => N?.("minLengthMessage", e), [N]), K = t((e) => N?.("maxLength", l(e)), [N]), q = t((e) => N?.("maxLengthMessage", e), [N]), J = t((e) => N?.("formatMessage", e), [N]), Y = t((e) => N?.("pattern", e), [N]), X = t((e) => N?.("patternMessage", e), [N]), Z = t((e) => N?.("matches", e), [N]), Q = t((e) => N?.("matchesMessage", e), [N]), $ = t((e) => N?.("readOnly", e.target.checked), [N]), te = t((e) => N?.("disabled", e.target.checked), [N]), ne = t((e) => N?.("previewError", e.target.checked), [N]), re = t((e) => {
22
22
  if (!e) {
23
- j?.("options", []);
23
+ N?.("options", []);
24
24
  return;
25
25
  }
26
- j?.("options", e.split("\n"));
27
- }, [j]), $ = n(() => Array.isArray(g) ? g.join("\n") : "", [g]);
26
+ N?.("options", e.split("\n"));
27
+ }, [N]), ie = n(() => Array.isArray(v) ? v.join("\n") : "", [v]);
28
28
  return /* @__PURE__ */ i("div", {
29
29
  className: "flex h-full flex-col gap-4 py-2",
30
30
  children: [
31
31
  /* @__PURE__ */ r(o, {
32
32
  value: d,
33
33
  label: "Input Name",
34
- onChange: N,
34
+ onChange: F,
35
35
  size: "xs"
36
36
  }),
37
37
  /* @__PURE__ */ r(o, {
38
38
  value: f,
39
39
  label: "Label",
40
- onChange: ee,
40
+ onChange: I,
41
+ size: "xs"
42
+ }),
43
+ /* @__PURE__ */ r(a, {
44
+ checked: p,
45
+ label: "Hide Label (still read by screen readers)",
46
+ onChange: L,
41
47
  size: "xs"
42
48
  }),
43
49
  /* @__PURE__ */ r(o, {
44
- value: m,
50
+ value: h,
45
51
  label: "Placeholder",
46
- onChange: P,
52
+ onChange: ee,
47
53
  size: "xs"
48
54
  }),
49
55
  /* @__PURE__ */ i(c, {
50
56
  value: u,
51
- onChange: F,
57
+ onChange: R,
52
58
  label: "Input Type",
53
59
  size: "xs",
54
60
  children: [
@@ -91,109 +97,119 @@ var l = (e) => {
91
97
  /* @__PURE__ */ r("option", {
92
98
  value: "hidden",
93
99
  children: "Hidden"
100
+ }),
101
+ /* @__PURE__ */ r("option", {
102
+ value: "color",
103
+ children: "Color"
94
104
  })
95
105
  ]
96
106
  }),
97
107
  /* @__PURE__ */ r(s, {
98
- value: p,
108
+ value: m,
99
109
  label: "Default Value",
100
- onChange: I,
110
+ onChange: z,
101
111
  size: "xs"
102
112
  }),
103
113
  u === "text" && /* @__PURE__ */ r(a, {
104
- checked: h,
114
+ checked: g,
105
115
  label: "Auto Complete",
106
- onChange: L,
116
+ onChange: V,
107
117
  size: "xs"
108
118
  }),
109
- M && /* @__PURE__ */ r(a, {
110
- checked: O,
119
+ P && /* @__PURE__ */ r(a, {
120
+ checked: A,
111
121
  label: "Read Only",
112
- onChange: Y,
122
+ onChange: $,
123
+ size: "xs"
124
+ }),
125
+ /* @__PURE__ */ r(a, {
126
+ checked: _,
127
+ label: "Focus When Shown",
128
+ onChange: B,
113
129
  size: "xs"
114
130
  }),
115
131
  u === "select" && /* @__PURE__ */ r(s, {
116
- value: $,
132
+ value: ie,
117
133
  label: "Options",
118
- onChange: Q,
134
+ onChange: re,
119
135
  size: "xs"
120
136
  }),
121
137
  /* @__PURE__ */ r(a, {
122
- checked: _,
138
+ checked: y,
123
139
  label: "Required",
124
- onChange: R,
140
+ onChange: H,
125
141
  size: "xs"
126
142
  }),
127
- _ && /* @__PURE__ */ r(o, {
128
- value: v,
143
+ y && /* @__PURE__ */ r(o, {
144
+ value: b,
129
145
  label: "Required Message",
130
- onChange: z,
146
+ onChange: U,
131
147
  size: "xs"
132
148
  }),
133
- M && /* @__PURE__ */ r(o, {
134
- value: y ? String(y) : "",
149
+ P && /* @__PURE__ */ r(o, {
150
+ value: x ? String(x) : "",
135
151
  label: "Min Length",
136
- onChange: B,
152
+ onChange: W,
137
153
  size: "xs"
138
154
  }),
139
- M && y > 0 && /* @__PURE__ */ r(o, {
140
- value: b,
155
+ P && x > 0 && /* @__PURE__ */ r(o, {
156
+ value: S,
141
157
  label: "Min Length Message",
142
- onChange: V,
158
+ onChange: G,
143
159
  size: "xs"
144
160
  }),
145
- M && /* @__PURE__ */ r(o, {
146
- value: x ? String(x) : "",
161
+ P && /* @__PURE__ */ r(o, {
162
+ value: C ? String(C) : "",
147
163
  label: "Max Length",
148
- onChange: H,
164
+ onChange: K,
149
165
  size: "xs"
150
166
  }),
151
- M && x > 0 && /* @__PURE__ */ r(o, {
152
- value: S,
167
+ P && C > 0 && /* @__PURE__ */ r(o, {
168
+ value: w,
153
169
  label: "Max Length Message",
154
- onChange: U,
170
+ onChange: q,
155
171
  size: "xs"
156
172
  }),
157
173
  e(u) && /* @__PURE__ */ r(o, {
158
- value: C,
174
+ value: T,
159
175
  label: "Invalid Format Message",
160
- onChange: W,
176
+ onChange: J,
161
177
  size: "xs"
162
178
  }),
163
- M && /* @__PURE__ */ r(o, {
164
- value: w,
179
+ P && /* @__PURE__ */ r(o, {
180
+ value: E,
165
181
  label: "Pattern (regular expression)",
166
- onChange: G,
182
+ onChange: Y,
167
183
  size: "xs"
168
184
  }),
169
- M && w && /* @__PURE__ */ r(o, {
170
- value: T,
185
+ P && E && /* @__PURE__ */ r(o, {
186
+ value: D,
171
187
  label: "Pattern Message",
172
- onChange: K,
188
+ onChange: X,
173
189
  size: "xs"
174
190
  }),
175
- M && /* @__PURE__ */ r(o, {
176
- value: E,
191
+ P && /* @__PURE__ */ r(o, {
192
+ value: O,
177
193
  label: "Must Match Field",
178
- onChange: q,
194
+ onChange: Z,
179
195
  size: "xs"
180
196
  }),
181
- M && E && /* @__PURE__ */ r(o, {
182
- value: D,
197
+ P && O && /* @__PURE__ */ r(o, {
198
+ value: k,
183
199
  label: "Mismatch Message",
184
- onChange: J,
200
+ onChange: Q,
185
201
  size: "xs"
186
202
  }),
187
203
  /* @__PURE__ */ r(a, {
188
- checked: k,
204
+ checked: j,
189
205
  label: "Disabled",
190
- onChange: X,
206
+ onChange: te,
191
207
  size: "xs"
192
208
  }),
193
209
  /* @__PURE__ */ r(a, {
194
- checked: A,
210
+ checked: M,
195
211
  label: "Preview Error Message",
196
- onChange: Z,
212
+ onChange: ne,
197
213
  size: "xs"
198
214
  })
199
215
  ]
@@ -7,6 +7,8 @@ export type LabelProps = {
7
7
  type: string;
8
8
  previewMode?: boolean;
9
9
  required: boolean;
10
+ /** Named for assistive technology only: the field's design shows what it is for some other way. */
11
+ hidden?: boolean;
10
12
  };
11
- declare const Label: ({ ref, children, targetInput, type, previewMode, required, className }: LabelProps) => import('react').JSX.Element;
13
+ declare const Label: ({ ref, children, targetInput, type, previewMode, required, hidden, className }: LabelProps) => import('react').JSX.Element;
12
14
  export default Label;
@@ -1,28 +1,30 @@
1
- import { useCallback as e } from "react";
2
- import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
- import r from "clsx";
1
+ import { VISUALLY_HIDDEN as e } from "./visuallyHidden.mjs";
2
+ import { useCallback as t } from "react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ import i from "clsx";
4
5
  //#region src/elements/form/FormControl/components/Label.tsx
5
- var i = ({ ref: i, children: a, targetInput: o = "", type: s = "text", previewMode: c = !0, required: l = !0, className: u = "" }) => {
6
- let d = e((e) => {
7
- c || e.preventDefault();
8
- }, [c]);
9
- return c ? /* @__PURE__ */ n("label", {
10
- ref: i,
11
- className: r(`form-control__label-${s}`, u),
12
- htmlFor: o,
13
- children: [a, l && a && /* @__PURE__ */ t("span", {
6
+ var a = ({ ref: a, children: o, targetInput: s = "", type: c = "text", previewMode: l = !0, required: u = !0, hidden: d = !1, className: f = "" }) => {
7
+ let p = t((e) => {
8
+ l || e.preventDefault();
9
+ }, [l]);
10
+ return l ? /* @__PURE__ */ r("label", {
11
+ ref: a,
12
+ className: i(`form-control__label-${c}`, f),
13
+ htmlFor: s,
14
+ style: d ? e : void 0,
15
+ children: [o, u && o && /* @__PURE__ */ n("span", {
14
16
  className: "form-control__label--required",
15
17
  children: "*"
16
18
  })]
17
- }) : /* @__PURE__ */ n("label", {
18
- ref: i,
19
- className: r(`form-control__label-${s}`, u),
20
- onClick: d,
21
- children: [a, l && a && /* @__PURE__ */ t("span", {
19
+ }) : /* @__PURE__ */ r("label", {
20
+ ref: a,
21
+ className: i(`form-control__label-${c}`, f),
22
+ onClick: p,
23
+ children: [o, u && o && /* @__PURE__ */ n("span", {
22
24
  className: "form-control__label--required",
23
25
  children: "*"
24
26
  })]
25
27
  });
26
28
  };
27
29
  //#endregion
28
- export { i as default };
30
+ export { a as default };
@@ -0,0 +1,6 @@
1
+ import { CSSProperties } from 'react';
2
+ /**
3
+ * Out of sight and still read: the label keeps naming its field for screen readers and browser agents. Inline, so no
4
+ * class the space puts on the label slot can bring it back into view.
5
+ */
6
+ export declare const VISUALLY_HIDDEN: CSSProperties;
@@ -0,0 +1,14 @@
1
+ //#region src/elements/form/FormControl/components/visuallyHidden.ts
2
+ var e = {
3
+ position: "absolute",
4
+ width: "1px",
5
+ height: "1px",
6
+ padding: 0,
7
+ margin: "-1px",
8
+ overflow: "hidden",
9
+ clipPath: "inset(50%)",
10
+ whiteSpace: "nowrap",
11
+ border: 0
12
+ };
13
+ //#endregion
14
+ export { e as VISUALLY_HIDDEN };
@@ -8,6 +8,9 @@ export type FormControlAttributes = AuthorableAttributes<FormControlProps, 'valu
8
8
  };
9
9
  declare const declaration: {
10
10
  readonly type: "formControl";
11
+ readonly attributeValues: {
12
+ readonly subType: readonly string[];
13
+ };
11
14
  readonly triggers: {
12
15
  readonly onChange: {
13
16
  readonly action: "onChange";
@@ -25,9 +28,11 @@ declare const declaration: {
25
28
  readonly subType: "text";
26
29
  readonly name: "";
27
30
  readonly label: "Label";
31
+ readonly hideLabel: false;
28
32
  readonly placeholder: "";
29
33
  readonly defaultValue: "";
30
34
  readonly autoComplete: true;
35
+ readonly autoFocus: false;
31
36
  readonly disabled: false;
32
37
  readonly options: readonly [];
33
38
  readonly required: true;