@warp-ds/elements 2.11.0-next.1 → 2.12.0-next.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/dist/custom-elements.json +326 -0
- package/dist/docs/index.md +1 -0
- package/dist/docs/modal/modal.md +1 -0
- package/dist/docs/modal/styling.md +1 -0
- package/dist/docs/textfield/api.md +12 -0
- package/dist/docs/textfield/textfield.md +12 -0
- package/dist/docs/tooltip/accessibility.md +9 -0
- package/dist/docs/tooltip/api.md +87 -0
- package/dist/docs/tooltip/examples.md +32 -0
- package/dist/docs/tooltip/styling.md +47 -0
- package/dist/docs/tooltip/tooltip.md +197 -0
- package/dist/docs/tooltip/usage.md +10 -0
- package/dist/entrypoint-react.d.ts +1 -0
- package/dist/entrypoint-react.js +1 -0
- package/dist/index.d.ts +163 -0
- package/dist/packages/affix/affix.js +3 -3
- package/dist/packages/affix/affix.js.map +2 -2
- package/dist/packages/affix/styles.js +1 -1
- package/dist/packages/attention/attention.stories.js +5 -1
- package/dist/packages/modal/modal.d.ts +1 -0
- package/dist/packages/modal/modal.js +5 -1
- package/dist/packages/modal/modal.js.map +2 -2
- package/dist/packages/modal/modal.react.stories.d.ts +1 -1
- package/dist/packages/modal/react.d.ts +13 -5
- package/dist/packages/modal/react.js +10 -4
- package/dist/packages/modal/styles.js +5 -1
- package/dist/packages/modal-footer/react.d.ts +2 -1
- package/dist/packages/modal-footer/react.js +11 -5
- package/dist/packages/modal-header/react.js +1 -0
- package/dist/packages/select/select.js +1 -1
- package/dist/packages/select/select.js.map +2 -2
- package/dist/packages/select/styles.js +1 -1
- package/dist/packages/tab/react.d.ts +1 -0
- package/dist/packages/tab/react.js +2 -1
- package/dist/packages/tabs/tabs.js +4 -4
- package/dist/packages/tabs/tabs.js.map +3 -3
- package/dist/packages/tabs/tabs.react.stories.js +5 -5
- package/dist/packages/textarea/styles.js +1 -1
- package/dist/packages/textarea/textarea.js +6 -6
- package/dist/packages/textarea/textarea.js.map +2 -2
- package/dist/packages/textfield/input-styles.js +1 -1
- package/dist/packages/textfield/react.d.ts +1 -1
- package/dist/packages/textfield/styles.js +1 -1
- package/dist/packages/textfield/textfield.d.ts +8 -0
- package/dist/packages/textfield/textfield.js +32 -15
- package/dist/packages/textfield/textfield.js.map +3 -3
- package/dist/packages/textfield/textfield.react.stories.d.ts +2 -2
- package/dist/packages/tooltip/locales/da/messages.d.mts +1 -0
- package/dist/packages/tooltip/locales/da/messages.mjs +1 -0
- package/dist/packages/tooltip/locales/en/messages.d.mts +1 -0
- package/dist/packages/tooltip/locales/en/messages.mjs +1 -0
- package/dist/packages/tooltip/locales/fi/messages.d.mts +1 -0
- package/dist/packages/tooltip/locales/fi/messages.mjs +1 -0
- package/dist/packages/tooltip/locales/nb/messages.d.mts +1 -0
- package/dist/packages/tooltip/locales/nb/messages.mjs +1 -0
- package/dist/packages/tooltip/locales/sv/messages.d.mts +1 -0
- package/dist/packages/tooltip/locales/sv/messages.mjs +1 -0
- package/dist/packages/tooltip/react.d.ts +16 -0
- package/dist/packages/tooltip/react.js +28 -0
- package/dist/packages/tooltip/styles.d.ts +1 -0
- package/dist/packages/tooltip/styles.js +66 -0
- package/dist/packages/tooltip/tooltip.d.ts +72 -0
- package/dist/packages/tooltip/tooltip.hydration.test.d.ts +1 -0
- package/dist/packages/tooltip/tooltip.hydration.test.js +13 -0
- package/dist/packages/tooltip/tooltip.js +2528 -0
- package/dist/packages/tooltip/tooltip.js.map +7 -0
- package/dist/packages/tooltip/tooltip.react.stories.d.ts +12 -0
- package/dist/packages/tooltip/tooltip.react.stories.js +12 -0
- package/dist/packages/tooltip/tooltip.stories.d.ts +17 -0
- package/dist/packages/tooltip/tooltip.stories.js +115 -0
- package/dist/packages/tooltip/tooltip.test.d.ts +2 -0
- package/dist/packages/tooltip/tooltip.test.js +130 -0
- package/dist/web-types.json +89 -2
- package/eik/index.js +19 -19
- package/package.json +2 -1
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Tooltip (w-tooltip)
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
A tooltip is a message box that is displayed when a user hovers over or gives focus to a UI element.
|
|
6
|
+
|
|
7
|
+
Tooltips should be used sparingly and contain succinct, supplementary information.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
A tooltip is a message box that is displayed when a user hovers over or gives focus to a UI element.
|
|
12
|
+
|
|
13
|
+
Tooltips should be used sparingly and contain succinct, supplementary information.
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<w-button id="my-button" aria-labelledby="my-tooltip">Hover over me</w-button>
|
|
17
|
+
<w-tooltip id="my-tooltip" for="my-button">I am a tooltip</w-tooltip>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Accessibility
|
|
21
|
+
|
|
22
|
+
### ARIA attribute
|
|
23
|
+
|
|
24
|
+
We use `aria-labelledby` instead of `aria-describedby` to create the relationship between the tooltip and its target.
|
|
25
|
+
|
|
26
|
+
The ARIA Authoring Practices Guide (APG) recommends `aria-describedby`, but at time of writing that must be set directly on the focusable element. Since `w-button`'s focusable `button` element is inside a shadow root we can't set up that relationship. Cross-root references by ID is impossible and the related ARIA properties on the `Element` are read only.
|
|
27
|
+
|
|
28
|
+
We might revisit this design later should cross-root ARIA references become supported.
|
|
29
|
+
|
|
30
|
+
## Examples
|
|
31
|
+
|
|
32
|
+
By default the tooltip is placed above the target element if there is room. If there's no room above it flips side and is placed below the target.
|
|
33
|
+
|
|
34
|
+
<elements-example>
|
|
35
|
+
|
|
36
|
+
```html
|
|
37
|
+
<w-button id="basic-button" aria-labelledby="basic-tooltip">Hover over me</w-button>
|
|
38
|
+
<w-tooltip id="basic-tooltip" for="basic-button">I am a tooltip</w-tooltip>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
</elements-example>
|
|
42
|
+
|
|
43
|
+
### Adjust placement
|
|
44
|
+
|
|
45
|
+
You can specify a different initial placement. If there's no room the tooltip flips to the opposite side of the target.
|
|
46
|
+
|
|
47
|
+
Available positions:
|
|
48
|
+
|
|
49
|
+
- `top` (this is the default)
|
|
50
|
+
- `bottom`
|
|
51
|
+
- `left`
|
|
52
|
+
- `right`
|
|
53
|
+
|
|
54
|
+
<elements-example>
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<w-button id="placed-button" aria-labelledby="placed-tooltip">Hover over me</w-button>
|
|
58
|
+
<w-tooltip id="placed-tooltip" for="placed-button" placement="right">I am a tooltip</w-tooltip>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
</elements-example>
|
|
62
|
+
|
|
63
|
+
## Styling API
|
|
64
|
+
|
|
65
|
+
This component supports styling through **component tokens** (CSS custom properties with a --w-c- prefix) and **parts**.
|
|
66
|
+
|
|
67
|
+
### Parts
|
|
68
|
+
|
|
69
|
+
Use `::part(...)` from outside the component.
|
|
70
|
+
|
|
71
|
+
- `tooltip` - the tooltip container with background color, padding etc.
|
|
72
|
+
- `arrow` - a square container used for positioning the visual part of the arrow
|
|
73
|
+
- `beak` - the visual part of the arrow pointing at the target
|
|
74
|
+
- `hover-bridge` - an invisible element there to ensure the tooltip doesn't close when moving the cursor from the target to the tooltip
|
|
75
|
+
|
|
76
|
+
Example:
|
|
77
|
+
|
|
78
|
+
```css
|
|
79
|
+
w-tooltip::part(tooltip) {
|
|
80
|
+
text-transform: uppercase;
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Component tokens
|
|
85
|
+
|
|
86
|
+
Set these on `w-tooltip` to override visuals.
|
|
87
|
+
|
|
88
|
+
```css
|
|
89
|
+
w-tooltip {
|
|
90
|
+
--w-c-tooltip-bg: lime;
|
|
91
|
+
--w-c-tooltip-color: black;
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
#### Layout & typography
|
|
96
|
+
|
|
97
|
+
- `--w-c-tooltip-z-index`
|
|
98
|
+
|
|
99
|
+
#### Background
|
|
100
|
+
|
|
101
|
+
- `--w-c-tooltip-bg`
|
|
102
|
+
|
|
103
|
+
#### Text color
|
|
104
|
+
|
|
105
|
+
- `--w-c-tooltip-color`
|
|
106
|
+
|
|
107
|
+
##### Shadow
|
|
108
|
+
|
|
109
|
+
- `--w-c-tooltip-box-shadow`
|
|
110
|
+
|
|
111
|
+
## `<w-tooltip>` API
|
|
112
|
+
|
|
113
|
+
Unless otherwise noted all properties are HTML attributes (as opposed to JavaScript object properties).
|
|
114
|
+
|
|
115
|
+
### Properties
|
|
116
|
+
|
|
117
|
+
| Name | Type | Default | Summary |
|
|
118
|
+
|-|-|-|-|
|
|
119
|
+
| for | `string` | `""` | ID of the element that triggers the tooltip on hover or focus. |
|
|
120
|
+
| hide (JS only) | `hide() => void` | `-` | - |
|
|
121
|
+
| hide-delay | `number` | `0` | Milliseconds to wait before hiding the tooltip on mouseout. |
|
|
122
|
+
| no-arrow | `boolean` | `false` | Hide the arrow pointing toward the tooltip target. |
|
|
123
|
+
| open | `boolean` | `false` | Indicates whether the tooltip is visible or not. |
|
|
124
|
+
| placement | [`TooltipPlacement`](#tooltipplacement) | `"top"` | Sets the placement of the tooltip relative to its target. |
|
|
125
|
+
| show (JS only) | `show() => void` | `-` | - |
|
|
126
|
+
| show-delay | `number` | `150` | Milliseconds to wait before showing the tooltip on hover. |
|
|
127
|
+
|
|
128
|
+
### Property Details
|
|
129
|
+
|
|
130
|
+
#### for
|
|
131
|
+
|
|
132
|
+
ID of the element that triggers the tooltip on hover or focus.
|
|
133
|
+
|
|
134
|
+
- Type: `string`
|
|
135
|
+
- Default: `""`
|
|
136
|
+
|
|
137
|
+
#### hide (JS only)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
- Type: `hide() => void`
|
|
142
|
+
- Default: `-`
|
|
143
|
+
|
|
144
|
+
#### hide-delay
|
|
145
|
+
|
|
146
|
+
Milliseconds to wait before hiding the tooltip on mouseout.
|
|
147
|
+
|
|
148
|
+
- Type: `number`
|
|
149
|
+
- Default: `0`
|
|
150
|
+
|
|
151
|
+
#### no-arrow
|
|
152
|
+
|
|
153
|
+
Hide the arrow pointing toward the tooltip target.
|
|
154
|
+
|
|
155
|
+
- Type: `boolean`
|
|
156
|
+
- Default: `false`
|
|
157
|
+
|
|
158
|
+
#### open
|
|
159
|
+
|
|
160
|
+
Indicates whether the tooltip is visible or not.
|
|
161
|
+
|
|
162
|
+
- Type: `boolean`
|
|
163
|
+
- Default: `false`
|
|
164
|
+
|
|
165
|
+
#### placement
|
|
166
|
+
|
|
167
|
+
Sets the placement of the tooltip relative to its target.
|
|
168
|
+
|
|
169
|
+
The tooltip will try to position itself at the given placement. If there is no room it will flip to the opposite side automatically.
|
|
170
|
+
|
|
171
|
+
- Type: [`TooltipPlacement`](#tooltipplacement)
|
|
172
|
+
- Default: `"top"`
|
|
173
|
+
|
|
174
|
+
#### show (JS only)
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
- Type: `show() => void`
|
|
179
|
+
- Default: `-`
|
|
180
|
+
|
|
181
|
+
#### show-delay
|
|
182
|
+
|
|
183
|
+
Milliseconds to wait before showing the tooltip on hover.
|
|
184
|
+
|
|
185
|
+
Keep at a non-zero value to avoid flickering the tooltip on and off when cursors move quickly past the target element.
|
|
186
|
+
|
|
187
|
+
Focusing the target element shows the tooltip immediately.
|
|
188
|
+
|
|
189
|
+
- Type: `number`
|
|
190
|
+
- Default: `150`
|
|
191
|
+
|
|
192
|
+
### Types
|
|
193
|
+
|
|
194
|
+
#### TooltipPlacement
|
|
195
|
+
|
|
196
|
+
`'top' | 'right' | 'bottom' | 'left'`
|
|
197
|
+
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
## Usage
|
|
2
|
+
|
|
3
|
+
A tooltip is a message box that is displayed when a user hovers over or gives focus to a UI element.
|
|
4
|
+
|
|
5
|
+
Tooltips should be used sparingly and contain succinct, supplementary information.
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<w-button id="my-button" aria-labelledby="my-tooltip">Hover over me</w-button>
|
|
9
|
+
<w-tooltip id="my-tooltip" for="my-button">I am a tooltip</w-tooltip>
|
|
10
|
+
```
|
package/dist/entrypoint-react.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -47,6 +47,7 @@ import type { WarpTab } from "./packages/tab/tab.ts";
|
|
|
47
47
|
import type { WarpTabPanel } from "./packages/tab-panel/tab-panel.ts";
|
|
48
48
|
import type { WarpTabs } from "./packages/tabs/tabs.ts";
|
|
49
49
|
import type { WarpTextarea } from "./packages/textarea/textarea.ts";
|
|
50
|
+
import type { WarpTooltip } from "./packages/tooltip/tooltip.ts";
|
|
50
51
|
|
|
51
52
|
/**
|
|
52
53
|
* This type can be used to create scoped tags for your components.
|
|
@@ -301,6 +302,12 @@ Using arrow up and down in the input field increments and decrements by 5. */
|
|
|
301
302
|
step?: WarpTextField["step"];
|
|
302
303
|
/** A space-separated string that hints to browsers [what type of content it can suggest](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete#value) to autofill. */
|
|
303
304
|
autocomplete?: WarpTextField["autocomplete"];
|
|
305
|
+
/** Suplementary information that should show in a tooltip behind an information icon after the label.
|
|
306
|
+
|
|
307
|
+
Use the `tooltip` slot if you need markup and not just text.
|
|
308
|
+
|
|
309
|
+
You must provide a label to be able to show an info icon with a tooltip. */
|
|
310
|
+
tooltip?: WarpTextField["tooltip"];
|
|
304
311
|
/** Function to format value when the input field.
|
|
305
312
|
|
|
306
313
|
Only active when the input field does not have focus,
|
|
@@ -372,6 +379,12 @@ Using arrow up and down in the input field increments and decrements by 5. */
|
|
|
372
379
|
"prop:step"?: WarpTextField["step"];
|
|
373
380
|
/** A space-separated string that hints to browsers [what type of content it can suggest](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete#value) to autofill. */
|
|
374
381
|
"prop:autocomplete"?: WarpTextField["autocomplete"];
|
|
382
|
+
/** Suplementary information that should show in a tooltip behind an information icon after the label.
|
|
383
|
+
|
|
384
|
+
Use the `tooltip` slot if you need markup and not just text.
|
|
385
|
+
|
|
386
|
+
You must provide a label to be able to show an info icon with a tooltip. */
|
|
387
|
+
"prop:tooltip"?: WarpTextField["tooltip"];
|
|
375
388
|
/** Function to format value when the input field.
|
|
376
389
|
|
|
377
390
|
Only active when the input field does not have focus,
|
|
@@ -2307,6 +2320,73 @@ Placeholder text should not be used as a substitute for labeling the element wit
|
|
|
2307
2320
|
textContent?: string | number;
|
|
2308
2321
|
};
|
|
2309
2322
|
|
|
2323
|
+
export type WarpTooltipProps = {
|
|
2324
|
+
/** ID of the element that triggers the tooltip on hover or focus. */
|
|
2325
|
+
for?: WarpTooltip["for"];
|
|
2326
|
+
/** Hide the arrow pointing toward the tooltip target. */
|
|
2327
|
+
"no-arrow"?: WarpTooltip["noArrow"];
|
|
2328
|
+
/** Hide the arrow pointing toward the tooltip target. */
|
|
2329
|
+
noArrow?: WarpTooltip["noArrow"];
|
|
2330
|
+
/** Indicates whether the tooltip is visible or not. */
|
|
2331
|
+
open?: WarpTooltip["open"];
|
|
2332
|
+
/** Sets the placement of the tooltip relative to its target.
|
|
2333
|
+
|
|
2334
|
+
The tooltip will try to position itself at the given placement. If there is no room it will flip to the opposite side automatically. */
|
|
2335
|
+
placement?: WarpTooltip["placement"];
|
|
2336
|
+
/** Milliseconds to wait before showing the tooltip on hover.
|
|
2337
|
+
|
|
2338
|
+
Keep at a non-zero value to avoid flickering the tooltip on and off when cursors move quickly past the target element.
|
|
2339
|
+
|
|
2340
|
+
Focusing the target element shows the tooltip immediately. */
|
|
2341
|
+
"show-delay"?: WarpTooltip["showDelay"];
|
|
2342
|
+
/** Milliseconds to wait before showing the tooltip on hover.
|
|
2343
|
+
|
|
2344
|
+
Keep at a non-zero value to avoid flickering the tooltip on and off when cursors move quickly past the target element.
|
|
2345
|
+
|
|
2346
|
+
Focusing the target element shows the tooltip immediately. */
|
|
2347
|
+
showDelay?: WarpTooltip["showDelay"];
|
|
2348
|
+
/** Milliseconds to wait before hiding the tooltip on mouseout. */
|
|
2349
|
+
"hide-delay"?: WarpTooltip["hideDelay"];
|
|
2350
|
+
/** Milliseconds to wait before hiding the tooltip on mouseout. */
|
|
2351
|
+
hideDelay?: WarpTooltip["hideDelay"];
|
|
2352
|
+
};
|
|
2353
|
+
|
|
2354
|
+
export type WarpTooltipSolidJsProps = {
|
|
2355
|
+
/** ID of the element that triggers the tooltip on hover or focus. */
|
|
2356
|
+
"prop:for"?: WarpTooltip["for"];
|
|
2357
|
+
/** Hide the arrow pointing toward the tooltip target. */
|
|
2358
|
+
"bool:no-arrow"?: WarpTooltip["noArrow"];
|
|
2359
|
+
/** Hide the arrow pointing toward the tooltip target. */
|
|
2360
|
+
"prop:noArrow"?: WarpTooltip["noArrow"];
|
|
2361
|
+
/** Indicates whether the tooltip is visible or not. */
|
|
2362
|
+
"prop:open"?: WarpTooltip["open"];
|
|
2363
|
+
/** Sets the placement of the tooltip relative to its target.
|
|
2364
|
+
|
|
2365
|
+
The tooltip will try to position itself at the given placement. If there is no room it will flip to the opposite side automatically. */
|
|
2366
|
+
"prop:placement"?: WarpTooltip["placement"];
|
|
2367
|
+
/** Milliseconds to wait before showing the tooltip on hover.
|
|
2368
|
+
|
|
2369
|
+
Keep at a non-zero value to avoid flickering the tooltip on and off when cursors move quickly past the target element.
|
|
2370
|
+
|
|
2371
|
+
Focusing the target element shows the tooltip immediately. */
|
|
2372
|
+
"attr:show-delay"?: WarpTooltip["showDelay"];
|
|
2373
|
+
/** Milliseconds to wait before showing the tooltip on hover.
|
|
2374
|
+
|
|
2375
|
+
Keep at a non-zero value to avoid flickering the tooltip on and off when cursors move quickly past the target element.
|
|
2376
|
+
|
|
2377
|
+
Focusing the target element shows the tooltip immediately. */
|
|
2378
|
+
"prop:showDelay"?: WarpTooltip["showDelay"];
|
|
2379
|
+
/** Milliseconds to wait before hiding the tooltip on mouseout. */
|
|
2380
|
+
"attr:hide-delay"?: WarpTooltip["hideDelay"];
|
|
2381
|
+
/** Milliseconds to wait before hiding the tooltip on mouseout. */
|
|
2382
|
+
"prop:hideDelay"?: WarpTooltip["hideDelay"];
|
|
2383
|
+
|
|
2384
|
+
/** Set the innerHTML of the element */
|
|
2385
|
+
innerHTML?: string;
|
|
2386
|
+
/** Set the textContent of the element */
|
|
2387
|
+
textContent?: string | number;
|
|
2388
|
+
};
|
|
2389
|
+
|
|
2310
2390
|
export type CustomElements = {
|
|
2311
2391
|
/**
|
|
2312
2392
|
* A single-line input component used for entering and editing textual or numeric data.
|
|
@@ -2349,6 +2429,11 @@ export type CustomElements = {
|
|
|
2349
2429
|
* For example with a `step="5"` only values that divide evenly on 5 are allowed.
|
|
2350
2430
|
* Using arrow up and down in the input field increments and decrements by 5.
|
|
2351
2431
|
* - `autocomplete`: A space-separated string that hints to browsers [what type of content it can suggest](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete#value) to autofill.
|
|
2432
|
+
* - `tooltip`: Suplementary information that should show in a tooltip behind an information icon after the label.
|
|
2433
|
+
*
|
|
2434
|
+
* Use the `tooltip` slot if you need markup and not just text.
|
|
2435
|
+
*
|
|
2436
|
+
* You must provide a label to be able to show an info icon with a tooltip.
|
|
2352
2437
|
* - `formatter`: Function to format value when the input field.
|
|
2353
2438
|
*
|
|
2354
2439
|
* Only active when the input field does not have focus,
|
|
@@ -2970,6 +3055,7 @@ export type CustomElements = {
|
|
|
2970
3055
|
* - `--w-c-modal-max-height`: undefined (default: `undefined`)
|
|
2971
3056
|
* - `--w-c-modal-min-height`: undefined (default: `undefined`)
|
|
2972
3057
|
* - `--w-c-modal-translate-distance`: undefined (default: `undefined`)
|
|
3058
|
+
* - `--w-c-modal-padding-bottom`: undefined (default: `undefined`)
|
|
2973
3059
|
* - `--w-c-modal-width`: undefined (default: `undefined`)
|
|
2974
3060
|
*
|
|
2975
3061
|
* ## CSS Parts
|
|
@@ -3559,6 +3645,37 @@ export type CustomElements = {
|
|
|
3559
3645
|
"w-textarea": Partial<
|
|
3560
3646
|
WarpTextareaProps & BaseProps<WarpTextarea> & BaseEvents
|
|
3561
3647
|
>;
|
|
3648
|
+
|
|
3649
|
+
/**
|
|
3650
|
+
* A tooltip is a message box that is displayed when a user hovers over or gives focus to a UI element.
|
|
3651
|
+
*
|
|
3652
|
+
* Tooltips should be used sparingly and contain succinct, supplementary information.
|
|
3653
|
+
*
|
|
3654
|
+
* ## Attributes & Properties
|
|
3655
|
+
*
|
|
3656
|
+
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
3657
|
+
*
|
|
3658
|
+
* - `for`: ID of the element that triggers the tooltip on hover or focus.
|
|
3659
|
+
* - `no-arrow`/`noArrow`: Hide the arrow pointing toward the tooltip target.
|
|
3660
|
+
* - `open`: Indicates whether the tooltip is visible or not.
|
|
3661
|
+
* - `placement`: Sets the placement of the tooltip relative to its target.
|
|
3662
|
+
*
|
|
3663
|
+
* The tooltip will try to position itself at the given placement. If there is no room it will flip to the opposite side automatically.
|
|
3664
|
+
* - `show-delay`/`showDelay`: Milliseconds to wait before showing the tooltip on hover.
|
|
3665
|
+
*
|
|
3666
|
+
* Keep at a non-zero value to avoid flickering the tooltip on and off when cursors move quickly past the target element.
|
|
3667
|
+
*
|
|
3668
|
+
* Focusing the target element shows the tooltip immediately.
|
|
3669
|
+
* - `hide-delay`/`hideDelay`: Milliseconds to wait before hiding the tooltip on mouseout.
|
|
3670
|
+
*
|
|
3671
|
+
* ## Methods
|
|
3672
|
+
*
|
|
3673
|
+
* Methods that can be called to access component functionality.
|
|
3674
|
+
*
|
|
3675
|
+
* - `hide() => void`: undefined
|
|
3676
|
+
* - `show() => void`: undefined
|
|
3677
|
+
*/
|
|
3678
|
+
"w-tooltip": Partial<WarpTooltipProps & BaseProps<WarpTooltip> & BaseEvents>;
|
|
3562
3679
|
};
|
|
3563
3680
|
|
|
3564
3681
|
type ReactElementProps<T extends HTMLElement> = import("react").DOMAttributes<T> &
|
|
@@ -3619,6 +3736,7 @@ type CustomElementInstances = {
|
|
|
3619
3736
|
"w-tab-panel": WarpTabPanel;
|
|
3620
3737
|
"w-tabs": WarpTabs;
|
|
3621
3738
|
"w-textarea": WarpTextarea;
|
|
3739
|
+
"w-tooltip": WarpTooltip;
|
|
3622
3740
|
};
|
|
3623
3741
|
|
|
3624
3742
|
type CustomElementComponentProps = {
|
|
@@ -3659,6 +3777,7 @@ type CustomElementComponentProps = {
|
|
|
3659
3777
|
"w-tab-panel": WarpTabPanelProps;
|
|
3660
3778
|
"w-tabs": WarpTabsProps;
|
|
3661
3779
|
"w-textarea": WarpTextareaProps;
|
|
3780
|
+
"w-tooltip": WarpTooltipProps;
|
|
3662
3781
|
};
|
|
3663
3782
|
|
|
3664
3783
|
export type ReactCustomElements = {
|
|
@@ -3709,6 +3828,11 @@ export type CustomElementsSolidJs = {
|
|
|
3709
3828
|
* For example with a `step="5"` only values that divide evenly on 5 are allowed.
|
|
3710
3829
|
* Using arrow up and down in the input field increments and decrements by 5.
|
|
3711
3830
|
* - `autocomplete`: A space-separated string that hints to browsers [what type of content it can suggest](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete#value) to autofill.
|
|
3831
|
+
* - `tooltip`: Suplementary information that should show in a tooltip behind an information icon after the label.
|
|
3832
|
+
*
|
|
3833
|
+
* Use the `tooltip` slot if you need markup and not just text.
|
|
3834
|
+
*
|
|
3835
|
+
* You must provide a label to be able to show an info icon with a tooltip.
|
|
3712
3836
|
* - `formatter`: Function to format value when the input field.
|
|
3713
3837
|
*
|
|
3714
3838
|
* Only active when the input field does not have focus,
|
|
@@ -4376,6 +4500,7 @@ export type CustomElementsSolidJs = {
|
|
|
4376
4500
|
* - `--w-c-modal-max-height`: undefined (default: `undefined`)
|
|
4377
4501
|
* - `--w-c-modal-min-height`: undefined (default: `undefined`)
|
|
4378
4502
|
* - `--w-c-modal-translate-distance`: undefined (default: `undefined`)
|
|
4503
|
+
* - `--w-c-modal-padding-bottom`: undefined (default: `undefined`)
|
|
4379
4504
|
* - `--w-c-modal-width`: undefined (default: `undefined`)
|
|
4380
4505
|
*
|
|
4381
4506
|
* ## CSS Parts
|
|
@@ -5025,6 +5150,42 @@ export type CustomElementsSolidJs = {
|
|
|
5025
5150
|
BaseProps<WarpTextarea> &
|
|
5026
5151
|
BaseEvents
|
|
5027
5152
|
>;
|
|
5153
|
+
|
|
5154
|
+
/**
|
|
5155
|
+
* A tooltip is a message box that is displayed when a user hovers over or gives focus to a UI element.
|
|
5156
|
+
*
|
|
5157
|
+
* Tooltips should be used sparingly and contain succinct, supplementary information.
|
|
5158
|
+
*
|
|
5159
|
+
* ## Attributes & Properties
|
|
5160
|
+
*
|
|
5161
|
+
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
5162
|
+
*
|
|
5163
|
+
* - `for`: ID of the element that triggers the tooltip on hover or focus.
|
|
5164
|
+
* - `no-arrow`/`noArrow`: Hide the arrow pointing toward the tooltip target.
|
|
5165
|
+
* - `open`: Indicates whether the tooltip is visible or not.
|
|
5166
|
+
* - `placement`: Sets the placement of the tooltip relative to its target.
|
|
5167
|
+
*
|
|
5168
|
+
* The tooltip will try to position itself at the given placement. If there is no room it will flip to the opposite side automatically.
|
|
5169
|
+
* - `show-delay`/`showDelay`: Milliseconds to wait before showing the tooltip on hover.
|
|
5170
|
+
*
|
|
5171
|
+
* Keep at a non-zero value to avoid flickering the tooltip on and off when cursors move quickly past the target element.
|
|
5172
|
+
*
|
|
5173
|
+
* Focusing the target element shows the tooltip immediately.
|
|
5174
|
+
* - `hide-delay`/`hideDelay`: Milliseconds to wait before hiding the tooltip on mouseout.
|
|
5175
|
+
*
|
|
5176
|
+
* ## Methods
|
|
5177
|
+
*
|
|
5178
|
+
* Methods that can be called to access component functionality.
|
|
5179
|
+
*
|
|
5180
|
+
* - `hide() => void`: undefined
|
|
5181
|
+
* - `show() => void`: undefined
|
|
5182
|
+
*/
|
|
5183
|
+
"w-tooltip": Partial<
|
|
5184
|
+
WarpTooltipProps &
|
|
5185
|
+
WarpTooltipSolidJsProps &
|
|
5186
|
+
BaseProps<WarpTooltip> &
|
|
5187
|
+
BaseEvents
|
|
5188
|
+
>;
|
|
5028
5189
|
};
|
|
5029
5190
|
|
|
5030
5191
|
export type CustomCssProperties = {
|
|
@@ -5045,6 +5206,8 @@ export type CustomCssProperties = {
|
|
|
5045
5206
|
/** */
|
|
5046
5207
|
"--w-c-modal-translate-distance"?: string;
|
|
5047
5208
|
/** */
|
|
5209
|
+
"--w-c-modal-padding-bottom"?: string;
|
|
5210
|
+
/** */
|
|
5048
5211
|
"--w-c-modal-width"?: string;
|
|
5049
5212
|
/** adjusts the flex gap between actions in the footer. */
|
|
5050
5213
|
"--w-c-modal-footer-gap"?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var me=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var w=(t,e,r,o)=>{for(var a=o>1?void 0:o?ve(e,r):e,d=t.length-1,s;d>=0;d--)(s=t[d])&&(a=(o?s(e,r,a):s(a))||a);return o&&a&&me(e,r,a),a};var U=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return t.reduce(function(r,o){return r.concat(typeof o=="string"?o:Array.isArray(o)?U.apply(void 0,o):typeof o=="object"&&o?Object.keys(o).map(function(a){return o[a]?a:""}):"")},[]).join(" ")};var c=function(t,e,r,o){if(r==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?o:r==="a"?o.call(t):o?o.value:e.get(t)},h=function(t,e,r,o,a){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?a.call(t,r):a?a.value=r:e.set(t,r),r};function te(t){var e,r,o,a,d,s,n,p,g,y,_,P,v,z,C,m,M,T,X;class ge extends t{constructor(...i){var l,b,u;super(...i),e.add(this),this.internals=this.attachInternals(),r.set(this,!1),o.set(this,!1),a.set(this,!1),d.set(this,void 0),s.set(this,void 0),n.set(this,!0),g.set(this,""),y.set(this,()=>{h(this,a,!0,"f"),h(this,r,!0,"f"),c(this,e,"m",m).call(this)}),_.set(this,()=>{h(this,r,!1,"f"),c(this,e,"m",M).call(this,this.shouldFormValueUpdate()?c(this,g,"f"):""),!this.validity.valid&&c(this,a,"f")&&h(this,o,!0,"f");let x=c(this,e,"m",m).call(this);this.validationMessageCallback&&this.validationMessageCallback(x?this.internals.validationMessage:"")}),P.set(this,()=>{var x;c(this,n,"f")&&this.validationTarget&&(this.internals.setValidity(this.validity,this.validationMessage,this.validationTarget),h(this,n,!1,"f")),h(this,a,!0,"f"),h(this,o,!0,"f"),c(this,e,"m",m).call(this),(x=this===null||this===void 0?void 0:this.validationMessageCallback)===null||x===void 0||x.call(this,this.showError?this.internals.validationMessage:"")}),v.set(this,void 0),z.set(this,!1),C.set(this,Promise.resolve()),(l=this.addEventListener)===null||l===void 0||l.call(this,"focus",c(this,y,"f")),(b=this.addEventListener)===null||b===void 0||b.call(this,"blur",c(this,_,"f")),(u=this.addEventListener)===null||u===void 0||u.call(this,"invalid",c(this,P,"f")),this.setValue(null)}static get formAssociated(){return!0}static get validators(){return this.formControlValidators||[]}static get observedAttributes(){let i=this.validators.map(u=>u.attribute).flat(),l=super.observedAttributes||[];return[...new Set([...l,...i])]}static getValidator(i){return this.validators.find(l=>l.attribute===i)||null}static getValidators(i){return this.validators.filter(l=>{var b;if(l.attribute===i||!((b=l.attribute)===null||b===void 0)&&b.includes(i))return!0})}get form(){return this.internals.form}get showError(){return c(this,e,"m",m).call(this)}checkValidity(){return this.internals.checkValidity()}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}attributeChangedCallback(i,l,b){var u;(u=super.attributeChangedCallback)===null||u===void 0||u.call(this,i,l,b);let j=this.constructor.getValidators(i);j?.length&&this.validationTarget&&this.setValue(c(this,g,"f"))}setValue(i){var l;h(this,o,!1,"f"),(l=this.validationMessageCallback)===null||l===void 0||l.call(this,""),h(this,g,i,"f");let u=this.shouldFormValueUpdate()?i:null;this.internals.setFormValue(u),c(this,e,"m",M).call(this,u),this.valueChangedCallback&&this.valueChangedCallback(u),c(this,e,"m",m).call(this)}shouldFormValueUpdate(){return!0}get validationComplete(){return new Promise(i=>i(c(this,C,"f")))}formResetCallback(){var i,l;h(this,a,!1,"f"),h(this,o,!1,"f"),c(this,e,"m",m).call(this),(i=this.resetFormControl)===null||i===void 0||i.call(this),(l=this.validationMessageCallback)===null||l===void 0||l.call(this,c(this,e,"m",m).call(this)?this.validationMessage:"")}}return r=new WeakMap,o=new WeakMap,a=new WeakMap,d=new WeakMap,s=new WeakMap,n=new WeakMap,g=new WeakMap,y=new WeakMap,_=new WeakMap,P=new WeakMap,v=new WeakMap,z=new WeakMap,C=new WeakMap,e=new WeakSet,p=function(){let i=this.getRootNode(),l=`${this.localName}[name="${this.getAttribute("name")}"]`;return i.querySelectorAll(l)},m=function(){if(this.hasAttribute("disabled"))return!1;let i=c(this,o,"f")||c(this,a,"f")&&!this.validity.valid&&!c(this,r,"f");return i&&this.internals.states?this.internals.states.add("--show-error"):this.internals.states&&this.internals.states.delete("--show-error"),i},M=function(i){let l=this.constructor,b={},u=l.validators,x=[],j=u.some(f=>f.isValid instanceof Promise);c(this,z,"f")||(h(this,C,new Promise(f=>{h(this,v,f,"f")}),"f"),h(this,z,!0,"f")),c(this,d,"f")&&(c(this,d,"f").abort(),h(this,s,c(this,d,"f"),"f"));let $=new AbortController;h(this,d,$,"f");let A,oe=!1;u.length&&(u.forEach(f=>{let Z=f.key||"customError",S=f.isValid(this,i,$.signal);S instanceof Promise?(x.push(S),S.then(G=>{G!=null&&(b[Z]=!G,A=c(this,e,"m",X).call(this,f,i),c(this,e,"m",T).call(this,b,A))})):(b[Z]=!S,this.validity[Z]!==!S&&(oe=!0),!S&&!A&&(A=c(this,e,"m",X).call(this,f,i)))}),Promise.allSettled(x).then(()=>{var f;$?.signal.aborted||(h(this,z,!1,"f"),(f=c(this,v,"f"))===null||f===void 0||f.call(this))}),(oe||!j)&&c(this,e,"m",T).call(this,b,A))},T=function(i,l){if(this.validationTarget)this.internals.setValidity(i,l,this.validationTarget),h(this,n,!1,"f");else{if(this.internals.setValidity(i,l),this.internals.validity.valid)return;h(this,n,!0,"f")}},X=function(i,l){if(this.validityCallback){let b=this.validityCallback(i.key||"customError");if(b)return b}return i.message instanceof Function?i.message(this,l):i.message},ge}var F=t=>typeof t=="string",fe=t=>typeof t=="function",ae=new Map,ne="en";function q(t){return[...Array.isArray(t)?t:[t],ne]}function K(t,e,r){let o=q(t);r||(r="default");let a;if(typeof r=="string")switch(a={day:"numeric",month:"short",year:"numeric"},r){case"full":a.weekday="long";case"long":a.month="long";break;case"short":a.month="numeric";break}else a=r;return N(()=>O("date",o,r),()=>new Intl.DateTimeFormat(o,a)).format(F(e)?new Date(e):e)}function we(t,e,r){let o;if(r||(r="default"),typeof r=="string")switch(o={second:"numeric",minute:"numeric",hour:"numeric"},r){case"full":case"long":o.timeZoneName="short";break;case"short":delete o.second}else o=r;return K(t,e,o)}function W(t,e,r){let o=q(t);return N(()=>O("number",o,r),()=>new Intl.NumberFormat(o,r)).format(e)}function ie(t,e,r,{offset:o=0,...a}){let d=q(t),s=e?N(()=>O("plural-ordinal",d),()=>new Intl.PluralRules(d,{type:"ordinal"})):N(()=>O("plural-cardinal",d),()=>new Intl.PluralRules(d,{type:"cardinal"}));return a[r]??a[s.select(r-o)]??a.other}function N(t,e){let r=t(),o=ae.get(r);return o||(o=e(),ae.set(r,o)),o}function O(t,e,r){let o=e.join("-");return`${t}-${o}-${JSON.stringify(r)}`}var se=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/,le=t=>t.replace(/\\u([a-fA-F0-9]{4})|\\x([a-fA-F0-9]{2})/g,(e,r,o)=>{if(r){let a=parseInt(r,16);return String.fromCharCode(a)}else{let a=parseInt(o,16);return String.fromCharCode(a)}}),ce="%__lingui_octothorpe__%",xe=(t,e,r={})=>{let o=e||t,a=s=>typeof s=="object"?s:r[s],d=(s,n)=>{let p=Object.keys(r).length?a("number"):void 0,g=W(o,s,p);return n.replace(new RegExp(ce,"g"),g)};return{plural:(s,n)=>{let{offset:p=0}=n,g=ie(o,!1,s,n);return d(s-p,g)},selectordinal:(s,n)=>{let{offset:p=0}=n,g=ie(o,!0,s,n);return d(s-p,g)},select:ke,number:(s,n)=>W(o,s,a(n)||{style:n}),date:(s,n)=>K(o,s,a(n)||n),time:(s,n)=>we(o,s,a(n)||n)}},ke=(t,e)=>e[t]??e.other;function ye(t,e,r){return(o={},a)=>{let d=xe(e,r,a),s=(p,g=!1)=>Array.isArray(p)?p.reduce((y,_)=>{if(_==="#"&&g)return y+ce;if(F(_))return y+_;let[P,v,z]=_,C={};v==="plural"||v==="selectordinal"||v==="select"?Object.entries(z).forEach(([M,T])=>{C[M]=s(T,v==="plural"||v==="selectordinal")}):C=z;let m;if(v){let M=d[v];m=M(o[P],C)}else m=o[P];return m==null?y:y+m},""):p,n=s(t);return F(n)&&se.test(n)?le(n):F(n)?n:n?String(n):""}}var _e=Object.defineProperty,ze=(t,e,r)=>e in t?_e(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ce=(t,e,r)=>(ze(t,typeof e!="symbol"?e+"":e,r),r),B=class{constructor(){Ce(this,"_events",{})}on(e,r){var o;return(o=this._events)[e]??(o[e]=[]),this._events[e].push(r),()=>this.removeListener(e,r)}removeListener(e,r){let o=this._getListeners(e);if(!o)return;let a=o.indexOf(r);~a&&o.splice(a,1)}emit(e,...r){let o=this._getListeners(e);o&&o.map(a=>a.apply(this,r))}_getListeners(e){let r=this._events[e];return Array.isArray(r)?r:!1}},Fe=Object.defineProperty,Ee=(t,e,r)=>e in t?Fe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,L=(t,e,r)=>(Ee(t,typeof e!="symbol"?e+"":e,r),r),H=class extends B{constructor(e){super(),L(this,"_locale",""),L(this,"_locales"),L(this,"_localeData",{}),L(this,"_messages",{}),L(this,"_missing"),L(this,"_messageCompiler"),L(this,"t",this._.bind(this)),e.missing!=null&&(this._missing=e.missing),e.messages!=null&&this.load(e.messages),e.localeData!=null&&this.loadLocaleData(e.localeData),(typeof e.locale=="string"||e.locales)&&this.activate(e.locale??ne,e.locales)}get locale(){return this._locale}get locales(){return this._locales}get messages(){return this._messages[this._locale]??{}}get localeData(){return this._localeData[this._locale]??{}}_loadLocaleData(e,r){let o=this._localeData[e];o?Object.assign(o,r):this._localeData[e]=r}setMessagesCompiler(e){return this._messageCompiler=e,this}loadLocaleData(e,r){typeof e=="string"?this._loadLocaleData(e,r):Object.keys(e).forEach(o=>this._loadLocaleData(o,e[o])),this.emit("change")}_load(e,r){let o=this._messages[e];o?Object.assign(o,r):this._messages[e]=r}load(e,r){typeof e=="string"&&typeof r=="object"?this._load(e,r):Object.entries(e).forEach(([o,a])=>this._load(o,a)),this.emit("change")}loadAndActivate({locale:e,locales:r,messages:o}){this._locale=e,this._locales=r||void 0,this._messages[this._locale]=o,this.emit("change")}activate(e,r){this._locale=e,this._locales=r,this.emit("change")}_(e,r,o){if(!this.locale)throw new Error("Lingui: Attempted to call a translation function without setting a locale.\nMake sure to call `i18n.activate(locale)` before using Lingui functions.\nThis issue may also occur due to a race condition in your initialization logic.");let a=o?.message;e||(e=""),F(e)||(r=e.values||r,a=e.message,e=e.id);let d=this.messages[e],s=d===void 0,n=this._missing;if(n&&s)return fe(n)?n(this._locale,e):n;s&&this.emit("missing",{id:e,locale:this._locale});let p=d||a||e;return F(p)&&(this._messageCompiler?p=this._messageCompiler(p):console.warn(`Uncompiled message detected! Message:
|
|
1
|
+
var me=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var w=(t,e,r,o)=>{for(var a=o>1?void 0:o?ve(e,r):e,d=t.length-1,s;d>=0;d--)(s=t[d])&&(a=(o?s(e,r,a):s(a))||a);return o&&a&&me(e,r,a),a};var U=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return t.reduce(function(r,o){return r.concat(typeof o=="string"?o:Array.isArray(o)?U.apply(void 0,o):typeof o=="object"&&o?Object.keys(o).map(function(a){return o[a]?a:""}):"")},[]).join(" ")};var c=function(t,e,r,o){if(r==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?o:r==="a"?o.call(t):o?o.value:e.get(t)},h=function(t,e,r,o,a){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?a.call(t,r):a?a.value=r:e.set(t,r),r};function te(t){var e,r,o,a,d,s,n,p,g,y,_,P,v,z,C,m,M,T,X;class ge extends t{constructor(...i){var l,b,u;super(...i),e.add(this),this.internals=this.attachInternals(),r.set(this,!1),o.set(this,!1),a.set(this,!1),d.set(this,void 0),s.set(this,void 0),n.set(this,!0),g.set(this,""),y.set(this,()=>{h(this,a,!0,"f"),h(this,r,!0,"f"),c(this,e,"m",m).call(this)}),_.set(this,()=>{h(this,r,!1,"f"),c(this,e,"m",M).call(this,this.shouldFormValueUpdate()?c(this,g,"f"):""),!this.validity.valid&&c(this,a,"f")&&h(this,o,!0,"f");let x=c(this,e,"m",m).call(this);this.validationMessageCallback&&this.validationMessageCallback(x?this.internals.validationMessage:"")}),P.set(this,()=>{var x;c(this,n,"f")&&this.validationTarget&&(this.internals.setValidity(this.validity,this.validationMessage,this.validationTarget),h(this,n,!1,"f")),h(this,a,!0,"f"),h(this,o,!0,"f"),c(this,e,"m",m).call(this),(x=this===null||this===void 0?void 0:this.validationMessageCallback)===null||x===void 0||x.call(this,this.showError?this.internals.validationMessage:"")}),v.set(this,void 0),z.set(this,!1),C.set(this,Promise.resolve()),(l=this.addEventListener)===null||l===void 0||l.call(this,"focus",c(this,y,"f")),(b=this.addEventListener)===null||b===void 0||b.call(this,"blur",c(this,_,"f")),(u=this.addEventListener)===null||u===void 0||u.call(this,"invalid",c(this,P,"f")),this.setValue(null)}static get formAssociated(){return!0}static get validators(){return this.formControlValidators||[]}static get observedAttributes(){let i=this.validators.map(u=>u.attribute).flat(),l=super.observedAttributes||[];return[...new Set([...l,...i])]}static getValidator(i){return this.validators.find(l=>l.attribute===i)||null}static getValidators(i){return this.validators.filter(l=>{var b;if(l.attribute===i||!((b=l.attribute)===null||b===void 0)&&b.includes(i))return!0})}get form(){return this.internals.form}get showError(){return c(this,e,"m",m).call(this)}checkValidity(){return this.internals.checkValidity()}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}attributeChangedCallback(i,l,b){var u;(u=super.attributeChangedCallback)===null||u===void 0||u.call(this,i,l,b);let $=this.constructor.getValidators(i);$?.length&&this.validationTarget&&this.setValue(c(this,g,"f"))}setValue(i){var l;h(this,o,!1,"f"),(l=this.validationMessageCallback)===null||l===void 0||l.call(this,""),h(this,g,i,"f");let u=this.shouldFormValueUpdate()?i:null;this.internals.setFormValue(u),c(this,e,"m",M).call(this,u),this.valueChangedCallback&&this.valueChangedCallback(u),c(this,e,"m",m).call(this)}shouldFormValueUpdate(){return!0}get validationComplete(){return new Promise(i=>i(c(this,C,"f")))}formResetCallback(){var i,l;h(this,a,!1,"f"),h(this,o,!1,"f"),c(this,e,"m",m).call(this),(i=this.resetFormControl)===null||i===void 0||i.call(this),(l=this.validationMessageCallback)===null||l===void 0||l.call(this,c(this,e,"m",m).call(this)?this.validationMessage:"")}}return r=new WeakMap,o=new WeakMap,a=new WeakMap,d=new WeakMap,s=new WeakMap,n=new WeakMap,g=new WeakMap,y=new WeakMap,_=new WeakMap,P=new WeakMap,v=new WeakMap,z=new WeakMap,C=new WeakMap,e=new WeakSet,p=function(){let i=this.getRootNode(),l=`${this.localName}[name="${this.getAttribute("name")}"]`;return i.querySelectorAll(l)},m=function(){if(this.hasAttribute("disabled"))return!1;let i=c(this,o,"f")||c(this,a,"f")&&!this.validity.valid&&!c(this,r,"f");return i&&this.internals.states?this.internals.states.add("--show-error"):this.internals.states&&this.internals.states.delete("--show-error"),i},M=function(i){let l=this.constructor,b={},u=l.validators,x=[],$=u.some(f=>f.isValid instanceof Promise);c(this,z,"f")||(h(this,C,new Promise(f=>{h(this,v,f,"f")}),"f"),h(this,z,!0,"f")),c(this,d,"f")&&(c(this,d,"f").abort(),h(this,s,c(this,d,"f"),"f"));let j=new AbortController;h(this,d,j,"f");let A,oe=!1;u.length&&(u.forEach(f=>{let Z=f.key||"customError",S=f.isValid(this,i,j.signal);S instanceof Promise?(x.push(S),S.then(G=>{G!=null&&(b[Z]=!G,A=c(this,e,"m",X).call(this,f,i),c(this,e,"m",T).call(this,b,A))})):(b[Z]=!S,this.validity[Z]!==!S&&(oe=!0),!S&&!A&&(A=c(this,e,"m",X).call(this,f,i)))}),Promise.allSettled(x).then(()=>{var f;j?.signal.aborted||(h(this,z,!1,"f"),(f=c(this,v,"f"))===null||f===void 0||f.call(this))}),(oe||!$)&&c(this,e,"m",T).call(this,b,A))},T=function(i,l){if(this.validationTarget)this.internals.setValidity(i,l,this.validationTarget),h(this,n,!1,"f");else{if(this.internals.setValidity(i,l),this.internals.validity.valid)return;h(this,n,!0,"f")}},X=function(i,l){if(this.validityCallback){let b=this.validityCallback(i.key||"customError");if(b)return b}return i.message instanceof Function?i.message(this,l):i.message},ge}var F=t=>typeof t=="string",fe=t=>typeof t=="function",ae=new Map,ne="en";function q(t){return[...Array.isArray(t)?t:[t],ne]}function K(t,e,r){let o=q(t);r||(r="default");let a;if(typeof r=="string")switch(a={day:"numeric",month:"short",year:"numeric"},r){case"full":a.weekday="long";case"long":a.month="long";break;case"short":a.month="numeric";break}else a=r;return N(()=>O("date",o,r),()=>new Intl.DateTimeFormat(o,a)).format(F(e)?new Date(e):e)}function we(t,e,r){let o;if(r||(r="default"),typeof r=="string")switch(o={second:"numeric",minute:"numeric",hour:"numeric"},r){case"full":case"long":o.timeZoneName="short";break;case"short":delete o.second}else o=r;return K(t,e,o)}function W(t,e,r){let o=q(t);return N(()=>O("number",o,r),()=>new Intl.NumberFormat(o,r)).format(e)}function ie(t,e,r,{offset:o=0,...a}){let d=q(t),s=e?N(()=>O("plural-ordinal",d),()=>new Intl.PluralRules(d,{type:"ordinal"})):N(()=>O("plural-cardinal",d),()=>new Intl.PluralRules(d,{type:"cardinal"}));return a[r]??a[s.select(r-o)]??a.other}function N(t,e){let r=t(),o=ae.get(r);return o||(o=e(),ae.set(r,o)),o}function O(t,e,r){let o=e.join("-");return`${t}-${o}-${JSON.stringify(r)}`}var se=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/,le=t=>t.replace(/\\u([a-fA-F0-9]{4})|\\x([a-fA-F0-9]{2})/g,(e,r,o)=>{if(r){let a=parseInt(r,16);return String.fromCharCode(a)}else{let a=parseInt(o,16);return String.fromCharCode(a)}}),ce="%__lingui_octothorpe__%",xe=(t,e,r={})=>{let o=e||t,a=s=>typeof s=="object"?s:r[s],d=(s,n)=>{let p=Object.keys(r).length?a("number"):void 0,g=W(o,s,p);return n.replace(new RegExp(ce,"g"),g)};return{plural:(s,n)=>{let{offset:p=0}=n,g=ie(o,!1,s,n);return d(s-p,g)},selectordinal:(s,n)=>{let{offset:p=0}=n,g=ie(o,!0,s,n);return d(s-p,g)},select:ke,number:(s,n)=>W(o,s,a(n)||{style:n}),date:(s,n)=>K(o,s,a(n)||n),time:(s,n)=>we(o,s,a(n)||n)}},ke=(t,e)=>e[t]??e.other;function ye(t,e,r){return(o={},a)=>{let d=xe(e,r,a),s=(p,g=!1)=>Array.isArray(p)?p.reduce((y,_)=>{if(_==="#"&&g)return y+ce;if(F(_))return y+_;let[P,v,z]=_,C={};v==="plural"||v==="selectordinal"||v==="select"?Object.entries(z).forEach(([M,T])=>{C[M]=s(T,v==="plural"||v==="selectordinal")}):C=z;let m;if(v){let M=d[v];m=M(o[P],C)}else m=o[P];return m==null?y:y+m},""):p,n=s(t);return F(n)&&se.test(n)?le(n):F(n)?n:n?String(n):""}}var _e=Object.defineProperty,ze=(t,e,r)=>e in t?_e(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ce=(t,e,r)=>(ze(t,typeof e!="symbol"?e+"":e,r),r),B=class{constructor(){Ce(this,"_events",{})}on(e,r){var o;return(o=this._events)[e]??(o[e]=[]),this._events[e].push(r),()=>this.removeListener(e,r)}removeListener(e,r){let o=this._getListeners(e);if(!o)return;let a=o.indexOf(r);~a&&o.splice(a,1)}emit(e,...r){let o=this._getListeners(e);o&&o.map(a=>a.apply(this,r))}_getListeners(e){let r=this._events[e];return Array.isArray(r)?r:!1}},Fe=Object.defineProperty,Ee=(t,e,r)=>e in t?Fe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,L=(t,e,r)=>(Ee(t,typeof e!="symbol"?e+"":e,r),r),H=class extends B{constructor(e){super(),L(this,"_locale",""),L(this,"_locales"),L(this,"_localeData",{}),L(this,"_messages",{}),L(this,"_missing"),L(this,"_messageCompiler"),L(this,"t",this._.bind(this)),e.missing!=null&&(this._missing=e.missing),e.messages!=null&&this.load(e.messages),e.localeData!=null&&this.loadLocaleData(e.localeData),(typeof e.locale=="string"||e.locales)&&this.activate(e.locale??ne,e.locales)}get locale(){return this._locale}get locales(){return this._locales}get messages(){return this._messages[this._locale]??{}}get localeData(){return this._localeData[this._locale]??{}}_loadLocaleData(e,r){let o=this._localeData[e];o?Object.assign(o,r):this._localeData[e]=r}setMessagesCompiler(e){return this._messageCompiler=e,this}loadLocaleData(e,r){typeof e=="string"?this._loadLocaleData(e,r):Object.keys(e).forEach(o=>this._loadLocaleData(o,e[o])),this.emit("change")}_load(e,r){let o=this._messages[e];o?Object.assign(o,r):this._messages[e]=r}load(e,r){typeof e=="string"&&typeof r=="object"?this._load(e,r):Object.entries(e).forEach(([o,a])=>this._load(o,a)),this.emit("change")}loadAndActivate({locale:e,locales:r,messages:o}){this._locale=e,this._locales=r||void 0,this._messages[this._locale]=o,this.emit("change")}activate(e,r){this._locale=e,this._locales=r,this.emit("change")}_(e,r,o){if(!this.locale)throw new Error("Lingui: Attempted to call a translation function without setting a locale.\nMake sure to call `i18n.activate(locale)` before using Lingui functions.\nThis issue may also occur due to a race condition in your initialization logic.");let a=o?.message;e||(e=""),F(e)||(r=e.values||r,a=e.message,e=e.id);let d=this.messages[e],s=d===void 0,n=this._missing;if(n&&s)return fe(n)?n(this._locale,e):n;s&&this.emit("missing",{id:e,locale:this._locale});let p=d||a||e;return F(p)&&(this._messageCompiler?p=this._messageCompiler(p):console.warn(`Uncompiled message detected! Message:
|
|
2
2
|
|
|
3
3
|
> ${p}
|
|
4
4
|
|
|
@@ -2445,7 +2445,7 @@ Please compile your catalog first.
|
|
|
2445
2445
|
display: none
|
|
2446
2446
|
}
|
|
2447
2447
|
}
|
|
2448
|
-
`);import{css as
|
|
2448
|
+
`);import{css as $e}from"lit";var be=$e`
|
|
2449
2449
|
/* Wrapper component tokens with semantic fallbacks */
|
|
2450
2450
|
:host {
|
|
2451
2451
|
/* Internal tokens - not part of public API */
|
|
@@ -2544,7 +2544,7 @@ Please compile your catalog first.
|
|
|
2544
2544
|
button[part="wrapper"]:not(:focus-visible) {
|
|
2545
2545
|
outline: none;
|
|
2546
2546
|
}
|
|
2547
|
-
`;import{unsafeCSS as
|
|
2547
|
+
`;import{unsafeCSS as je}from"lit";var he=je("*,:before,:after{--w-rotate:0;--w-rotate-x:0;--w-rotate-y:0;--w-rotate-z:0;--w-scale-x:1;--w-scale-y:1;--w-scale-z:1;--w-skew-x:0;--w-skew-y:0;--w-translate-x:0;--w-translate-y:0;--w-translate-z:0}.flex{display:flex}.static{position:static}");import{html as Ye,LitElement as De}from"lit";import{property as ee,state as Ne}from"lit/decorators.js";import{classMap as Oe}from"lit/directives/class-map.js";import{css as Ae}from"lit";var ue=Ae`
|
|
2548
2548
|
:host {
|
|
2549
2549
|
display: inline-block;
|
|
2550
2550
|
}
|