@orianatech/pire 0.13.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/core/Icon.d.ts.map +1 -1
- package/dist/components/core/Kbd.d.cts +17 -0
- package/dist/components/core/Kbd.d.ts +18 -0
- package/dist/components/core/Kbd.d.ts.map +1 -0
- package/dist/components/core/icon-data.generated.d.ts.map +1 -1
- package/dist/components/core/icon-map.d.cts +9 -0
- package/dist/components/core/icon-map.d.ts +9 -0
- package/dist/components/core/icon-map.d.ts.map +1 -1
- package/dist/components/forms/Input.d.cts +20 -2
- package/dist/components/forms/Input.d.ts +20 -2
- package/dist/components/forms/Input.d.ts.map +1 -1
- package/dist/components/forms/ValueHelpField.d.cts +12 -1
- package/dist/components/forms/ValueHelpField.d.ts +12 -1
- package/dist/components/forms/ValueHelpField.d.ts.map +1 -1
- package/dist/components/navigation/Menu.d.cts +7 -2
- package/dist/components/navigation/Menu.d.ts +7 -2
- package/dist/components/navigation/Menu.d.ts.map +1 -1
- package/dist/components/navigation/ShellBar.d.cts +13 -1
- package/dist/components/navigation/ShellBar.d.ts +13 -1
- package/dist/components/navigation/ShellBar.d.ts.map +1 -1
- package/dist/components/patterns/CommandPalette.d.cts +97 -0
- package/dist/components/patterns/CommandPalette.d.ts +98 -0
- package/dist/components/patterns/CommandPalette.d.ts.map +1 -0
- package/dist/components/patterns/ValueHelpDialog.d.cts +22 -1
- package/dist/components/patterns/ValueHelpDialog.d.ts +22 -1
- package/dist/components/patterns/ValueHelpDialog.d.ts.map +1 -1
- package/dist/components.css +94 -2
- package/dist/i18n/messages.d.cts +28 -0
- package/dist/i18n/messages.d.ts +28 -0
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/index.cjs +1071 -664
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +985 -563
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2,16 +2,30 @@
|
|
|
2
2
|
var ICON_MARKUP = {
|
|
3
3
|
"add": '<path d="M17 15 17 8 15 8 15 15 8 15 8 17 15 17 15 24 17 24 17 17 24 17 24 15z"/>',
|
|
4
4
|
"apps": '<path d="M8,4V8H4V4Zm2-2H2v8h8Zm8,2V8H14V4Zm2-2H12v8h8Zm8,2V8H24V4Zm2-2H22v8h8ZM8,14v4H4V14Zm2-2H2v8h8Zm8,2v4H14V14Zm2-2H12v8h8Zm8,2v4H24V14Zm2-2H22v8h8ZM8,24v4H4V24Zm2-2H2v8h8Zm8,2v4H14V24Zm2-2H12v8h8Zm8,2v4H24V24Zm2-2H22v8h8Z"/>',
|
|
5
|
+
"archive": '<path d="M14 19H18V21H14z"/><path d="M6,2V28a2,2,0,0,0,2,2H24a2,2,0,0,0,2-2V2ZM24,28H8V16H24Zm0-14H8V10H24ZM8,8V4H24V8Z"/>',
|
|
5
6
|
"arrow--down": '<path d="M24.59 16.59 17 24.17 17 4 15 4 15 24.17 7.41 16.59 6 18 16 28 26 18 24.59 16.59z"/>',
|
|
7
|
+
"arrow--left": '<path d="M14 26 15.41 24.59 7.83 17 28 17 28 15 7.83 15 15.41 7.41 14 6 4 16 14 26z"/>',
|
|
6
8
|
"arrow--right": '<path d="M18 6 16.57 7.393 24.15 15 4 15 4 17 24.15 17 16.57 24.573 18 26 28 16 18 6z"/>',
|
|
7
9
|
"arrow--up": '<path d="M16 4 6 14 7.41 15.41 15 7.83 15 28 17 28 17 7.83 24.59 15.41 26 14 16 4z"/>',
|
|
8
10
|
"arrows--vertical": '<path d="M27.6 20.6 24 24.2 24 4 22 4 22 24.2 18.4 20.6 17 22 23 28 29 22z"/><path d="M9 4 3 10 4.4 11.4 8 7.8 8 28 10 28 10 7.8 13.6 11.4 15 10z"/>',
|
|
11
|
+
"asterisk": '<path d="M28.316 13.949 27.684 12.051 17 15.612 17 4 15 4 15 15.612 4.316 12.051 3.684 13.949 14.368 17.51 7.2 27.066 8.8 28.267 16 18.667 23.2 28.267 24.8 27.066 17.632 17.51 28.316 13.949z"/>',
|
|
9
12
|
"attachment": '<path d="M28.1,18.9L13.1,3.9c-2.5-2.6-6.6-2.6-9.2-0.1S1.3,10.5,3.9,13c0,0,0.1,0.1,0.1,0.1L6.8,16l1.4-1.4l-2.9-2.9 C3.6,10,3.6,7.1,5.3,5.4s4.6-1.8,6.3-0.1c0,0,0,0,0.1,0.1l14.9,14.9c1.8,1.7,1.8,4.6,0.1,6.3c-1.7,1.8-4.6,1.8-6.3,0.1 c0,0,0,0-0.1-0.1l-7.4-7.4c-1-1-0.9-2.6,0-3.5c1-0.9,2.5-0.9,3.5,0l4.1,4.1l1.4-1.4c0,0-4.2-4.2-4.2-4.2c-1.8-1.7-4.6-1.6-6.3,0.2 c-1.6,1.7-1.6,4.4,0,6.2l7.5,7.5c2.5,2.6,6.6,2.6,9.2,0.1S30.7,21.5,28.1,18.9C28.1,19,28.1,18.9,28.1,18.9L28.1,18.9z"/>',
|
|
13
|
+
"bank--vault": '<path d="M26,30h-2v-2H8v2h-2v-2h-2c-1.103,0-2-.8975-2-2V4c0-1.103.897-2,2-2h24c1.1025,0,2,.897,2,2v22c0,1.1025-.8975,2-2,2h-2v2ZM4,4v22h24.002l-.002-22H4ZM17,22h-2v-2.1006c-.626-.127-1.2207-.374-1.7573-.7285l-2.5356,2.5361-1.4141-1.4141,2.5366-2.5371c-.3555-.5371-.6021-1.1318-.729-1.7559h-2.1006v-2h2.1001c.1274-.626.374-1.2207.7285-1.7573l-2.5356-2.5356,1.4141-1.4141,2.5366,2.5366c.5376-.3555,1.1318-.6021,1.7563-.729v-2.1006h2v2.1006c.626.127,1.2207.3735,1.7568.728l2.5361-2.5356,1.4141,1.4141-2.5361,2.5356c.3545.5366.6016,1.1313.7285,1.7573h2.1006v2h-2.1006c-.127.626-.374,1.2207-.7285,1.7568l2.5361,2.5361-1.4141,1.4141-2.5371-2.5371c-.5371.3555-1.1318.6025-1.7559.7295v2.1006ZM16,12c-.7954,0-1.5513.3135-2.1279.8818-.5586.5669-.8721,1.3228-.8721,2.1182,0,.7949.3135,1.5508.8823,2.1279,1.1318,1.1162,3.0908,1.127,4.2456-.0098.5586-.5674.8721-1.3232.8721-2.1182,0-.793-.3115-1.5464-.877-2.1226-.5771-.5659-1.3306-.8774-2.123-.8774Z"/>',
|
|
14
|
+
"barcode": '<path d="M2 6H4V28H2z"/><path d="M12 6H14V26H12z"/><path d="M6 6H10V26H6z"/><path d="M16 6H20V26H16z"/><path d="M22 6H26V26H22z"/><path d="M28 6H30V28H28z"/>',
|
|
15
|
+
"book": '<path d="M19 10H26V12H19z"/><path d="M19 15H26V17H19z"/><path d="M19 20H26V22H19z"/><path d="M6 10H13V12H6z"/><path d="M6 15H13V17H6z"/><path d="M6 20H13V22H6z"/><path d="M28,5H4A2.002,2.002,0,0,0,2,7V25a2.002,2.002,0,0,0,2,2H28a2.002,2.002,0,0,0,2-2V7A2.002,2.002,0,0,0,28,5ZM4,7H15V25H4ZM17,25V7H28V25Z"/>',
|
|
16
|
+
"bookmark": '<path d="M24,4V26.75l-7.1-3.59-.9-.45-.9.45L8,26.75V4H24m0-2H8A2,2,0,0,0,6,4V30L16,25,26,30V4A2,2,0,0,0,24,2Z"/>',
|
|
10
17
|
"box": '<path d="M20,21H12a2,2,0,0,1-2-2V17a2,2,0,0,1,2-2h8a2,2,0,0,1,2,2v2A2,2,0,0,1,20,21Zm-8-4v2h8V17Z"/><path d="M28,4H4A2,2,0,0,0,2,6v4a2,2,0,0,0,2,2V28a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2V12a2,2,0,0,0,2-2V6A2,2,0,0,0,28,4ZM26,28H6V12H26Zm2-18H4V6H28v4Z"/>',
|
|
11
18
|
"building": '<path d="M28,2H16a2.002,2.002,0,0,0-2,2V14H4a2.002,2.002,0,0,0-2,2V30H30V4A2.0023,2.0023,0,0,0,28,2ZM9,28V21h4v7Zm19,0H15V20a1,1,0,0,0-1-1H8a1,1,0,0,0-1,1v8H4V16H16V4H28Z"/><path d="M18 8H20V10H18z"/><path d="M24 8H26V10H24z"/><path d="M18 14H20V16H18z"/><path d="M24 14H26V16H24z"/><path d="M18 20H20V22H18z"/><path d="M24 20H26V22H24z"/>',
|
|
12
19
|
"building--insights-1": '<path d="M28,2H16a2.002,2.002,0,0,0-2,2V14H4a2.002,2.002,0,0,0-2,2V30H30V4A2.0023,2.0023,0,0,0,28,2ZM9,28V21h4v7Zm19,0H15V20a1,1,0,0,0-1-1H8a1,1,0,0,0-1,1v8H4V16H16V4H28Z"/><path d="M18 8H20V10H18z"/><path d="M24 8H26V10H24z"/><path d="M18 14H20V16H18z"/><path d="M24 14H26V16H24z"/><path d="M18 20H20V22H18z"/><path d="M24 20H26V22H24z"/><path d="M9,12H7a5.0059,5.0059,0,0,1,5-5V9A3.0033,3.0033,0,0,0,9,12Z"/><path d="M4,12H2A10.0114,10.0114,0,0,1,12,2V4A8.0092,8.0092,0,0,0,4,12Z"/>',
|
|
13
20
|
"calculator": '<path d="M26,4V28H6V4H26m0-2H6A2,2,0,0,0,4,4V28a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2V4A2,2,0,0,0,26,2Z"/><path d="M9 23H11V25H9z"/><path d="M21 23H23V25H21z"/><path d="M9 18H11V20H9z"/><path d="M21 18H23V20H21z"/><path d="M9 13H11V15H9z"/><path d="M15 23H17V25H15z"/><path d="M15 18H17V20H15z"/><path d="M15 13H17V15H15z"/><path d="M21 13H23V15H21z"/><path d="M9 7H23V10H9z"/>',
|
|
14
21
|
"calendar": '<path d="M26,4h-4V2h-2v2h-8V2h-2v2H6C4.9,4,4,4.9,4,6v20c0,1.1,0.9,2,2,2h20c1.1,0,2-0.9,2-2V6C28,4.9,27.1,4,26,4z M26,26H6V12h20 V26z M26,10H6V6h4v2h2V6h8v2h2V6h4V10z"/>',
|
|
22
|
+
"calendar--add": '<switch><foreignObject width="1" height="1" x="0" y="0" requiredExtensions="http://ns.adobe.com/AdobeIllustrator/10.0/"/><g><path d="M30 22 24 22 24 16 22 16 22 22 16 22 16 24 22 24 22 30 24 30 24 24 30 24z"/><path d="M28,6c0-1.1-0.9-2-2-2h-4V2h-2v2h-8V2h-2v2H6C4.9,4,4,4.9,4,6v20c0,1.1,0.9,2,2,2h8v-2H6V6h4v2h2V6h8v2h2V6h4v8h2V6z"/></g></switch>',
|
|
23
|
+
"calendar--heat-map": '<path d="M26,4H22V2H20V4H12V2H10V4H6A2.0025,2.0025,0,0,0,4,6V26a2.0025,2.0025,0,0,0,2,2H26a2.0025,2.0025,0,0,0,2-2V6A2.0025,2.0025,0,0,0,26,4ZM6,6h4V8h2V6h8V8h2V6h4l0,4H6Zm0,6h5v6H6ZM19,26H13V20h6Zm0-8H13V12h6Zm2,8V20h5l.0012,6Z"/>',
|
|
24
|
+
"chart--area": '<path d="M20.4761,8.0151,13.4473,4.2109a2.0076,2.0076,0,0,0-2.1158.2051L4,10.001V2H2V28a2,2,0,0,0,2,2H30V5.7354ZM28,20.209l-7.62,1.8022-7.0288-2.8838a1.99,1.99,0,0,0-2.022.37L4,25.8359v-4.455l8.375-9.4,7.0186,5.62a2.0155,2.0155,0,0,0,2.0459.2119L28,14.6025ZM12.5239,5.9849l7.03,3.8042a2.012,2.012,0,0,0,1.3408.16L28,8.2646v4.1138L20.6187,16.02,13.6,10.4a1.99,1.99,0,0,0-2.6885.2642L4,18.3838v-5.87ZM4.5513,28,12.62,20.9888l7.0288,2.8838a1.9977,1.9977,0,0,0,1.147.0771L28,22.2612V28Z"/>',
|
|
25
|
+
"chart--bar": '<path d="M4,2H2V28a2,2,0,0,0,2,2H30V28H4V25H26V17H4V13H18V5H4ZM24,19v4H4V19ZM16,7v4H4V7Z"/>',
|
|
26
|
+
"chart--column": '<path d="M27,28V6H19V28H15V14H7V28H4V2H2V28a2,2,0,0,0,2,2H30V28ZM13,28H9V16h4Zm12,0H21V8h4Z"/>',
|
|
27
|
+
"chart--line": '<path d="M4.67,28l6.39-12,7.3,6.49a2,2,0,0,0,1.7.47,2,2,0,0,0,1.42-1.07L27,10.9,25.18,10,19.69,21l-7.3-6.49A2,2,0,0,0,10.71,14a2,2,0,0,0-1.42,1L4,25V2H2V28a2,2,0,0,0,2,2H30V28Z"/>',
|
|
28
|
+
"chart--pie": '<path d="M16,4A12,12,0,1,0,28,16,12,12,0,0,0,16,4ZM26,15H17V6.05A10,10,0,0,1,26,15ZM15.42,26A10,10,0,0,1,15,6.05v9a2,2,0,0,0,2,2h9A10,10,0,0,1,15.42,26Z"/>',
|
|
15
29
|
"checkmark": '<path d="M13 24 4 15 5.414 13.586 13 21.171 26.586 7.586 28 9 13 24z"/>',
|
|
16
30
|
"checkmark--filled": '<path d="M16,2A14,14,0,1,0,30,16,14,14,0,0,0,16,2ZM14,21.5908l-5-5L10.5906,15,14,18.4092,21.41,11l1.5957,1.5859Z"/><path fill="none" d="M14 21.591 9 16.591 10.591 15 14 18.409 21.41 11 23.005 12.585 14 21.591z" data-icon-path="inner-path"/>',
|
|
17
31
|
"checkmark--outline": '<path d="M14 21.414 9 16.413 10.413 15 14 18.586 21.585 11 23 12.415 14 21.414z"/><path d="M16,2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Zm0,26A12,12,0,1,1,28,16,12,12,0,0,1,16,28Z"/>',
|
|
@@ -19,48 +33,109 @@ var ICON_MARKUP = {
|
|
|
19
33
|
"chevron--left": '<path d="M10 16 20 6 21.4 7.4 12.8 16 21.4 24.6 20 26z"/>',
|
|
20
34
|
"chevron--right": '<path d="M22 16 12 26 10.6 24.6 19.2 16 10.6 7.4 12 6z"/>',
|
|
21
35
|
"chevron--sort": '<path d="M16 28 9 21 10.41 19.59 16 25.17 21.59 19.59 23 21 16 28z"/><path d="M16 4 23 11 21.59 12.41 16 6.83 10.41 12.41 9 11 16 4z"/>',
|
|
36
|
+
"chevron--up": '<path d="M16 10 26 20 24.6 21.4 16 12.8 7.4 21.4 6 20z"/>',
|
|
22
37
|
"circle-dash": '<path d="M7.7,4.7a14.7,14.7,0,0,0-3,3.1L6.3,9A13.26,13.26,0,0,1,8.9,6.3Z"/><path d="M4.6,12.3l-1.9-.6A12.51,12.51,0,0,0,2,16H4A11.48,11.48,0,0,1,4.6,12.3Z"/><path d="M2.7,20.4a14.4,14.4,0,0,0,2,3.9l1.6-1.2a12.89,12.89,0,0,1-1.7-3.3Z"/><path d="M7.8,27.3a14.4,14.4,0,0,0,3.9,2l.6-1.9A12.89,12.89,0,0,1,9,25.7Z"/><path d="M11.7,2.7l.6,1.9A11.48,11.48,0,0,1,16,4V2A12.51,12.51,0,0,0,11.7,2.7Z"/><path d="M24.2,27.3a15.18,15.18,0,0,0,3.1-3.1L25.7,23A11.53,11.53,0,0,1,23,25.7Z"/><path d="M27.4,19.7l1.9.6A15.47,15.47,0,0,0,30,16H28A11.48,11.48,0,0,1,27.4,19.7Z"/><path d="M29.2,11.6a14.4,14.4,0,0,0-2-3.9L25.6,8.9a12.89,12.89,0,0,1,1.7,3.3Z"/><path d="M24.1,4.6a14.4,14.4,0,0,0-3.9-2l-.6,1.9a12.89,12.89,0,0,1,3.3,1.7Z"/><path d="M20.3,29.3l-.6-1.9A11.48,11.48,0,0,1,16,28v2A21.42,21.42,0,0,0,20.3,29.3Z"/>',
|
|
23
38
|
"close": '<path d="M17.4141 16 24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16z"/>',
|
|
39
|
+
"cloud--download": '<path d="M23.5,22H23V20h.5a4.5,4.5,0,0,0,.36-9L23,11l-.1-.82a7,7,0,0,0-13.88,0L9,11,8.14,11a4.5,4.5,0,0,0,.36,9H9v2H8.5A6.5,6.5,0,0,1,7.2,9.14a9,9,0,0,1,17.6,0A6.5,6.5,0,0,1,23.5,22Z"/><path d="M17 26.17 17 14 15 14 15 26.17 12.41 23.59 11 25 16 30 21 25 19.59 23.59 17 26.17z"/>',
|
|
40
|
+
"cloud--upload": '<path d="M11 18 12.41 19.41 15 16.83 15 29 17 29 17 16.83 19.59 19.41 21 18 16 13 11 18z"/><path d="M23.5,22H23V20h.5a4.5,4.5,0,0,0,.36-9L23,11l-.1-.82a7,7,0,0,0-13.88,0L9,11,8.14,11a4.5,4.5,0,0,0,.36,9H9v2H8.5A6.5,6.5,0,0,1,7.2,9.14a9,9,0,0,1,17.6,0A6.5,6.5,0,0,1,23.5,22Z"/>',
|
|
24
41
|
"color-palette": '<circle cx="10" cy="12" r="2"/><circle cx="16" cy="9" r="2"/><circle cx="22" cy="12" r="2"/><circle cx="23" cy="18" r="2"/><circle cx="19" cy="23" r="2"/><path d="M16.54,2A14,14,0,0,0,2,16a4.82,4.82,0,0,0,6.09,4.65l1.12-.31A3,3,0,0,1,13,23.24V27a3,3,0,0,0,3,3A14,14,0,0,0,30,15.46,14.05,14.05,0,0,0,16.54,2Zm8.11,22.31A11.93,11.93,0,0,1,16,28a1,1,0,0,1-1-1V23.24a5,5,0,0,0-5-5,5.07,5.07,0,0,0-1.33.18l-1.12.31A2.82,2.82,0,0,1,4,16,12,12,0,0,1,16.47,4,12.18,12.18,0,0,1,28,15.53,11.89,11.89,0,0,1,24.65,24.32Z"/>',
|
|
25
42
|
"copy": '<path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z"/><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z"/>',
|
|
43
|
+
"currency": '<path d="M21,12V10H17V7H15v3H13a2.002,2.002,0,0,0-2,2v3a2.002,2.002,0,0,0,2,2h6v3H11v2h4v3h2V22h2a2.0023,2.0023,0,0,0,2-2V17a2.002,2.002,0,0,0-2-2H13V12Z"/><path d="M16,4A12,12,0,1,1,4,16,12.0353,12.0353,0,0,1,16,4m0-2A14,14,0,1,0,30,16,14.0412,14.0412,0,0,0,16,2Z"/>',
|
|
44
|
+
"currency--dollar": '<path d="M23,20.5151c0-4.6152-3.78-5.1411-6.8171-5.563-3.31-.4609-5.1829-.86-5.1829-3.71C11,8.8491,13.5071,8,15.6538,8a6.7538,6.7538,0,0,1,5.5681,2.6279l1.5562-1.2558A8.6508,8.6508,0,0,0,17,6.0962V3H15V6.022c-3.6152.2192-6,2.26-6,5.22,0,4.73,3.83,5.2627,6.9075,5.69C19.16,17.3848,21,17.7744,21,20.5151,21,23.5474,17.8674,24,16,24c-3.4294,0-4.8782-.9639-6.2219-2.6279L8.2219,22.6279A8.4382,8.4382,0,0,0,15,25.9648V29h2V25.9551C20.7256,25.6509,23,23.6279,23,20.5151Z"/>',
|
|
45
|
+
"currency--euro": '<path d="M17,26c-3.6162,0-6.3328-2.2974-7.4456-6H19V18H9.1321A15.2782,15.2782,0,0,1,9,16c0-.33.01-.6641.0259-1H19V13H9.2371C9.8447,9.3525,11.81,6,17,6c3.8533,0,5.5315,1.6465,7.1282,4.4893l1.7436-.9786C24.2649,6.6484,22.0779,4,17,4,10.6448,4,7,8.374,7,16c0,7.0654,4.1121,12,10,12,5.0779,0,7.2649-2.6484,8.8718-5.5107l-1.7436-.9786C22.5315,24.3535,20.8533,26,17,26Z"/>',
|
|
46
|
+
"data--base": '<path d="M24,3H8A2,2,0,0,0,6,5V27a2,2,0,0,0,2,2H24a2,2,0,0,0,2-2V5A2,2,0,0,0,24,3Zm0,2v6H8V5ZM8,19V13H24v6Zm0,8V21H24v6Z"/><circle cx="11" cy="8" r="1"/><circle cx="11" cy="16" r="1"/><circle cx="11" cy="24" r="1"/>',
|
|
47
|
+
"debug": '<path d="M29.83,20l.34-2L25,17.15V13c0-.08,0-.15,0-.23l5.06-1.36-.51-1.93-4.83,1.29A9,9,0,0,0,20,5V2H18V4.23a8.81,8.81,0,0,0-4,0V2H12V5a9,9,0,0,0-4.71,5.82L2.46,9.48,2,11.41,7,12.77c0,.08,0,.15,0,.23v4.15L1.84,18l.32,2L7,19.18a8.9,8.9,0,0,0,.82,3.57L3.29,27.29l1.42,1.42,4.19-4.2a9,9,0,0,0,14.2,0l4.19,4.2,1.42-1.42-4.54-4.54A8.9,8.9,0,0,0,25,19.18ZM15,25.92A7,7,0,0,1,9,19V13h6ZM9.29,11a7,7,0,0,1,13.42,0ZM23,19a7,7,0,0,1-6,6.92V13h6Z"/>',
|
|
48
|
+
"delivery--parcel": '<path d="M29.4819,8.624l-10-5.5a1,1,0,0,0-.9638,0l-10,5.5a1,1,0,0,0,0,1.752L18,15.5913V26.3086l-3.0362-1.6693L14,26.3912l4.5181,2.4848a.9984.9984,0,0,0,.9638,0l10-5.5A1,1,0,0,0,30,22.5V9.5A1,1,0,0,0,29.4819,8.624ZM19,5.1416,26.9248,9.5,19,13.8584,11.0752,9.5Zm9,16.7671-8,4.4V15.5913l8-4.4Z"/><path d="M2 14H10V16H2z" transform="matrix(-1 0 0 -1 12 30)"/><path d="M4 22H12V24H4z" transform="matrix(-1 0 0 -1 16 46)"/><path d="M6 18H14V20H6z" transform="matrix(-1 0 0 -1 20 38)"/>',
|
|
26
49
|
"delivery-truck": '<path d="M29.92,16.61l-3-7A1,1,0,0,0,26,9H23V7a1,1,0,0,0-1-1H3A1,1,0,0,0,2,7V24a1,1,0,0,0,1,1H5.14a4,4,0,0,0,7.72,0h6.28a4,4,0,0,0,7.72,0H29a1,1,0,0,0,1-1V17A1,1,0,0,0,29.92,16.61ZM23,11h2.34l2.14,5H23ZM9,26a2,2,0,1,1,2-2A2,2,0,0,1,9,26Zm10.14-3H12.86a4,4,0,0,0-7.72,0H4V8H21V20.56A4,4,0,0,0,19.14,23ZM23,26a2,2,0,1,1,2-2A2,2,0,0,1,23,26Zm5-3H26.86A4,4,0,0,0,23,20V18h5Z"/>',
|
|
27
50
|
"document": '<path d="M25.7,9.3l-7-7C18.5,2.1,18.3,2,18,2H8C6.9,2,6,2.9,6,4v24c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V10C26,9.7,25.9,9.5,25.7,9.3 z M18,4.4l5.6,5.6H18V4.4z M24,28H8V4h8v6c0,1.1,0.9,2,2,2h6V28z"/><path d="M10 22H22V24H10z"/><path d="M10 16H22V18H10z"/>',
|
|
51
|
+
"document--add": '<path d="M30 24 26 24 26 20 24 20 24 24 20 24 20 26 24 26 24 30 26 30 26 26 30 26 30 24z"/><path d="M16,28H8V4h8v6a2.0058,2.0058,0,0,0,2,2h6v4h2V10a.9092.9092,0,0,0-.3-.7l-7-7A.9087.9087,0,0,0,18,2H8A2.0058,2.0058,0,0,0,6,4V28a2.0058,2.0058,0,0,0,2,2h8ZM18,4.4,23.6,10H18Z"/>',
|
|
28
52
|
"download": '<path d="M26,24v4H6V24H4v4H4a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2h0V24Z"/><path d="M26 14 24.59 12.59 17 20.17 17 2 15 2 15 20.17 7.41 12.59 6 14 16 24 26 14z"/>',
|
|
29
53
|
"edit": '<path d="M2 26H30V28H2z"/><path d="M25.4,9c0.8-0.8,0.8-2,0-2.8c0,0,0,0,0,0l-3.6-3.6c-0.8-0.8-2-0.8-2.8,0c0,0,0,0,0,0l-15,15V24h6.4L25.4,9z M20.4,4L24,7.6 l-3,3L17.4,7L20.4,4z M6,22v-3.6l10-10l3.6,3.6l-10,10H6z"/>',
|
|
54
|
+
"email": '<path d="M28,6H4A2,2,0,0,0,2,8V24a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V8A2,2,0,0,0,28,6ZM25.8,8,16,14.78,6.2,8ZM4,24V8.91l11.43,7.91a1,1,0,0,0,1.14,0L28,8.91V24Z"/>',
|
|
30
55
|
"error--filled": '<path fill="none" d="M14.9 7.2H17.1V24.799H14.9z" data-icon-path="inner-path" transform="rotate(-45 16 16)"/><path d="M16,2A13.914,13.914,0,0,0,2,16,13.914,13.914,0,0,0,16,30,13.914,13.914,0,0,0,30,16,13.914,13.914,0,0,0,16,2Zm5.4449,21L9,10.5557,10.5557,9,23,21.4448Z"/>',
|
|
56
|
+
"events": '<path d="M26,14H24v2h2a3.0033,3.0033,0,0,1,3,3v4h2V19A5.0058,5.0058,0,0,0,26,14Z"/><path d="M24,4a3,3,0,1,1-3,3,3,3,0,0,1,3-3m0-2a5,5,0,1,0,5,5A5,5,0,0,0,24,2Z"/><path d="M23,30H21V28a3.0033,3.0033,0,0,0-3-3H14a3.0033,3.0033,0,0,0-3,3v2H9V28a5.0059,5.0059,0,0,1,5-5h4a5.0059,5.0059,0,0,1,5,5Z"/><path d="M16,13a3,3,0,1,1-3,3,3,3,0,0,1,3-3m0-2a5,5,0,1,0,5,5A5,5,0,0,0,16,11Z"/><path d="M8,14H6a5.0059,5.0059,0,0,0-5,5v4H3V19a3.0033,3.0033,0,0,1,3-3H8Z"/><path d="M8,4A3,3,0,1,1,5,7,3,3,0,0,1,8,4M8,2a5,5,0,1,0,5,5A5,5,0,0,0,8,2Z"/>',
|
|
31
57
|
"filter": '<path d="M18,28H14a2,2,0,0,1-2-2V18.41L4.59,11A2,2,0,0,1,4,9.59V6A2,2,0,0,1,6,4H26a2,2,0,0,1,2,2V9.59A2,2,0,0,1,27.41,11L20,18.41V26A2,2,0,0,1,18,28ZM6,6V9.59l8,8V26h4V17.59l8-8V6Z"/>',
|
|
58
|
+
"filter--edit": '<path d="M26,6H4V9.17l7.41,7.42.59.58V26h4V24h2v2a2,2,0,0,1-2,2H12a2,2,0,0,1-2-2V18L2.59,10.59A2,2,0,0,1,2,9.17V6A2,2,0,0,1,4,4H26Z"/><path d="M29.71,11.29l-3-3a1,1,0,0,0-1.42,0L16,17.59V22h4.41l9.3-9.29A1,1,0,0,0,29.71,11.29ZM19.59,20H18V18.41l5-5L24.59,15ZM26,13.59,24.41,12,26,10.41,27.59,12Z"/>',
|
|
32
59
|
"flash": '<path d="M11.61,29.92a1,1,0,0,1-.6-1.07L12.83,17H8a1,1,0,0,1-1-1.23l3-13A1,1,0,0,1,11,2H21a1,1,0,0,1,.78.37,1,1,0,0,1,.2.85L20.25,11H25a1,1,0,0,1,.9.56,1,1,0,0,1-.11,1l-13,17A1,1,0,0,1,12,30,1.09,1.09,0,0,1,11.61,29.92ZM17.75,13l2-9H11.8L9.26,15h5.91L13.58,25.28,23,13Z"/>',
|
|
60
|
+
"flow": '<path d="M27,22.14V17a2,2,0,0,0-2-2H17V9.86a4,4,0,1,0-2,0V15H7a2,2,0,0,0-2,2v5.14a4,4,0,1,0,2,0V17H25v5.14a4,4,0,1,0,2,0ZM8,26a2,2,0,1,1-2-2A2,2,0,0,1,8,26ZM14,6a2,2,0,1,1,2,2A2,2,0,0,1,14,6ZM26,28a2,2,0,1,1,2-2A2,2,0,0,1,26,28Z"/>',
|
|
61
|
+
"folder": '<path d="M11.17,6l3.42,3.41.58.59H28V26H4V6h7.17m0-2H4A2,2,0,0,0,2,6V26a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2H16L12.59,4.59A2,2,0,0,0,11.17,4Z"/>',
|
|
62
|
+
"function": '<path d="M19.6262,29.5256,19.11,27.5935A12.0035,12.0035,0,0,0,25.2312,8.3323l1.5376-1.2788a14.0033,14.0033,0,0,1-7.1426,22.4721Z"/><path d="M10,29H8V25.18l.8037-.1607C10.2617,24.728,12,23.6206,12,20V18.6182l-4-2V14.3818l4-2V12c0-5.4673,3.9253-9,10-9h2V6.82l-.8037.1607C21.7383,7.272,20,8.3794,20,12v.3818l4,2v2.2364l-4,2V20C20,25.4673,16.0747,29,10,29Zm0-2c4.9346,0,8-2.6821,8-7V17.3818L21.7642,15.5,18,13.6182V12c0-4.5781,2.3853-6.1924,4-6.76V5c-4.9346,0-8,2.6821-8,7v1.6182L10.2358,15.5,14,17.3818V20c0,4.5781-2.3853,6.1924-4,6.76Z"/><path d="M5.2312,24.9465A14.0032,14.0032,0,0,1,12.3779,2.4734l.5161,1.9321A12.0035,12.0035,0,0,0,6.7688,23.6677Z"/>',
|
|
63
|
+
"globe": '<path d="M14,4a7,7,0,1,1-7,7,7,7,0,0,1,7-7m0-2a9,9,0,1,0,9,9A9,9,0,0,0,14,2Z"/><path d="M28,11a13.9563,13.9563,0,0,0-4.1051-9.8949L22.4813,2.5187A11.9944,11.9944,0,0,1,5.5568,19.5194l-.0381-.0381L4.1051,20.8949A13.9563,13.9563,0,0,0,14,25v3H10v2H20V28H16V24.84A14.0094,14.0094,0,0,0,28,11Z"/>',
|
|
33
64
|
"grid": '<path d="M12,4H6A2,2,0,0,0,4,6v6a2,2,0,0,0,2,2h6a2,2,0,0,0,2-2V6A2,2,0,0,0,12,4Zm0,8H6V6h6Z"/><path d="M26,4H20a2,2,0,0,0-2,2v6a2,2,0,0,0,2,2h6a2,2,0,0,0,2-2V6A2,2,0,0,0,26,4Zm0,8H20V6h6Z"/><path d="M12,18H6a2,2,0,0,0-2,2v6a2,2,0,0,0,2,2h6a2,2,0,0,0,2-2V20A2,2,0,0,0,12,18Zm0,8H6V20h6Z"/><path d="M26,18H20a2,2,0,0,0-2,2v6a2,2,0,0,0,2,2h6a2,2,0,0,0,2-2V20A2,2,0,0,0,26,18Zm0,8H20V20h6Z"/>',
|
|
34
65
|
"hashtag": '<path d="M28,12V10H22V4H20v6H12V4H10v6H4v2h6v8H4v2h6v6h2V22h8v6h2V22h6V20H22V12Zm-8,8H12V12h8Z"/>',
|
|
35
66
|
"help": '<path d="M16,2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Zm0,26A12,12,0,1,1,28,16,12,12,0,0,1,16,28Z"/><circle cx="16" cy="23.5" r="1.5"/><path d="M17,8H15.5A4.49,4.49,0,0,0,11,12.5V13h2v-.5A2.5,2.5,0,0,1,15.5,10H17a2.5,2.5,0,0,1,0,5H15v4.5h2V17a4.5,4.5,0,0,0,0-9Z"/>',
|
|
36
67
|
"home": '<path d="M16.6123,2.2138a1.01,1.01,0,0,0-1.2427,0L1,13.4194l1.2427,1.5717L4,13.6209V26a2.0041,2.0041,0,0,0,2,2H26a2.0037,2.0037,0,0,0,2-2V13.63L29.7573,15,31,13.4282ZM18,26H14V18h4Zm2,0V18a2.0023,2.0023,0,0,0-2-2H14a2.002,2.002,0,0,0-2,2v8H6V12.0615l10-7.79,10,7.8005V26Z"/>',
|
|
68
|
+
"idea": '<path d="M11 24H21V26H11z"/><path d="M13 28H19V30H13z"/><path d="M16,2A10,10,0,0,0,6,12a9.19,9.19,0,0,0,3.46,7.62c1,.93,1.54,1.46,1.54,2.38h2c0-1.84-1.11-2.87-2.19-3.86A7.2,7.2,0,0,1,8,12a8,8,0,0,1,16,0,7.2,7.2,0,0,1-2.82,6.14c-1.07,1-2.18,2-2.18,3.86h2c0-.92.53-1.45,1.54-2.39A9.18,9.18,0,0,0,26,12,10,10,0,0,0,16,2Z"/>',
|
|
69
|
+
"identification": '<path d="M28,6V26H4V6H28m0-2H4A2,2,0,0,0,2,6V26a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V6a2,2,0,0,0-2-2Z"/><path d="M6 10H13V12H6z"/><path d="M6 14H10V16H6z"/><path d="M23,18H17a3,3,0,0,0-3,3v2h2V21a1,1,0,0,1,1-1h6a1,1,0,0,1,1,1v2h2V21A3,3,0,0,0,23,18Z"/><path d="M20,17a4,4,0,1,0-4-4A4,4,0,0,0,20,17Zm0-6a2,2,0,1,1-2,2A2,2,0,0,1,20,11Z"/>',
|
|
37
70
|
"information": '<path d="M17 22 17 14 13 14 13 16 15 16 15 22 12 22 12 24 20 24 20 22 17 22z"/><path d="M16,8a1.5,1.5,0,1,0,1.5,1.5A1.5,1.5,0,0,0,16,8Z"/><path d="M16,30A14,14,0,1,1,30,16,14,14,0,0,1,16,30ZM16,4A12,12,0,1,0,28,16,12,12,0,0,0,16,4Z"/>',
|
|
71
|
+
"information--square": '<path d="M17 22 17 14 13 14 13 16 15 16 15 22 12 22 12 24 20 24 20 22 17 22z"/><path d="M16,8a1.5,1.5,0,1,0,1.5,1.5A1.5,1.5,0,0,0,16,8Z"/><path d="M26,28H6a2.0023,2.0023,0,0,1-2-2V6A2.0023,2.0023,0,0,1,6,4H26a2.0023,2.0023,0,0,1,2,2V26A2.0023,2.0023,0,0,1,26,28ZM6,6V26H26V6Z"/>',
|
|
72
|
+
"inventory-management": '<path d="M19 24H23V28H19z"/><path d="M26 24H30V28H26z"/><path d="M19 17H23V21H19z"/><path d="M26 17H30V21H26z"/><path d="M17,24H4V10H28v5h2V10a2.0023,2.0023,0,0,0-2-2H22V4a2.0023,2.0023,0,0,0-2-2H12a2.002,2.002,0,0,0-2,2V8H4a2.002,2.002,0,0,0-2,2V24a2.0023,2.0023,0,0,0,2,2H17ZM12,4h8V8H12Z"/>',
|
|
38
73
|
"launch": '<path d="M26,28H6a2.0027,2.0027,0,0,1-2-2V6A2.0027,2.0027,0,0,1,6,4H16V6H6V26H26V16h2V26A2.0027,2.0027,0,0,1,26,28Z"/><path d="M20 2 20 4 26.586 4 18 12.586 19.414 14 28 5.414 28 12 30 12 30 2 20 2z"/>',
|
|
39
74
|
"layers": '<path d="M16,24a.9967.9967,0,0,1-.4741-.12l-13-7L3.4741,15.12,16,21.8643,28.5259,15.12l.9482,1.7607-13,7A.9967.9967,0,0,1,16,24Z"/><path d="M16,30a.9967.9967,0,0,1-.4741-.12l-13-7L3.4741,21.12,16,27.8643,28.5259,21.12l.9482,1.7607-13,7A.9967.9967,0,0,1,16,30Z"/><path d="M16,18a.9967.9967,0,0,1-.4741-.12l-13-7a1,1,0,0,1,0-1.7607l13-7a.9982.9982,0,0,1,.9482,0l13,7a1,1,0,0,1,0,1.7607l-13,7A.9967.9967,0,0,1,16,18ZM5.1094,10,16,15.8643,26.8906,10,16,4.1358Z"/>',
|
|
75
|
+
"license": '<path d="M10 6H22V8H10z"/><path d="M10 10H22V12H10z"/><path d="M10 24H16V26H10z"/><path d="M10 14H16V16H10z"/><path d="M24,30H8a2.0023,2.0023,0,0,1-2-2V4A2.0023,2.0023,0,0,1,8,2H24a2.0023,2.0023,0,0,1,2,2V28A2.0023,2.0023,0,0,1,24,30ZM8,4V28H24V4Z"/>',
|
|
40
76
|
"list": '<path d="M10 6H28V8H10z"/><path d="M10 24H28V26H10z"/><path d="M10 15H28V17H10z"/><path d="M4 15H6V17H4z"/><path d="M4 6H6V8H4z"/><path d="M4 24H6V26H4z"/>',
|
|
41
77
|
"list--boxes": '<path d="M16 8H30V10H16z"/><path d="M16 22H30V24H16z"/><path d="M10,14H4a2.0023,2.0023,0,0,1-2-2V6A2.0023,2.0023,0,0,1,4,4h6a2.0023,2.0023,0,0,1,2,2v6A2.0023,2.0023,0,0,1,10,14ZM4,6v6h6.0012L10,6Z"/><path d="M10,28H4a2.0023,2.0023,0,0,1-2-2V20a2.0023,2.0023,0,0,1,2-2h6a2.0023,2.0023,0,0,1,2,2v6A2.0023,2.0023,0,0,1,10,28ZM4,20v6h6.0012L10,20Z"/>',
|
|
42
78
|
"list--checked": '<path d="M16 22H30V24H16z"/><path d="M14 19.4 12.6 18 6 24.6 3.4 22 2 23.4 6 27.4z"/><path d="M16 8H30V10H16z"/><path d="M14 5.4 12.6 4 6 10.6 3.4 8 2 9.4 6 13.4z"/>',
|
|
43
79
|
"location": '<path d="M16,18a5,5,0,1,1,5-5A5.0057,5.0057,0,0,1,16,18Zm0-8a3,3,0,1,0,3,3A3.0033,3.0033,0,0,0,16,10Z"/><path d="M16,30,7.5645,20.0513c-.0479-.0571-.3482-.4515-.3482-.4515A10.8888,10.8888,0,0,1,5,13a11,11,0,0,1,22,0,10.8844,10.8844,0,0,1-2.2148,6.5973l-.0015.0025s-.3.3944-.3447.4474ZM8.8125,18.395c.001.0007.2334.3082.2866.3744L16,26.9079l6.91-8.15c.0439-.0552.2783-.3649.2788-.3657A8.901,8.901,0,0,0,25,13,9,9,0,1,0,7,13a8.9054,8.9054,0,0,0,1.8125,5.395Z"/>',
|
|
80
|
+
"location--company": '<path d="M16,30,7.5645,20.0513c-.0479-.0571-.3482-.4515-.3482-.4515A10.8888,10.8888,0,0,1,5,13a11,11,0,0,1,22,0,10.8844,10.8844,0,0,1-2.2148,6.5973l-.0015.0025s-.3.3944-.3447.4474ZM8.8125,18.395c.001.0007.2334.3082.2866.3744L16,26.9079l6.91-8.15c.0439-.0552.2783-.3649.2788-.3657A8.901,8.901,0,0,0,25,13,9,9,0,0,0,7,13a8.9054,8.9054,0,0,0,1.8125,5.395Z"/><path d="M21,18H19V10H13v8H11V10a2.0021,2.0021,0,0,1,2-2h6a2.0021,2.0021,0,0,1,2,2Z"/><path d="M15 16H17V18H15z"/><path d="M15 12H17V14H15z"/>',
|
|
44
81
|
"locked": '<path d="M24,14H22V8A6,6,0,0,0,10,8v6H8a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H24a2,2,0,0,0,2-2V16A2,2,0,0,0,24,14ZM12,8a4,4,0,0,1,8,0v6H12ZM24,28H8V16H24Z"/>',
|
|
82
|
+
"login": '<path d="M26,30H14a2,2,0,0,1-2-2V25h2v3H26V4H14V7H12V4a2,2,0,0,1,2-2H26a2,2,0,0,1,2,2V28A2,2,0,0,1,26,30Z"/><path d="M14.59 20.59 18.17 17 4 17 4 15 18.17 15 14.59 11.41 16 10 22 16 16 22 14.59 20.59z"/>',
|
|
83
|
+
"logout": '<path d="M6,30H18a2.0023,2.0023,0,0,0,2-2V25H18v3H6V4H18V7h2V4a2.0023,2.0023,0,0,0-2-2H6A2.0023,2.0023,0,0,0,4,4V28A2.0023,2.0023,0,0,0,6,30Z"/><path d="M20.586 20.586 24.172 17 10 17 10 15 24.172 15 20.586 11.414 22 10 28 16 22 22 20.586 20.586z"/>',
|
|
84
|
+
"maximize": '<path d="M20 2 20 4 26.586 4 18 12.582 19.414 14 28 5.414 28 12 30 12 30 2 20 2z"/><path d="M14 19.416 12.592 18 4 26.586 4 20 2 20 2 30 12 30 12 28 5.414 28 14 19.416z"/>',
|
|
45
85
|
"menu": '<path d="M4 6H28V8H4z"/><path d="M4 24H28V26H4z"/><path d="M4 12H28V14H4z"/><path d="M4 18H28V20H4z"/>',
|
|
46
86
|
"minimize": '<path d="M4 18 4 20 10.586 20 2 28.582 3.414 30 12 21.414 12 28 14 28 14 18 4 18z"/><path d="M30 3.416 28.592 2 20 10.586 20 4 18 4 18 14 28 14 28 12 21.414 12 30 3.416z"/>',
|
|
47
87
|
"misuse": '<path d="M16,2C8.3,2,2,8.3,2,16s6.3,14,14,14s14-6.3,14-14S23.7,2,16,2z M21.4,23L16,17.6L10.6,23L9,21.4l5.4-5.4L9,10.6L10.6,9 l5.4,5.4L21.4,9l1.6,1.6L17.6,16l5.4,5.4L21.4,23z"/><path fill="none" d="M21.4,23L16,17.6L10.6,23L9,21.4l5.4-5.4L9,10.6L10.6,9l5.4,5.4L21.4,9l1.6,1.6L17.6,16 l5.4,5.4L21.4,23z" data-icon-path="inner-path" opacity="0"/>',
|
|
88
|
+
"money": '<path d="M2 22H30V24H2z"/><path d="M2 26H30V28H2z"/><path d="M24,10a2,2,0,1,0,2,2,2,2,0,0,0-2-2Z"/><path d="M16,16a4,4,0,1,1,4-4A4.0045,4.0045,0,0,1,16,16Zm0-6a2,2,0,1,0,2,2A2.002,2.002,0,0,0,16,10Z"/><path d="M8,10a2,2,0,1,0,2,2,2,2,0,0,0-2-2Z"/><path d="M28,20H4a2.0051,2.0051,0,0,1-2-2V6A2.0051,2.0051,0,0,1,4,4H28a2.0051,2.0051,0,0,1,2,2V18A2.0027,2.0027,0,0,1,28,20ZM28,6H4V18H28Z"/>',
|
|
89
|
+
"notebook": '<path d="M19 10H26V12H19z"/><path d="M19 15H26V17H19z"/><path d="M19 20H26V22H19z"/><path d="M28,5H4A2.002,2.002,0,0,0,2,7V25a2.0023,2.0023,0,0,0,2,2H28a2.0027,2.0027,0,0,0,2-2V7A2.0023,2.0023,0,0,0,28,5ZM4,7H15V25H4ZM17,25V7H28l.002,18Z"/>',
|
|
48
90
|
"notification": '<path d="M28.7071,19.293,26,16.5859V13a10.0136,10.0136,0,0,0-9-9.9492V1H15V3.0508A10.0136,10.0136,0,0,0,6,13v3.5859L3.2929,19.293A1,1,0,0,0,3,20v3a1,1,0,0,0,1,1h7v.7768a5.152,5.152,0,0,0,4.5,5.1987A5.0057,5.0057,0,0,0,21,25V24h7a1,1,0,0,0,1-1V20A1,1,0,0,0,28.7071,19.293ZM19,25a3,3,0,0,1-6,0V24h6Zm8-3H5V20.4141L7.707,17.707A1,1,0,0,0,8,17V13a8,8,0,0,1,16,0v4a1,1,0,0,0,.293.707L27,20.4141Z"/>',
|
|
91
|
+
"overflow-menu--horizontal": '<circle cx="8" cy="16" r="2"/><circle cx="16" cy="16" r="2"/><circle cx="24" cy="16" r="2"/>',
|
|
49
92
|
"overflow-menu--vertical": '<circle cx="16" cy="8" r="2"/><circle cx="16" cy="16" r="2"/><circle cx="16" cy="24" r="2"/>',
|
|
93
|
+
"partnership": '<path d="M8,9a4,4,0,1,1,4-4A4,4,0,0,1,8,9ZM8,3a2,2,0,1,0,2,2A2,2,0,0,0,8,3Z"/><path d="M24,9a4,4,0,1,1,4-4A4,4,0,0,1,24,9Zm0-6a2,2,0,1,0,2,2A2,2,0,0,0,24,3Z"/><path d="M26,30H22a2,2,0,0,1-2-2V21h2v7h4V19h2V13a1,1,0,0,0-1-1H20.58L16,20l-4.58-8H5a1,1,0,0,0-1,1v6H6v9h4V21h2v7a2,2,0,0,1-2,2H6a2,2,0,0,1-2-2V21a2,2,0,0,1-2-2V13a3,3,0,0,1,3-3h7.58L16,16l3.42-6H27a3,3,0,0,1,3,3v6a2,2,0,0,1-2,2v7A2,2,0,0,1,26,30Z"/>',
|
|
94
|
+
"payment--methods": '<path d="M5,26V15.8281l-3.5859,3.586L0,18l6-6,6,6-1.4141,1.4141-3.5859-3.586v10.1719h12v2H7c-1.104-.0013-1.9987-.896-2-2Z"/><path d="M31,18h-3v-2h-2v2h-1c-1.1046,0-2,.8954-2,2v2c0,1.1046,.8954,2,2,2h4v2h-6s0,2,0,2h3v2h2v-2h1c1.1046,0,2-.8954,2-2v-2c0-1.1046-.8954-2-2-2h-4v-2h6v-2Z"/><path d="M28,12V6c-.0012-1.104-.896-1.9988-2-2H12v2h14v6"/><path d="M2 6H7V8H2z"/><path d="M2 2H10V4H2z"/>',
|
|
95
|
+
"percentage": '<path d="M9,14a5,5,0,1,1,5-5A5.0055,5.0055,0,0,1,9,14ZM9,6a3,3,0,1,0,3,3A3.0033,3.0033,0,0,0,9,6Z"/><path d="M.029 15H31.97V17H.029z" transform="rotate(-45 16 16)"/><path d="M23,28a5,5,0,1,1,5-5A5.0055,5.0055,0,0,1,23,28Zm0-8a3,3,0,1,0,3,3A3.0033,3.0033,0,0,0,23,20Z"/>',
|
|
96
|
+
"phone": '<path d="M26,29h-.17C6.18,27.87,3.39,11.29,3,6.23A3,3,0,0,1,5.76,3h5.51a2,2,0,0,1,1.86,1.26L14.65,8a2,2,0,0,1-.44,2.16l-2.13,2.15a9.37,9.37,0,0,0,7.58,7.6l2.17-2.15A2,2,0,0,1,24,17.35l3.77,1.51A2,2,0,0,1,29,20.72V26A3,3,0,0,1,26,29ZM6,5A1,1,0,0,0,5,6v.08C5.46,12,8.41,26,25.94,27A1,1,0,0,0,27,26.06V20.72l-3.77-1.51-2.87,2.85L19.88,22C11.18,20.91,10,12.21,10,12.12l-.06-.48,2.84-2.87L11.28,5Z"/>',
|
|
97
|
+
"piggy-bank": '<path d="M16.5,14H20V12H18V11H16v1.0508A2.5,2.5,0,0,0,16.5,17h1a.5.5,0,0,1,0,1H14v2h2v1h2V19.9492A2.5,2.5,0,0,0,17.5,15h-1a.5.5,0,0,1,0-1Z"/><path d="M29,13H26.98A5.7789,5.7789,0,0,0,25,8.8525V5a1,1,0,0,0-1.6-.8L19.6665,7H15c-5.5095,0-9.4634,3.2412-9.9485,8H5a1.0009,1.0009,0,0,1-1-1V12H2v2a3.0033,3.0033,0,0,0,3,3h.07A9.1733,9.1733,0,0,0,9,23.5566V27a1,1,0,0,0,1,1h4a1,1,0,0,0,1-1V25h3v2a1,1,0,0,0,1,1h4a1,1,0,0,0,1-1V23.6372A5.0926,5.0926,0,0,0,26.8188,20H29a1,1,0,0,0,1-1V14A1,1,0,0,0,29,13Zm-1,5H25.124c-.3052,2.7529-.8235,3.4854-3.124,4.3154V26H20V23H13v3H11V22.3779A7.013,7.013,0,0,1,7,16c0-4.8354,4.0181-7,8-7h5.3335L23,7V9.7764c2.4182,1.8593,1.9126,3.186,2.0183,5.2236H28Z"/>',
|
|
98
|
+
"portfolio": '<path d="M28,10H22V6a2,2,0,0,0-2-2H12a2,2,0,0,0-2,2v4H4a2,2,0,0,0-2,2V26a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V12A2,2,0,0,0,28,10ZM12,6h8v4H12ZM4,26V12H28V26Z"/>',
|
|
50
99
|
"printer": '<path d="M28,9H25V3H7V9H4a2,2,0,0,0-2,2V21a2,2,0,0,0,2,2H7v6H25V23h3a2,2,0,0,0,2-2V11A2,2,0,0,0,28,9ZM9,5H23V9H9ZM23,27H9V17H23Zm5-6H25V15H7v6H4V11H28Z"/>',
|
|
100
|
+
"purchase": '<path d="M28,6H4A2,2,0,0,0,2,8V24a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V8A2,2,0,0,0,28,6Zm0,2v3H4V8ZM4,24V13H28V24Z"/><path d="M6 20H16V22H6z"/>',
|
|
51
101
|
"qr-code": '<path d="M24 26H26V28H24z" transform="rotate(-90 25 27)"/><path d="M18 22H20V24H18z" transform="rotate(-90 19 23)"/><path d="M18 30 22 30 22 28 20 28 20 26 18 26 18 30z"/><path d="M25 23H29V25H25z" transform="rotate(-90 27 24)"/><path d="M28 26 30 26 30 30 26 30 26 28 28 28 28 26z"/><path d="M26 20 26 18 30 18 30 22 28 22 28 20 26 20z"/><path d="M24 20 22 20 22 24 20 24 20 26 24 26 24 20z"/><path d="M19 17H21V21H19z" transform="rotate(-90 20 19)"/><path d="M6 22H10V26H6z"/><path d="M14,30H2V18H14ZM4,28h8V20H4Z"/><path d="M22 6H26V10H22z"/><path d="M30,14H18V2H30ZM20,12h8V4H20Z"/><path d="M6 6H10V10H6z"/><path d="M14,14H2V2H14ZM4,12h8V4H4Z"/>',
|
|
102
|
+
"receipt": '<path d="M21 16H23V18H21z"/><path d="M9 16H17V18H9z"/><path d="M21 12H23V14H21z"/><path d="M9 12H17V14H9z"/><path d="M9 8H23V10H9z"/><path d="M25,2H7A2.002,2.002,0,0,0,5,4V29a1,1,0,0,0,1,1H7a.9987.9987,0,0,0,.8-.4L10,26.667,12.2,29.6a1.0353,1.0353,0,0,0,1.6,0L16,26.667,18.2,29.6a1.0353,1.0353,0,0,0,1.6,0L22,26.667,24.2,29.6a.9993.9993,0,0,0,.8.4h1a1,1,0,0,0,1-1V4A2.0023,2.0023,0,0,0,25,2Zm0,25.333L22.8,24.4a1.0353,1.0353,0,0,0-1.6,0L19,27.333,16.8,24.4a1.0353,1.0353,0,0,0-1.6,0L13,27.333,10.8,24.4a1.0353,1.0353,0,0,0-1.6,0L7,27.333V4H25Z"/>',
|
|
52
103
|
"recently-viewed": '<path d="M20.59 22 15 16.41 15 7 17 7 17 15.58 22 20.59 20.59 22z"/><path d="M16,2A13.94,13.94,0,0,0,6,6.23V2H4v8h8V8H7.08A12,12,0,1,1,4,16H2A14,14,0,1,0,16,2Z"/>',
|
|
104
|
+
"redo": '<path d="M12,10H24.1851L20.5977,6.4141,22,5,28,11,22,17l-1.4023-1.4146L24.1821,12H12a6,6,0,0,0,0,12h8v2H12a8,8,0,0,1,0-16Z"/>',
|
|
53
105
|
"renew": '<path d="M12,10H6.78A11,11,0,0,1,27,16h2A13,13,0,0,0,6,7.68V4H4v8h8Z"/><path d="M20,22h5.22A11,11,0,0,1,5,16H3a13,13,0,0,0,23,8.32V28h2V20H20Z"/>',
|
|
106
|
+
"repeat": '<path d="M6,6H26.1719l-3.586-3.5859L24,1l6,6-6,6-1.4141-1.4141L26.1719,8H6v7H4V8A2.0024,2.0024,0,0,1,6,6Z"/><path d="M9.4141,20.4141,5.8281,24H26V17h2v7a2.0024,2.0024,0,0,1-2,2H5.8281L9.414,29.5859,8,31,2,25l6-6Z"/>',
|
|
107
|
+
"report": '<path d="M10 18H18V20H10z"/><path d="M10 13H22V15H10z"/><path d="M10 23H15V25H10z"/><path d="M25,5H22V4a2,2,0,0,0-2-2H12a2,2,0,0,0-2,2V5H7A2,2,0,0,0,5,7V28a2,2,0,0,0,2,2H25a2,2,0,0,0,2-2V7A2,2,0,0,0,25,5ZM12,4h8V8H12ZM25,28H7V7h3v3H22V7h3Z"/>',
|
|
108
|
+
"request-quote": '<path d="M22,22v6H6V4H16V2H6A2,2,0,0,0,4,4V28a2,2,0,0,0,2,2H22a2,2,0,0,0,2-2V22Z"/><path d="M29.54,5.76l-3.3-3.3a1.6,1.6,0,0,0-2.24,0l-14,14V22h5.53l14-14a1.6,1.6,0,0,0,0-2.24ZM14.7,20H12V17.3l9.44-9.45,2.71,2.71ZM25.56,9.15,22.85,6.44l2.27-2.27,2.71,2.71Z"/>',
|
|
109
|
+
"reset": '<path d="M18,28A12,12,0,1,0,6,16v6.2L2.4,18.6,1,20l6,6,6-6-1.4-1.4L8,22.2V16H8A10,10,0,1,1,18,26Z"/>',
|
|
110
|
+
"rule": '<path d="M10 16H22V18H10z"/><path d="M10 10H22V12H10z"/><path d="M16,30,9.8242,26.7071A10.9815,10.9815,0,0,1,4,17V4A2.0022,2.0022,0,0,1,6,2H26a2.0022,2.0022,0,0,1,2,2V17a10.9815,10.9815,0,0,1-5.8242,9.7069ZM6,4V17a8.9852,8.9852,0,0,0,4.7656,7.9423L16,27.7333l5.2344-2.791A8.9852,8.9852,0,0,0,26,17V4Z"/>',
|
|
111
|
+
"save": '<path d="M27.71,9.29l-5-5A1,1,0,0,0,22,4H6A2,2,0,0,0,4,6V26a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2V10A1,1,0,0,0,27.71,9.29ZM12,6h8v4H12Zm8,20H12V18h8Zm2,0V18a2,2,0,0,0-2-2H12a2,2,0,0,0-2,2v8H6V6h4v4a2,2,0,0,0,2,2h8a2,2,0,0,0,2-2V6.41l4,4V26Z"/>',
|
|
112
|
+
"scales": '<path d="M20,16a5,5,0,0,0,10,0,1,1,0,0,0-.1055-.4473L25.896,7.5562a.8913.8913,0,0,0-.0454-.0816A1,1,0,0,0,25,7H18.8218A3.0155,3.0155,0,0,0,17,5.1841V2H15V5.1841A3.0155,3.0155,0,0,0,13.1782,7H7a1,1,0,0,0-.8945.5527l-4,8A1,1,0,0,0,2,16a5,5,0,0,0,10,0,1,1,0,0,0-.1055-.4473L8.6182,9h4.56A3.0147,3.0147,0,0,0,15,10.8154V28H6v2H26V28H17V10.8159A3.0155,3.0155,0,0,0,18.8218,9h4.56l-3.2763,6.5527A1,1,0,0,0,20,16ZM7,19a2.9958,2.9958,0,0,1-2.8152-2h5.63A2.9956,2.9956,0,0,1,7,19Zm2.3821-4H4.6179L7,10.2363ZM16,9a1,1,0,1,1,1-1A1.0009,1.0009,0,0,1,16,9Zm9,10a2.9958,2.9958,0,0,1-2.8152-2h5.63A2.9956,2.9956,0,0,1,25,19Zm0-8.7637L27.3821,15H22.6179Z"/>',
|
|
54
113
|
"search": '<path d="M29,27.5859l-7.5521-7.5521a11.0177,11.0177,0,1,0-1.4141,1.4141L27.5859,29ZM4,13a9,9,0,1,1,9,9A9.01,9.01,0,0,1,4,13Z"/>',
|
|
114
|
+
"send": '<path d="M27.45,15.11l-22-11a1,1,0,0,0-1.08.12,1,1,0,0,0-.33,1L7,16,4,26.74A1,1,0,0,0,5,28a1,1,0,0,0,.45-.11l22-11a1,1,0,0,0,0-1.78Zm-20.9,10L8.76,17H18V15H8.76L6.55,6.89,24.76,16Z"/>',
|
|
55
115
|
"settings": '<path d="M27,16.76c0-.25,0-.5,0-.76s0-.51,0-.77l1.92-1.68A2,2,0,0,0,29.3,11L26.94,7a2,2,0,0,0-1.73-1,2,2,0,0,0-.64.1l-2.43.82a11.35,11.35,0,0,0-1.31-.75l-.51-2.52a2,2,0,0,0-2-1.61H13.64a2,2,0,0,0-2,1.61l-.51,2.52a11.48,11.48,0,0,0-1.32.75L7.43,6.06A2,2,0,0,0,6.79,6,2,2,0,0,0,5.06,7L2.7,11a2,2,0,0,0,.41,2.51L5,15.24c0,.25,0,.5,0,.76s0,.51,0,.77L3.11,18.45A2,2,0,0,0,2.7,21L5.06,25a2,2,0,0,0,1.73,1,2,2,0,0,0,.64-.1l2.43-.82a11.35,11.35,0,0,0,1.31.75l.51,2.52a2,2,0,0,0,2,1.61h4.72a2,2,0,0,0,2-1.61l.51-2.52a11.48,11.48,0,0,0,1.32-.75l2.42.82a2,2,0,0,0,.64.1,2,2,0,0,0,1.73-1L29.3,21a2,2,0,0,0-.41-2.51ZM25.21,24l-3.43-1.16a8.86,8.86,0,0,1-2.71,1.57L18.36,28H13.64l-.71-3.55a9.36,9.36,0,0,1-2.7-1.57L6.79,24,4.43,20l2.72-2.4a8.9,8.9,0,0,1,0-3.13L4.43,12,6.79,8l3.43,1.16a8.86,8.86,0,0,1,2.71-1.57L13.64,4h4.72l.71,3.55a9.36,9.36,0,0,1,2.7,1.57L25.21,8,27.57,12l-2.72,2.4a8.9,8.9,0,0,1,0,3.13L27.57,20Z"/><path d="M16,22a6,6,0,1,1,6-6A5.94,5.94,0,0,1,16,22Zm0-10a3.91,3.91,0,0,0-4,4,3.91,3.91,0,0,0,4,4,3.91,3.91,0,0,0,4-4A3.91,3.91,0,0,0,16,12Z"/>',
|
|
56
116
|
"settings--adjust": '<path d="M30,8h-4.1c-0.5-2.3-2.5-4-4.9-4s-4.4,1.7-4.9,4H2v2h14.1c0.5,2.3,2.5,4,4.9,4s4.4-1.7,4.9-4H30V8z M21,12c-1.7,0-3-1.3-3-3 s1.3-3,3-3s3,1.3,3,3S22.7,12,21,12z"/><path d="M2,24h4.1c0.5,2.3,2.5,4,4.9,4s4.4-1.7,4.9-4H30v-2H15.9c-0.5-2.3-2.5-4-4.9-4s-4.4,1.7-4.9,4H2V24z M11,20c1.7,0,3,1.3,3,3 s-1.3,3-3,3s-3-1.3-3-3S9.3,20,11,20z"/>',
|
|
117
|
+
"shopping--bag": '<path d="M28.76,11.35A1,1,0,0,0,28,11H22V7a3,3,0,0,0-3-3H13a3,3,0,0,0-3,3v4H4a1,1,0,0,0-1,1.15L4.88,24.3a2,2,0,0,0,2,1.7H25.14a2,2,0,0,0,2-1.7L29,12.15A1,1,0,0,0,28.76,11.35ZM12,7a1,1,0,0,1,1-1h6a1,1,0,0,1,1,1v4H12ZM25.14,24H6.86L5.17,13H26.83Z"/>',
|
|
57
118
|
"shopping--cart": '<circle cx="10" cy="28" r="2"/><circle cx="24" cy="28" r="2"/><path d="M28,7H5.82L5,2.8A1,1,0,0,0,4,2H0V4H3.18L7,23.2A1,1,0,0,0,8,24H26V22H8.82L8,18H26a1,1,0,0,0,1-.78l2-9A1,1,0,0,0,28,7Zm-2.8,9H7.62L6.22,9H26.75Z"/>',
|
|
119
|
+
"sort--ascending": '<path d="M18 22 19.414 20.586 23 24.172 23 4 25 4 25 24.172 28.586 20.586 30 22 24 28 18 22z"/><path d="M2 18H16V20H2z"/><path d="M6 12H16V14H6z"/><path d="M10 6H16V8H10z"/>',
|
|
120
|
+
"sort--descending": '<path d="M18 22 19.414 20.586 23 24.172 23 4 25 4 25 24.172 28.586 20.586 30 22 24 28 18 22z"/><path d="M2 6H16V8H2z"/><path d="M6 12H16V14H6z"/><path d="M10 18H16V20H10z"/>',
|
|
121
|
+
"star": '<path d="M16,6.52l2.76,5.58.46,1,1,.15,6.16.89L22,18.44l-.75.73.18,1,1.05,6.13-5.51-2.89L16,23l-.93.49L9.56,26.34l1-6.13.18-1L10,18.44,5.58,14.09l6.16-.89,1-.15.46-1L16,6.52M16,2l-4.55,9.22L1.28,12.69l7.36,7.18L6.9,30,16,25.22,25.1,30,23.36,19.87l7.36-7.17L20.55,11.22Z"/>',
|
|
122
|
+
"star--filled": '<path d="M16,2l-4.55,9.22L1.28,12.69l7.36,7.18L6.9,30,16,25.22,25.1,30,23.36,19.87l7.36-7.17L20.55,11.22Z"/>',
|
|
58
123
|
"subtract": '<path d="M8 15H24V17H8z"/>',
|
|
124
|
+
"table--split": '<path d="M27,3H5A2,2,0,0,0,3,5V27a2,2,0,0,0,2,2H27a2,2,0,0,0,2-2V5A2,2,0,0,0,27,3Zm0,2V9H5V5ZM17,11H27v7H17Zm-2,7H5V11H15ZM5,20H15v7H5Zm12,7V20H27v7Z"/>',
|
|
125
|
+
"tag": '<path d="M10,14a4,4,0,1,1,4-4A4.0045,4.0045,0,0,1,10,14Zm0-6a2,2,0,1,0,1.998,2.0044A2.002,2.002,0,0,0,10,8Z"/><path d="M16.6436,29.4145,2.5858,15.3555A2,2,0,0,1,2,13.9414V4A2,2,0,0,1,4,2h9.9413a2,2,0,0,1,1.4142.5858L29.4144,16.6436a2.0005,2.0005,0,0,1,0,2.8285l-9.9424,9.9425a2.0008,2.0008,0,0,1-2.8285,0ZM4,4v9.9417L18.0578,28,28,18.0579,13.9416,4Z"/>',
|
|
126
|
+
"task": '<path d="M14 20.18 10.41 16.59 9 18 14 23 23 14 21.59 12.58 14 20.18z"/><path d="M25,5H22V4a2,2,0,0,0-2-2H12a2,2,0,0,0-2,2V5H7A2,2,0,0,0,5,7V28a2,2,0,0,0,2,2H25a2,2,0,0,0,2-2V7A2,2,0,0,0,25,5ZM12,4h8V8H12ZM25,28H7V7h3v3H22V7h3Z"/>',
|
|
127
|
+
"task--complete": '<path d="M22 27.18 19.41 24.59 18 26 22 30 30 22 28.59 20.59 22 27.18z"/><path d="M25,5H22V4a2.0058,2.0058,0,0,0-2-2H12a2.0058,2.0058,0,0,0-2,2V5H7A2.0058,2.0058,0,0,0,5,7V28a2.0058,2.0058,0,0,0,2,2h9V28H7V7h3v3H22V7h3V18h2V7A2.0058,2.0058,0,0,0,25,5ZM20,8H12V4h8Z"/>',
|
|
59
128
|
"text--font": '<path d="M25,12H20v2h5a1.0008,1.0008,0,0,1,1,1v2H22a3.0033,3.0033,0,0,0-3,3v1a3.0033,3.0033,0,0,0,3,3h6V15A3.0033,3.0033,0,0,0,25,12ZM22,22a1.0008,1.0008,0,0,1-1-1V20a1.0008,1.0008,0,0,1,1-1h4v3Z"/><path d="M16,24h2L12,7H10L4,24H6l1.6936-5h6.6135ZM8.3711,17l2.4966-7.3711.2668.0005L13.63,17Z"/>',
|
|
60
129
|
"time": '<path d="M16,30A14,14,0,1,1,30,16,14,14,0,0,1,16,30ZM16,4A12,12,0,1,0,28,16,12,12,0,0,0,16,4Z"/><path d="M20.59 22 15 16.41 15 7 17 7 17 15.58 22 20.59 20.59 22z"/>',
|
|
61
130
|
"trash-can": '<path d="M12 12H14V24H12z"/><path d="M18 12H20V24H18z"/><path d="M4,6V8H6V28a2,2,0,0,0,2,2H24a2,2,0,0,0,2-2V8h2V6ZM8,28V8H24V28Z"/><path d="M12 2H20V4H12z"/>',
|
|
131
|
+
"undo": '<path d="M20,10H7.8149l3.5874-3.5859L10,5,4,11,10,17l1.4023-1.4146L7.8179,12H20a6,6,0,0,1,0,12H12v2h8a8,8,0,0,0,0-16Z"/>',
|
|
62
132
|
"user": '<path d="M16,4a5,5,0,1,1-5,5,5,5,0,0,1,5-5m0-2a7,7,0,1,0,7,7A7,7,0,0,0,16,2Z"/><path d="M26,30H24V25a5,5,0,0,0-5-5H13a5,5,0,0,0-5,5v5H6V25a7,7,0,0,1,7-7h6a7,7,0,0,1,7,7Z"/>',
|
|
133
|
+
"user--admin": '<path d="M12,4A5,5,0,1,1,7,9a5,5,0,0,1,5-5m0-2a7,7,0,1,0,7,7A7,7,0,0,0,12,2Z"/><path d="M22,30H20V25a5,5,0,0,0-5-5H9a5,5,0,0,0-5,5v5H2V25a7,7,0,0,1,7-7h6a7,7,0,0,1,7,7Z"/><path d="M25 16.18 22.41 13.59 21 15 25 19 32 12 30.59 10.59 25 16.18z"/>',
|
|
134
|
+
"user--follow": '<path d="M32 14 28 14 28 10 26 10 26 14 22 14 22 16 26 16 26 20 28 20 28 16 32 16 32 14z"/><path d="M12,4A5,5,0,1,1,7,9a5,5,0,0,1,5-5m0-2a7,7,0,1,0,7,7A7,7,0,0,0,12,2Z"/><path d="M22,30H20V25a5,5,0,0,0-5-5H9a5,5,0,0,0-5,5v5H2V25a7,7,0,0,1,7-7h6a7,7,0,0,1,7,7Z"/>',
|
|
135
|
+
"user--multiple": '<path d="M30,30H28V25a5.0057,5.0057,0,0,0-5-5V18a7.0078,7.0078,0,0,1,7,7Z"/><path d="M22,30H20V25a5.0059,5.0059,0,0,0-5-5H9a5.0059,5.0059,0,0,0-5,5v5H2V25a7.0082,7.0082,0,0,1,7-7h6a7.0082,7.0082,0,0,1,7,7Z"/><path d="M20,2V4a5,5,0,0,1,0,10v2A7,7,0,0,0,20,2Z"/><path d="M12,4A5,5,0,1,1,7,9a5,5,0,0,1,5-5m0-2a7,7,0,1,0,7,7A7,7,0,0,0,12,2Z"/>',
|
|
136
|
+
"user--profile": '<path d="M12,4A5,5,0,1,1,7,9a5,5,0,0,1,5-5m0-2a7,7,0,1,0,7,7A7,7,0,0,0,12,2Z"/><path d="M22,30H20V25a5,5,0,0,0-5-5H9a5,5,0,0,0-5,5v5H2V25a7,7,0,0,1,7-7h6a7,7,0,0,1,7,7Z"/><path d="M22 4H32V6H22z"/><path d="M22 9H32V11H22z"/><path d="M22 14H29V16H22z"/>',
|
|
63
137
|
"view": '<path d="M30.94,15.66A16.69,16.69,0,0,0,16,5,16.69,16.69,0,0,0,1.06,15.66a1,1,0,0,0,0,.68A16.69,16.69,0,0,0,16,27,16.69,16.69,0,0,0,30.94,16.34,1,1,0,0,0,30.94,15.66ZM16,25c-5.3,0-10.9-3.93-12.93-9C5.1,10.93,10.7,7,16,7s10.9,3.93,12.93,9C26.9,21.07,21.3,25,16,25Z"/><path d="M16,10a6,6,0,1,0,6,6A6,6,0,0,0,16,10Zm0,10a4,4,0,1,1,4-4A4,4,0,0,1,16,20Z"/>',
|
|
138
|
+
"wallet": '<path d="M22 17H24V19H22z"/><path d="M28,8H4V5H26V3H4A2,2,0,0,0,2,5V26a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10A2,2,0,0,0,28,8ZM4,26V10H28v3H20a2,2,0,0,0-2,2v6a2,2,0,0,0,2,2h8v3ZM28,15v6H20V15Z"/>',
|
|
64
139
|
"warning--alt": '<path d="M16,23a1.5,1.5,0,1,0,1.5,1.5A1.5,1.5,0,0,0,16,23Z"/><path d="M15 12H17V21H15z"/><path d="M29,30H3a1,1,0,0,1-.8872-1.4614l13-25a1,1,0,0,1,1.7744,0l13,25A1,1,0,0,1,29,30ZM4.6507,28H27.3493l.002-.0033L16.002,6.1714h-.004L4.6487,27.9967Z"/>',
|
|
65
140
|
"warning--filled": '<path d="M16,2C8.3,2,2,8.3,2,16s6.3,14,14,14s14-6.3,14-14C30,8.3,23.7,2,16,2z M14.9,8h2.2v11h-2.2V8z M16,25 c-0.8,0-1.5-0.7-1.5-1.5S15.2,22,16,22c0.8,0,1.5,0.7,1.5,1.5S16.8,25,16,25z"/><path fill="none" d="M17.5,23.5c0,0.8-0.7,1.5-1.5,1.5c-0.8,0-1.5-0.7-1.5-1.5S15.2,22,16,22 C16.8,22,17.5,22.7,17.5,23.5z M17.1,8h-2.2v11h2.2V8z" data-icon-path="inner-path" opacity="0"/>'
|
|
66
141
|
};
|
|
@@ -133,8 +208,96 @@ var CARBON_MAP = {
|
|
|
133
208
|
"pencil": "edit",
|
|
134
209
|
"lock": "locked",
|
|
135
210
|
"eye": "view",
|
|
136
|
-
"minimize-2": "minimize"
|
|
211
|
+
"minimize-2": "minimize",
|
|
212
|
+
/* --- Direction and chrome, completing the sets above --------------------
|
|
213
|
+
`chevron-up` and `arrow-left` were missing while their three siblings shipped, so a collapsible
|
|
214
|
+
that pointed down had nothing to point back up with. */
|
|
215
|
+
"chevron-up": "chevron--up",
|
|
216
|
+
"arrow-left": "arrow--left",
|
|
217
|
+
"more-horizontal": "overflow-menu--horizontal",
|
|
218
|
+
"maximize-2": "maximize",
|
|
219
|
+
"log-out": "logout",
|
|
220
|
+
"log-in": "login",
|
|
221
|
+
"archive": "archive",
|
|
222
|
+
"folder": "folder",
|
|
223
|
+
"book": "book",
|
|
224
|
+
"notebook": "notebook",
|
|
225
|
+
"asterisk": "asterisk",
|
|
226
|
+
"bookmark": "bookmark",
|
|
227
|
+
"star": "star",
|
|
228
|
+
"star-filled": "star--filled",
|
|
229
|
+
"tag": "tag",
|
|
230
|
+
"repeat": "repeat",
|
|
231
|
+
"undo-2": "undo",
|
|
232
|
+
"redo-2": "redo",
|
|
233
|
+
"rotate-ccw": "reset",
|
|
234
|
+
"table": "table--split",
|
|
235
|
+
"database": "data--base",
|
|
236
|
+
"function-square": "function",
|
|
237
|
+
/* --- Money -------------------------------------------------------------
|
|
238
|
+
`credit-card` is here because its absence shipped: it resolved to nothing, rendered an empty
|
|
239
|
+
box, and reached production on the payment notifications. Carbon spells it `payment--methods`,
|
|
240
|
+
which is exactly the kind of mismatch this map exists to absorb. */
|
|
241
|
+
"credit-card": "payment--methods",
|
|
242
|
+
"wallet": "wallet",
|
|
243
|
+
"banknote": "money",
|
|
244
|
+
"coins": "currency",
|
|
245
|
+
"dollar-sign": "currency--dollar",
|
|
246
|
+
"euro": "currency--euro",
|
|
247
|
+
"receipt": "receipt",
|
|
248
|
+
"percent": "percentage",
|
|
249
|
+
"piggy-bank": "piggy-bank",
|
|
250
|
+
"landmark": "bank--vault",
|
|
251
|
+
"scale": "scales",
|
|
252
|
+
"purchase": "purchase",
|
|
253
|
+
/* --- Documents and ERP objects ----------------------------------------- */
|
|
254
|
+
"file-signature": "request-quote",
|
|
255
|
+
"scroll-text": "license",
|
|
256
|
+
"file-plus": "document--add",
|
|
257
|
+
"save": "save",
|
|
258
|
+
"file-bar-chart": "report",
|
|
259
|
+
"list-todo": "task",
|
|
260
|
+
"check-square": "task--complete",
|
|
261
|
+
"gavel": "rule",
|
|
262
|
+
"id-card": "identification",
|
|
263
|
+
"briefcase": "portfolio",
|
|
264
|
+
"handshake": "partnership",
|
|
265
|
+
"lightbulb": "idea",
|
|
266
|
+
"inventory": "inventory-management",
|
|
267
|
+
"package-2": "delivery--parcel",
|
|
268
|
+
"shopping-bag": "shopping--bag",
|
|
269
|
+
"barcode": "barcode",
|
|
270
|
+
"qr-code": "qr-code",
|
|
271
|
+
"git-branch": "flow",
|
|
272
|
+
"bug": "debug",
|
|
273
|
+
/* --- People and contact ------------------------------------------------- */
|
|
274
|
+
"users": "user--multiple",
|
|
275
|
+
"user-plus": "user--follow",
|
|
276
|
+
"user-cog": "user--admin",
|
|
277
|
+
"user-circle": "user--profile",
|
|
278
|
+
"mail": "email",
|
|
279
|
+
"phone": "phone",
|
|
280
|
+
"send": "send",
|
|
281
|
+
"globe": "globe",
|
|
282
|
+
"building": "location--company",
|
|
283
|
+
/* --- Charts and time ---------------------------------------------------- */
|
|
284
|
+
"bar-chart-3": "chart--column",
|
|
285
|
+
"bar-chart-horizontal": "chart--bar",
|
|
286
|
+
"line-chart": "chart--line",
|
|
287
|
+
"pie-chart": "chart--pie",
|
|
288
|
+
"area-chart": "chart--area",
|
|
289
|
+
"calendar-days": "events",
|
|
290
|
+
"calendar-plus": "calendar--add",
|
|
291
|
+
"calendar-heatmap": "calendar--heat-map",
|
|
292
|
+
/* --- Transfer ----------------------------------------------------------- */
|
|
293
|
+
"cloud-upload": "cloud--upload",
|
|
294
|
+
"cloud-download": "cloud--download",
|
|
295
|
+
"filter-x": "filter--edit",
|
|
296
|
+
"arrow-up-narrow-wide": "sort--ascending",
|
|
297
|
+
"arrow-down-wide-narrow": "sort--descending",
|
|
298
|
+
"badge-info": "information--square"
|
|
137
299
|
};
|
|
300
|
+
var ICON_NAMES = Object.freeze(Object.keys(CARBON_MAP).sort());
|
|
138
301
|
|
|
139
302
|
// src/components/core/Icon.tsx
|
|
140
303
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -187,7 +350,14 @@ function Icon({ name, size = 16, label, pack, style, ...rest }) {
|
|
|
187
350
|
"data-icon": name,
|
|
188
351
|
...rest,
|
|
189
352
|
style: { display: "inline-block", flex: "0 0 auto", width: size, height: size, ...style },
|
|
190
|
-
children: markup === void 0 ?
|
|
353
|
+
children: markup === void 0 ? (
|
|
354
|
+
// A broken icon has to look broken. In development the box gets a dashed outline so the
|
|
355
|
+
// gap is visible on screen instead of only in a console warning that is easy to lose in a
|
|
356
|
+
// busy log — which is how a missing `credit-card` reached production as a blank square.
|
|
357
|
+
// Production still renders nothing at all: a dev diagnostic must never become a user's
|
|
358
|
+
// first sight of a defect. Deliberately not an <svg>, so nothing reads it as a real glyph.
|
|
359
|
+
IS_DEV ? /* @__PURE__ */ jsx("span", { className: "pire-icon-missing", title: `Unknown icon: ${name}` }) : null
|
|
360
|
+
) : /* @__PURE__ */ jsx(
|
|
191
361
|
"svg",
|
|
192
362
|
{
|
|
193
363
|
viewBox: "0 0 32 32",
|
|
@@ -511,25 +681,175 @@ function Separator({
|
|
|
511
681
|
);
|
|
512
682
|
}
|
|
513
683
|
|
|
684
|
+
// src/components/core/Kbd.tsx
|
|
685
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
686
|
+
function Kbd({ children, size = "md", className, ...rest }) {
|
|
687
|
+
return /* @__PURE__ */ jsx14("kbd", { className: cx("pire-kbd", className), "data-size": size, ...rest, children });
|
|
688
|
+
}
|
|
689
|
+
|
|
514
690
|
// src/components/forms/FormField.tsx
|
|
515
|
-
import { jsx as
|
|
691
|
+
import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
516
692
|
function FormField({ label, htmlFor, isRequired, hint, error, layout = "stacked", children, className, ...rest }) {
|
|
517
693
|
return /* @__PURE__ */ jsxs9("div", { className: cx("pire-field", className), "data-layout": layout, ...rest, children: [
|
|
518
694
|
/* @__PURE__ */ jsxs9("label", { className: "pire-field-label", htmlFor, children: [
|
|
519
695
|
label,
|
|
520
|
-
isRequired ? /* @__PURE__ */
|
|
696
|
+
isRequired ? /* @__PURE__ */ jsx15("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
521
697
|
] }),
|
|
522
698
|
children,
|
|
523
699
|
error ? /* @__PURE__ */ jsxs9("span", { className: "pire-field-error", role: "alert", children: [
|
|
524
|
-
/* @__PURE__ */
|
|
700
|
+
/* @__PURE__ */ jsx15(Icon, { name: "alert-circle", size: 12 }),
|
|
525
701
|
error
|
|
526
|
-
] }) : hint ? /* @__PURE__ */
|
|
702
|
+
] }) : hint ? /* @__PURE__ */ jsx15("span", { className: "pire-field-hint", children: hint }) : null
|
|
527
703
|
] });
|
|
528
704
|
}
|
|
529
705
|
|
|
530
706
|
// src/components/forms/Input.tsx
|
|
531
|
-
import
|
|
532
|
-
import {
|
|
707
|
+
import * as React6 from "react";
|
|
708
|
+
import {
|
|
709
|
+
TextField,
|
|
710
|
+
Label,
|
|
711
|
+
Input as AriaInput,
|
|
712
|
+
Group,
|
|
713
|
+
Text as Text2,
|
|
714
|
+
FieldError,
|
|
715
|
+
Button as AriaButton4
|
|
716
|
+
} from "react-aria-components";
|
|
717
|
+
|
|
718
|
+
// src/i18n/PireIntlProvider.tsx
|
|
719
|
+
import * as React5 from "react";
|
|
720
|
+
|
|
721
|
+
// src/i18n/messages.ts
|
|
722
|
+
var enMessages = {
|
|
723
|
+
filterBarLabel: "Filters",
|
|
724
|
+
filterBarGo: "Go",
|
|
725
|
+
filterBarClearAll: "Clear all",
|
|
726
|
+
dataTableSelectAll: "Select all rows",
|
|
727
|
+
dataTableSelectRow: "Select row",
|
|
728
|
+
dataTableLoading: "Loading records",
|
|
729
|
+
dialogClose: "Close",
|
|
730
|
+
sidePanelClose: "Close panel",
|
|
731
|
+
inlineMessageDismiss: "Dismiss message",
|
|
732
|
+
toastDismiss: "Dismiss",
|
|
733
|
+
toastRegionLabel: "Notifications",
|
|
734
|
+
selectEmpty: "No options available",
|
|
735
|
+
comboBoxShowSuggestions: "Show suggestions",
|
|
736
|
+
comboBoxLoading: "Searching\u2026",
|
|
737
|
+
datePickerOpenCalendar: "Open calendar",
|
|
738
|
+
datePickerPreviousMonth: "Previous month",
|
|
739
|
+
datePickerNextMonth: "Next month",
|
|
740
|
+
dateRangePresetsLabel: "Date range shortcuts",
|
|
741
|
+
numberFieldIncrease: "Increase",
|
|
742
|
+
numberFieldDecrease: "Decrease",
|
|
743
|
+
inputClear: "Clear",
|
|
744
|
+
valueHelpFieldPlaceholder: "Not selected",
|
|
745
|
+
valueHelpFieldClear: "Clear selection",
|
|
746
|
+
valueHelpFieldOpenNamed: "Select {label}",
|
|
747
|
+
valueHelpFieldOpen: "Open value help",
|
|
748
|
+
valueHelpDialogSearch: "Search records",
|
|
749
|
+
valueHelpDialogTitle: "Select a record",
|
|
750
|
+
valueHelpDialogSearchPlaceholder: "Search by ID or name",
|
|
751
|
+
valueHelpDialogEmpty: "No records found",
|
|
752
|
+
valueHelpDialogCancel: "Cancel",
|
|
753
|
+
paginationLabel: "Pagination",
|
|
754
|
+
paginationRange: "{from}\u2013{to} of {total}",
|
|
755
|
+
paginationPageOf: "Page {page} of {pages}",
|
|
756
|
+
paginationPrevious: "Previous page",
|
|
757
|
+
paginationNext: "Next page",
|
|
758
|
+
paginationRowsPerPage: "Rows per page",
|
|
759
|
+
sideNavLabel: "Main navigation",
|
|
760
|
+
fileUploadChoose: "Choose files",
|
|
761
|
+
fileUploadRemoveNamed: "Remove {name}",
|
|
762
|
+
fileUploadUploading: "Uploading",
|
|
763
|
+
fileDropZonePrompt: "Drag files here, or choose them",
|
|
764
|
+
shellBarUserMenu: "Account menu for {user}",
|
|
765
|
+
commandPaletteLabel: "Command palette",
|
|
766
|
+
commandPaletteSearchLabel: "Search commands and records",
|
|
767
|
+
commandPalettePlaceholder: "Search for a screen, an action or a record\u2026",
|
|
768
|
+
commandPaletteEmpty: "Nothing matches that",
|
|
769
|
+
commandPaletteLoading: "Searching\u2026",
|
|
770
|
+
commandPaletteHintNavigate: "navigate",
|
|
771
|
+
commandPaletteHintSelect: "open",
|
|
772
|
+
commandPaletteHintClose: "close",
|
|
773
|
+
chartCategoryHeader: "Category",
|
|
774
|
+
chartNoValue: "No data",
|
|
775
|
+
chartEmpty: "No data for this period"
|
|
776
|
+
};
|
|
777
|
+
var esMessages = {
|
|
778
|
+
filterBarLabel: "Filtros",
|
|
779
|
+
filterBarGo: "Buscar",
|
|
780
|
+
filterBarClearAll: "Limpiar todo",
|
|
781
|
+
dataTableSelectAll: "Seleccionar todas las filas",
|
|
782
|
+
dataTableSelectRow: "Seleccionar fila",
|
|
783
|
+
dataTableLoading: "Cargando registros",
|
|
784
|
+
dialogClose: "Cerrar",
|
|
785
|
+
sidePanelClose: "Cerrar panel",
|
|
786
|
+
inlineMessageDismiss: "Descartar mensaje",
|
|
787
|
+
toastDismiss: "Descartar",
|
|
788
|
+
toastRegionLabel: "Notificaciones",
|
|
789
|
+
selectEmpty: "Sin opciones disponibles",
|
|
790
|
+
comboBoxShowSuggestions: "Mostrar sugerencias",
|
|
791
|
+
comboBoxLoading: "Buscando\u2026",
|
|
792
|
+
datePickerOpenCalendar: "Abrir calendario",
|
|
793
|
+
datePickerPreviousMonth: "Mes anterior",
|
|
794
|
+
datePickerNextMonth: "Mes siguiente",
|
|
795
|
+
dateRangePresetsLabel: "Atajos de rango de fechas",
|
|
796
|
+
numberFieldIncrease: "Aumentar",
|
|
797
|
+
numberFieldDecrease: "Disminuir",
|
|
798
|
+
inputClear: "Limpiar",
|
|
799
|
+
valueHelpFieldPlaceholder: "Sin seleccionar",
|
|
800
|
+
valueHelpFieldClear: "Limpiar selecci\xF3n",
|
|
801
|
+
valueHelpFieldOpenNamed: "Seleccionar {label}",
|
|
802
|
+
valueHelpFieldOpen: "Abrir ayuda de valores",
|
|
803
|
+
valueHelpDialogSearch: "Buscar registros",
|
|
804
|
+
valueHelpDialogTitle: "Seleccionar un registro",
|
|
805
|
+
valueHelpDialogSearchPlaceholder: "Buscar por c\xF3digo o nombre",
|
|
806
|
+
valueHelpDialogEmpty: "No se encontraron registros",
|
|
807
|
+
valueHelpDialogCancel: "Cancelar",
|
|
808
|
+
paginationLabel: "Paginaci\xF3n",
|
|
809
|
+
paginationRange: "{from}\u2013{to} de {total}",
|
|
810
|
+
paginationPageOf: "P\xE1gina {page} de {pages}",
|
|
811
|
+
paginationPrevious: "P\xE1gina anterior",
|
|
812
|
+
paginationNext: "P\xE1gina siguiente",
|
|
813
|
+
paginationRowsPerPage: "Filas por p\xE1gina",
|
|
814
|
+
sideNavLabel: "Navegaci\xF3n principal",
|
|
815
|
+
fileUploadChoose: "Elegir archivos",
|
|
816
|
+
fileUploadRemoveNamed: "Quitar {name}",
|
|
817
|
+
fileUploadUploading: "Subiendo",
|
|
818
|
+
fileDropZonePrompt: "Arrastr\xE1 archivos ac\xE1, o elegilos",
|
|
819
|
+
shellBarUserMenu: "Men\xFA de cuenta de {user}",
|
|
820
|
+
commandPaletteLabel: "Paleta de comandos",
|
|
821
|
+
commandPaletteSearchLabel: "Buscar comandos y registros",
|
|
822
|
+
commandPalettePlaceholder: "Busc\xE1 una pantalla, una acci\xF3n o un registro\u2026",
|
|
823
|
+
commandPaletteEmpty: "No hay coincidencias",
|
|
824
|
+
commandPaletteLoading: "Buscando\u2026",
|
|
825
|
+
commandPaletteHintNavigate: "navegar",
|
|
826
|
+
commandPaletteHintSelect: "abrir",
|
|
827
|
+
commandPaletteHintClose: "cerrar",
|
|
828
|
+
chartCategoryHeader: "Categor\xEDa",
|
|
829
|
+
chartNoValue: "Sin datos",
|
|
830
|
+
chartEmpty: "Sin datos para este per\xEDodo"
|
|
831
|
+
};
|
|
832
|
+
|
|
833
|
+
// src/i18n/PireIntlProvider.tsx
|
|
834
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
835
|
+
var MessagesContext = React5.createContext(enMessages);
|
|
836
|
+
function PireIntlProvider({ messages, children }) {
|
|
837
|
+
const value = React5.useMemo(
|
|
838
|
+
() => messages ? { ...enMessages, ...messages } : enMessages,
|
|
839
|
+
[messages]
|
|
840
|
+
);
|
|
841
|
+
return /* @__PURE__ */ jsx16(MessagesContext.Provider, { value, children });
|
|
842
|
+
}
|
|
843
|
+
function usePireMessages() {
|
|
844
|
+
return React5.useContext(MessagesContext);
|
|
845
|
+
}
|
|
846
|
+
function useMessage(key, override) {
|
|
847
|
+
const messages = React5.useContext(MessagesContext);
|
|
848
|
+
return override ?? messages[key];
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
// src/components/forms/Input.tsx
|
|
852
|
+
import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
533
853
|
function Input({
|
|
534
854
|
label,
|
|
535
855
|
icon,
|
|
@@ -538,6 +858,8 @@ function Input({
|
|
|
538
858
|
errorMessage,
|
|
539
859
|
size = "md",
|
|
540
860
|
numeric,
|
|
861
|
+
isClearable,
|
|
862
|
+
clearLabel,
|
|
541
863
|
fullWidth = true,
|
|
542
864
|
className,
|
|
543
865
|
style,
|
|
@@ -545,18 +867,30 @@ function Input({
|
|
|
545
867
|
onChange,
|
|
546
868
|
...rest
|
|
547
869
|
}) {
|
|
870
|
+
const msg = usePireMessages();
|
|
871
|
+
const isControlled = rest.value !== void 0;
|
|
872
|
+
const [ownValue, setOwnValue] = React6.useState(rest.defaultValue ?? "");
|
|
873
|
+
const currentValue = isControlled ? rest.value : ownValue;
|
|
874
|
+
const handleChange = (next) => {
|
|
875
|
+
setOwnValue(next);
|
|
876
|
+
onChange?.(next);
|
|
877
|
+
};
|
|
878
|
+
const takesOverValue = isClearable && !isControlled;
|
|
879
|
+
const valueProps = takesOverValue ? { value: ownValue, defaultValue: void 0 } : {};
|
|
880
|
+
const showsClear = isClearable && currentValue !== "" && !rest.isDisabled && !rest.isReadOnly;
|
|
548
881
|
return /* @__PURE__ */ jsxs10(
|
|
549
882
|
TextField,
|
|
550
883
|
{
|
|
551
884
|
className: cx("pire-field", className),
|
|
552
885
|
style,
|
|
553
|
-
onChange,
|
|
886
|
+
onChange: handleChange,
|
|
554
887
|
validationBehavior: "aria",
|
|
555
888
|
...rest,
|
|
889
|
+
...valueProps,
|
|
556
890
|
children: [
|
|
557
891
|
label ? /* @__PURE__ */ jsxs10(Label, { className: "pire-field-label", children: [
|
|
558
892
|
label,
|
|
559
|
-
rest.isRequired ? /* @__PURE__ */
|
|
893
|
+
rest.isRequired ? /* @__PURE__ */ jsx17("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
560
894
|
] }) : null,
|
|
561
895
|
/* @__PURE__ */ jsxs10(
|
|
562
896
|
Group,
|
|
@@ -567,24 +901,25 @@ function Input({
|
|
|
567
901
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
568
902
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
569
903
|
children: [
|
|
570
|
-
icon ? /* @__PURE__ */
|
|
571
|
-
/* @__PURE__ */
|
|
572
|
-
|
|
904
|
+
icon ? /* @__PURE__ */ jsx17(Icon, { name: icon, size: 16, className: "pire-leading-icon" }) : null,
|
|
905
|
+
/* @__PURE__ */ jsx17(AriaInput, { ref: inputRef, className: "pire-input", "data-numeric": numeric ? "true" : void 0 }),
|
|
906
|
+
showsClear ? /* @__PURE__ */ jsx17(AriaButton4, { className: "pire-input-clear", onPress: () => handleChange(""), children: clearLabel ?? msg.inputClear }) : null,
|
|
907
|
+
suffix ? /* @__PURE__ */ jsx17("span", { className: "pire-affix", children: suffix }) : null
|
|
573
908
|
]
|
|
574
909
|
}
|
|
575
910
|
),
|
|
576
|
-
description ? /* @__PURE__ */
|
|
577
|
-
/* @__PURE__ */
|
|
911
|
+
description ? /* @__PURE__ */ jsx17(Text2, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
912
|
+
/* @__PURE__ */ jsx17(FieldError, { className: "pire-field-error", children: errorMessage })
|
|
578
913
|
]
|
|
579
914
|
}
|
|
580
915
|
);
|
|
581
916
|
}
|
|
582
917
|
|
|
583
918
|
// src/components/forms/TextArea.tsx
|
|
584
|
-
import * as
|
|
919
|
+
import * as React7 from "react";
|
|
585
920
|
import { TextField as TextField2, Label as Label2, TextArea as AriaTextArea, Group as Group2, Text as Text3, FieldError as FieldError2 } from "react-aria-components";
|
|
586
|
-
import { jsx as
|
|
587
|
-
var useIsomorphicLayoutEffect = typeof document === "undefined" ?
|
|
921
|
+
import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
922
|
+
var useIsomorphicLayoutEffect = typeof document === "undefined" ? React7.useEffect : React7.useLayoutEffect;
|
|
588
923
|
function TextArea({
|
|
589
924
|
label,
|
|
590
925
|
description,
|
|
@@ -600,13 +935,13 @@ function TextArea({
|
|
|
600
935
|
onChange,
|
|
601
936
|
...rest
|
|
602
937
|
}) {
|
|
603
|
-
const innerRef =
|
|
604
|
-
const ref =
|
|
938
|
+
const innerRef = React7.useRef(null);
|
|
939
|
+
const ref = React7.useCallback((node) => {
|
|
605
940
|
innerRef.current = node;
|
|
606
941
|
if (typeof textAreaRef === "function") textAreaRef(node);
|
|
607
942
|
else if (textAreaRef) textAreaRef.current = node;
|
|
608
943
|
}, [textAreaRef]);
|
|
609
|
-
const grow =
|
|
944
|
+
const grow = React7.useCallback(() => {
|
|
610
945
|
const el = innerRef.current;
|
|
611
946
|
if (!el || !autoGrow) return;
|
|
612
947
|
const styles = getComputedStyle(el);
|
|
@@ -635,9 +970,9 @@ function TextArea({
|
|
|
635
970
|
children: [
|
|
636
971
|
label ? /* @__PURE__ */ jsxs11(Label2, { className: "pire-field-label", children: [
|
|
637
972
|
label,
|
|
638
|
-
rest.isRequired ? /* @__PURE__ */
|
|
973
|
+
rest.isRequired ? /* @__PURE__ */ jsx18("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
639
974
|
] }) : null,
|
|
640
|
-
/* @__PURE__ */
|
|
975
|
+
/* @__PURE__ */ jsx18(
|
|
641
976
|
Group2,
|
|
642
977
|
{
|
|
643
978
|
className: "pire-control",
|
|
@@ -646,7 +981,7 @@ function TextArea({
|
|
|
646
981
|
"data-multiline": "true",
|
|
647
982
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
648
983
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
649
|
-
children: /* @__PURE__ */
|
|
984
|
+
children: /* @__PURE__ */ jsx18(
|
|
650
985
|
AriaTextArea,
|
|
651
986
|
{
|
|
652
987
|
ref,
|
|
@@ -658,8 +993,8 @@ function TextArea({
|
|
|
658
993
|
)
|
|
659
994
|
}
|
|
660
995
|
),
|
|
661
|
-
description ? /* @__PURE__ */
|
|
662
|
-
/* @__PURE__ */
|
|
996
|
+
description ? /* @__PURE__ */ jsx18(Text3, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
997
|
+
/* @__PURE__ */ jsx18(FieldError2, { className: "pire-field-error", children: errorMessage })
|
|
663
998
|
]
|
|
664
999
|
}
|
|
665
1000
|
);
|
|
@@ -669,7 +1004,7 @@ function TextArea({
|
|
|
669
1004
|
import {
|
|
670
1005
|
Select as AriaSelect,
|
|
671
1006
|
Label as Label3,
|
|
672
|
-
Button as
|
|
1007
|
+
Button as AriaButton5,
|
|
673
1008
|
SelectValue,
|
|
674
1009
|
Popover,
|
|
675
1010
|
ListBox,
|
|
@@ -677,114 +1012,7 @@ import {
|
|
|
677
1012
|
Text as Text4,
|
|
678
1013
|
FieldError as FieldError3
|
|
679
1014
|
} from "react-aria-components";
|
|
680
|
-
|
|
681
|
-
// src/i18n/PireIntlProvider.tsx
|
|
682
|
-
import * as React6 from "react";
|
|
683
|
-
|
|
684
|
-
// src/i18n/messages.ts
|
|
685
|
-
var enMessages = {
|
|
686
|
-
filterBarLabel: "Filters",
|
|
687
|
-
filterBarGo: "Go",
|
|
688
|
-
filterBarClearAll: "Clear all",
|
|
689
|
-
dataTableSelectAll: "Select all rows",
|
|
690
|
-
dataTableSelectRow: "Select row",
|
|
691
|
-
dataTableLoading: "Loading records",
|
|
692
|
-
dialogClose: "Close",
|
|
693
|
-
sidePanelClose: "Close panel",
|
|
694
|
-
inlineMessageDismiss: "Dismiss message",
|
|
695
|
-
toastDismiss: "Dismiss",
|
|
696
|
-
toastRegionLabel: "Notifications",
|
|
697
|
-
selectEmpty: "No options available",
|
|
698
|
-
comboBoxShowSuggestions: "Show suggestions",
|
|
699
|
-
comboBoxLoading: "Searching\u2026",
|
|
700
|
-
datePickerOpenCalendar: "Open calendar",
|
|
701
|
-
datePickerPreviousMonth: "Previous month",
|
|
702
|
-
datePickerNextMonth: "Next month",
|
|
703
|
-
dateRangePresetsLabel: "Date range shortcuts",
|
|
704
|
-
numberFieldIncrease: "Increase",
|
|
705
|
-
numberFieldDecrease: "Decrease",
|
|
706
|
-
valueHelpFieldClear: "Clear selection",
|
|
707
|
-
valueHelpFieldOpenNamed: "Select {label}",
|
|
708
|
-
valueHelpFieldOpen: "Open value help",
|
|
709
|
-
valueHelpDialogSearch: "Search records",
|
|
710
|
-
valueHelpDialogCancel: "Cancel",
|
|
711
|
-
paginationLabel: "Pagination",
|
|
712
|
-
paginationRange: "{from}\u2013{to} of {total}",
|
|
713
|
-
paginationPageOf: "Page {page} of {pages}",
|
|
714
|
-
paginationPrevious: "Previous page",
|
|
715
|
-
paginationNext: "Next page",
|
|
716
|
-
paginationRowsPerPage: "Rows per page",
|
|
717
|
-
sideNavLabel: "Main navigation",
|
|
718
|
-
fileUploadChoose: "Choose files",
|
|
719
|
-
fileUploadRemoveNamed: "Remove {name}",
|
|
720
|
-
fileUploadUploading: "Uploading",
|
|
721
|
-
fileDropZonePrompt: "Drag files here, or choose them",
|
|
722
|
-
chartCategoryHeader: "Category",
|
|
723
|
-
chartNoValue: "No data",
|
|
724
|
-
chartEmpty: "No data for this period"
|
|
725
|
-
};
|
|
726
|
-
var esMessages = {
|
|
727
|
-
filterBarLabel: "Filtros",
|
|
728
|
-
filterBarGo: "Buscar",
|
|
729
|
-
filterBarClearAll: "Limpiar todo",
|
|
730
|
-
dataTableSelectAll: "Seleccionar todas las filas",
|
|
731
|
-
dataTableSelectRow: "Seleccionar fila",
|
|
732
|
-
dataTableLoading: "Cargando registros",
|
|
733
|
-
dialogClose: "Cerrar",
|
|
734
|
-
sidePanelClose: "Cerrar panel",
|
|
735
|
-
inlineMessageDismiss: "Descartar mensaje",
|
|
736
|
-
toastDismiss: "Descartar",
|
|
737
|
-
toastRegionLabel: "Notificaciones",
|
|
738
|
-
selectEmpty: "Sin opciones disponibles",
|
|
739
|
-
comboBoxShowSuggestions: "Mostrar sugerencias",
|
|
740
|
-
comboBoxLoading: "Buscando\u2026",
|
|
741
|
-
datePickerOpenCalendar: "Abrir calendario",
|
|
742
|
-
datePickerPreviousMonth: "Mes anterior",
|
|
743
|
-
datePickerNextMonth: "Mes siguiente",
|
|
744
|
-
dateRangePresetsLabel: "Atajos de rango de fechas",
|
|
745
|
-
numberFieldIncrease: "Aumentar",
|
|
746
|
-
numberFieldDecrease: "Disminuir",
|
|
747
|
-
valueHelpFieldClear: "Limpiar selecci\xF3n",
|
|
748
|
-
valueHelpFieldOpenNamed: "Seleccionar {label}",
|
|
749
|
-
valueHelpFieldOpen: "Abrir ayuda de valores",
|
|
750
|
-
valueHelpDialogSearch: "Buscar registros",
|
|
751
|
-
valueHelpDialogCancel: "Cancelar",
|
|
752
|
-
paginationLabel: "Paginaci\xF3n",
|
|
753
|
-
paginationRange: "{from}\u2013{to} de {total}",
|
|
754
|
-
paginationPageOf: "P\xE1gina {page} de {pages}",
|
|
755
|
-
paginationPrevious: "P\xE1gina anterior",
|
|
756
|
-
paginationNext: "P\xE1gina siguiente",
|
|
757
|
-
paginationRowsPerPage: "Filas por p\xE1gina",
|
|
758
|
-
sideNavLabel: "Navegaci\xF3n principal",
|
|
759
|
-
fileUploadChoose: "Elegir archivos",
|
|
760
|
-
fileUploadRemoveNamed: "Quitar {name}",
|
|
761
|
-
fileUploadUploading: "Subiendo",
|
|
762
|
-
fileDropZonePrompt: "Arrastr\xE1 archivos ac\xE1, o elegilos",
|
|
763
|
-
chartCategoryHeader: "Categor\xEDa",
|
|
764
|
-
chartNoValue: "Sin datos",
|
|
765
|
-
chartEmpty: "Sin datos para este per\xEDodo"
|
|
766
|
-
};
|
|
767
|
-
|
|
768
|
-
// src/i18n/PireIntlProvider.tsx
|
|
769
|
-
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
770
|
-
var MessagesContext = React6.createContext(enMessages);
|
|
771
|
-
function PireIntlProvider({ messages, children }) {
|
|
772
|
-
const value = React6.useMemo(
|
|
773
|
-
() => messages ? { ...enMessages, ...messages } : enMessages,
|
|
774
|
-
[messages]
|
|
775
|
-
);
|
|
776
|
-
return /* @__PURE__ */ jsx17(MessagesContext.Provider, { value, children });
|
|
777
|
-
}
|
|
778
|
-
function usePireMessages() {
|
|
779
|
-
return React6.useContext(MessagesContext);
|
|
780
|
-
}
|
|
781
|
-
function useMessage(key, override) {
|
|
782
|
-
const messages = React6.useContext(MessagesContext);
|
|
783
|
-
return override ?? messages[key];
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
// src/components/forms/Select.tsx
|
|
787
|
-
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1015
|
+
import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
788
1016
|
var norm = (o) => typeof o === "string" ? { value: o, label: o, isDisabled: false } : o;
|
|
789
1017
|
function Select({
|
|
790
1018
|
label,
|
|
@@ -819,30 +1047,30 @@ function Select({
|
|
|
819
1047
|
children: [
|
|
820
1048
|
label ? /* @__PURE__ */ jsxs12(Label3, { className: "pire-field-label", children: [
|
|
821
1049
|
label,
|
|
822
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1050
|
+
rest.isRequired ? /* @__PURE__ */ jsx19("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
823
1051
|
] }) : null,
|
|
824
1052
|
/* @__PURE__ */ jsxs12(
|
|
825
|
-
|
|
1053
|
+
AriaButton5,
|
|
826
1054
|
{
|
|
827
1055
|
className: "pire-control",
|
|
828
1056
|
"data-size": size,
|
|
829
1057
|
"data-full-width": String(fullWidth),
|
|
830
1058
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
831
1059
|
children: [
|
|
832
|
-
/* @__PURE__ */
|
|
833
|
-
/* @__PURE__ */
|
|
1060
|
+
/* @__PURE__ */ jsx19(SelectValue, { className: "pire-select-value" }),
|
|
1061
|
+
/* @__PURE__ */ jsx19(Icon, { name: "chevron-down", size: 16, className: "pire-leading-icon" })
|
|
834
1062
|
]
|
|
835
1063
|
}
|
|
836
1064
|
),
|
|
837
|
-
description ? /* @__PURE__ */
|
|
838
|
-
/* @__PURE__ */
|
|
839
|
-
/* @__PURE__ */
|
|
1065
|
+
description ? /* @__PURE__ */ jsx19(Text4, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1066
|
+
/* @__PURE__ */ jsx19(FieldError3, { className: "pire-field-error", children: errorMessage }),
|
|
1067
|
+
/* @__PURE__ */ jsx19(Popover, { className: "pire-popover", children: /* @__PURE__ */ jsx19(
|
|
840
1068
|
ListBox,
|
|
841
1069
|
{
|
|
842
1070
|
className: "pire-listbox",
|
|
843
1071
|
items,
|
|
844
|
-
renderEmptyState: () => /* @__PURE__ */
|
|
845
|
-
children: (item) => /* @__PURE__ */
|
|
1072
|
+
renderEmptyState: () => /* @__PURE__ */ jsx19("div", { className: "pire-listbox-status", role: "status", "aria-live": "polite", children: emptyLabel ?? msg.selectEmpty }),
|
|
1073
|
+
children: (item) => /* @__PURE__ */ jsx19(ListBoxItem, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: item.label })
|
|
846
1074
|
}
|
|
847
1075
|
) })
|
|
848
1076
|
]
|
|
@@ -852,13 +1080,13 @@ function Select({
|
|
|
852
1080
|
|
|
853
1081
|
// src/components/forms/Checkbox.tsx
|
|
854
1082
|
import { Checkbox as AriaCheckbox } from "react-aria-components";
|
|
855
|
-
import { Fragment, jsx as
|
|
1083
|
+
import { Fragment, jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
856
1084
|
function Checkbox({ label, hint, children, className, ...rest }) {
|
|
857
|
-
return /* @__PURE__ */
|
|
858
|
-
/* @__PURE__ */
|
|
1085
|
+
return /* @__PURE__ */ jsx20(AriaCheckbox, { className: cx("pire-choice", className), ...rest, children: ({ isSelected, isIndeterminate }) => /* @__PURE__ */ jsxs13(Fragment, { children: [
|
|
1086
|
+
/* @__PURE__ */ jsx20("span", { className: "pire-choice-box", "aria-hidden": "true", children: isIndeterminate ? /* @__PURE__ */ jsx20(Icon, { name: "minus", size: 12 }) : isSelected ? /* @__PURE__ */ jsx20(Icon, { name: "check", size: 12 }) : null }),
|
|
859
1087
|
/* @__PURE__ */ jsxs13("span", { children: [
|
|
860
1088
|
label ?? children,
|
|
861
|
-
hint ? /* @__PURE__ */
|
|
1089
|
+
hint ? /* @__PURE__ */ jsx20("span", { className: "pire-choice-hint", children: hint }) : null
|
|
862
1090
|
] })
|
|
863
1091
|
] }) });
|
|
864
1092
|
}
|
|
@@ -871,32 +1099,32 @@ import {
|
|
|
871
1099
|
Text as Text5,
|
|
872
1100
|
FieldError as FieldError4
|
|
873
1101
|
} from "react-aria-components";
|
|
874
|
-
import { jsx as
|
|
1102
|
+
import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
875
1103
|
function RadioGroup({ label, description, errorMessage, children, className, ...rest }) {
|
|
876
1104
|
return /* @__PURE__ */ jsxs14(AriaRadioGroup, { className: cx("pire-field", className), validationBehavior: "aria", ...rest, children: [
|
|
877
|
-
label ? /* @__PURE__ */
|
|
878
|
-
/* @__PURE__ */
|
|
879
|
-
description ? /* @__PURE__ */
|
|
880
|
-
/* @__PURE__ */
|
|
1105
|
+
label ? /* @__PURE__ */ jsx21(Label4, { className: "pire-field-label", children: label }) : null,
|
|
1106
|
+
/* @__PURE__ */ jsx21("div", { className: "pire-radiogroup", children }),
|
|
1107
|
+
description ? /* @__PURE__ */ jsx21(Text5, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1108
|
+
/* @__PURE__ */ jsx21(FieldError4, { className: "pire-field-error", children: errorMessage })
|
|
881
1109
|
] });
|
|
882
1110
|
}
|
|
883
1111
|
function Radio({ label, hint, children, className, ...rest }) {
|
|
884
1112
|
return /* @__PURE__ */ jsxs14(AriaRadio, { className: cx("pire-choice", className), ...rest, children: [
|
|
885
|
-
/* @__PURE__ */
|
|
1113
|
+
/* @__PURE__ */ jsx21("span", { className: "pire-choice-box", "data-radio": "true", "aria-hidden": "true" }),
|
|
886
1114
|
/* @__PURE__ */ jsxs14("span", { children: [
|
|
887
1115
|
label ?? children,
|
|
888
|
-
hint ? /* @__PURE__ */
|
|
1116
|
+
hint ? /* @__PURE__ */ jsx21("span", { className: "pire-choice-hint", children: hint }) : null
|
|
889
1117
|
] })
|
|
890
1118
|
] });
|
|
891
1119
|
}
|
|
892
1120
|
|
|
893
1121
|
// src/components/forms/Switch.tsx
|
|
894
1122
|
import { Switch as AriaSwitch } from "react-aria-components";
|
|
895
|
-
import { jsx as
|
|
1123
|
+
import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
896
1124
|
function Switch({ label, children, className, ...rest }) {
|
|
897
1125
|
return /* @__PURE__ */ jsxs15(AriaSwitch, { className: cx("pire-choice", className), ...rest, children: [
|
|
898
|
-
/* @__PURE__ */
|
|
899
|
-
/* @__PURE__ */
|
|
1126
|
+
/* @__PURE__ */ jsx22("span", { className: "pire-switch-track", "aria-hidden": "true", children: /* @__PURE__ */ jsx22("span", { className: "pire-switch-thumb" }) }),
|
|
1127
|
+
/* @__PURE__ */ jsx22("span", { children: label ?? children })
|
|
900
1128
|
] });
|
|
901
1129
|
}
|
|
902
1130
|
|
|
@@ -905,7 +1133,7 @@ import {
|
|
|
905
1133
|
ComboBox as AriaComboBox,
|
|
906
1134
|
Label as Label5,
|
|
907
1135
|
Input as AriaInput2,
|
|
908
|
-
Button as
|
|
1136
|
+
Button as AriaButton6,
|
|
909
1137
|
Group as Group3,
|
|
910
1138
|
Popover as Popover2,
|
|
911
1139
|
ListBox as ListBox2,
|
|
@@ -913,7 +1141,7 @@ import {
|
|
|
913
1141
|
Text as Text6,
|
|
914
1142
|
FieldError as FieldError5
|
|
915
1143
|
} from "react-aria-components";
|
|
916
|
-
import { jsx as
|
|
1144
|
+
import { jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
917
1145
|
var norm2 = (o) => typeof o === "string" ? { value: o, label: o } : o;
|
|
918
1146
|
function ComboBox({
|
|
919
1147
|
label,
|
|
@@ -961,7 +1189,7 @@ function ComboBox({
|
|
|
961
1189
|
children: [
|
|
962
1190
|
label ? /* @__PURE__ */ jsxs16(Label5, { className: "pire-field-label", children: [
|
|
963
1191
|
label,
|
|
964
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1192
|
+
rest.isRequired ? /* @__PURE__ */ jsx23("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
965
1193
|
] }) : null,
|
|
966
1194
|
/* @__PURE__ */ jsxs16(
|
|
967
1195
|
Group3,
|
|
@@ -971,15 +1199,15 @@ function ComboBox({
|
|
|
971
1199
|
"data-full-width": String(fullWidth),
|
|
972
1200
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
973
1201
|
children: [
|
|
974
|
-
/* @__PURE__ */
|
|
975
|
-
/* @__PURE__ */
|
|
976
|
-
/* @__PURE__ */
|
|
1202
|
+
/* @__PURE__ */ jsx23(Icon, { name: "search", size: 16, className: "pire-leading-icon" }),
|
|
1203
|
+
/* @__PURE__ */ jsx23(AriaInput2, { className: "pire-input", placeholder: rest.placeholder }),
|
|
1204
|
+
/* @__PURE__ */ jsx23(AriaButton6, { className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.comboBoxShowSuggestions, style: { width: 20, height: 20 }, children: /* @__PURE__ */ jsx23(Icon, { name: "chevron-down", size: 16 }) })
|
|
977
1205
|
]
|
|
978
1206
|
}
|
|
979
1207
|
),
|
|
980
|
-
description ? /* @__PURE__ */
|
|
981
|
-
/* @__PURE__ */
|
|
982
|
-
/* @__PURE__ */
|
|
1208
|
+
description ? /* @__PURE__ */ jsx23(Text6, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1209
|
+
/* @__PURE__ */ jsx23(FieldError5, { className: "pire-field-error", children: errorMessage }),
|
|
1210
|
+
/* @__PURE__ */ jsx23(Popover2, { className: "pire-popover", children: /* @__PURE__ */ jsx23(
|
|
983
1211
|
ListBox2,
|
|
984
1212
|
{
|
|
985
1213
|
className: "pire-listbox",
|
|
@@ -987,10 +1215,10 @@ function ComboBox({
|
|
|
987
1215
|
const el = e.currentTarget;
|
|
988
1216
|
if (el.scrollHeight - el.scrollTop - el.clientHeight < 48) onLoadMore();
|
|
989
1217
|
} : void 0,
|
|
990
|
-
renderEmptyState: showsStatus ? () => /* @__PURE__ */
|
|
1218
|
+
renderEmptyState: showsStatus ? () => /* @__PURE__ */ jsx23("div", { className: "pire-listbox-status", role: "status", "aria-live": "polite", children: isLoading ? loadingLabel ?? msg.comboBoxLoading : emptyLabel }) : void 0,
|
|
991
1219
|
children: (item) => /* @__PURE__ */ jsxs16(ListBoxItem2, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: [
|
|
992
|
-
/* @__PURE__ */
|
|
993
|
-
item.secondary ? /* @__PURE__ */
|
|
1220
|
+
/* @__PURE__ */ jsx23("span", { className: "pire-option-label", children: item.label }),
|
|
1221
|
+
item.secondary ? /* @__PURE__ */ jsx23("span", { className: "pire-option-secondary", children: item.secondary }) : null
|
|
994
1222
|
] })
|
|
995
1223
|
}
|
|
996
1224
|
) })
|
|
@@ -1000,12 +1228,12 @@ function ComboBox({
|
|
|
1000
1228
|
}
|
|
1001
1229
|
|
|
1002
1230
|
// src/components/forms/MultiComboBox.tsx
|
|
1003
|
-
import * as
|
|
1231
|
+
import * as React8 from "react";
|
|
1004
1232
|
import {
|
|
1005
1233
|
ComboBox as AriaComboBox2,
|
|
1006
1234
|
Label as Label6,
|
|
1007
1235
|
Input as AriaInput3,
|
|
1008
|
-
Button as
|
|
1236
|
+
Button as AriaButton7,
|
|
1009
1237
|
ButtonContext,
|
|
1010
1238
|
Group as Group4,
|
|
1011
1239
|
Popover as Popover3,
|
|
@@ -1015,7 +1243,7 @@ import {
|
|
|
1015
1243
|
FieldError as FieldError6,
|
|
1016
1244
|
VisuallyHidden
|
|
1017
1245
|
} from "react-aria-components";
|
|
1018
|
-
import { jsx as
|
|
1246
|
+
import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1019
1247
|
var norm3 = (o) => typeof o === "string" ? { value: o, label: o } : o;
|
|
1020
1248
|
function MultiComboBox({
|
|
1021
1249
|
label,
|
|
@@ -1039,15 +1267,15 @@ function MultiComboBox({
|
|
|
1039
1267
|
...rest
|
|
1040
1268
|
}) {
|
|
1041
1269
|
const msg = usePireMessages();
|
|
1042
|
-
const items =
|
|
1270
|
+
const items = React8.useMemo(() => options.map(norm3), [options]);
|
|
1043
1271
|
const collection = isFilteredExternally ? { items } : { defaultItems: items };
|
|
1044
1272
|
const showsStatus = isLoading || isFilteredExternally && items.length === 0 && emptyLabel != null;
|
|
1045
|
-
const [uncontrolled, setUncontrolled] =
|
|
1046
|
-
const [announcement, setAnnouncement] =
|
|
1047
|
-
const inputRef =
|
|
1273
|
+
const [uncontrolled, setUncontrolled] = React8.useState(defaultValue ?? []);
|
|
1274
|
+
const [announcement, setAnnouncement] = React8.useState("");
|
|
1275
|
+
const inputRef = React8.useRef(null);
|
|
1048
1276
|
const raw = value ?? uncontrolled;
|
|
1049
1277
|
const contentKey = raw.join("\0");
|
|
1050
|
-
const values =
|
|
1278
|
+
const values = React8.useMemo(() => raw, [contentKey]);
|
|
1051
1279
|
const labelOf = (v) => items.find((o) => o.value === v)?.label ?? v;
|
|
1052
1280
|
const isEditable = !rest.isDisabled && !rest.isReadOnly;
|
|
1053
1281
|
const commit = (next) => {
|
|
@@ -1099,7 +1327,7 @@ function MultiComboBox({
|
|
|
1099
1327
|
children: [
|
|
1100
1328
|
label ? /* @__PURE__ */ jsxs17(Label6, { className: "pire-field-label", children: [
|
|
1101
1329
|
label,
|
|
1102
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1330
|
+
rest.isRequired ? /* @__PURE__ */ jsx24("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1103
1331
|
] }) : null,
|
|
1104
1332
|
/* @__PURE__ */ jsxs17(
|
|
1105
1333
|
Group4,
|
|
@@ -1111,14 +1339,14 @@ function MultiComboBox({
|
|
|
1111
1339
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1112
1340
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1113
1341
|
children: [
|
|
1114
|
-
/* @__PURE__ */
|
|
1342
|
+
/* @__PURE__ */ jsx24(Icon, { name: "search", size: 16, className: "pire-leading-icon" }),
|
|
1115
1343
|
/* @__PURE__ */ jsxs17("div", { className: "pire-chipfield", children: [
|
|
1116
|
-
/* @__PURE__ */
|
|
1344
|
+
/* @__PURE__ */ jsx24(ButtonContext.Provider, { value: null, children: values.map((v) => (
|
|
1117
1345
|
/* Disabled follows the field, not `isEditable`: a read-only field's chips are
|
|
1118
1346
|
real, current values and should read as such — they simply lose the × . */
|
|
1119
|
-
/* @__PURE__ */
|
|
1347
|
+
/* @__PURE__ */ jsx24(Tag, { isDisabled: rest.isDisabled, onRemove: isEditable ? () => remove(v) : void 0, children: labelOf(v) }, v)
|
|
1120
1348
|
)) }),
|
|
1121
|
-
/* @__PURE__ */
|
|
1349
|
+
/* @__PURE__ */ jsx24(
|
|
1122
1350
|
AriaInput3,
|
|
1123
1351
|
{
|
|
1124
1352
|
ref: inputRef,
|
|
@@ -1128,14 +1356,14 @@ function MultiComboBox({
|
|
|
1128
1356
|
}
|
|
1129
1357
|
)
|
|
1130
1358
|
] }),
|
|
1131
|
-
/* @__PURE__ */
|
|
1359
|
+
/* @__PURE__ */ jsx24(AriaButton7, { className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.comboBoxShowSuggestions, style: { width: 20, height: 20 }, children: /* @__PURE__ */ jsx24(Icon, { name: "chevron-down", size: 16 }) })
|
|
1132
1360
|
]
|
|
1133
1361
|
}
|
|
1134
1362
|
),
|
|
1135
|
-
/* @__PURE__ */
|
|
1136
|
-
description ? /* @__PURE__ */
|
|
1137
|
-
/* @__PURE__ */
|
|
1138
|
-
/* @__PURE__ */
|
|
1363
|
+
/* @__PURE__ */ jsx24(VisuallyHidden, { children: /* @__PURE__ */ jsx24("span", { "aria-live": "polite", children: announcement }) }),
|
|
1364
|
+
description ? /* @__PURE__ */ jsx24(Text7, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1365
|
+
/* @__PURE__ */ jsx24(FieldError6, { className: "pire-field-error", children: errorMessage }),
|
|
1366
|
+
/* @__PURE__ */ jsx24(Popover3, { className: "pire-popover", children: /* @__PURE__ */ jsx24(
|
|
1139
1367
|
ListBox3,
|
|
1140
1368
|
{
|
|
1141
1369
|
className: "pire-listbox",
|
|
@@ -1143,10 +1371,10 @@ function MultiComboBox({
|
|
|
1143
1371
|
const el = e.currentTarget;
|
|
1144
1372
|
if (el.scrollHeight - el.scrollTop - el.clientHeight < 48) onLoadMore();
|
|
1145
1373
|
} : void 0,
|
|
1146
|
-
renderEmptyState: showsStatus ? () => /* @__PURE__ */
|
|
1374
|
+
renderEmptyState: showsStatus ? () => /* @__PURE__ */ jsx24("div", { className: "pire-listbox-status", role: "status", "aria-live": "polite", children: isLoading ? loadingLabel ?? msg.comboBoxLoading : emptyLabel }) : void 0,
|
|
1147
1375
|
children: (item) => /* @__PURE__ */ jsxs17(ListBoxItem3, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: [
|
|
1148
|
-
/* @__PURE__ */
|
|
1149
|
-
item.secondary ? /* @__PURE__ */
|
|
1376
|
+
/* @__PURE__ */ jsx24("span", { className: "pire-option-label", children: item.label }),
|
|
1377
|
+
item.secondary ? /* @__PURE__ */ jsx24("span", { className: "pire-option-secondary", children: item.secondary }) : null
|
|
1150
1378
|
] })
|
|
1151
1379
|
}
|
|
1152
1380
|
) })
|
|
@@ -1161,11 +1389,11 @@ import {
|
|
|
1161
1389
|
Label as Label7,
|
|
1162
1390
|
Input as AriaInput4,
|
|
1163
1391
|
Group as Group5,
|
|
1164
|
-
Button as
|
|
1392
|
+
Button as AriaButton8,
|
|
1165
1393
|
Text as Text8,
|
|
1166
1394
|
FieldError as FieldError7
|
|
1167
1395
|
} from "react-aria-components";
|
|
1168
|
-
import { jsx as
|
|
1396
|
+
import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1169
1397
|
function NumberField({
|
|
1170
1398
|
label,
|
|
1171
1399
|
suffix,
|
|
@@ -1182,7 +1410,7 @@ function NumberField({
|
|
|
1182
1410
|
return /* @__PURE__ */ jsxs18(AriaNumberField, { className: cx("pire-field", className), style, validationBehavior: "aria", ...rest, children: [
|
|
1183
1411
|
label ? /* @__PURE__ */ jsxs18(Label7, { className: "pire-field-label", children: [
|
|
1184
1412
|
label,
|
|
1185
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1413
|
+
rest.isRequired ? /* @__PURE__ */ jsx25("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1186
1414
|
] }) : null,
|
|
1187
1415
|
/* @__PURE__ */ jsxs18(
|
|
1188
1416
|
Group5,
|
|
@@ -1193,17 +1421,17 @@ function NumberField({
|
|
|
1193
1421
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1194
1422
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1195
1423
|
children: [
|
|
1196
|
-
/* @__PURE__ */
|
|
1197
|
-
suffix ? /* @__PURE__ */
|
|
1424
|
+
/* @__PURE__ */ jsx25(AriaInput4, { className: "pire-input", "data-numeric": "true" }),
|
|
1425
|
+
suffix ? /* @__PURE__ */ jsx25("span", { className: "pire-affix", children: suffix }) : null,
|
|
1198
1426
|
hideStepper ? null : /* @__PURE__ */ jsxs18("span", { className: "pire-stepper", children: [
|
|
1199
|
-
/* @__PURE__ */
|
|
1200
|
-
/* @__PURE__ */
|
|
1427
|
+
/* @__PURE__ */ jsx25(AriaButton8, { slot: "increment", className: "pire-stepper-btn", "aria-label": msg.numberFieldIncrease, children: /* @__PURE__ */ jsx25(Icon, { name: "plus", size: 10 }) }),
|
|
1428
|
+
/* @__PURE__ */ jsx25(AriaButton8, { slot: "decrement", className: "pire-stepper-btn", "aria-label": msg.numberFieldDecrease, children: /* @__PURE__ */ jsx25(Icon, { name: "minus", size: 10 }) })
|
|
1201
1429
|
] })
|
|
1202
1430
|
]
|
|
1203
1431
|
}
|
|
1204
1432
|
),
|
|
1205
|
-
description ? /* @__PURE__ */
|
|
1206
|
-
/* @__PURE__ */
|
|
1433
|
+
description ? /* @__PURE__ */ jsx25(Text8, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1434
|
+
/* @__PURE__ */ jsx25(FieldError7, { className: "pire-field-error", children: errorMessage })
|
|
1207
1435
|
] });
|
|
1208
1436
|
}
|
|
1209
1437
|
|
|
@@ -1214,7 +1442,7 @@ import {
|
|
|
1214
1442
|
Group as Group6,
|
|
1215
1443
|
DateInput,
|
|
1216
1444
|
DateSegment,
|
|
1217
|
-
Button as
|
|
1445
|
+
Button as AriaButton9,
|
|
1218
1446
|
Popover as Popover4,
|
|
1219
1447
|
Dialog as AriaDialog,
|
|
1220
1448
|
Calendar,
|
|
@@ -1227,7 +1455,7 @@ import {
|
|
|
1227
1455
|
Text as Text9,
|
|
1228
1456
|
FieldError as FieldError8
|
|
1229
1457
|
} from "react-aria-components";
|
|
1230
|
-
import { jsx as
|
|
1458
|
+
import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1231
1459
|
function DatePicker({
|
|
1232
1460
|
label,
|
|
1233
1461
|
description,
|
|
@@ -1242,7 +1470,7 @@ function DatePicker({
|
|
|
1242
1470
|
return /* @__PURE__ */ jsxs19(AriaDatePicker, { className: cx("pire-field", className), style, validationBehavior: "aria", ...rest, children: [
|
|
1243
1471
|
label ? /* @__PURE__ */ jsxs19(Label8, { className: "pire-field-label", children: [
|
|
1244
1472
|
label,
|
|
1245
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1473
|
+
rest.isRequired ? /* @__PURE__ */ jsx26("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1246
1474
|
] }) : null,
|
|
1247
1475
|
/* @__PURE__ */ jsxs19(
|
|
1248
1476
|
Group6,
|
|
@@ -1253,22 +1481,22 @@ function DatePicker({
|
|
|
1253
1481
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1254
1482
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1255
1483
|
children: [
|
|
1256
|
-
/* @__PURE__ */
|
|
1257
|
-
/* @__PURE__ */
|
|
1484
|
+
/* @__PURE__ */ jsx26(DateInput, { className: "pire-datefield", children: (segment) => /* @__PURE__ */ jsx26(DateSegment, { segment, className: "pire-datesegment" }) }),
|
|
1485
|
+
/* @__PURE__ */ jsx26(AriaButton9, { className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.datePickerOpenCalendar, style: { width: 24, height: 24 }, children: /* @__PURE__ */ jsx26(Icon, { name: "calendar", size: 16 }) })
|
|
1258
1486
|
]
|
|
1259
1487
|
}
|
|
1260
1488
|
),
|
|
1261
|
-
description ? /* @__PURE__ */
|
|
1262
|
-
/* @__PURE__ */
|
|
1263
|
-
/* @__PURE__ */
|
|
1489
|
+
description ? /* @__PURE__ */ jsx26(Text9, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1490
|
+
/* @__PURE__ */ jsx26(FieldError8, { className: "pire-field-error", children: errorMessage }),
|
|
1491
|
+
/* @__PURE__ */ jsx26(Popover4, { className: "pire-popover", children: /* @__PURE__ */ jsx26(AriaDialog, { children: /* @__PURE__ */ jsxs19(Calendar, { className: "pire-calendar", children: [
|
|
1264
1492
|
/* @__PURE__ */ jsxs19("header", { className: "pire-calendar-head", children: [
|
|
1265
|
-
/* @__PURE__ */
|
|
1266
|
-
/* @__PURE__ */
|
|
1267
|
-
/* @__PURE__ */
|
|
1493
|
+
/* @__PURE__ */ jsx26(AriaButton9, { slot: "previous", className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.datePickerPreviousMonth, children: /* @__PURE__ */ jsx26(Icon, { name: "chevron-left", size: 16 }) }),
|
|
1494
|
+
/* @__PURE__ */ jsx26(Heading2, { className: "pire-calendar-title" }),
|
|
1495
|
+
/* @__PURE__ */ jsx26(AriaButton9, { slot: "next", className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.datePickerNextMonth, children: /* @__PURE__ */ jsx26(Icon, { name: "chevron-right", size: 16 }) })
|
|
1268
1496
|
] }),
|
|
1269
1497
|
/* @__PURE__ */ jsxs19(CalendarGrid, { className: "pire-calendar-grid", children: [
|
|
1270
|
-
/* @__PURE__ */
|
|
1271
|
-
/* @__PURE__ */
|
|
1498
|
+
/* @__PURE__ */ jsx26(CalendarGridHeader, { children: (day) => /* @__PURE__ */ jsx26(CalendarHeaderCell, { children: day }) }),
|
|
1499
|
+
/* @__PURE__ */ jsx26(CalendarGridBody, { children: (date) => /* @__PURE__ */ jsx26(CalendarCell, { date, className: "pire-calendar-cell" }) })
|
|
1272
1500
|
] })
|
|
1273
1501
|
] }) }) })
|
|
1274
1502
|
] });
|
|
@@ -1281,7 +1509,7 @@ import {
|
|
|
1281
1509
|
Group as Group7,
|
|
1282
1510
|
DateInput as DateInput2,
|
|
1283
1511
|
DateSegment as DateSegment2,
|
|
1284
|
-
Button as
|
|
1512
|
+
Button as AriaButton10,
|
|
1285
1513
|
Popover as Popover5,
|
|
1286
1514
|
Dialog as AriaDialog2,
|
|
1287
1515
|
RangeCalendar,
|
|
@@ -1294,7 +1522,7 @@ import {
|
|
|
1294
1522
|
Text as Text10,
|
|
1295
1523
|
FieldError as FieldError9
|
|
1296
1524
|
} from "react-aria-components";
|
|
1297
|
-
import { jsx as
|
|
1525
|
+
import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1298
1526
|
function rangeLengthInDays(range) {
|
|
1299
1527
|
return range.end.toDate("UTC").getTime() / 864e5 - range.start.toDate("UTC").getTime() / 864e5 + 1;
|
|
1300
1528
|
}
|
|
@@ -1328,7 +1556,7 @@ function DateRangePicker({
|
|
|
1328
1556
|
children: [
|
|
1329
1557
|
label ? /* @__PURE__ */ jsxs20(Label9, { className: "pire-field-label", children: [
|
|
1330
1558
|
label,
|
|
1331
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1559
|
+
rest.isRequired ? /* @__PURE__ */ jsx27("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1332
1560
|
] }) : null,
|
|
1333
1561
|
/* @__PURE__ */ jsxs20(
|
|
1334
1562
|
Group7,
|
|
@@ -1339,30 +1567,30 @@ function DateRangePicker({
|
|
|
1339
1567
|
"data-invalid": rest.isInvalid || tooLong ? "true" : void 0,
|
|
1340
1568
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1341
1569
|
children: [
|
|
1342
|
-
/* @__PURE__ */
|
|
1343
|
-
/* @__PURE__ */
|
|
1344
|
-
/* @__PURE__ */
|
|
1345
|
-
/* @__PURE__ */
|
|
1346
|
-
|
|
1570
|
+
/* @__PURE__ */ jsx27(DateInput2, { slot: "start", className: "pire-datefield", children: (segment) => /* @__PURE__ */ jsx27(DateSegment2, { segment, className: "pire-datesegment" }) }),
|
|
1571
|
+
/* @__PURE__ */ jsx27("span", { "aria-hidden": "true", className: "pire-daterange-dash", children: "\u2013" }),
|
|
1572
|
+
/* @__PURE__ */ jsx27(DateInput2, { slot: "end", className: "pire-datefield", children: (segment) => /* @__PURE__ */ jsx27(DateSegment2, { segment, className: "pire-datesegment" }) }),
|
|
1573
|
+
/* @__PURE__ */ jsx27(
|
|
1574
|
+
AriaButton10,
|
|
1347
1575
|
{
|
|
1348
1576
|
className: "pire-iconbtn",
|
|
1349
1577
|
"data-size": "sm",
|
|
1350
1578
|
"aria-label": msg.datePickerOpenCalendar,
|
|
1351
1579
|
style: { width: 24, height: 24 },
|
|
1352
|
-
children: /* @__PURE__ */
|
|
1580
|
+
children: /* @__PURE__ */ jsx27(Icon, { name: "calendar", size: 16 })
|
|
1353
1581
|
}
|
|
1354
1582
|
)
|
|
1355
1583
|
]
|
|
1356
1584
|
}
|
|
1357
1585
|
),
|
|
1358
|
-
description ? /* @__PURE__ */
|
|
1359
|
-
/* @__PURE__ */
|
|
1360
|
-
/* @__PURE__ */
|
|
1586
|
+
description ? /* @__PURE__ */ jsx27(Text10, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1587
|
+
/* @__PURE__ */ jsx27(FieldError9, { className: "pire-field-error", children: errorMessage }),
|
|
1588
|
+
/* @__PURE__ */ jsx27(Popover5, { className: "pire-popover", children: /* @__PURE__ */ jsxs20(AriaDialog2, { className: "pire-daterange-dialog", children: [
|
|
1361
1589
|
presets?.length ? (
|
|
1362
1590
|
// Before the calendar in the DOM, so keyboard users reach the shortcut without
|
|
1363
1591
|
// arrowing through a month first.
|
|
1364
|
-
/* @__PURE__ */
|
|
1365
|
-
|
|
1592
|
+
/* @__PURE__ */ jsx27("div", { className: "pire-daterange-presets", role: "group", "aria-label": msg.dateRangePresetsLabel, children: presets.map((preset) => /* @__PURE__ */ jsx27(
|
|
1593
|
+
AriaButton10,
|
|
1366
1594
|
{
|
|
1367
1595
|
className: "pire-daterange-preset",
|
|
1368
1596
|
onPress: () => rest.onChange?.(preset.range()),
|
|
@@ -1373,31 +1601,31 @@ function DateRangePicker({
|
|
|
1373
1601
|
) : null,
|
|
1374
1602
|
/* @__PURE__ */ jsxs20(RangeCalendar, { className: "pire-calendar", children: [
|
|
1375
1603
|
/* @__PURE__ */ jsxs20("header", { className: "pire-calendar-head", children: [
|
|
1376
|
-
/* @__PURE__ */
|
|
1377
|
-
|
|
1604
|
+
/* @__PURE__ */ jsx27(
|
|
1605
|
+
AriaButton10,
|
|
1378
1606
|
{
|
|
1379
1607
|
slot: "previous",
|
|
1380
1608
|
className: "pire-iconbtn",
|
|
1381
1609
|
"data-size": "sm",
|
|
1382
1610
|
"aria-label": msg.datePickerPreviousMonth,
|
|
1383
|
-
children: /* @__PURE__ */
|
|
1611
|
+
children: /* @__PURE__ */ jsx27(Icon, { name: "chevron-left", size: 16 })
|
|
1384
1612
|
}
|
|
1385
1613
|
),
|
|
1386
|
-
/* @__PURE__ */
|
|
1387
|
-
/* @__PURE__ */
|
|
1388
|
-
|
|
1614
|
+
/* @__PURE__ */ jsx27(Heading3, { className: "pire-calendar-title" }),
|
|
1615
|
+
/* @__PURE__ */ jsx27(
|
|
1616
|
+
AriaButton10,
|
|
1389
1617
|
{
|
|
1390
1618
|
slot: "next",
|
|
1391
1619
|
className: "pire-iconbtn",
|
|
1392
1620
|
"data-size": "sm",
|
|
1393
1621
|
"aria-label": msg.datePickerNextMonth,
|
|
1394
|
-
children: /* @__PURE__ */
|
|
1622
|
+
children: /* @__PURE__ */ jsx27(Icon, { name: "chevron-right", size: 16 })
|
|
1395
1623
|
}
|
|
1396
1624
|
)
|
|
1397
1625
|
] }),
|
|
1398
1626
|
/* @__PURE__ */ jsxs20(CalendarGrid2, { className: "pire-calendar-grid", children: [
|
|
1399
|
-
/* @__PURE__ */
|
|
1400
|
-
/* @__PURE__ */
|
|
1627
|
+
/* @__PURE__ */ jsx27(CalendarGridHeader2, { children: (day) => /* @__PURE__ */ jsx27(CalendarHeaderCell2, { children: day }) }),
|
|
1628
|
+
/* @__PURE__ */ jsx27(CalendarGridBody2, { children: (date) => /* @__PURE__ */ jsx27(CalendarCell2, { date, className: "pire-calendar-cell" }) })
|
|
1401
1629
|
] })
|
|
1402
1630
|
] })
|
|
1403
1631
|
] }) })
|
|
@@ -1407,14 +1635,14 @@ function DateRangePicker({
|
|
|
1407
1635
|
}
|
|
1408
1636
|
|
|
1409
1637
|
// src/components/forms/ValueHelpField.tsx
|
|
1410
|
-
import * as
|
|
1638
|
+
import * as React10 from "react";
|
|
1411
1639
|
|
|
1412
1640
|
// src/components/patterns/ValueHelpDialog.tsx
|
|
1413
|
-
import * as
|
|
1641
|
+
import * as React9 from "react";
|
|
1414
1642
|
|
|
1415
1643
|
// src/components/feedback/Dialog.tsx
|
|
1416
1644
|
import { ModalOverlay, Modal, Dialog as AriaDialog3, Heading as Heading4 } from "react-aria-components";
|
|
1417
|
-
import { jsx as
|
|
1645
|
+
import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1418
1646
|
function Dialog({
|
|
1419
1647
|
isOpen,
|
|
1420
1648
|
onOpenChange,
|
|
@@ -1434,7 +1662,7 @@ function Dialog({
|
|
|
1434
1662
|
onClose?.();
|
|
1435
1663
|
onOpenChange?.(false);
|
|
1436
1664
|
};
|
|
1437
|
-
return /* @__PURE__ */
|
|
1665
|
+
return /* @__PURE__ */ jsx28(
|
|
1438
1666
|
ModalOverlay,
|
|
1439
1667
|
{
|
|
1440
1668
|
className: "pire-modal-overlay",
|
|
@@ -1443,16 +1671,16 @@ function Dialog({
|
|
|
1443
1671
|
onOpenChange: (o) => {
|
|
1444
1672
|
if (!o) close();
|
|
1445
1673
|
},
|
|
1446
|
-
children: /* @__PURE__ */
|
|
1674
|
+
children: /* @__PURE__ */ jsx28(Modal, { className: cx("pire-modal", className), "data-size": size, style, children: /* @__PURE__ */ jsxs21(AriaDialog3, { className: "pire-dialog", children: [
|
|
1447
1675
|
title ? /* @__PURE__ */ jsxs21("header", { className: "pire-dialog-head", children: [
|
|
1448
1676
|
/* @__PURE__ */ jsxs21("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
1449
|
-
/* @__PURE__ */
|
|
1450
|
-
subtitle ? /* @__PURE__ */
|
|
1677
|
+
/* @__PURE__ */ jsx28(Heading4, { slot: "title", className: "pire-dialog-title", children: title }),
|
|
1678
|
+
subtitle ? /* @__PURE__ */ jsx28("p", { className: "pire-dialog-sub", style: { margin: 0 }, children: subtitle }) : null
|
|
1451
1679
|
] }),
|
|
1452
|
-
showClose ? /* @__PURE__ */
|
|
1680
|
+
showClose ? /* @__PURE__ */ jsx28(IconButton, { icon: "x", label: msg.dialogClose, size: "sm", onPress: close }) : null
|
|
1453
1681
|
] }) : null,
|
|
1454
|
-
children ? /* @__PURE__ */
|
|
1455
|
-
footer ? /* @__PURE__ */
|
|
1682
|
+
children ? /* @__PURE__ */ jsx28("div", { className: "pire-dialog-body", children }) : null,
|
|
1683
|
+
footer ? /* @__PURE__ */ jsx28("footer", { className: "pire-dialog-foot", children: footer }) : null
|
|
1456
1684
|
] }) })
|
|
1457
1685
|
}
|
|
1458
1686
|
);
|
|
@@ -1469,9 +1697,9 @@ import {
|
|
|
1469
1697
|
} from "react-aria-components";
|
|
1470
1698
|
|
|
1471
1699
|
// src/components/feedback/Skeleton.tsx
|
|
1472
|
-
import { jsx as
|
|
1700
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1473
1701
|
function Skeleton({ shape = "text", width, height, className, style, ...rest }) {
|
|
1474
|
-
return /* @__PURE__ */
|
|
1702
|
+
return /* @__PURE__ */ jsx29(
|
|
1475
1703
|
"div",
|
|
1476
1704
|
{
|
|
1477
1705
|
className: cx("pire-skeleton", className),
|
|
@@ -1485,7 +1713,7 @@ function Skeleton({ shape = "text", width, height, className, style, ...rest })
|
|
|
1485
1713
|
var BAR_WIDTHS = ["72%", "54%", "86%", "63%"];
|
|
1486
1714
|
function SkeletonTableRow({ columns, density = "regular", className, style, ...rest }) {
|
|
1487
1715
|
const cells = typeof columns === "number" ? Array.from({ length: columns }, () => ({})) : columns;
|
|
1488
|
-
return /* @__PURE__ */
|
|
1716
|
+
return /* @__PURE__ */ jsx29(
|
|
1489
1717
|
"div",
|
|
1490
1718
|
{
|
|
1491
1719
|
className: cx("pire-skeleton-row", className),
|
|
@@ -1497,13 +1725,13 @@ function SkeletonTableRow({ columns, density = "regular", className, style, ...r
|
|
|
1497
1725
|
const align = c.numeric ? "right" : c.align ?? "left";
|
|
1498
1726
|
return (
|
|
1499
1727
|
// biome-ignore lint/suspicious/noArrayIndexKey: columns are positional and never reordered.
|
|
1500
|
-
/* @__PURE__ */
|
|
1728
|
+
/* @__PURE__ */ jsx29(
|
|
1501
1729
|
"div",
|
|
1502
1730
|
{
|
|
1503
1731
|
className: "pire-skeleton-cell",
|
|
1504
1732
|
"data-align": align,
|
|
1505
1733
|
style: { width: c.width, flex: c.width ? "0 0 auto" : void 0 },
|
|
1506
|
-
children: /* @__PURE__ */
|
|
1734
|
+
children: /* @__PURE__ */ jsx29(Skeleton, { width: BAR_WIDTHS[i % BAR_WIDTHS.length] })
|
|
1507
1735
|
},
|
|
1508
1736
|
i
|
|
1509
1737
|
)
|
|
@@ -1514,7 +1742,7 @@ function SkeletonTableRow({ columns, density = "regular", className, style, ...r
|
|
|
1514
1742
|
}
|
|
1515
1743
|
|
|
1516
1744
|
// src/components/data/DataTable.tsx
|
|
1517
|
-
import { jsx as
|
|
1745
|
+
import { jsx as jsx30, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1518
1746
|
function DataTable({
|
|
1519
1747
|
columns,
|
|
1520
1748
|
rows,
|
|
@@ -1546,7 +1774,7 @@ function DataTable({
|
|
|
1546
1774
|
...columns.map((c) => ({ width: c.width, align: c.align, numeric: c.numeric }))
|
|
1547
1775
|
];
|
|
1548
1776
|
const body = isLoading ? [] : rows;
|
|
1549
|
-
return /* @__PURE__ */
|
|
1777
|
+
return /* @__PURE__ */ jsx30(
|
|
1550
1778
|
"div",
|
|
1551
1779
|
{
|
|
1552
1780
|
className: cx("pire-table-wrap", className),
|
|
@@ -1571,8 +1799,8 @@ function DataTable({
|
|
|
1571
1799
|
} : void 0,
|
|
1572
1800
|
children: [
|
|
1573
1801
|
/* @__PURE__ */ jsxs22(TableHeader, { className: "pire-thead-row", children: [
|
|
1574
|
-
selectable ? /* @__PURE__ */
|
|
1575
|
-
columns.map((c, i) => /* @__PURE__ */
|
|
1802
|
+
selectable ? /* @__PURE__ */ jsx30(Column, { className: "pire-th", width: 44, children: /* @__PURE__ */ jsx30(Checkbox, { slot: "selection", "aria-label": msg.dataTableSelectAll }) }) : null,
|
|
1803
|
+
columns.map((c, i) => /* @__PURE__ */ jsx30(
|
|
1576
1804
|
Column,
|
|
1577
1805
|
{
|
|
1578
1806
|
id: c.key,
|
|
@@ -1584,7 +1812,7 @@ function DataTable({
|
|
|
1584
1812
|
"data-allows-sorting": c.sortable ? "true" : void 0,
|
|
1585
1813
|
children: /* @__PURE__ */ jsxs22("span", { className: "pire-th-inner", children: [
|
|
1586
1814
|
c.label,
|
|
1587
|
-
c.sortable ? /* @__PURE__ */
|
|
1815
|
+
c.sortable ? /* @__PURE__ */ jsx30(
|
|
1588
1816
|
Icon,
|
|
1589
1817
|
{
|
|
1590
1818
|
size: 12,
|
|
@@ -1597,15 +1825,15 @@ function DataTable({
|
|
|
1597
1825
|
c.key
|
|
1598
1826
|
))
|
|
1599
1827
|
] }),
|
|
1600
|
-
/* @__PURE__ */
|
|
1601
|
-
/* @__PURE__ */
|
|
1828
|
+
/* @__PURE__ */ jsx30(TableBody, { renderEmptyState: () => isLoading ? /* @__PURE__ */ jsxs22("div", { className: "pire-table-loading", role: "status", "aria-live": "polite", children: [
|
|
1829
|
+
/* @__PURE__ */ jsx30("span", { className: "pire-sr-only", children: loadingLabel ?? msg.dataTableLoading }),
|
|
1602
1830
|
Array.from({ length: skeletonRows }, (_, i) => (
|
|
1603
1831
|
// biome-ignore lint/suspicious/noArrayIndexKey: placeholder rows are positional.
|
|
1604
|
-
/* @__PURE__ */
|
|
1832
|
+
/* @__PURE__ */ jsx30(SkeletonTableRow, { columns: skeletonColumns, density }, i)
|
|
1605
1833
|
))
|
|
1606
|
-
] }) : /* @__PURE__ */
|
|
1607
|
-
selectable ? /* @__PURE__ */
|
|
1608
|
-
columns.map((c) => /* @__PURE__ */
|
|
1834
|
+
] }) : /* @__PURE__ */ jsx30("div", { className: "pire-table-empty", children: emptyLabel }), children: body.map((row) => /* @__PURE__ */ jsxs22(Row, { id: row.id, className: "pire-tr", "data-pressable": onRowAction ? "true" : void 0, children: [
|
|
1835
|
+
selectable ? /* @__PURE__ */ jsx30(Cell, { className: "pire-td", children: /* @__PURE__ */ jsx30(Checkbox, { slot: "selection", "aria-label": msg.dataTableSelectRow }) }) : null,
|
|
1836
|
+
columns.map((c) => /* @__PURE__ */ jsx30(
|
|
1609
1837
|
Cell,
|
|
1610
1838
|
{
|
|
1611
1839
|
className: "pire-td",
|
|
@@ -1624,69 +1852,83 @@ function DataTable({
|
|
|
1624
1852
|
}
|
|
1625
1853
|
|
|
1626
1854
|
// src/components/patterns/ValueHelpDialog.tsx
|
|
1627
|
-
import { jsx as
|
|
1855
|
+
import { jsx as jsx31, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1628
1856
|
function ValueHelpDialog({
|
|
1629
1857
|
isOpen,
|
|
1630
|
-
title
|
|
1858
|
+
title,
|
|
1631
1859
|
columns = [],
|
|
1632
1860
|
rows = [],
|
|
1633
|
-
searchPlaceholder
|
|
1861
|
+
searchPlaceholder,
|
|
1634
1862
|
emptyLabel,
|
|
1863
|
+
onSearch,
|
|
1864
|
+
isFilteredExternally,
|
|
1865
|
+
isLoading,
|
|
1866
|
+
onLoadMore,
|
|
1635
1867
|
onSelect,
|
|
1636
1868
|
onClose
|
|
1637
1869
|
}) {
|
|
1638
1870
|
const msg = usePireMessages();
|
|
1639
|
-
const [query, setQuery] =
|
|
1640
|
-
|
|
1871
|
+
const [query, setQuery] = React9.useState("");
|
|
1872
|
+
React9.useEffect(() => {
|
|
1641
1873
|
if (isOpen) setQuery("");
|
|
1642
1874
|
}, [isOpen]);
|
|
1643
|
-
const filtered =
|
|
1875
|
+
const filtered = React9.useMemo(() => {
|
|
1876
|
+
if (isFilteredExternally) return rows;
|
|
1644
1877
|
const q = query.trim().toLowerCase();
|
|
1645
1878
|
if (!q) return rows;
|
|
1646
1879
|
return rows.filter((row) => Object.values(row).some((v) => String(v).toLowerCase().includes(q)));
|
|
1647
|
-
}, [rows, query]);
|
|
1648
|
-
|
|
1880
|
+
}, [rows, query, isFilteredExternally]);
|
|
1881
|
+
const handleSearch = (value) => {
|
|
1882
|
+
setQuery(value);
|
|
1883
|
+
onSearch?.(value);
|
|
1884
|
+
};
|
|
1885
|
+
return /* @__PURE__ */ jsx31(
|
|
1649
1886
|
Dialog,
|
|
1650
1887
|
{
|
|
1651
1888
|
isOpen,
|
|
1652
1889
|
size: "lg",
|
|
1653
|
-
title,
|
|
1890
|
+
title: title ?? msg.valueHelpDialogTitle,
|
|
1654
1891
|
onClose,
|
|
1655
|
-
footer: /* @__PURE__ */
|
|
1892
|
+
footer: /* @__PURE__ */ jsx31(Button, { variant: "tertiary", onPress: onClose, children: msg.valueHelpDialogCancel }),
|
|
1656
1893
|
children: /* @__PURE__ */ jsxs23("div", { style: { display: "flex", flexDirection: "column", gap: "var(--sp-3)" }, children: [
|
|
1657
|
-
/* @__PURE__ */
|
|
1894
|
+
/* @__PURE__ */ jsx31(
|
|
1658
1895
|
Input,
|
|
1659
1896
|
{
|
|
1660
1897
|
"aria-label": msg.valueHelpDialogSearch,
|
|
1661
1898
|
icon: "search",
|
|
1662
1899
|
type: "search",
|
|
1663
1900
|
value: query,
|
|
1664
|
-
onChange:
|
|
1665
|
-
|
|
1901
|
+
onChange: handleSearch,
|
|
1902
|
+
isClearable: true,
|
|
1903
|
+
placeholder: searchPlaceholder ?? msg.valueHelpDialogSearchPlaceholder,
|
|
1666
1904
|
autoFocus: true
|
|
1667
1905
|
}
|
|
1668
1906
|
),
|
|
1669
|
-
/* @__PURE__ */
|
|
1907
|
+
/* @__PURE__ */ jsx31("div", { onScroll: onLoadMore ? (event) => {
|
|
1908
|
+
const el = event.currentTarget;
|
|
1909
|
+
if (el.scrollHeight - el.scrollTop - el.clientHeight < 64) onLoadMore();
|
|
1910
|
+
} : void 0, style: { overflow: "auto", maxHeight: "48vh" }, children: /* @__PURE__ */ jsx31(
|
|
1670
1911
|
DataTable,
|
|
1671
1912
|
{
|
|
1672
|
-
"aria-label": typeof title === "string" ? title :
|
|
1913
|
+
"aria-label": typeof title === "string" ? title : msg.valueHelpDialogTitle,
|
|
1673
1914
|
density: "condensed",
|
|
1674
1915
|
columns,
|
|
1675
1916
|
rows: filtered,
|
|
1676
|
-
|
|
1917
|
+
isLoading,
|
|
1918
|
+
emptyLabel: emptyLabel ?? msg.valueHelpDialogEmpty,
|
|
1677
1919
|
onRowAction: (row) => {
|
|
1678
1920
|
onSelect?.(row);
|
|
1679
1921
|
onClose?.();
|
|
1680
1922
|
}
|
|
1681
1923
|
}
|
|
1682
|
-
)
|
|
1924
|
+
) })
|
|
1683
1925
|
] })
|
|
1684
1926
|
}
|
|
1685
1927
|
);
|
|
1686
1928
|
}
|
|
1687
1929
|
|
|
1688
1930
|
// src/components/forms/ValueHelpField.tsx
|
|
1689
|
-
import { jsx as
|
|
1931
|
+
import { jsx as jsx32, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
1690
1932
|
var defaultFormat = (row) => [row.id, row.name ?? row.label ?? row.text].filter(Boolean).join(" \u2014 ");
|
|
1691
1933
|
function ValueHelpField({
|
|
1692
1934
|
label,
|
|
@@ -1696,7 +1938,12 @@ function ValueHelpField({
|
|
|
1696
1938
|
rows = [],
|
|
1697
1939
|
columns = [],
|
|
1698
1940
|
dialogTitle,
|
|
1699
|
-
|
|
1941
|
+
onSearch,
|
|
1942
|
+
isFilteredExternally,
|
|
1943
|
+
isLoading,
|
|
1944
|
+
onLoadMore,
|
|
1945
|
+
emptyLabel,
|
|
1946
|
+
placeholder,
|
|
1700
1947
|
description,
|
|
1701
1948
|
errorMessage,
|
|
1702
1949
|
isInvalid,
|
|
@@ -1707,52 +1954,55 @@ function ValueHelpField({
|
|
|
1707
1954
|
style
|
|
1708
1955
|
}) {
|
|
1709
1956
|
const msg = usePireMessages();
|
|
1710
|
-
const [open, setOpen] =
|
|
1957
|
+
const [open, setOpen] = React10.useState(false);
|
|
1711
1958
|
return /* @__PURE__ */ jsxs24("div", { className: cx(className), style, children: [
|
|
1712
|
-
/* @__PURE__ */
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
] }),
|
|
1748
|
-
/* @__PURE__ */ jsx31(
|
|
1959
|
+
/* @__PURE__ */ jsx32(
|
|
1960
|
+
Input,
|
|
1961
|
+
{
|
|
1962
|
+
label,
|
|
1963
|
+
isReadOnly: true,
|
|
1964
|
+
isInvalid,
|
|
1965
|
+
isDisabled,
|
|
1966
|
+
isRequired,
|
|
1967
|
+
value: value ? format(value) : "",
|
|
1968
|
+
placeholder: placeholder ?? msg.valueHelpFieldPlaceholder,
|
|
1969
|
+
description,
|
|
1970
|
+
errorMessage,
|
|
1971
|
+
suffix: /* @__PURE__ */ jsxs24("span", { className: "pire-valuehelp-actions", children: [
|
|
1972
|
+
allowsClear && value ? /* @__PURE__ */ jsx32(
|
|
1973
|
+
IconButton,
|
|
1974
|
+
{
|
|
1975
|
+
icon: "x",
|
|
1976
|
+
label: msg.valueHelpFieldClear,
|
|
1977
|
+
isDisabled,
|
|
1978
|
+
onPress: () => onChange?.(null)
|
|
1979
|
+
}
|
|
1980
|
+
) : null,
|
|
1981
|
+
/* @__PURE__ */ jsx32(
|
|
1982
|
+
IconButton,
|
|
1983
|
+
{
|
|
1984
|
+
icon: "search",
|
|
1985
|
+
label: typeof label === "string" ? msg.valueHelpFieldOpenNamed.replace("{label}", label.toLowerCase()) : msg.valueHelpFieldOpen,
|
|
1986
|
+
isDisabled,
|
|
1987
|
+
onPress: () => setOpen(true)
|
|
1988
|
+
}
|
|
1989
|
+
)
|
|
1990
|
+
] })
|
|
1991
|
+
}
|
|
1992
|
+
),
|
|
1993
|
+
/* @__PURE__ */ jsx32(
|
|
1749
1994
|
ValueHelpDialog,
|
|
1750
1995
|
{
|
|
1751
1996
|
isOpen: open,
|
|
1752
1997
|
onClose: () => setOpen(false),
|
|
1753
|
-
title: dialogTitle ?? label
|
|
1998
|
+
title: dialogTitle ?? label,
|
|
1754
1999
|
columns,
|
|
1755
2000
|
rows,
|
|
2001
|
+
onSearch,
|
|
2002
|
+
isFilteredExternally,
|
|
2003
|
+
isLoading,
|
|
2004
|
+
onLoadMore,
|
|
2005
|
+
emptyLabel,
|
|
1756
2006
|
onSelect: (row) => onChange?.(row)
|
|
1757
2007
|
}
|
|
1758
2008
|
)
|
|
@@ -1760,12 +2010,12 @@ function ValueHelpField({
|
|
|
1760
2010
|
}
|
|
1761
2011
|
|
|
1762
2012
|
// src/components/forms/FileUpload.tsx
|
|
1763
|
-
import * as
|
|
2013
|
+
import * as React11 from "react";
|
|
1764
2014
|
import { FileTrigger, Text as Text11 } from "react-aria-components";
|
|
1765
2015
|
|
|
1766
2016
|
// src/components/feedback/ProgressBar.tsx
|
|
1767
2017
|
import { ProgressBar as AriaProgressBar, Label as Label10 } from "react-aria-components";
|
|
1768
|
-
import { Fragment as Fragment2, jsx as
|
|
2018
|
+
import { Fragment as Fragment2, jsx as jsx33, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
1769
2019
|
function ProgressBar({
|
|
1770
2020
|
value = 0,
|
|
1771
2021
|
minValue = 0,
|
|
@@ -1778,7 +2028,7 @@ function ProgressBar({
|
|
|
1778
2028
|
className,
|
|
1779
2029
|
style
|
|
1780
2030
|
}) {
|
|
1781
|
-
return /* @__PURE__ */
|
|
2031
|
+
return /* @__PURE__ */ jsx33(
|
|
1782
2032
|
AriaProgressBar,
|
|
1783
2033
|
{
|
|
1784
2034
|
className: cx("pire-progress", className),
|
|
@@ -1791,17 +2041,17 @@ function ProgressBar({
|
|
|
1791
2041
|
style,
|
|
1792
2042
|
children: ({ percentage, valueText }) => /* @__PURE__ */ jsxs25(Fragment2, { children: [
|
|
1793
2043
|
label || showValue ? /* @__PURE__ */ jsxs25("div", { className: "pire-progress-head", children: [
|
|
1794
|
-
label ? /* @__PURE__ */
|
|
1795
|
-
showValue && !isIndeterminate ? /* @__PURE__ */
|
|
2044
|
+
label ? /* @__PURE__ */ jsx33(Label10, { children: label }) : /* @__PURE__ */ jsx33("span", {}),
|
|
2045
|
+
showValue && !isIndeterminate ? /* @__PURE__ */ jsx33("span", { className: "pire-numeric", children: valueText }) : null
|
|
1796
2046
|
] }) : null,
|
|
1797
|
-
/* @__PURE__ */
|
|
2047
|
+
/* @__PURE__ */ jsx33("div", { className: "pire-progress-track", children: /* @__PURE__ */ jsx33("div", { className: "pire-progress-fill", style: { width: `${isIndeterminate ? 40 : percentage}%` } }) })
|
|
1798
2048
|
] })
|
|
1799
2049
|
}
|
|
1800
2050
|
);
|
|
1801
2051
|
}
|
|
1802
2052
|
|
|
1803
2053
|
// src/components/forms/FileUpload.tsx
|
|
1804
|
-
import { jsx as
|
|
2054
|
+
import { jsx as jsx34, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1805
2055
|
var isImage = (file) => file.type.startsWith("image/");
|
|
1806
2056
|
function formatFileSize(bytes) {
|
|
1807
2057
|
if (bytes < 1024) return `${bytes} B`;
|
|
@@ -1850,10 +2100,10 @@ function FileUpload({
|
|
|
1850
2100
|
style
|
|
1851
2101
|
}) {
|
|
1852
2102
|
const msg = usePireMessages();
|
|
1853
|
-
const [uncontrolled, setUncontrolled] =
|
|
2103
|
+
const [uncontrolled, setUncontrolled] = React11.useState(defaultValue ?? []);
|
|
1854
2104
|
const files = value ?? uncontrolled;
|
|
1855
|
-
const created =
|
|
1856
|
-
|
|
2105
|
+
const created = React11.useRef([]);
|
|
2106
|
+
React11.useEffect(() => () => {
|
|
1857
2107
|
for (const url of created.current) URL.revokeObjectURL(url);
|
|
1858
2108
|
}, []);
|
|
1859
2109
|
const commit = (next) => {
|
|
@@ -1883,22 +2133,22 @@ function FileUpload({
|
|
|
1883
2133
|
children: [
|
|
1884
2134
|
label ? /* @__PURE__ */ jsxs26("span", { className: "pire-field-label", children: [
|
|
1885
2135
|
label,
|
|
1886
|
-
isRequired ? /* @__PURE__ */
|
|
2136
|
+
isRequired ? /* @__PURE__ */ jsx34("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1887
2137
|
] }) : null,
|
|
1888
|
-
/* @__PURE__ */
|
|
2138
|
+
/* @__PURE__ */ jsx34(
|
|
1889
2139
|
FileTrigger,
|
|
1890
2140
|
{
|
|
1891
2141
|
acceptedFileTypes,
|
|
1892
2142
|
allowsMultiple,
|
|
1893
2143
|
onSelect: accept,
|
|
1894
|
-
children: /* @__PURE__ */
|
|
2144
|
+
children: /* @__PURE__ */ jsx34(Button, { icon: "paperclip", isDisabled: isDisabled || isReadOnly, children: chooseLabel ?? msg.fileUploadChoose })
|
|
1895
2145
|
}
|
|
1896
2146
|
),
|
|
1897
|
-
files.length ? /* @__PURE__ */
|
|
1898
|
-
previewUrl ? /* @__PURE__ */
|
|
1899
|
-
/* @__PURE__ */
|
|
1900
|
-
/* @__PURE__ */
|
|
1901
|
-
isDisabled || isReadOnly ? null : /* @__PURE__ */
|
|
2147
|
+
files.length ? /* @__PURE__ */ jsx34("ul", { className: "pire-fileupload-list", children: files.map(({ file, previewUrl }) => /* @__PURE__ */ jsxs26("li", { className: "pire-fileupload-item", children: [
|
|
2148
|
+
previewUrl ? /* @__PURE__ */ jsx34("img", { className: "pire-fileupload-thumb", src: previewUrl, alt: "" }) : /* @__PURE__ */ jsx34(Icon, { name: "file-text", size: 16, className: "pire-fileupload-icon" }),
|
|
2149
|
+
/* @__PURE__ */ jsx34("span", { className: "pire-fileupload-name", children: file.name }),
|
|
2150
|
+
/* @__PURE__ */ jsx34("span", { className: "pire-fileupload-size", children: formatFileSize(file.size) }),
|
|
2151
|
+
isDisabled || isReadOnly ? null : /* @__PURE__ */ jsx34(
|
|
1902
2152
|
IconButton,
|
|
1903
2153
|
{
|
|
1904
2154
|
icon: "x",
|
|
@@ -1908,16 +2158,17 @@ function FileUpload({
|
|
|
1908
2158
|
}
|
|
1909
2159
|
)
|
|
1910
2160
|
] }, `${file.name}-${file.size}-${file.lastModified}`)) }) : null,
|
|
1911
|
-
uploadProgress != null ? /* @__PURE__ */
|
|
1912
|
-
description ? /* @__PURE__ */
|
|
1913
|
-
isInvalid && errorMessage ? /* @__PURE__ */
|
|
2161
|
+
uploadProgress != null ? /* @__PURE__ */ jsx34(ProgressBar, { value: uploadProgress, label: msg.fileUploadUploading }) : null,
|
|
2162
|
+
description ? /* @__PURE__ */ jsx34(Text11, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
2163
|
+
isInvalid && errorMessage ? /* @__PURE__ */ jsx34("span", { className: "pire-field-error", children: errorMessage }) : null
|
|
1914
2164
|
]
|
|
1915
2165
|
}
|
|
1916
2166
|
);
|
|
1917
2167
|
}
|
|
1918
2168
|
|
|
1919
2169
|
// src/components/navigation/ShellBar.tsx
|
|
1920
|
-
import {
|
|
2170
|
+
import { MenuTrigger, Button as AriaButton11, Popover as Popover6 } from "react-aria-components";
|
|
2171
|
+
import { jsx as jsx35, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1921
2172
|
var initials2 = (name) => name.trim().split(/\s+/).slice(0, 2).map((p) => p[0]).join("").toUpperCase();
|
|
1922
2173
|
function ShellBar({
|
|
1923
2174
|
product,
|
|
@@ -1929,30 +2180,48 @@ function ShellBar({
|
|
|
1929
2180
|
searchLabel = "Search",
|
|
1930
2181
|
actions,
|
|
1931
2182
|
user,
|
|
2183
|
+
userMenu,
|
|
2184
|
+
userMenuLabel,
|
|
1932
2185
|
className,
|
|
1933
2186
|
...rest
|
|
1934
2187
|
}) {
|
|
2188
|
+
const msg = usePireMessages();
|
|
1935
2189
|
return /* @__PURE__ */ jsxs27("header", { className: cx("pire-shellbar", className), ...rest, children: [
|
|
1936
|
-
onMenu ? /* @__PURE__ */
|
|
1937
|
-
monogram ? /* @__PURE__ */
|
|
1938
|
-
product ? /* @__PURE__ */
|
|
1939
|
-
title ? /* @__PURE__ */
|
|
1940
|
-
/* @__PURE__ */
|
|
1941
|
-
onSearch ? /* @__PURE__ */
|
|
2190
|
+
onMenu ? /* @__PURE__ */ jsx35(IconButton, { icon: "menu", label: menuLabel, variant: "inverse", size: "sm", onPress: onMenu }) : null,
|
|
2191
|
+
monogram ? /* @__PURE__ */ jsx35("span", { className: "pire-shellbar-mono", "aria-hidden": "true", children: monogram }) : null,
|
|
2192
|
+
product ? /* @__PURE__ */ jsx35("span", { className: "pire-shellbar-product", children: product }) : null,
|
|
2193
|
+
title ? /* @__PURE__ */ jsx35("span", { className: "pire-shellbar-title", children: title }) : null,
|
|
2194
|
+
/* @__PURE__ */ jsx35("span", { className: "pire-shellbar-spacer" }),
|
|
2195
|
+
onSearch ? /* @__PURE__ */ jsx35(IconButton, { icon: "search", label: searchLabel, variant: "inverse", size: "sm", onPress: onSearch }) : null,
|
|
1942
2196
|
actions,
|
|
1943
|
-
user
|
|
2197
|
+
user && userMenu ? (
|
|
2198
|
+
// A real button, not the img-role span: the avatar is where "my profile", "switch company"
|
|
2199
|
+
// and "sign out" live in any ERP, and a span accepts neither focus nor onPress. Popover is
|
|
2200
|
+
// rendered here rather than expected from the consumer so the panel keeps shell placement.
|
|
2201
|
+
/* @__PURE__ */ jsxs27(MenuTrigger, { children: [
|
|
2202
|
+
/* @__PURE__ */ jsx35(
|
|
2203
|
+
AriaButton11,
|
|
2204
|
+
{
|
|
2205
|
+
className: "pire-avatar pire-avatar-trigger",
|
|
2206
|
+
"aria-label": (userMenuLabel ?? msg.shellBarUserMenu).replace("{user}", user),
|
|
2207
|
+
children: initials2(user)
|
|
2208
|
+
}
|
|
2209
|
+
),
|
|
2210
|
+
/* @__PURE__ */ jsx35(Popover6, { className: "pire-popover", children: userMenu })
|
|
2211
|
+
] })
|
|
2212
|
+
) : user ? /* @__PURE__ */ jsx35("span", { className: "pire-avatar", title: user, "aria-label": user, role: "img", children: initials2(user) }) : null
|
|
1944
2213
|
] });
|
|
1945
2214
|
}
|
|
1946
2215
|
|
|
1947
2216
|
// src/components/navigation/SideNav.tsx
|
|
1948
|
-
import * as
|
|
2217
|
+
import * as React12 from "react";
|
|
1949
2218
|
import {
|
|
1950
|
-
Button as
|
|
2219
|
+
Button as AriaButton12,
|
|
1951
2220
|
Disclosure,
|
|
1952
2221
|
DisclosureGroup,
|
|
1953
2222
|
DisclosurePanel,
|
|
1954
|
-
MenuTrigger,
|
|
1955
|
-
Popover as
|
|
2223
|
+
MenuTrigger as MenuTrigger2,
|
|
2224
|
+
Popover as Popover7
|
|
1956
2225
|
} from "react-aria-components";
|
|
1957
2226
|
|
|
1958
2227
|
// src/components/navigation/Menu.tsx
|
|
@@ -1963,11 +2232,11 @@ import {
|
|
|
1963
2232
|
Separator as AriaSeparator2,
|
|
1964
2233
|
Header
|
|
1965
2234
|
} from "react-aria-components";
|
|
1966
|
-
import { jsx as
|
|
2235
|
+
import { jsx as jsx36, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
1967
2236
|
function Menu({ minWidth, className, style, ...rest }) {
|
|
1968
2237
|
const width = typeof minWidth === "number" ? `${minWidth}px` : minWidth;
|
|
1969
2238
|
const menuStyle = width == null ? style : { ["--pire-menu-min-w"]: width, ...style };
|
|
1970
|
-
return /* @__PURE__ */
|
|
2239
|
+
return /* @__PURE__ */ jsx36(
|
|
1971
2240
|
AriaMenu,
|
|
1972
2241
|
{
|
|
1973
2242
|
className: cx("pire-menu", className),
|
|
@@ -1976,6 +2245,11 @@ function Menu({ minWidth, className, style, ...rest }) {
|
|
|
1976
2245
|
}
|
|
1977
2246
|
);
|
|
1978
2247
|
}
|
|
2248
|
+
var shortcutKeys = (shortcut) => {
|
|
2249
|
+
if (shortcut == null) return [];
|
|
2250
|
+
const parts = Array.isArray(shortcut) ? shortcut : shortcut.split(/[+\s]+/);
|
|
2251
|
+
return parts.map((part) => part.trim()).filter(Boolean);
|
|
2252
|
+
};
|
|
1979
2253
|
function MenuItem({
|
|
1980
2254
|
children,
|
|
1981
2255
|
icon,
|
|
@@ -1985,6 +2259,7 @@ function MenuItem({
|
|
|
1985
2259
|
className,
|
|
1986
2260
|
...rest
|
|
1987
2261
|
}) {
|
|
2262
|
+
const keys = shortcutKeys(shortcut);
|
|
1988
2263
|
return /* @__PURE__ */ jsxs28(
|
|
1989
2264
|
AriaMenuItem,
|
|
1990
2265
|
{
|
|
@@ -1992,28 +2267,28 @@ function MenuItem({
|
|
|
1992
2267
|
"data-tone": tone === "danger" ? "danger" : void 0,
|
|
1993
2268
|
...rest,
|
|
1994
2269
|
children: [
|
|
1995
|
-
icon ? /* @__PURE__ */
|
|
2270
|
+
icon ? /* @__PURE__ */ jsx36(Icon, { name: icon, size: 16, className: "pire-menu-item-icon" }) : null,
|
|
1996
2271
|
/* @__PURE__ */ jsxs28("span", { className: "pire-menu-item-body", children: [
|
|
1997
|
-
/* @__PURE__ */
|
|
1998
|
-
description ? /* @__PURE__ */
|
|
2272
|
+
/* @__PURE__ */ jsx36("span", { className: "pire-menu-item-label", children }),
|
|
2273
|
+
description ? /* @__PURE__ */ jsx36("span", { className: "pire-menu-item-desc", children: description }) : null
|
|
1999
2274
|
] }),
|
|
2000
|
-
|
|
2275
|
+
keys.length ? /* @__PURE__ */ jsx36("span", { className: "pire-menu-item-shortcut", children: keys.map((cap, index) => /* @__PURE__ */ jsx36(Kbd, { size: "sm", children: cap }, `${cap}-${index}`)) }) : null
|
|
2001
2276
|
]
|
|
2002
2277
|
}
|
|
2003
2278
|
);
|
|
2004
2279
|
}
|
|
2005
2280
|
function MenuSection({ title, children, className, ...rest }) {
|
|
2006
2281
|
return /* @__PURE__ */ jsxs28(AriaMenuSection, { className: cx("pire-menu-section", className), ...rest, children: [
|
|
2007
|
-
title ? /* @__PURE__ */
|
|
2282
|
+
title ? /* @__PURE__ */ jsx36(Header, { className: "pire-menu-section-title", children: title }) : null,
|
|
2008
2283
|
children
|
|
2009
2284
|
] });
|
|
2010
2285
|
}
|
|
2011
2286
|
function MenuSeparator({ className }) {
|
|
2012
|
-
return /* @__PURE__ */
|
|
2287
|
+
return /* @__PURE__ */ jsx36(AriaSeparator2, { className: cx("pire-menu-separator", className) });
|
|
2013
2288
|
}
|
|
2014
2289
|
|
|
2015
2290
|
// src/components/navigation/SideNav.tsx
|
|
2016
|
-
import { jsx as
|
|
2291
|
+
import { jsx as jsx37, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
2017
2292
|
function findActiveParent(groups, value) {
|
|
2018
2293
|
if (value == null) return void 0;
|
|
2019
2294
|
for (const group of groups) {
|
|
@@ -2039,10 +2314,10 @@ function SideNav({
|
|
|
2039
2314
|
const msg = usePireMessages();
|
|
2040
2315
|
const activeParent = findActiveParent(groups, value);
|
|
2041
2316
|
const isControlled = expandedIds != null;
|
|
2042
|
-
const [ownExpanded, setOwnExpanded] =
|
|
2317
|
+
const [ownExpanded, setOwnExpanded] = React12.useState(
|
|
2043
2318
|
() => new Set(defaultExpandedIds ?? (activeParent ? [activeParent] : []))
|
|
2044
2319
|
);
|
|
2045
|
-
const [lastValue, setLastValue] =
|
|
2320
|
+
const [lastValue, setLastValue] = React12.useState(value);
|
|
2046
2321
|
if (value !== lastValue) {
|
|
2047
2322
|
setLastValue(value);
|
|
2048
2323
|
if (!isControlled && activeParent && !ownExpanded.has(activeParent)) {
|
|
@@ -2063,7 +2338,7 @@ function SideNav({
|
|
|
2063
2338
|
const renderRow = (item, onPress, isGroup) => {
|
|
2064
2339
|
const selected = !isGroup && item.id === value;
|
|
2065
2340
|
const button = /* @__PURE__ */ jsxs29(
|
|
2066
|
-
|
|
2341
|
+
AriaButton12,
|
|
2067
2342
|
{
|
|
2068
2343
|
className: "pire-sidenav-item",
|
|
2069
2344
|
"data-selected": selected ? "true" : void 0,
|
|
@@ -2072,63 +2347,63 @@ function SideNav({
|
|
|
2072
2347
|
"aria-label": collapsed ? item.label : void 0,
|
|
2073
2348
|
onPress,
|
|
2074
2349
|
children: [
|
|
2075
|
-
item.icon ? /* @__PURE__ */
|
|
2076
|
-
collapsed ? null : /* @__PURE__ */
|
|
2077
|
-
item.count != null && !collapsed ? /* @__PURE__ */
|
|
2350
|
+
item.icon ? /* @__PURE__ */ jsx37(Icon, { name: item.icon, size: 16 }) : null,
|
|
2351
|
+
collapsed ? null : /* @__PURE__ */ jsx37("span", { children: item.label }),
|
|
2352
|
+
item.count != null && !collapsed ? /* @__PURE__ */ jsx37("span", { className: "pire-sidenav-count", children: item.count }) : null
|
|
2078
2353
|
]
|
|
2079
2354
|
},
|
|
2080
2355
|
item.id
|
|
2081
2356
|
);
|
|
2082
|
-
return collapsed ? /* @__PURE__ */
|
|
2357
|
+
return collapsed ? /* @__PURE__ */ jsx37(Tooltip, { label: item.label, placement: "right", children: button }, item.id) : button;
|
|
2083
2358
|
};
|
|
2084
|
-
const renderRailFlyout = (item) => /* @__PURE__ */ jsxs29(
|
|
2085
|
-
/* @__PURE__ */
|
|
2086
|
-
|
|
2359
|
+
const renderRailFlyout = (item) => /* @__PURE__ */ jsxs29(MenuTrigger2, { children: [
|
|
2360
|
+
/* @__PURE__ */ jsx37(
|
|
2361
|
+
AriaButton12,
|
|
2087
2362
|
{
|
|
2088
2363
|
className: "pire-sidenav-item",
|
|
2089
2364
|
"aria-label": item.label,
|
|
2090
2365
|
"data-active-child": item.id === activeParent ? "true" : void 0,
|
|
2091
|
-
children: item.icon ? /* @__PURE__ */
|
|
2366
|
+
children: item.icon ? /* @__PURE__ */ jsx37(Icon, { name: item.icon, size: 16 }) : null
|
|
2092
2367
|
}
|
|
2093
2368
|
),
|
|
2094
|
-
/* @__PURE__ */
|
|
2369
|
+
/* @__PURE__ */ jsx37(Popover7, { className: "pire-popover", placement: "right top", offset: 4, children: /* @__PURE__ */ jsx37(
|
|
2095
2370
|
Menu,
|
|
2096
2371
|
{
|
|
2097
2372
|
"aria-label": item.label,
|
|
2098
2373
|
className: "pire-sidenav-flyout",
|
|
2099
2374
|
onAction: (key) => onChange?.(String(key)),
|
|
2100
|
-
children: (item.items ?? []).map((child) => /* @__PURE__ */
|
|
2375
|
+
children: (item.items ?? []).map((child) => /* @__PURE__ */ jsx37(MenuItem, { id: child.id, children: child.label }, child.id))
|
|
2101
2376
|
}
|
|
2102
2377
|
) })
|
|
2103
2378
|
] }, item.id);
|
|
2104
2379
|
const renderSection = (item) => /* @__PURE__ */ jsxs29(Disclosure, { id: item.id, className: "pire-sidenav-section", children: [
|
|
2105
2380
|
/* @__PURE__ */ jsxs29(
|
|
2106
|
-
|
|
2381
|
+
AriaButton12,
|
|
2107
2382
|
{
|
|
2108
2383
|
slot: "trigger",
|
|
2109
2384
|
className: "pire-sidenav-item",
|
|
2110
2385
|
"data-kind": "group",
|
|
2111
2386
|
"data-active-child": item.id === activeParent ? "true" : void 0,
|
|
2112
2387
|
children: [
|
|
2113
|
-
item.icon ? /* @__PURE__ */
|
|
2114
|
-
/* @__PURE__ */
|
|
2115
|
-
item.count != null ? /* @__PURE__ */
|
|
2116
|
-
/* @__PURE__ */
|
|
2388
|
+
item.icon ? /* @__PURE__ */ jsx37(Icon, { name: item.icon, size: 16 }) : null,
|
|
2389
|
+
/* @__PURE__ */ jsx37("span", { children: item.label }),
|
|
2390
|
+
item.count != null ? /* @__PURE__ */ jsx37("span", { className: "pire-sidenav-count", children: item.count }) : null,
|
|
2391
|
+
/* @__PURE__ */ jsx37(Icon, { name: "chevron-down", size: 16, className: "pire-sidenav-chevron" })
|
|
2117
2392
|
]
|
|
2118
2393
|
}
|
|
2119
2394
|
),
|
|
2120
|
-
/* @__PURE__ */
|
|
2395
|
+
/* @__PURE__ */ jsx37(DisclosurePanel, { className: "pire-sidenav-subnav", children: item.items?.map((child) => {
|
|
2121
2396
|
const selected = child.id === value;
|
|
2122
2397
|
return /* @__PURE__ */ jsxs29(
|
|
2123
|
-
|
|
2398
|
+
AriaButton12,
|
|
2124
2399
|
{
|
|
2125
2400
|
className: "pire-sidenav-item pire-sidenav-subitem",
|
|
2126
2401
|
"data-selected": selected ? "true" : void 0,
|
|
2127
2402
|
"aria-current": selected ? "page" : void 0,
|
|
2128
2403
|
onPress: () => onChange?.(child.id),
|
|
2129
2404
|
children: [
|
|
2130
|
-
/* @__PURE__ */
|
|
2131
|
-
child.count != null ? /* @__PURE__ */
|
|
2405
|
+
/* @__PURE__ */ jsx37("span", { children: child.label }),
|
|
2406
|
+
child.count != null ? /* @__PURE__ */ jsx37("span", { className: "pire-sidenav-count", children: child.count }) : null
|
|
2132
2407
|
]
|
|
2133
2408
|
},
|
|
2134
2409
|
child.id
|
|
@@ -2152,8 +2427,8 @@ function SideNav({
|
|
|
2152
2427
|
return renderRow(item, () => isGroup ? toggleExpanded(item.id) : onChange?.(item.id), isGroup);
|
|
2153
2428
|
});
|
|
2154
2429
|
return /* @__PURE__ */ jsxs29("div", { className: "pire-sidenav-group", children: [
|
|
2155
|
-
group.label && !collapsed ? /* @__PURE__ */
|
|
2156
|
-
hasSections ? /* @__PURE__ */
|
|
2430
|
+
group.label && !collapsed ? /* @__PURE__ */ jsx37("div", { className: "pire-sidenav-label", children: group.label }) : null,
|
|
2431
|
+
hasSections ? /* @__PURE__ */ jsx37(
|
|
2157
2432
|
DisclosureGroup,
|
|
2158
2433
|
{
|
|
2159
2434
|
className: "pire-sidenav-tree",
|
|
@@ -2165,7 +2440,7 @@ function SideNav({
|
|
|
2165
2440
|
) : rows
|
|
2166
2441
|
] }, group.label ?? gi);
|
|
2167
2442
|
}),
|
|
2168
|
-
footer ? /* @__PURE__ */
|
|
2443
|
+
footer ? /* @__PURE__ */ jsx37("div", { className: "pire-sidenav-footer", children: footer }) : null
|
|
2169
2444
|
]
|
|
2170
2445
|
}
|
|
2171
2446
|
);
|
|
@@ -2173,7 +2448,7 @@ function SideNav({
|
|
|
2173
2448
|
|
|
2174
2449
|
// src/components/navigation/Tabs.tsx
|
|
2175
2450
|
import { Tabs as AriaTabs, TabList, Tab as AriaTab, TabPanel } from "react-aria-components";
|
|
2176
|
-
import { jsx as
|
|
2451
|
+
import { jsx as jsx38, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2177
2452
|
function Tabs({ items, value, defaultValue, onChange, panels, className, style, ...rest }) {
|
|
2178
2453
|
return /* @__PURE__ */ jsxs30(
|
|
2179
2454
|
AriaTabs,
|
|
@@ -2184,12 +2459,12 @@ function Tabs({ items, value, defaultValue, onChange, panels, className, style,
|
|
|
2184
2459
|
defaultSelectedKey: defaultValue,
|
|
2185
2460
|
onSelectionChange: (k) => onChange?.(String(k)),
|
|
2186
2461
|
children: [
|
|
2187
|
-
/* @__PURE__ */
|
|
2188
|
-
item.icon ? /* @__PURE__ */
|
|
2462
|
+
/* @__PURE__ */ jsx38(TabList, { className: "pire-tablist", items, "aria-label": rest["aria-label"] ?? "Views", children: (item) => /* @__PURE__ */ jsxs30(AriaTab, { className: cx("pire-tab"), id: item.id, isDisabled: item.isDisabled, children: [
|
|
2463
|
+
item.icon ? /* @__PURE__ */ jsx38(Icon, { name: item.icon, size: 16 }) : null,
|
|
2189
2464
|
item.label,
|
|
2190
|
-
item.count != null ? /* @__PURE__ */
|
|
2465
|
+
item.count != null ? /* @__PURE__ */ jsx38("span", { className: "pire-tab-count", children: item.count }) : null
|
|
2191
2466
|
] }) }),
|
|
2192
|
-
items.map((item) => /* @__PURE__ */
|
|
2467
|
+
items.map((item) => /* @__PURE__ */ jsx38(TabPanel, { id: item.id, className: panels ? "pire-tabpanel" : void 0, children: panels?.[item.id] }, item.id))
|
|
2193
2468
|
]
|
|
2194
2469
|
}
|
|
2195
2470
|
);
|
|
@@ -2197,9 +2472,9 @@ function Tabs({ items, value, defaultValue, onChange, panels, className, style,
|
|
|
2197
2472
|
|
|
2198
2473
|
// src/components/navigation/Breadcrumb.tsx
|
|
2199
2474
|
import { Breadcrumbs as AriaBreadcrumbs, Breadcrumb as AriaBreadcrumb, Link as Link2 } from "react-aria-components";
|
|
2200
|
-
import { jsx as
|
|
2475
|
+
import { jsx as jsx39, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
2201
2476
|
function Breadcrumb({ items, onNavigate, className, style }) {
|
|
2202
|
-
return /* @__PURE__ */
|
|
2477
|
+
return /* @__PURE__ */ jsx39(
|
|
2203
2478
|
AriaBreadcrumbs,
|
|
2204
2479
|
{
|
|
2205
2480
|
className: cx("pire-breadcrumbs", className),
|
|
@@ -2209,8 +2484,8 @@ function Breadcrumb({ items, onNavigate, className, style }) {
|
|
|
2209
2484
|
children: (item) => {
|
|
2210
2485
|
const last = items[items.length - 1] === item;
|
|
2211
2486
|
return /* @__PURE__ */ jsxs31(AriaBreadcrumb, { className: "pire-breadcrumb", id: item.id ?? item.label, children: [
|
|
2212
|
-
last ? item.label : /* @__PURE__ */
|
|
2213
|
-
last ? null : /* @__PURE__ */
|
|
2487
|
+
last ? item.label : /* @__PURE__ */ jsx39(Link2, { href: item.href, children: item.label }),
|
|
2488
|
+
last ? null : /* @__PURE__ */ jsx39(Icon, { name: "chevron-right", size: 12, style: { color: "var(--text-tertiary)" } })
|
|
2214
2489
|
] });
|
|
2215
2490
|
}
|
|
2216
2491
|
}
|
|
@@ -2218,7 +2493,7 @@ function Breadcrumb({ items, onNavigate, className, style }) {
|
|
|
2218
2493
|
}
|
|
2219
2494
|
|
|
2220
2495
|
// src/components/navigation/Pagination.tsx
|
|
2221
|
-
import { jsx as
|
|
2496
|
+
import { jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
2222
2497
|
function Pagination({
|
|
2223
2498
|
page = 1,
|
|
2224
2499
|
pageSize = 25,
|
|
@@ -2234,8 +2509,8 @@ function Pagination({
|
|
|
2234
2509
|
const from = total === 0 ? 0 : (page - 1) * pageSize + 1;
|
|
2235
2510
|
const to = Math.min(total, page * pageSize);
|
|
2236
2511
|
return /* @__PURE__ */ jsxs32("nav", { className: cx("pire-pagination", className), style, "aria-label": msg.paginationLabel, children: [
|
|
2237
|
-
/* @__PURE__ */
|
|
2238
|
-
/* @__PURE__ */
|
|
2512
|
+
/* @__PURE__ */ jsx40("span", { className: "pire-pagination-count", children: msg.paginationRange.replace("{from}", from.toLocaleString()).replace("{to}", to.toLocaleString()).replace("{total}", total.toLocaleString()) }),
|
|
2513
|
+
/* @__PURE__ */ jsx40(
|
|
2239
2514
|
IconButton,
|
|
2240
2515
|
{
|
|
2241
2516
|
icon: "chevron-left",
|
|
@@ -2246,8 +2521,8 @@ function Pagination({
|
|
|
2246
2521
|
onPress: () => onPageChange?.(page - 1)
|
|
2247
2522
|
}
|
|
2248
2523
|
),
|
|
2249
|
-
/* @__PURE__ */
|
|
2250
|
-
/* @__PURE__ */
|
|
2524
|
+
/* @__PURE__ */ jsx40("span", { className: "pire-pagination-count", "aria-live": "polite", children: msg.paginationPageOf.replace("{page}", String(page)).replace("{pages}", String(pages)) }),
|
|
2525
|
+
/* @__PURE__ */ jsx40(
|
|
2251
2526
|
IconButton,
|
|
2252
2527
|
{
|
|
2253
2528
|
icon: "chevron-right",
|
|
@@ -2258,7 +2533,7 @@ function Pagination({
|
|
|
2258
2533
|
onPress: () => onPageChange?.(page + 1)
|
|
2259
2534
|
}
|
|
2260
2535
|
),
|
|
2261
|
-
onPageSizeChange ? /* @__PURE__ */
|
|
2536
|
+
onPageSizeChange ? /* @__PURE__ */ jsx40(
|
|
2262
2537
|
Select,
|
|
2263
2538
|
{
|
|
2264
2539
|
"aria-label": msg.paginationRowsPerPage,
|
|
@@ -2274,7 +2549,7 @@ function Pagination({
|
|
|
2274
2549
|
}
|
|
2275
2550
|
|
|
2276
2551
|
// src/components/feedback/InlineMessage.tsx
|
|
2277
|
-
import { jsx as
|
|
2552
|
+
import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
2278
2553
|
var KIND_ICON = {
|
|
2279
2554
|
info: "info",
|
|
2280
2555
|
success: "check-circle-2",
|
|
@@ -2293,21 +2568,21 @@ function InlineMessage({ kind = "info", title, action, onClose, children, classN
|
|
|
2293
2568
|
"aria-live": assertive ? "assertive" : "polite",
|
|
2294
2569
|
...rest,
|
|
2295
2570
|
children: [
|
|
2296
|
-
/* @__PURE__ */
|
|
2571
|
+
/* @__PURE__ */ jsx41(Icon, { name: KIND_ICON[kind], size: 16, style: { marginTop: 2 } }),
|
|
2297
2572
|
/* @__PURE__ */ jsxs33("div", { style: { flex: 1, display: "flex", flexDirection: "column", gap: "var(--sp-1)" }, children: [
|
|
2298
|
-
title ? /* @__PURE__ */
|
|
2299
|
-
children ? /* @__PURE__ */
|
|
2573
|
+
title ? /* @__PURE__ */ jsx41("span", { className: "pire-msg-title", children: title }) : null,
|
|
2574
|
+
children ? /* @__PURE__ */ jsx41("span", { className: "pire-msg-body", children }) : null,
|
|
2300
2575
|
action
|
|
2301
2576
|
] }),
|
|
2302
|
-
onClose ? /* @__PURE__ */
|
|
2577
|
+
onClose ? /* @__PURE__ */ jsx41(IconButton, { icon: "x", label: msg.inlineMessageDismiss, size: "sm", onPress: onClose }) : null
|
|
2303
2578
|
]
|
|
2304
2579
|
}
|
|
2305
2580
|
);
|
|
2306
2581
|
}
|
|
2307
2582
|
|
|
2308
2583
|
// src/components/feedback/Toast.tsx
|
|
2309
|
-
import * as
|
|
2310
|
-
import { jsx as
|
|
2584
|
+
import * as React13 from "react";
|
|
2585
|
+
import { jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
2311
2586
|
var KIND_ICON2 = {
|
|
2312
2587
|
info: "info",
|
|
2313
2588
|
success: "check-circle-2",
|
|
@@ -2325,40 +2600,40 @@ function Toast({ kind = "success", onClose, position = "bottom-center", children
|
|
|
2325
2600
|
"aria-live": kind === "error" ? "assertive" : "polite",
|
|
2326
2601
|
...rest,
|
|
2327
2602
|
children: [
|
|
2328
|
-
/* @__PURE__ */
|
|
2329
|
-
/* @__PURE__ */
|
|
2330
|
-
onClose ? /* @__PURE__ */
|
|
2603
|
+
/* @__PURE__ */ jsx42(Icon, { name: KIND_ICON2[kind], size: 16 }),
|
|
2604
|
+
/* @__PURE__ */ jsx42("span", { style: { flex: 1 }, children }),
|
|
2605
|
+
onClose ? /* @__PURE__ */ jsx42(IconButton, { icon: "x", label: msg.toastDismiss, size: "sm", variant: "inverse", onPress: onClose }) : null
|
|
2331
2606
|
]
|
|
2332
2607
|
}
|
|
2333
2608
|
);
|
|
2334
2609
|
}
|
|
2335
|
-
var ToastContext =
|
|
2610
|
+
var ToastContext = React13.createContext(null);
|
|
2336
2611
|
function ToastProvider({ children, timeout = 6e3 }) {
|
|
2337
2612
|
const msg = usePireMessages();
|
|
2338
|
-
const [toasts, setToasts] =
|
|
2339
|
-
const close =
|
|
2340
|
-
const add =
|
|
2613
|
+
const [toasts, setToasts] = React13.useState([]);
|
|
2614
|
+
const close = React13.useCallback((id) => setToasts((t) => t.filter((x) => x.id !== id)), []);
|
|
2615
|
+
const add = React13.useCallback((toast) => {
|
|
2341
2616
|
const id = Math.random().toString(36).slice(2);
|
|
2342
2617
|
setToasts((t) => [...t, { ...toast, id }]);
|
|
2343
2618
|
const ms = toast.timeout ?? timeout;
|
|
2344
2619
|
if (ms > 0) setTimeout(() => close(id), ms);
|
|
2345
2620
|
return id;
|
|
2346
2621
|
}, [close, timeout]);
|
|
2347
|
-
const value =
|
|
2622
|
+
const value = React13.useMemo(() => ({ add, close }), [add, close]);
|
|
2348
2623
|
return /* @__PURE__ */ jsxs34(ToastContext.Provider, { value, children: [
|
|
2349
2624
|
children,
|
|
2350
|
-
/* @__PURE__ */
|
|
2625
|
+
/* @__PURE__ */ jsx42("div", { className: "pire-toast-region", role: "region", "aria-label": msg.toastRegionLabel, children: toasts.map((t) => /* @__PURE__ */ jsx42(Toast, { kind: t.kind, onClose: () => close(t.id), style: { position: "static", transform: "none" }, children: t.message }, t.id)) })
|
|
2351
2626
|
] });
|
|
2352
2627
|
}
|
|
2353
2628
|
function useToast() {
|
|
2354
|
-
const ctx =
|
|
2629
|
+
const ctx = React13.useContext(ToastContext);
|
|
2355
2630
|
if (!ctx) throw new Error("useToast must be used inside <ToastProvider>");
|
|
2356
2631
|
return ctx;
|
|
2357
2632
|
}
|
|
2358
2633
|
|
|
2359
2634
|
// src/components/data/KpiTile.tsx
|
|
2360
|
-
import { Button as
|
|
2361
|
-
import { Fragment as Fragment3, jsx as
|
|
2635
|
+
import { Button as AriaButton13 } from "react-aria-components";
|
|
2636
|
+
import { Fragment as Fragment3, jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
2362
2637
|
function KpiTile({
|
|
2363
2638
|
label,
|
|
2364
2639
|
value,
|
|
@@ -2376,48 +2651,48 @@ function KpiTile({
|
|
|
2376
2651
|
const tone = deltaTone ?? (deltaDirection === "down" ? "negative" : "positive");
|
|
2377
2652
|
const body = /* @__PURE__ */ jsxs35(Fragment3, { children: [
|
|
2378
2653
|
/* @__PURE__ */ jsxs35("span", { className: "pire-kpi-label", children: [
|
|
2379
|
-
icon ? /* @__PURE__ */
|
|
2654
|
+
icon ? /* @__PURE__ */ jsx43(Icon, { name: icon, size: 16 }) : null,
|
|
2380
2655
|
label
|
|
2381
2656
|
] }),
|
|
2382
2657
|
/* @__PURE__ */ jsxs35("span", { className: "pire-kpi-value", children: [
|
|
2383
2658
|
value,
|
|
2384
|
-
unit ? /* @__PURE__ */
|
|
2659
|
+
unit ? /* @__PURE__ */ jsx43("span", { className: "pire-kpi-unit", children: unit }) : null
|
|
2385
2660
|
] }),
|
|
2386
2661
|
delta ? /* @__PURE__ */ jsxs35("span", { className: "pire-kpi-delta", "data-tone": tone, children: [
|
|
2387
|
-
deltaDirection ? /* @__PURE__ */
|
|
2662
|
+
deltaDirection ? /* @__PURE__ */ jsx43(Icon, { name: deltaDirection === "up" ? "trending-up" : "trending-down", size: 12 }) : null,
|
|
2388
2663
|
delta
|
|
2389
2664
|
] }) : null,
|
|
2390
|
-
footnote ? /* @__PURE__ */
|
|
2665
|
+
footnote ? /* @__PURE__ */ jsx43("span", { className: "pire-kpi-foot", children: footnote }) : null
|
|
2391
2666
|
] });
|
|
2392
2667
|
const props = { className: cx("pire-kpi", className), "data-status": status, style };
|
|
2393
|
-
return onPress ? /* @__PURE__ */
|
|
2668
|
+
return onPress ? /* @__PURE__ */ jsx43(AriaButton13, { ...props, "data-pressable": "true", onPress, children: body }) : /* @__PURE__ */ jsx43("div", { ...props, children: body });
|
|
2394
2669
|
}
|
|
2395
2670
|
|
|
2396
2671
|
// src/components/data/ObjectHeader.tsx
|
|
2397
|
-
import { jsx as
|
|
2672
|
+
import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
2398
2673
|
function ObjectHeader({ title, subtitle, id, breadcrumb, badge, facts, actions, className, ...rest }) {
|
|
2399
2674
|
return /* @__PURE__ */ jsxs36("header", { className: cx("pire-objheader", className), ...rest, children: [
|
|
2400
2675
|
breadcrumb,
|
|
2401
2676
|
/* @__PURE__ */ jsxs36("div", { className: "pire-objheader-row", children: [
|
|
2402
2677
|
/* @__PURE__ */ jsxs36("div", { style: { minWidth: 0 }, children: [
|
|
2403
|
-
/* @__PURE__ */
|
|
2678
|
+
/* @__PURE__ */ jsx44("h1", { className: "pire-objheader-title", children: title }),
|
|
2404
2679
|
subtitle || id ? /* @__PURE__ */ jsxs36("div", { className: "pire-objheader-sub", children: [
|
|
2405
2680
|
subtitle,
|
|
2406
|
-
id ? /* @__PURE__ */
|
|
2681
|
+
id ? /* @__PURE__ */ jsx44("span", { className: "pire-objheader-id", children: id }) : null
|
|
2407
2682
|
] }) : null
|
|
2408
2683
|
] }),
|
|
2409
2684
|
badge,
|
|
2410
|
-
actions ? /* @__PURE__ */
|
|
2685
|
+
actions ? /* @__PURE__ */ jsx44("div", { className: "pire-objheader-actions", children: actions }) : null
|
|
2411
2686
|
] }),
|
|
2412
|
-
facts?.length ? /* @__PURE__ */
|
|
2413
|
-
/* @__PURE__ */
|
|
2414
|
-
/* @__PURE__ */
|
|
2687
|
+
facts?.length ? /* @__PURE__ */ jsx44("dl", { className: "pire-facts", style: { margin: 0 }, children: facts.map((fact) => /* @__PURE__ */ jsxs36("div", { children: [
|
|
2688
|
+
/* @__PURE__ */ jsx44("dt", { className: "pire-fact-label", children: fact.label }),
|
|
2689
|
+
/* @__PURE__ */ jsx44("dd", { className: "pire-fact-value", "data-numeric": fact.numeric ? "true" : void 0, style: { margin: 0 }, children: fact.value })
|
|
2415
2690
|
] }, fact.label)) }) : null
|
|
2416
2691
|
] });
|
|
2417
2692
|
}
|
|
2418
2693
|
|
|
2419
2694
|
// src/components/data/FilterBar.tsx
|
|
2420
|
-
import { jsx as
|
|
2695
|
+
import { jsx as jsx45, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
2421
2696
|
function FilterBar({
|
|
2422
2697
|
children,
|
|
2423
2698
|
activeFilters = [],
|
|
@@ -2437,21 +2712,21 @@ function FilterBar({
|
|
|
2437
2712
|
return /* @__PURE__ */ jsxs37("section", { className: cx("pire-filterbar", className), ...rest, "aria-label": label, children: [
|
|
2438
2713
|
/* @__PURE__ */ jsxs37("div", { className: "pire-filterbar-controls", children: [
|
|
2439
2714
|
children,
|
|
2440
|
-
onGo ? /* @__PURE__ */
|
|
2715
|
+
onGo ? /* @__PURE__ */ jsx45(Button, { variant: "primary", onPress: onGo, children: go }) : null
|
|
2441
2716
|
] }),
|
|
2442
2717
|
activeFilters.length || resultLabel || actions ? /* @__PURE__ */ jsxs37("div", { className: "pire-filterbar-foot", children: [
|
|
2443
|
-
activeFilters.map((filter) => /* @__PURE__ */
|
|
2444
|
-
activeFilters.length && onClear ? /* @__PURE__ */
|
|
2445
|
-
resultLabel ? /* @__PURE__ */
|
|
2446
|
-
actions ? /* @__PURE__ */
|
|
2718
|
+
activeFilters.map((filter) => /* @__PURE__ */ jsx45(Tag, { onRemove: onRemoveFilter ? () => onRemoveFilter(filter.id) : void 0, children: filter.label }, filter.id)),
|
|
2719
|
+
activeFilters.length && onClear ? /* @__PURE__ */ jsx45(Button, { variant: "tertiary", size: "sm", onPress: onClear, children: clearAll }) : null,
|
|
2720
|
+
resultLabel ? /* @__PURE__ */ jsx45("span", { className: "pire-filterbar-result", "aria-live": "polite", children: resultLabel }) : null,
|
|
2721
|
+
actions ? /* @__PURE__ */ jsx45("div", { className: "pire-filterbar-actions", children: actions }) : null
|
|
2447
2722
|
] }) : null
|
|
2448
2723
|
] });
|
|
2449
2724
|
}
|
|
2450
2725
|
|
|
2451
2726
|
// src/components/data/DescriptionList.tsx
|
|
2452
|
-
import { jsx as
|
|
2727
|
+
import { jsx as jsx46, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
2453
2728
|
function DescriptionList({ items, layout = "rows", columns = 3, className, style, ...rest }) {
|
|
2454
|
-
return /* @__PURE__ */
|
|
2729
|
+
return /* @__PURE__ */ jsx46(
|
|
2455
2730
|
"dl",
|
|
2456
2731
|
{
|
|
2457
2732
|
className: cx("pire-dl", className),
|
|
@@ -2463,20 +2738,20 @@ function DescriptionList({ items, layout = "rows", columns = 3, className, style
|
|
|
2463
2738
|
item.label,
|
|
2464
2739
|
item.hint
|
|
2465
2740
|
] }),
|
|
2466
|
-
/* @__PURE__ */
|
|
2741
|
+
/* @__PURE__ */ jsx46("dd", { className: "pire-dl-value", "data-numeric": item.numeric ? "true" : void 0, children: item.value })
|
|
2467
2742
|
] }, i))
|
|
2468
2743
|
}
|
|
2469
2744
|
);
|
|
2470
2745
|
}
|
|
2471
2746
|
|
|
2472
2747
|
// src/components/data/Timeline.tsx
|
|
2473
|
-
import { jsx as
|
|
2748
|
+
import { jsx as jsx47, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
2474
2749
|
function Timeline({ entries, reverse = false, className, ...rest }) {
|
|
2475
2750
|
const list = reverse ? [...entries].reverse() : entries;
|
|
2476
|
-
return /* @__PURE__ */
|
|
2477
|
-
/* @__PURE__ */
|
|
2478
|
-
/* @__PURE__ */
|
|
2479
|
-
entry.actor ? /* @__PURE__ */
|
|
2751
|
+
return /* @__PURE__ */ jsx47("ol", { className: cx("pire-timeline", className), ...rest, children: list.map((entry, i) => /* @__PURE__ */ jsxs39("li", { className: "pire-timeline-item", children: [
|
|
2752
|
+
/* @__PURE__ */ jsx47("span", { className: "pire-timeline-time", children: entry.time }),
|
|
2753
|
+
/* @__PURE__ */ jsx47("span", { className: "pire-timeline-text", children: entry.event }),
|
|
2754
|
+
entry.actor ? /* @__PURE__ */ jsx47("span", { className: "pire-timeline-actor", children: entry.actor }) : null
|
|
2480
2755
|
] }, entry.id ?? i)) });
|
|
2481
2756
|
}
|
|
2482
2757
|
|
|
@@ -2559,7 +2834,7 @@ function alignToCategories(series, categoryCount) {
|
|
|
2559
2834
|
}
|
|
2560
2835
|
|
|
2561
2836
|
// src/components/data/ChartFrame.tsx
|
|
2562
|
-
import { jsx as
|
|
2837
|
+
import { jsx as jsx48, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
2563
2838
|
function seriesLegend(series) {
|
|
2564
2839
|
return series.map((one, index) => ({
|
|
2565
2840
|
key: one.id,
|
|
@@ -2584,27 +2859,27 @@ function ChartFrame({
|
|
|
2584
2859
|
const msg = usePireMessages();
|
|
2585
2860
|
return /* @__PURE__ */ jsxs40("figure", { className: cx("pire-chart", className), style, children: [
|
|
2586
2861
|
title || description ? /* @__PURE__ */ jsxs40("figcaption", { className: "pire-chart-head", children: [
|
|
2587
|
-
title ? /* @__PURE__ */
|
|
2588
|
-
description ? /* @__PURE__ */
|
|
2862
|
+
title ? /* @__PURE__ */ jsx48("span", { className: "pire-chart-title", children: title }) : null,
|
|
2863
|
+
description ? /* @__PURE__ */ jsx48("span", { className: "pire-chart-desc", children: description }) : null
|
|
2589
2864
|
] }) : null,
|
|
2590
|
-
legend && legend.length > 1 ? /* @__PURE__ */
|
|
2591
|
-
/* @__PURE__ */
|
|
2865
|
+
legend && legend.length > 1 ? /* @__PURE__ */ jsx48("ul", { className: "pire-chart-legend", children: legend.map((item) => /* @__PURE__ */ jsxs40("li", { className: "pire-chart-legend-item", children: [
|
|
2866
|
+
/* @__PURE__ */ jsx48("span", { className: "pire-chart-swatch", style: { background: item.color } }),
|
|
2592
2867
|
item.label
|
|
2593
2868
|
] }, item.key)) }) : null,
|
|
2594
|
-
/* @__PURE__ */
|
|
2595
|
-
/* @__PURE__ */
|
|
2596
|
-
/* @__PURE__ */
|
|
2597
|
-
/* @__PURE__ */
|
|
2598
|
-
/* @__PURE__ */
|
|
2599
|
-
series.map((one) => /* @__PURE__ */
|
|
2869
|
+
/* @__PURE__ */ jsx48("div", { className: "pire-chart-plot", "aria-hidden": "true", children }),
|
|
2870
|
+
/* @__PURE__ */ jsx48("div", { className: showDataTable ? "pire-chart-table" : "pire-sr-only", children: /* @__PURE__ */ jsxs40("table", { children: [
|
|
2871
|
+
/* @__PURE__ */ jsx48("caption", { children: label }),
|
|
2872
|
+
/* @__PURE__ */ jsx48("thead", { children: /* @__PURE__ */ jsxs40("tr", { children: [
|
|
2873
|
+
/* @__PURE__ */ jsx48("th", { scope: "col", children: msg.chartCategoryHeader }),
|
|
2874
|
+
series.map((one) => /* @__PURE__ */ jsx48("th", { scope: "col", children: one.label }, one.id))
|
|
2600
2875
|
] }) }),
|
|
2601
|
-
/* @__PURE__ */
|
|
2876
|
+
/* @__PURE__ */ jsx48("tbody", { children: categories.map((category, categoryIndex) => (
|
|
2602
2877
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2603
2878
|
/* @__PURE__ */ jsxs40("tr", { children: [
|
|
2604
|
-
/* @__PURE__ */
|
|
2879
|
+
/* @__PURE__ */ jsx48("th", { scope: "row", children: category }),
|
|
2605
2880
|
series.map((one) => {
|
|
2606
2881
|
const value = one.values[categoryIndex];
|
|
2607
|
-
return /* @__PURE__ */
|
|
2882
|
+
return /* @__PURE__ */ jsx48("td", { children: value == null ? msg.chartNoValue : formatValue(value) }, one.id);
|
|
2608
2883
|
})
|
|
2609
2884
|
] }, categoryIndex)
|
|
2610
2885
|
)) })
|
|
@@ -2613,7 +2888,7 @@ function ChartFrame({
|
|
|
2613
2888
|
}
|
|
2614
2889
|
|
|
2615
2890
|
// src/components/data/BarChart.tsx
|
|
2616
|
-
import { jsx as
|
|
2891
|
+
import { jsx as jsx49, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
2617
2892
|
function BarChart({
|
|
2618
2893
|
categories,
|
|
2619
2894
|
series: rawSeries,
|
|
@@ -2645,7 +2920,7 @@ function BarChart({
|
|
|
2645
2920
|
const value = series[0].values[categoryIndex];
|
|
2646
2921
|
return value == null ? msg.chartNoValue : formatValue(value);
|
|
2647
2922
|
};
|
|
2648
|
-
return /* @__PURE__ */
|
|
2923
|
+
return /* @__PURE__ */ jsx49(
|
|
2649
2924
|
ChartFrame,
|
|
2650
2925
|
{
|
|
2651
2926
|
label,
|
|
@@ -2658,7 +2933,7 @@ function BarChart({
|
|
|
2658
2933
|
showDataTable,
|
|
2659
2934
|
className,
|
|
2660
2935
|
style,
|
|
2661
|
-
children: !hasData ? /* @__PURE__ */
|
|
2936
|
+
children: !hasData ? /* @__PURE__ */ jsx49("div", { className: "pire-chart-empty", children: emptyState ?? msg.chartEmpty }) : /* @__PURE__ */ jsx49(
|
|
2662
2937
|
"div",
|
|
2663
2938
|
{
|
|
2664
2939
|
className: "pire-chart-bars",
|
|
@@ -2668,8 +2943,8 @@ function BarChart({
|
|
|
2668
2943
|
children: categories.map((category, categoryIndex) => (
|
|
2669
2944
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2670
2945
|
/* @__PURE__ */ jsxs41("div", { className: "pire-chart-group", children: [
|
|
2671
|
-
/* @__PURE__ */
|
|
2672
|
-
/* @__PURE__ */
|
|
2946
|
+
/* @__PURE__ */ jsx49("span", { className: "pire-chart-cat", children: category }),
|
|
2947
|
+
/* @__PURE__ */ jsx49("div", { className: "pire-chart-track", children: series.map((one, seriesIndex) => {
|
|
2673
2948
|
const value = one.values[categoryIndex];
|
|
2674
2949
|
if (value == null) return null;
|
|
2675
2950
|
return /* @__PURE__ */ jsxs41(
|
|
@@ -2681,7 +2956,7 @@ function BarChart({
|
|
|
2681
2956
|
"--pire-bar-color": seriesColor(one, seriesIndex)
|
|
2682
2957
|
},
|
|
2683
2958
|
children: [
|
|
2684
|
-
withValues && orientation === "vertical" ? /* @__PURE__ */
|
|
2959
|
+
withValues && orientation === "vertical" ? /* @__PURE__ */ jsx49("span", { className: "pire-chart-barval", children: formatValue(value) }) : null,
|
|
2685
2960
|
/* @__PURE__ */ jsxs41("span", { className: "pire-chart-tip", role: "presentation", children: [
|
|
2686
2961
|
series.length > 1 ? `${one.label}: ` : "",
|
|
2687
2962
|
formatValue(value)
|
|
@@ -2691,7 +2966,7 @@ function BarChart({
|
|
|
2691
2966
|
one.id
|
|
2692
2967
|
);
|
|
2693
2968
|
}) }),
|
|
2694
|
-
withValues && orientation === "horizontal" ? /* @__PURE__ */
|
|
2969
|
+
withValues && orientation === "horizontal" ? /* @__PURE__ */ jsx49("span", { className: "pire-chart-val", children: horizontalLabelFor(categoryIndex) }) : null
|
|
2695
2970
|
] }, categoryIndex)
|
|
2696
2971
|
))
|
|
2697
2972
|
}
|
|
@@ -2701,14 +2976,14 @@ function BarChart({
|
|
|
2701
2976
|
}
|
|
2702
2977
|
|
|
2703
2978
|
// src/components/data/LineChart.tsx
|
|
2704
|
-
import * as
|
|
2705
|
-
import { jsx as
|
|
2979
|
+
import * as React14 from "react";
|
|
2980
|
+
import { jsx as jsx50, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
2706
2981
|
var PLOT_INSET = { top: 10, right: 14, bottom: 24, left: 58 };
|
|
2707
2982
|
var MARKER_LIMIT = 20;
|
|
2708
|
-
var useIsomorphicLayoutEffect2 = typeof window === "undefined" ?
|
|
2983
|
+
var useIsomorphicLayoutEffect2 = typeof window === "undefined" ? React14.useEffect : React14.useLayoutEffect;
|
|
2709
2984
|
function useMeasuredWidth() {
|
|
2710
|
-
const ref =
|
|
2711
|
-
const [width, setWidth] =
|
|
2985
|
+
const ref = React14.useRef(null);
|
|
2986
|
+
const [width, setWidth] = React14.useState(0);
|
|
2712
2987
|
useIsomorphicLayoutEffect2(() => {
|
|
2713
2988
|
const element = ref.current;
|
|
2714
2989
|
if (!element) return;
|
|
@@ -2769,7 +3044,7 @@ function LineChart({
|
|
|
2769
3044
|
return `M${xAt(present[0].index)} ${baseline} L${line} L${xAt(last.index)} ${baseline} Z`;
|
|
2770
3045
|
};
|
|
2771
3046
|
const labelEvery = Math.max(1, Math.ceil(categories.length / Math.max(2, Math.floor(innerWidth / 64))));
|
|
2772
|
-
return /* @__PURE__ */
|
|
3047
|
+
return /* @__PURE__ */ jsx50(
|
|
2773
3048
|
ChartFrame,
|
|
2774
3049
|
{
|
|
2775
3050
|
label,
|
|
@@ -2782,7 +3057,7 @@ function LineChart({
|
|
|
2782
3057
|
showDataTable,
|
|
2783
3058
|
className,
|
|
2784
3059
|
style,
|
|
2785
|
-
children: !hasData ? /* @__PURE__ */
|
|
3060
|
+
children: !hasData ? /* @__PURE__ */ jsx50("div", { className: "pire-chart-empty", children: emptyState ?? msg.chartEmpty }) : /* @__PURE__ */ jsxs42("div", { className: "pire-chart-lines", ref: plotRef, style: { height }, children: [
|
|
2786
3061
|
width > 0 ? /* @__PURE__ */ jsxs42(
|
|
2787
3062
|
"svg",
|
|
2788
3063
|
{
|
|
@@ -2792,7 +3067,7 @@ function LineChart({
|
|
|
2792
3067
|
"aria-hidden": "true",
|
|
2793
3068
|
focusable: "false",
|
|
2794
3069
|
children: [
|
|
2795
|
-
/* @__PURE__ */
|
|
3070
|
+
/* @__PURE__ */ jsx50("g", { className: "pire-chart-grid", children: scale.ticks.map((tick) => /* @__PURE__ */ jsx50(
|
|
2796
3071
|
"line",
|
|
2797
3072
|
{
|
|
2798
3073
|
x1: PLOT_INSET.left,
|
|
@@ -2803,7 +3078,7 @@ function LineChart({
|
|
|
2803
3078
|
tick
|
|
2804
3079
|
)) }),
|
|
2805
3080
|
/* @__PURE__ */ jsxs42("g", { className: "pire-chart-tick", children: [
|
|
2806
|
-
scale.ticks.map((tick) => /* @__PURE__ */
|
|
3081
|
+
scale.ticks.map((tick) => /* @__PURE__ */ jsx50(
|
|
2807
3082
|
"text",
|
|
2808
3083
|
{
|
|
2809
3084
|
x: PLOT_INSET.left - 8,
|
|
@@ -2816,10 +3091,10 @@ function LineChart({
|
|
|
2816
3091
|
)),
|
|
2817
3092
|
categories.map((category, index) => index % labelEvery === 0 ? (
|
|
2818
3093
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2819
|
-
/* @__PURE__ */
|
|
3094
|
+
/* @__PURE__ */ jsx50("text", { x: xAt(index), y: height - 6, textAnchor: "middle", children: category }, index)
|
|
2820
3095
|
) : null)
|
|
2821
3096
|
] }),
|
|
2822
|
-
showArea && series[0] ? /* @__PURE__ */
|
|
3097
|
+
showArea && series[0] ? /* @__PURE__ */ jsx50(
|
|
2823
3098
|
"path",
|
|
2824
3099
|
{
|
|
2825
3100
|
d: areaFor(series[0].values),
|
|
@@ -2827,10 +3102,10 @@ function LineChart({
|
|
|
2827
3102
|
style: { fill: seriesColor(series[0], 0) }
|
|
2828
3103
|
}
|
|
2829
3104
|
) : null,
|
|
2830
|
-
/* @__PURE__ */
|
|
2831
|
-
withMarkers ? /* @__PURE__ */
|
|
3105
|
+
/* @__PURE__ */ jsx50("g", { className: "pire-chart-line", fill: "none", children: series.map((one, index) => /* @__PURE__ */ jsx50("path", { d: pathFor(one.values), stroke: seriesColor(one, index) }, one.id)) }),
|
|
3106
|
+
withMarkers ? /* @__PURE__ */ jsx50("g", { className: "pire-chart-marker", children: series.map((one, seriesIndex) => one.values.map((value, index) => value == null ? null : (
|
|
2832
3107
|
// biome-ignore lint/suspicious/noArrayIndexKey: a series is positional — the index is the point's identity, and category labels repeat.
|
|
2833
|
-
/* @__PURE__ */
|
|
3108
|
+
/* @__PURE__ */ jsx50(
|
|
2834
3109
|
"circle",
|
|
2835
3110
|
{
|
|
2836
3111
|
cx: xAt(index),
|
|
@@ -2844,15 +3119,15 @@ function LineChart({
|
|
|
2844
3119
|
]
|
|
2845
3120
|
}
|
|
2846
3121
|
) : null,
|
|
2847
|
-
/* @__PURE__ */
|
|
3122
|
+
/* @__PURE__ */ jsx50(
|
|
2848
3123
|
"div",
|
|
2849
3124
|
{
|
|
2850
3125
|
className: "pire-chart-hover",
|
|
2851
3126
|
style: { inset: `${PLOT_INSET.top}px ${PLOT_INSET.right}px ${PLOT_INSET.bottom}px ${PLOT_INSET.left}px` },
|
|
2852
3127
|
children: categories.map((category, categoryIndex) => (
|
|
2853
3128
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2854
|
-
/* @__PURE__ */
|
|
2855
|
-
/* @__PURE__ */
|
|
3129
|
+
/* @__PURE__ */ jsx50("div", { className: "pire-chart-band", children: /* @__PURE__ */ jsxs42("span", { className: "pire-chart-tip", role: "presentation", children: [
|
|
3130
|
+
/* @__PURE__ */ jsx50("strong", { children: category }),
|
|
2856
3131
|
series.map((one) => {
|
|
2857
3132
|
const value = one.values[categoryIndex];
|
|
2858
3133
|
return /* @__PURE__ */ jsxs42("span", { className: "pire-chart-tip-row", children: [
|
|
@@ -2871,8 +3146,8 @@ function LineChart({
|
|
|
2871
3146
|
}
|
|
2872
3147
|
|
|
2873
3148
|
// src/components/data/DonutChart.tsx
|
|
2874
|
-
import * as
|
|
2875
|
-
import { jsx as
|
|
3149
|
+
import * as React15 from "react";
|
|
3150
|
+
import { jsx as jsx51, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
2876
3151
|
var SEGMENT_GAP_DEGREES = 1.5;
|
|
2877
3152
|
function DonutChart({
|
|
2878
3153
|
categories,
|
|
@@ -2892,7 +3167,7 @@ function DonutChart({
|
|
|
2892
3167
|
}) {
|
|
2893
3168
|
const label = rest["aria-label"];
|
|
2894
3169
|
const msg = usePireMessages();
|
|
2895
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
3170
|
+
const [hoveredIndex, setHoveredIndex] = React15.useState(null);
|
|
2896
3171
|
warnOnDonutShape(series, categories.length, label);
|
|
2897
3172
|
const values = (series[0]?.values ?? []).slice(0, categories.length);
|
|
2898
3173
|
const segments = categories.map((category, index) => ({ category, index, value: values[index] ?? 0 })).filter((segment) => segment.value > 0);
|
|
@@ -2909,7 +3184,7 @@ function DonutChart({
|
|
|
2909
3184
|
}));
|
|
2910
3185
|
const hovered = hoveredIndex == null ? null : segments.find((segment) => segment.index === hoveredIndex) ?? null;
|
|
2911
3186
|
let arcStart = 0;
|
|
2912
|
-
return /* @__PURE__ */
|
|
3187
|
+
return /* @__PURE__ */ jsx51(
|
|
2913
3188
|
ChartFrame,
|
|
2914
3189
|
{
|
|
2915
3190
|
label,
|
|
@@ -2922,8 +3197,8 @@ function DonutChart({
|
|
|
2922
3197
|
showDataTable,
|
|
2923
3198
|
className,
|
|
2924
3199
|
style,
|
|
2925
|
-
children: !hasData ? /* @__PURE__ */
|
|
2926
|
-
/* @__PURE__ */
|
|
3200
|
+
children: !hasData ? /* @__PURE__ */ jsx51("div", { className: "pire-chart-empty", children: emptyState ?? msg.chartEmpty }) : /* @__PURE__ */ jsxs43("div", { className: "pire-chart-donut", style: { height: size }, children: [
|
|
3201
|
+
/* @__PURE__ */ jsx51(
|
|
2927
3202
|
"svg",
|
|
2928
3203
|
{
|
|
2929
3204
|
width: size,
|
|
@@ -2931,13 +3206,13 @@ function DonutChart({
|
|
|
2931
3206
|
"aria-hidden": "true",
|
|
2932
3207
|
focusable: "false",
|
|
2933
3208
|
onMouseLeave: () => setHoveredIndex(null),
|
|
2934
|
-
children: /* @__PURE__ */
|
|
3209
|
+
children: /* @__PURE__ */ jsx51("g", { transform: `rotate(-90 ${size / 2} ${size / 2})`, children: segments.map((segment) => {
|
|
2935
3210
|
const arcLength = segment.value / total * circumference;
|
|
2936
3211
|
const offset = arcStart;
|
|
2937
3212
|
arcStart += arcLength;
|
|
2938
3213
|
return (
|
|
2939
3214
|
// biome-ignore lint/a11y/noStaticElementInteractions: pointer-only enhancement inside an aria-hidden plot — the arcs carry nothing the data table does not, so there is nothing here for a keyboard to reach.
|
|
2940
|
-
/* @__PURE__ */
|
|
3215
|
+
/* @__PURE__ */ jsx51(
|
|
2941
3216
|
"circle",
|
|
2942
3217
|
{
|
|
2943
3218
|
className: "pire-chart-arc",
|
|
@@ -2958,8 +3233,8 @@ function DonutChart({
|
|
|
2958
3233
|
}
|
|
2959
3234
|
),
|
|
2960
3235
|
/* @__PURE__ */ jsxs43("div", { className: "pire-chart-donut-center", style: { width: size - thickness * 2 - 8 }, children: [
|
|
2961
|
-
/* @__PURE__ */
|
|
2962
|
-
/* @__PURE__ */
|
|
3236
|
+
/* @__PURE__ */ jsx51("span", { className: "pire-chart-donut-value", children: hovered ? formatValue(hovered.value) : centerLabel ?? formatValue(total) }),
|
|
3237
|
+
/* @__PURE__ */ jsx51("span", { className: "pire-chart-donut-caption", children: hovered ? hovered.category : centerCaption })
|
|
2963
3238
|
] })
|
|
2964
3239
|
] })
|
|
2965
3240
|
}
|
|
@@ -2970,15 +3245,15 @@ function colorForSegment(index) {
|
|
|
2970
3245
|
}
|
|
2971
3246
|
|
|
2972
3247
|
// src/components/data/LinkList.tsx
|
|
2973
|
-
import { Button as
|
|
2974
|
-
import { jsx as
|
|
3248
|
+
import { Button as AriaButton14 } from "react-aria-components";
|
|
3249
|
+
import { jsx as jsx52, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
2975
3250
|
function LinkList({ items, onSelect, emphasis = "key", className, ...rest }) {
|
|
2976
|
-
return /* @__PURE__ */
|
|
2977
|
-
const keySlot = item.key ? /* @__PURE__ */
|
|
2978
|
-
const textSlot = item.text ? /* @__PURE__ */
|
|
3251
|
+
return /* @__PURE__ */ jsx52("div", { className: cx("pire-linklist", className), role: "list", "data-emphasis": emphasis, ...rest, children: items.map((item) => {
|
|
3252
|
+
const keySlot = item.key ? /* @__PURE__ */ jsx52("span", { className: "pire-linklist-key", children: item.key }) : null;
|
|
3253
|
+
const textSlot = item.text ? /* @__PURE__ */ jsx52("span", { className: "pire-linklist-text", children: item.text }) : null;
|
|
2979
3254
|
const [first, second] = emphasis === "text" ? [textSlot, keySlot] : [keySlot, textSlot];
|
|
2980
|
-
return /* @__PURE__ */
|
|
2981
|
-
item.icon ? /* @__PURE__ */
|
|
3255
|
+
return /* @__PURE__ */ jsx52("div", { role: "listitem", className: "pire-linklist-row", children: /* @__PURE__ */ jsxs44(AriaButton14, { className: "pire-linklist-item", onPress: () => onSelect?.(item.id), children: [
|
|
3256
|
+
item.icon ? /* @__PURE__ */ jsx52(Icon, { name: item.icon, size: 16, style: { color: "var(--text-secondary)" } }) : null,
|
|
2982
3257
|
first,
|
|
2983
3258
|
second,
|
|
2984
3259
|
item.trailing
|
|
@@ -2987,7 +3262,7 @@ function LinkList({ items, onSelect, emphasis = "key", className, ...rest }) {
|
|
|
2987
3262
|
}
|
|
2988
3263
|
|
|
2989
3264
|
// src/components/layout/PageBand.tsx
|
|
2990
|
-
import { jsx as
|
|
3265
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
2991
3266
|
function PageBand({
|
|
2992
3267
|
surface = "card",
|
|
2993
3268
|
hasBorder = true,
|
|
@@ -2995,7 +3270,7 @@ function PageBand({
|
|
|
2995
3270
|
className,
|
|
2996
3271
|
...rest
|
|
2997
3272
|
}) {
|
|
2998
|
-
return /* @__PURE__ */
|
|
3273
|
+
return /* @__PURE__ */ jsx53(
|
|
2999
3274
|
"div",
|
|
3000
3275
|
{
|
|
3001
3276
|
className: cx("pire-pageband", className),
|
|
@@ -3008,29 +3283,29 @@ function PageBand({
|
|
|
3008
3283
|
}
|
|
3009
3284
|
|
|
3010
3285
|
// src/components/layout/PageHeader.tsx
|
|
3011
|
-
import { jsx as
|
|
3286
|
+
import { jsx as jsx54, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
3012
3287
|
function PageHeader({ title, subtitle, actions, className, ...rest }) {
|
|
3013
3288
|
return /* @__PURE__ */ jsxs45("header", { className: cx("pire-pageheader", className), ...rest, children: [
|
|
3014
3289
|
/* @__PURE__ */ jsxs45("div", { style: { minWidth: 0 }, children: [
|
|
3015
|
-
/* @__PURE__ */
|
|
3016
|
-
subtitle ? /* @__PURE__ */
|
|
3290
|
+
/* @__PURE__ */ jsx54("h1", { className: "pire-pageheader-title", children: title }),
|
|
3291
|
+
subtitle ? /* @__PURE__ */ jsx54("p", { className: "pire-pageheader-sub", children: subtitle }) : null
|
|
3017
3292
|
] }),
|
|
3018
|
-
actions ? /* @__PURE__ */
|
|
3293
|
+
actions ? /* @__PURE__ */ jsx54("div", { className: "pire-pageheader-actions", children: actions }) : null
|
|
3019
3294
|
] });
|
|
3020
3295
|
}
|
|
3021
3296
|
|
|
3022
3297
|
// src/components/layout/SectionHeader.tsx
|
|
3023
|
-
import { jsx as
|
|
3298
|
+
import { jsx as jsx55, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
3024
3299
|
function SectionHeader({ title, meta, actions, className, ...rest }) {
|
|
3025
3300
|
return /* @__PURE__ */ jsxs46("div", { className: cx("pire-sectionhead", className), ...rest, children: [
|
|
3026
|
-
/* @__PURE__ */
|
|
3027
|
-
meta ? /* @__PURE__ */
|
|
3028
|
-
actions ? /* @__PURE__ */
|
|
3301
|
+
/* @__PURE__ */ jsx55("span", { className: "pire-eyebrow", children: title }),
|
|
3302
|
+
meta ? /* @__PURE__ */ jsx55("span", { style: { font: "var(--type-caption)", color: "var(--text-tertiary)" }, children: meta }) : null,
|
|
3303
|
+
actions ? /* @__PURE__ */ jsx55("div", { className: "pire-sectionhead-actions", children: actions }) : null
|
|
3029
3304
|
] });
|
|
3030
3305
|
}
|
|
3031
3306
|
|
|
3032
3307
|
// src/components/layout/SelectionBar.tsx
|
|
3033
|
-
import { jsx as
|
|
3308
|
+
import { jsx as jsx56, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
3034
3309
|
function SelectionBar({ count, noun = "record", children, actions, className, ...rest }) {
|
|
3035
3310
|
if (!count) return null;
|
|
3036
3311
|
return /* @__PURE__ */ jsxs47("div", { className: cx("pire-selectionbar", className), role: "status", "aria-live": "polite", ...rest, children: [
|
|
@@ -3041,23 +3316,23 @@ function SelectionBar({ count, noun = "record", children, actions, className, ..
|
|
|
3041
3316
|
count === 1 ? "" : "s",
|
|
3042
3317
|
" selected"
|
|
3043
3318
|
] }),
|
|
3044
|
-
children ? /* @__PURE__ */
|
|
3045
|
-
actions ? /* @__PURE__ */
|
|
3319
|
+
children ? /* @__PURE__ */ jsx56("span", { style: { color: "var(--text-secondary)", font: "var(--type-caption)" }, children }) : null,
|
|
3320
|
+
actions ? /* @__PURE__ */ jsx56("div", { className: "pire-selectionbar-actions", children: actions }) : null
|
|
3046
3321
|
] });
|
|
3047
3322
|
}
|
|
3048
3323
|
|
|
3049
3324
|
// src/components/layout/FooterBar.tsx
|
|
3050
|
-
import { jsx as
|
|
3325
|
+
import { jsx as jsx57, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
3051
3326
|
function FooterBar({ note, actions, children, className, ...rest }) {
|
|
3052
3327
|
return /* @__PURE__ */ jsxs48("footer", { className: cx("pire-footerbar", className), ...rest, children: [
|
|
3053
|
-
note ? /* @__PURE__ */
|
|
3328
|
+
note ? /* @__PURE__ */ jsx57("span", { className: "pire-footerbar-note", children: note }) : null,
|
|
3054
3329
|
children,
|
|
3055
|
-
actions ? /* @__PURE__ */
|
|
3330
|
+
actions ? /* @__PURE__ */ jsx57("div", { className: "pire-footerbar-actions", children: actions }) : null
|
|
3056
3331
|
] });
|
|
3057
3332
|
}
|
|
3058
3333
|
|
|
3059
3334
|
// src/components/patterns/ConfirmDialog.tsx
|
|
3060
|
-
import { Fragment as Fragment4, jsx as
|
|
3335
|
+
import { Fragment as Fragment4, jsx as jsx58, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
3061
3336
|
function ConfirmDialog({
|
|
3062
3337
|
isOpen,
|
|
3063
3338
|
title,
|
|
@@ -3082,24 +3357,167 @@ function ConfirmDialog({
|
|
|
3082
3357
|
isDismissable: !isBusy,
|
|
3083
3358
|
showClose: false,
|
|
3084
3359
|
footer: /* @__PURE__ */ jsxs49(Fragment4, { children: [
|
|
3085
|
-
/* @__PURE__ */
|
|
3086
|
-
/* @__PURE__ */
|
|
3360
|
+
/* @__PURE__ */ jsx58(Button, { variant: "tertiary", isDisabled: isBusy, onPress: onCancel, children: cancelLabel }),
|
|
3361
|
+
/* @__PURE__ */ jsx58(Button, { variant: tone === "danger" ? "danger" : "primary", isDisabled: isBusy, onPress: onConfirm, children: isBusy ? "Working\u2026" : confirmLabel })
|
|
3087
3362
|
] }),
|
|
3088
3363
|
children: [
|
|
3089
|
-
consequence ? /* @__PURE__ */
|
|
3364
|
+
consequence ? /* @__PURE__ */ jsx58(InlineMessage, { kind: tone === "danger" ? "error" : "warning", style: { marginBottom: children ? "var(--sp-3)" : 0 }, children: consequence }) : null,
|
|
3090
3365
|
children
|
|
3091
3366
|
]
|
|
3092
3367
|
}
|
|
3093
3368
|
);
|
|
3094
3369
|
}
|
|
3095
3370
|
|
|
3371
|
+
// src/components/patterns/CommandPalette.tsx
|
|
3372
|
+
import * as React16 from "react";
|
|
3373
|
+
import {
|
|
3374
|
+
Autocomplete,
|
|
3375
|
+
ModalOverlay as ModalOverlay2,
|
|
3376
|
+
Modal as Modal2,
|
|
3377
|
+
Dialog as AriaDialog4,
|
|
3378
|
+
SearchField,
|
|
3379
|
+
Input as AriaInput5,
|
|
3380
|
+
Menu as AriaMenu2,
|
|
3381
|
+
MenuSection as AriaMenuSection2,
|
|
3382
|
+
Header as Header2,
|
|
3383
|
+
useFilter
|
|
3384
|
+
} from "react-aria-components";
|
|
3385
|
+
import { Fragment as Fragment5, jsx as jsx59, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
3386
|
+
var RESULTS_SECTION_KEY = "__pire_results__";
|
|
3387
|
+
var searchableText = (item) => [item.label, item.description, item.keywords].filter(Boolean).join(" ");
|
|
3388
|
+
function CommandPalette({
|
|
3389
|
+
isOpen,
|
|
3390
|
+
onOpenChange,
|
|
3391
|
+
groups = [],
|
|
3392
|
+
resultsGroup,
|
|
3393
|
+
onAction,
|
|
3394
|
+
onSearch,
|
|
3395
|
+
isLoading,
|
|
3396
|
+
emptyLabel,
|
|
3397
|
+
loadingLabel,
|
|
3398
|
+
placeholder,
|
|
3399
|
+
footer,
|
|
3400
|
+
showFooter = true,
|
|
3401
|
+
"aria-label": ariaLabel,
|
|
3402
|
+
className,
|
|
3403
|
+
style
|
|
3404
|
+
}) {
|
|
3405
|
+
const msg = usePireMessages();
|
|
3406
|
+
const [query, setQuery] = React16.useState("");
|
|
3407
|
+
const { contains } = useFilter({ sensitivity: "base" });
|
|
3408
|
+
React16.useEffect(() => {
|
|
3409
|
+
if (isOpen) setQuery("");
|
|
3410
|
+
}, [isOpen]);
|
|
3411
|
+
const searchableById = React16.useMemo(() => {
|
|
3412
|
+
const byId = /* @__PURE__ */ new Map();
|
|
3413
|
+
for (const group of groups) for (const item of group.items) byId.set(item.id, searchableText(item));
|
|
3414
|
+
return byId;
|
|
3415
|
+
}, [groups]);
|
|
3416
|
+
const filter = React16.useCallback((textValue, inputValue, node) => {
|
|
3417
|
+
if (node.parentKey === RESULTS_SECTION_KEY) return true;
|
|
3418
|
+
return contains(searchableById.get(String(node.key)) ?? textValue, inputValue);
|
|
3419
|
+
}, [contains, searchableById]);
|
|
3420
|
+
const handleInputChange = (value) => {
|
|
3421
|
+
setQuery(value);
|
|
3422
|
+
onSearch?.(value);
|
|
3423
|
+
};
|
|
3424
|
+
const sections = [...groups, ...resultsGroup ? [{ ...resultsGroup, id: RESULTS_SECTION_KEY }] : []];
|
|
3425
|
+
const status = isLoading ? loadingLabel ?? msg.commandPaletteLoading : emptyLabel ?? msg.commandPaletteEmpty;
|
|
3426
|
+
return /* @__PURE__ */ jsx59(
|
|
3427
|
+
ModalOverlay2,
|
|
3428
|
+
{
|
|
3429
|
+
className: "pire-cp-overlay",
|
|
3430
|
+
isOpen,
|
|
3431
|
+
isDismissable: true,
|
|
3432
|
+
onOpenChange: (open) => {
|
|
3433
|
+
if (!open) onOpenChange?.(false);
|
|
3434
|
+
},
|
|
3435
|
+
children: /* @__PURE__ */ jsx59(Modal2, { className: cx("pire-cp-modal", className), style, children: /* @__PURE__ */ jsxs50(AriaDialog4, { className: "pire-cp-dialog", "aria-label": ariaLabel ?? msg.commandPaletteLabel, children: [
|
|
3436
|
+
/* @__PURE__ */ jsxs50(Autocomplete, { filter, inputValue: query, onInputChange: handleInputChange, children: [
|
|
3437
|
+
/* @__PURE__ */ jsxs50(SearchField, { className: "pire-cp-search", "aria-label": msg.commandPaletteSearchLabel, children: [
|
|
3438
|
+
/* @__PURE__ */ jsx59(Icon, { name: "search", size: 18, className: "pire-cp-search-icon" }),
|
|
3439
|
+
/* @__PURE__ */ jsx59(
|
|
3440
|
+
AriaInput5,
|
|
3441
|
+
{
|
|
3442
|
+
className: "pire-cp-input",
|
|
3443
|
+
autoFocus: true,
|
|
3444
|
+
placeholder: placeholder ?? msg.commandPalettePlaceholder
|
|
3445
|
+
}
|
|
3446
|
+
)
|
|
3447
|
+
] }),
|
|
3448
|
+
isLoading ? /* @__PURE__ */ jsx59("div", { className: "pire-cp-loading", role: "status", "aria-live": "polite", children: loadingLabel ?? msg.commandPaletteLoading }) : null,
|
|
3449
|
+
/* @__PURE__ */ jsx59(
|
|
3450
|
+
AriaMenu2,
|
|
3451
|
+
{
|
|
3452
|
+
className: "pire-cp-list",
|
|
3453
|
+
onAction: (key) => onAction?.(String(key)),
|
|
3454
|
+
renderEmptyState: () => /* @__PURE__ */ jsx59("div", { className: "pire-cp-status", children: status }),
|
|
3455
|
+
children: sections.map((section) => /* @__PURE__ */ jsxs50(AriaMenuSection2, { id: section.id, className: "pire-cp-section", children: [
|
|
3456
|
+
section.label ? /* @__PURE__ */ jsx59(Header2, { className: "pire-cp-section-title", children: section.label }) : null,
|
|
3457
|
+
section.items.map((item) => /* @__PURE__ */ jsx59(
|
|
3458
|
+
MenuItem,
|
|
3459
|
+
{
|
|
3460
|
+
id: item.id,
|
|
3461
|
+
textValue: item.label,
|
|
3462
|
+
icon: item.icon,
|
|
3463
|
+
description: item.description,
|
|
3464
|
+
shortcut: item.shortcut,
|
|
3465
|
+
isDisabled: item.isDisabled,
|
|
3466
|
+
children: item.label
|
|
3467
|
+
},
|
|
3468
|
+
item.id
|
|
3469
|
+
))
|
|
3470
|
+
] }, section.id))
|
|
3471
|
+
}
|
|
3472
|
+
)
|
|
3473
|
+
] }),
|
|
3474
|
+
showFooter ? (
|
|
3475
|
+
// aria-hidden: the glyphs are a sighted affordance for discovering the keys. A screen
|
|
3476
|
+
// reader already announces the listbox semantics that make those keys work, so reading
|
|
3477
|
+
// "up arrow down arrow navigate" out loud is noise on every open.
|
|
3478
|
+
/* @__PURE__ */ jsx59("div", { className: "pire-cp-foot", "aria-hidden": "true", children: footer ?? /* @__PURE__ */ jsxs50(Fragment5, { children: [
|
|
3479
|
+
/* @__PURE__ */ jsxs50("span", { className: "pire-cp-hint", children: [
|
|
3480
|
+
/* @__PURE__ */ jsx59(Kbd, { children: "\u2191" }),
|
|
3481
|
+
/* @__PURE__ */ jsx59(Kbd, { children: "\u2193" }),
|
|
3482
|
+
msg.commandPaletteHintNavigate
|
|
3483
|
+
] }),
|
|
3484
|
+
/* @__PURE__ */ jsxs50("span", { className: "pire-cp-hint", children: [
|
|
3485
|
+
/* @__PURE__ */ jsx59(Kbd, { children: "\u21B5" }),
|
|
3486
|
+
msg.commandPaletteHintSelect
|
|
3487
|
+
] }),
|
|
3488
|
+
/* @__PURE__ */ jsxs50("span", { className: "pire-cp-hint", children: [
|
|
3489
|
+
/* @__PURE__ */ jsx59(Kbd, { children: "esc" }),
|
|
3490
|
+
msg.commandPaletteHintClose
|
|
3491
|
+
] })
|
|
3492
|
+
] }) })
|
|
3493
|
+
) : null
|
|
3494
|
+
] }) })
|
|
3495
|
+
}
|
|
3496
|
+
);
|
|
3497
|
+
}
|
|
3498
|
+
function useCommandPaletteShortcut(onTrigger, { key = "k", isDisabled } = {}) {
|
|
3499
|
+
const handler = React16.useRef(onTrigger);
|
|
3500
|
+
handler.current = onTrigger;
|
|
3501
|
+
React16.useEffect(() => {
|
|
3502
|
+
if (isDisabled) return;
|
|
3503
|
+
const onKeyDown = (event) => {
|
|
3504
|
+
if (!(event.metaKey || event.ctrlKey) || event.altKey) return;
|
|
3505
|
+
if (event.key.toLowerCase() !== key.toLowerCase()) return;
|
|
3506
|
+
event.preventDefault();
|
|
3507
|
+
handler.current();
|
|
3508
|
+
};
|
|
3509
|
+
document.addEventListener("keydown", onKeyDown);
|
|
3510
|
+
return () => document.removeEventListener("keydown", onKeyDown);
|
|
3511
|
+
}, [key, isDisabled]);
|
|
3512
|
+
}
|
|
3513
|
+
|
|
3096
3514
|
// src/components/patterns/SidePanel.tsx
|
|
3097
|
-
import { ModalOverlay as
|
|
3098
|
-
import { jsx as
|
|
3515
|
+
import { ModalOverlay as ModalOverlay3, Modal as Modal3, Dialog as AriaDialog5, Heading as Heading5 } from "react-aria-components";
|
|
3516
|
+
import { jsx as jsx60, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
3099
3517
|
function SidePanel({ isOpen, title, subtitle, width = 400, children, footer, onClose, className }) {
|
|
3100
3518
|
const msg = usePireMessages();
|
|
3101
|
-
return /* @__PURE__ */
|
|
3102
|
-
|
|
3519
|
+
return /* @__PURE__ */ jsx60(
|
|
3520
|
+
ModalOverlay3,
|
|
3103
3521
|
{
|
|
3104
3522
|
className: "pire-sidepanel-overlay",
|
|
3105
3523
|
isOpen,
|
|
@@ -3107,36 +3525,36 @@ function SidePanel({ isOpen, title, subtitle, width = 400, children, footer, onC
|
|
|
3107
3525
|
onOpenChange: (o) => {
|
|
3108
3526
|
if (!o) onClose?.();
|
|
3109
3527
|
},
|
|
3110
|
-
children: /* @__PURE__ */
|
|
3111
|
-
/* @__PURE__ */
|
|
3112
|
-
/* @__PURE__ */
|
|
3113
|
-
/* @__PURE__ */
|
|
3114
|
-
subtitle ? /* @__PURE__ */
|
|
3528
|
+
children: /* @__PURE__ */ jsx60(Modal3, { className: cx("pire-sidepanel", className), style: { width }, children: /* @__PURE__ */ jsxs51(AriaDialog5, { className: "pire-dialog", style: { height: "100%" }, children: [
|
|
3529
|
+
/* @__PURE__ */ jsxs51("header", { className: "pire-dialog-head", children: [
|
|
3530
|
+
/* @__PURE__ */ jsxs51("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
3531
|
+
/* @__PURE__ */ jsx60(Heading5, { slot: "title", className: "pire-dialog-title", children: title }),
|
|
3532
|
+
subtitle ? /* @__PURE__ */ jsx60("p", { className: "pire-dialog-sub", style: { margin: 0 }, children: subtitle }) : null
|
|
3115
3533
|
] }),
|
|
3116
|
-
/* @__PURE__ */
|
|
3534
|
+
/* @__PURE__ */ jsx60(IconButton, { icon: "x", label: msg.sidePanelClose, size: "sm", onPress: onClose })
|
|
3117
3535
|
] }),
|
|
3118
|
-
/* @__PURE__ */
|
|
3119
|
-
footer ? /* @__PURE__ */
|
|
3536
|
+
/* @__PURE__ */ jsx60("div", { className: "pire-dialog-body", style: { flex: 1 }, children }),
|
|
3537
|
+
footer ? /* @__PURE__ */ jsx60("footer", { className: "pire-dialog-foot", children: footer }) : null
|
|
3120
3538
|
] }) })
|
|
3121
3539
|
}
|
|
3122
3540
|
);
|
|
3123
3541
|
}
|
|
3124
3542
|
|
|
3125
3543
|
// src/components/patterns/EmptyState.tsx
|
|
3126
|
-
import { jsx as
|
|
3544
|
+
import { jsx as jsx61, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
3127
3545
|
function EmptyState({ icon = "file-text", title, action, compact, children, className, ...rest }) {
|
|
3128
|
-
return /* @__PURE__ */
|
|
3129
|
-
/* @__PURE__ */
|
|
3130
|
-
title ? /* @__PURE__ */
|
|
3131
|
-
children ? /* @__PURE__ */
|
|
3546
|
+
return /* @__PURE__ */ jsxs52("div", { className: cx("pire-empty", className), "data-compact": compact ? "true" : void 0, ...rest, children: [
|
|
3547
|
+
/* @__PURE__ */ jsx61(Icon, { name: icon, size: 24, className: "pire-empty-icon" }),
|
|
3548
|
+
title ? /* @__PURE__ */ jsx61("p", { className: "pire-empty-title", style: { margin: 0 }, children: title }) : null,
|
|
3549
|
+
children ? /* @__PURE__ */ jsx61("p", { className: "pire-empty-body", style: { margin: 0 }, children }) : null,
|
|
3132
3550
|
action
|
|
3133
3551
|
] });
|
|
3134
3552
|
}
|
|
3135
3553
|
|
|
3136
3554
|
// src/components/patterns/FileDropZone.tsx
|
|
3137
|
-
import * as
|
|
3555
|
+
import * as React17 from "react";
|
|
3138
3556
|
import { DropZone, FileTrigger as FileTrigger2, isFileDropItem } from "react-aria-components";
|
|
3139
|
-
import { jsx as
|
|
3557
|
+
import { jsx as jsx62, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
3140
3558
|
var isImage2 = (file) => file.type.startsWith("image/");
|
|
3141
3559
|
function FileDropZone({
|
|
3142
3560
|
label,
|
|
@@ -3162,10 +3580,10 @@ function FileDropZone({
|
|
|
3162
3580
|
style
|
|
3163
3581
|
}) {
|
|
3164
3582
|
const msg = usePireMessages();
|
|
3165
|
-
const [uncontrolled, setUncontrolled] =
|
|
3583
|
+
const [uncontrolled, setUncontrolled] = React17.useState(defaultValue ?? []);
|
|
3166
3584
|
const files = value ?? uncontrolled;
|
|
3167
|
-
const created =
|
|
3168
|
-
|
|
3585
|
+
const created = React17.useRef([]);
|
|
3586
|
+
React17.useEffect(() => () => {
|
|
3169
3587
|
for (const url of created.current) URL.revokeObjectURL(url);
|
|
3170
3588
|
}, []);
|
|
3171
3589
|
const commit = (next) => {
|
|
@@ -3185,12 +3603,12 @@ function FileDropZone({
|
|
|
3185
3603
|
commit(allowsMultiple ? [...files, ...wrapped] : wrapped.slice(0, 1));
|
|
3186
3604
|
};
|
|
3187
3605
|
const remove = (target) => commit(files.filter((f) => f.file !== target));
|
|
3188
|
-
return /* @__PURE__ */
|
|
3189
|
-
label ? /* @__PURE__ */
|
|
3606
|
+
return /* @__PURE__ */ jsxs53("div", { className: cx("pire-field", className), style, "data-full-width": String(fullWidth), children: [
|
|
3607
|
+
label ? /* @__PURE__ */ jsxs53("span", { className: "pire-field-label", children: [
|
|
3190
3608
|
label,
|
|
3191
|
-
isRequired ? /* @__PURE__ */
|
|
3609
|
+
isRequired ? /* @__PURE__ */ jsx62("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
3192
3610
|
] }) : null,
|
|
3193
|
-
/* @__PURE__ */
|
|
3611
|
+
/* @__PURE__ */ jsxs53(
|
|
3194
3612
|
DropZone,
|
|
3195
3613
|
{
|
|
3196
3614
|
className: "pire-dropzone",
|
|
@@ -3203,25 +3621,25 @@ function FileDropZone({
|
|
|
3203
3621
|
accept(dropped);
|
|
3204
3622
|
},
|
|
3205
3623
|
children: [
|
|
3206
|
-
/* @__PURE__ */
|
|
3207
|
-
/* @__PURE__ */
|
|
3208
|
-
/* @__PURE__ */
|
|
3624
|
+
/* @__PURE__ */ jsx62(Icon, { name: "download", size: 24, className: "pire-dropzone-icon" }),
|
|
3625
|
+
/* @__PURE__ */ jsx62("span", { className: "pire-dropzone-prompt", children: promptLabel ?? msg.fileDropZonePrompt }),
|
|
3626
|
+
/* @__PURE__ */ jsx62(
|
|
3209
3627
|
FileTrigger2,
|
|
3210
3628
|
{
|
|
3211
3629
|
acceptedFileTypes,
|
|
3212
3630
|
allowsMultiple,
|
|
3213
3631
|
onSelect: (list) => accept(list ? [...list] : []),
|
|
3214
|
-
children: /* @__PURE__ */
|
|
3632
|
+
children: /* @__PURE__ */ jsx62(Button, { variant: "secondary", isDisabled: isDisabled || isReadOnly, children: msg.fileUploadChoose })
|
|
3215
3633
|
}
|
|
3216
3634
|
)
|
|
3217
3635
|
]
|
|
3218
3636
|
}
|
|
3219
3637
|
),
|
|
3220
|
-
files.length ? /* @__PURE__ */
|
|
3221
|
-
previewUrl ? /* @__PURE__ */
|
|
3222
|
-
/* @__PURE__ */
|
|
3223
|
-
/* @__PURE__ */
|
|
3224
|
-
isDisabled || isReadOnly ? null : /* @__PURE__ */
|
|
3638
|
+
files.length ? /* @__PURE__ */ jsx62("ul", { className: "pire-fileupload-list", children: files.map(({ file, previewUrl }) => /* @__PURE__ */ jsxs53("li", { className: "pire-fileupload-item", children: [
|
|
3639
|
+
previewUrl ? /* @__PURE__ */ jsx62("img", { className: "pire-fileupload-thumb", src: previewUrl, alt: "" }) : /* @__PURE__ */ jsx62(Icon, { name: "file-text", size: 16, className: "pire-fileupload-icon" }),
|
|
3640
|
+
/* @__PURE__ */ jsx62("span", { className: "pire-fileupload-name", children: file.name }),
|
|
3641
|
+
/* @__PURE__ */ jsx62("span", { className: "pire-fileupload-size", children: formatFileSize(file.size) }),
|
|
3642
|
+
isDisabled || isReadOnly ? null : /* @__PURE__ */ jsx62(
|
|
3225
3643
|
IconButton,
|
|
3226
3644
|
{
|
|
3227
3645
|
icon: "x",
|
|
@@ -3231,14 +3649,14 @@ function FileDropZone({
|
|
|
3231
3649
|
}
|
|
3232
3650
|
)
|
|
3233
3651
|
] }, `${file.name}-${file.size}-${file.lastModified}`)) }) : null,
|
|
3234
|
-
uploadProgress != null ? /* @__PURE__ */
|
|
3235
|
-
description ? /* @__PURE__ */
|
|
3236
|
-
isInvalid && errorMessage ? /* @__PURE__ */
|
|
3652
|
+
uploadProgress != null ? /* @__PURE__ */ jsx62(ProgressBar, { value: uploadProgress, label: msg.fileUploadUploading }) : null,
|
|
3653
|
+
description ? /* @__PURE__ */ jsx62("span", { className: "pire-field-hint", children: description }) : null,
|
|
3654
|
+
isInvalid && errorMessage ? /* @__PURE__ */ jsx62("span", { className: "pire-field-error", children: errorMessage }) : null
|
|
3237
3655
|
] });
|
|
3238
3656
|
}
|
|
3239
3657
|
|
|
3240
3658
|
// src/index.ts
|
|
3241
|
-
import { DialogTrigger, MenuTrigger as
|
|
3659
|
+
import { DialogTrigger, MenuTrigger as MenuTrigger3, SubmenuTrigger, Popover as Popover8, RouterProvider, I18nProvider } from "react-aria-components";
|
|
3242
3660
|
export {
|
|
3243
3661
|
Avatar,
|
|
3244
3662
|
Badge,
|
|
@@ -3248,6 +3666,7 @@ export {
|
|
|
3248
3666
|
Card,
|
|
3249
3667
|
Checkbox,
|
|
3250
3668
|
ComboBox,
|
|
3669
|
+
CommandPalette,
|
|
3251
3670
|
ConfirmDialog,
|
|
3252
3671
|
DataTable,
|
|
3253
3672
|
DatePicker,
|
|
@@ -3264,10 +3683,12 @@ export {
|
|
|
3264
3683
|
FormField,
|
|
3265
3684
|
Heading,
|
|
3266
3685
|
I18nProvider,
|
|
3686
|
+
ICON_NAMES,
|
|
3267
3687
|
Icon,
|
|
3268
3688
|
IconButton,
|
|
3269
3689
|
InlineMessage,
|
|
3270
3690
|
Input,
|
|
3691
|
+
Kbd,
|
|
3271
3692
|
KpiTile,
|
|
3272
3693
|
LineChart,
|
|
3273
3694
|
Link,
|
|
@@ -3276,7 +3697,7 @@ export {
|
|
|
3276
3697
|
MenuItem,
|
|
3277
3698
|
MenuSection,
|
|
3278
3699
|
MenuSeparator,
|
|
3279
|
-
|
|
3700
|
+
MenuTrigger3 as MenuTrigger,
|
|
3280
3701
|
MultiComboBox,
|
|
3281
3702
|
NumberField,
|
|
3282
3703
|
ObjectHeader,
|
|
@@ -3284,7 +3705,7 @@ export {
|
|
|
3284
3705
|
PageHeader,
|
|
3285
3706
|
Pagination,
|
|
3286
3707
|
PireIntlProvider,
|
|
3287
|
-
|
|
3708
|
+
Popover8 as Popover,
|
|
3288
3709
|
ProgressBar,
|
|
3289
3710
|
Radio,
|
|
3290
3711
|
RadioGroup,
|
|
@@ -3318,6 +3739,7 @@ export {
|
|
|
3318
3739
|
esMessages,
|
|
3319
3740
|
formatFileSize,
|
|
3320
3741
|
rangeLengthInDays,
|
|
3742
|
+
useCommandPaletteShortcut,
|
|
3321
3743
|
usePireMessages,
|
|
3322
3744
|
useToast
|
|
3323
3745
|
};
|