@emporix/component-library 2.0.0 → 2.1.1
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/README.md +96 -0
- package/dist/components/autocomplete/AutoComplete.d.ts.map +1 -1
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
- package/dist/components/fieldlabel/FieldLabel.d.ts +29 -0
- package/dist/components/fieldlabel/FieldLabel.d.ts.map +1 -0
- package/dist/components/fieldlabel/index.d.ts +3 -0
- package/dist/components/fieldlabel/index.d.ts.map +1 -0
- package/dist/components/input/InputText.d.ts.map +1 -1
- package/dist/components/localizedinput/LocalizedInput.d.ts +81 -0
- package/dist/components/localizedinput/LocalizedInput.d.ts.map +1 -0
- package/dist/components/localizedinput/index.d.ts +4 -0
- package/dist/components/localizedinput/index.d.ts.map +1 -0
- package/dist/components/localizedinput/localizedInput.helpers.d.ts +11 -0
- package/dist/components/localizedinput/localizedInput.helpers.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +5177 -5035
- package/dist/index.umd.js +50 -50
- package/dist/style.css +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -132,6 +132,102 @@ import { InputText } from '@emporix/component-library'
|
|
|
132
132
|
|
|
133
133
|
All standard HTML input attributes (placeholder, value, onChange, etc.) are supported.
|
|
134
134
|
|
|
135
|
+
### FieldLabel
|
|
136
|
+
|
|
137
|
+
Shared form field label used by **all** labeled library controls (InputText, Dropdown, AutoComplete, LocalizedInput, and any new component with a `label` prop). Supports required asterisk and optional info tooltip.
|
|
138
|
+
|
|
139
|
+
**Agent rule:** do not render a custom `<label>` / asterisk / tooltip icon for field labels — compose `FieldLabel` instead (see `.cursor/rules/fieldlabel.mdc`).
|
|
140
|
+
|
|
141
|
+
```tsx
|
|
142
|
+
import { FieldLabel } from '@emporix/component-library'
|
|
143
|
+
|
|
144
|
+
const example = (
|
|
145
|
+
<FieldLabel htmlFor='name' required tooltip='Display name'>
|
|
146
|
+
Name
|
|
147
|
+
</FieldLabel>
|
|
148
|
+
)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Inside a library control:
|
|
152
|
+
|
|
153
|
+
```tsx
|
|
154
|
+
import { FieldLabel } from '../fieldlabel'
|
|
155
|
+
|
|
156
|
+
const labelNode =
|
|
157
|
+
label != null ? (
|
|
158
|
+
<FieldLabel htmlFor={id} required={required} tooltip={tooltip}>
|
|
159
|
+
{label}
|
|
160
|
+
</FieldLabel>
|
|
161
|
+
) : null
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### Props
|
|
165
|
+
|
|
166
|
+
| Prop | Type | Default | Description |
|
|
167
|
+
| ----------- | --------- | ------- | ----------------------------------------- |
|
|
168
|
+
| children | ReactNode | - | Label content |
|
|
169
|
+
| htmlFor | string | - | Associated control id |
|
|
170
|
+
| required | boolean | false | Shows asterisk |
|
|
171
|
+
| tooltip | string | - | If set, shows info icon with this tooltip |
|
|
172
|
+
| className | string | - | Additional CSS class |
|
|
173
|
+
| data-testid | string | - | Test ID |
|
|
174
|
+
|
|
175
|
+
### LocalizedInput
|
|
176
|
+
|
|
177
|
+
Multi-language text field with expand/collapse for additional locales. Languages and toggle labels are passed from the app (no `react-i18next` or tenant context inside the library).
|
|
178
|
+
|
|
179
|
+
```tsx
|
|
180
|
+
import { LocalizedInput } from '@emporix/component-library'
|
|
181
|
+
|
|
182
|
+
const example = (
|
|
183
|
+
<LocalizedInput
|
|
184
|
+
label='Name'
|
|
185
|
+
required
|
|
186
|
+
value={name}
|
|
187
|
+
onChange={setName}
|
|
188
|
+
languages={[{ id: 'en' }, { id: 'de' }]}
|
|
189
|
+
selectedLanguage='en'
|
|
190
|
+
showLanguagesLabel='Show languages'
|
|
191
|
+
hideLanguagesLabel='Hide languages'
|
|
192
|
+
/>
|
|
193
|
+
)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
#### Consumer thin wrapper (MD / md-extensions)
|
|
197
|
+
|
|
198
|
+
In Management Dashboard and federated remotes, wrap CL `LocalizedInput` so feature screens do not pass languages/labels on every call. Reference implementation: `md-extensions/users-and-groups/src/components/shared/LocalizedInput.tsx`.
|
|
199
|
+
|
|
200
|
+
The wrapper should:
|
|
201
|
+
|
|
202
|
+
1. Resolve `languages` from app configuration (or fixed `en`/`de` when editing UI strings).
|
|
203
|
+
2. Set `selectedLanguage` from content language or `i18n.language`.
|
|
204
|
+
3. Pass `showLanguagesLabel` / `hideLanguagesLabel` from `t('global.localizedInput.*')`.
|
|
205
|
+
|
|
206
|
+
Feature screens import the **local** wrapper (`components/shared/LocalizedInput`), not `@emporix/component-library` directly. Agent playbook: `.cursor/rules/localizedinput-consumer.mdc`.
|
|
207
|
+
|
|
208
|
+
#### Props
|
|
209
|
+
|
|
210
|
+
| Prop | Type | Default | Description |
|
|
211
|
+
| ------------------ | ------------------------------------------------------------- | ------------------ | ---------------------------------------------- |
|
|
212
|
+
| label | ReactNode | - | Label above the inputs (same as InputText) |
|
|
213
|
+
| tooltip | string | - | Info icon tooltip on the label |
|
|
214
|
+
| required | boolean | false | Shows asterisk on label |
|
|
215
|
+
| inputId | string | - | id for the first language input |
|
|
216
|
+
| value | `Record<string, string> \| undefined` | - | Localized string map |
|
|
217
|
+
| onChange | `(value) => void` | - | Called when any language value changes |
|
|
218
|
+
| languages | `{ id: string }[]` | - | Available languages |
|
|
219
|
+
| selectedLanguage | string | - | Language shown first |
|
|
220
|
+
| showLanguagesLabel | ReactNode | - | Expand toggle label (from app i18n) |
|
|
221
|
+
| hideLanguagesLabel | ReactNode | - | Collapse toggle label (from app i18n) |
|
|
222
|
+
| displayOnly | boolean | false | Read-only inputs |
|
|
223
|
+
| disabled | boolean | false | Disabled inputs |
|
|
224
|
+
| error | ReactNode | - | Shared validation error |
|
|
225
|
+
| errors | `Record<string, string \| { message?: string } \| undefined>` | - | Per-language validation errors |
|
|
226
|
+
| showAllLanguages | boolean | false | Start with all language fields expanded |
|
|
227
|
+
| placeholder | string | - | Placeholder for each input |
|
|
228
|
+
| className | string | - | Additional CSS class for the root |
|
|
229
|
+
| data-testid | string | `localized-inputs` | Test ID for root (per-lang suffix `-en`, etc.) |
|
|
230
|
+
|
|
135
231
|
### AutoComplete
|
|
136
232
|
|
|
137
233
|
Search input with async suggestions. API inspired by [PrimeReact AutoComplete](https://primereact.org/autocomplete/).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoComplete.d.ts","sourceRoot":"","sources":["../../../src/components/autocomplete/AutoComplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"AutoComplete.d.ts","sourceRoot":"","sources":["../../../src/components/autocomplete/AutoComplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAA;AAKd,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,KAAK,CAAC,cAAc,CAAA;CACpC;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACxC,KAAK,EAAE,CAAC,CAAA;IACR,aAAa,EAAE,KAAK,CAAC,cAAc,CAAA;CACpC;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,WAAW,EAAE,CAAC,EAAE,CAAA;IAChB,0EAA0E;IAC1E,cAAc,EAAE,CAAC,CAAC,EAAE,yBAAyB,KAAK,IAAI,CAAA;IACtD,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACxB,yCAAyC;IACzC,QAAQ,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC9C,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAClD,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAgBD,eAAO,MAAM,YAAY;KAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,6KAe3D,iBAAiB,CAAC,CAAC,CAAC;;CA4NtB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsD,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsD,MAAM,OAAO,CAAA;AAK1E,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAA;IACjE,aAAa,EAAE,KAAK,CAAC,cAAc,CAAA;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAA;IACb,wFAAwF;IACxF,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7C,aAAa,EAAE,KAAK,CAAC,aAAa,CAAA;CACnC;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,cAAc;IAC/C;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC3C;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B;;OAEG;IACH,OAAO,EAAE,CAAC,EAAE,CAAA;IACZ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IAC9B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IAC9B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC7C;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,SAAS,CAAA;IACrD;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAC7C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAiFD,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,mTA0BzD,aAAa,CAAC,CAAC,CAAC,4CA8dlB,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface FieldLabelProps {
|
|
3
|
+
/**
|
|
4
|
+
* Label content
|
|
5
|
+
*/
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* Associated control id (`htmlFor`)
|
|
9
|
+
*/
|
|
10
|
+
htmlFor?: string;
|
|
11
|
+
/**
|
|
12
|
+
* When true, shows a required asterisk
|
|
13
|
+
*/
|
|
14
|
+
required?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* When set, an info icon is shown next to the label with this string as tooltip
|
|
17
|
+
*/
|
|
18
|
+
tooltip?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Additional CSS class name
|
|
21
|
+
*/
|
|
22
|
+
className?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Test ID for testing
|
|
25
|
+
*/
|
|
26
|
+
'data-testid'?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare const FieldLabel: ({ children, htmlFor, required, tooltip, className, "data-testid": testId, }: FieldLabelProps) => import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
//# sourceMappingURL=FieldLabel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldLabel.d.ts","sourceRoot":"","sources":["../../../src/components/fieldlabel/FieldLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,UAAU,GAAI,6EAOxB,eAAe,4CAkBjB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/fieldlabel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputText.d.ts","sourceRoot":"","sources":["../../../src/components/input/InputText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgB,MAAM,OAAO,CAAA;AAIpC,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,MAAM,GAAG,WAAW,CACrB;IACC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,SAAS,GAAI,0IAYvB,cAAc,
|
|
1
|
+
{"version":3,"file":"InputText.d.ts","sourceRoot":"","sources":["../../../src/components/input/InputText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgB,MAAM,OAAO,CAAA;AAIpC,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,MAAM,GAAG,WAAW,CACrB;IACC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,SAAS,GAAI,0IAYvB,cAAc,4CAyEhB,CAAA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { LocalizedLanguage, LocalizedValue } from './localizedInput.helpers';
|
|
3
|
+
export type { LocalizedLanguage, LocalizedValue };
|
|
4
|
+
export interface LocalizedInputProps {
|
|
5
|
+
/**
|
|
6
|
+
* Localized string map (language id → text)
|
|
7
|
+
*/
|
|
8
|
+
value: LocalizedValue | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Called when any language value changes. Empty map becomes `undefined`.
|
|
11
|
+
*/
|
|
12
|
+
onChange: (value: LocalizedValue | undefined) => void;
|
|
13
|
+
/**
|
|
14
|
+
* Available languages to edit (order preserved except selected first)
|
|
15
|
+
*/
|
|
16
|
+
languages: readonly LocalizedLanguage[];
|
|
17
|
+
/**
|
|
18
|
+
* Language id shown first (e.g. content or UI language)
|
|
19
|
+
*/
|
|
20
|
+
selectedLanguage?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Label text displayed above the inputs
|
|
23
|
+
*/
|
|
24
|
+
label?: ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* When set, an info icon is shown next to the label with this string as tooltip
|
|
27
|
+
*/
|
|
28
|
+
tooltip?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the field is required (shows asterisk on label)
|
|
31
|
+
*/
|
|
32
|
+
required?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Id for the first language input (for label association)
|
|
35
|
+
*/
|
|
36
|
+
inputId?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Label for expanding additional languages (from app i18n)
|
|
39
|
+
*/
|
|
40
|
+
showLanguagesLabel: ReactNode;
|
|
41
|
+
/**
|
|
42
|
+
* Label for collapsing additional languages (from app i18n)
|
|
43
|
+
*/
|
|
44
|
+
hideLanguagesLabel: ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* When true, inputs are read-only
|
|
47
|
+
*/
|
|
48
|
+
displayOnly?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* When true, inputs are disabled
|
|
51
|
+
*/
|
|
52
|
+
disabled?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Shared validation error shown below all fields
|
|
55
|
+
*/
|
|
56
|
+
error?: ReactNode;
|
|
57
|
+
/**
|
|
58
|
+
* Per-language validation errors (by language id)
|
|
59
|
+
*/
|
|
60
|
+
errors?: Readonly<Record<string, {
|
|
61
|
+
readonly message?: string;
|
|
62
|
+
} | string | undefined>>;
|
|
63
|
+
/**
|
|
64
|
+
* When true, all language fields start expanded
|
|
65
|
+
*/
|
|
66
|
+
showAllLanguages?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Placeholder for each language input
|
|
69
|
+
*/
|
|
70
|
+
placeholder?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Additional CSS class for the root
|
|
73
|
+
*/
|
|
74
|
+
className?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Test ID for the root
|
|
77
|
+
*/
|
|
78
|
+
'data-testid'?: string;
|
|
79
|
+
}
|
|
80
|
+
export declare const LocalizedInput: ({ value, onChange, languages, selectedLanguage, label, tooltip, required, inputId: inputIdProp, showLanguagesLabel, hideLanguagesLabel, displayOnly, disabled, error, errors, showAllLanguages, placeholder, className, "data-testid": testId, }: LocalizedInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
81
|
+
//# sourceMappingURL=LocalizedInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalizedInput.d.ts","sourceRoot":"","sources":["../../../src/components/localizedinput/LocalizedInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAGd,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAA;AAGjC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAA;AAEjD,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,KAAK,EAAE,cAAc,GAAG,SAAS,CAAA;IACjC;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,KAAK,IAAI,CAAA;IACrD;;OAEG;IACH,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACvC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,kBAAkB,EAAE,SAAS,CAAA;IAC7B;;OAEG;IACH,kBAAkB,EAAE,SAAS,CAAA;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,CACf,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,GAAG,SAAS,CAAC,CACnE,CAAA;IACD;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,cAAc,GAAI,kPAmB5B,mBAAmB,4CAoHrB,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { LocalizedInput } from './LocalizedInput';
|
|
2
|
+
export type { LocalizedInputProps, LocalizedLanguage, LocalizedValue, } from './LocalizedInput';
|
|
3
|
+
export { normalizeLocalizedKeys, sortLanguages, updateLocalizedValue, } from './localizedInput.helpers';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/localizedinput/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,oBAAoB,GACrB,MAAM,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type LocalizedValue = Record<string, string>;
|
|
2
|
+
export type LocalizedLanguage = {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const normalizeLocalizedKeys: (val: LocalizedValue | undefined) => LocalizedValue | undefined;
|
|
6
|
+
export declare const sortLanguages: (languages: readonly LocalizedLanguage[], selectedLanguage?: string) => LocalizedLanguage[];
|
|
7
|
+
export declare const updateLocalizedValue: (current: LocalizedValue | undefined, key: string, text: string) => LocalizedValue | undefined;
|
|
8
|
+
export declare const resolveLanguageError: (errors: Readonly<Record<string, {
|
|
9
|
+
readonly message?: string;
|
|
10
|
+
} | string | undefined>> | undefined, languageId: string) => string | undefined;
|
|
11
|
+
//# sourceMappingURL=localizedInput.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localizedInput.helpers.d.ts","sourceRoot":"","sources":["../../../src/components/localizedinput/localizedInput.helpers.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEnD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,KAAK,cAAc,GAAG,SAAS,KAC9B,cAAc,GAAG,SAOnB,CAAA;AAED,eAAO,MAAM,aAAa,GACxB,WAAW,SAAS,iBAAiB,EAAE,EACvC,mBAAmB,MAAM,KACxB,iBAAiB,EAenB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,cAAc,GAAG,SAAS,EACnC,KAAK,MAAM,EACX,MAAM,MAAM,KACX,cAAc,GAAG,SAMnB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,QACI,QAAQ,CACN,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAAC,CACnE,GACD,SAAS,EACb,YAAY,MAAM,KACjB,MAAM,GAAG,SAYX,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,10 @@ export { Dropdown } from './components/dropdown/Dropdown';
|
|
|
18
18
|
export type { DropdownProps, DropdownOption, DropdownChangeEvent, DropdownEditEndEvent, } from './components/dropdown/Dropdown';
|
|
19
19
|
export { InputText } from './components/input/InputText';
|
|
20
20
|
export type { InputTextProps } from './components/input/InputText';
|
|
21
|
+
export { FieldLabel } from './components/fieldlabel';
|
|
22
|
+
export type { FieldLabelProps } from './components/fieldlabel';
|
|
23
|
+
export { LocalizedInput } from './components/localizedinput';
|
|
24
|
+
export type { LocalizedInputProps, LocalizedLanguage, LocalizedValue, } from './components/localizedinput';
|
|
21
25
|
export { Checkbox } from './components/checkbox';
|
|
22
26
|
export type { CheckboxProps, CheckboxChangeEvent } from './components/checkbox';
|
|
23
27
|
export { AutoComplete } from './components/autocomplete';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAEhF,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7C,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,YAAY,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AACrE,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,wCAAwC,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,YAAY,EACV,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACtD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC3E,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACtD,YAAY,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,gCAAgC,EAChC,sBAAsB,EACtB,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,mCAAmC,GACpC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAA;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAGxE,OAAO,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|