@orianatech/pire 0.12.0 → 0.15.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/data/LinkList.d.cts +10 -1
- package/dist/components/data/LinkList.d.ts +10 -1
- package/dist/components/data/LinkList.d.ts.map +1 -1
- package/dist/components/feedback/Dialog.d.ts.map +1 -1
- package/dist/components/forms/ComboBox.d.cts +10 -1
- package/dist/components/forms/ComboBox.d.ts +10 -1
- package/dist/components/forms/ComboBox.d.ts.map +1 -1
- package/dist/components/forms/Select.d.cts +7 -1
- package/dist/components/forms/Select.d.ts +7 -1
- package/dist/components/forms/Select.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 +96 -2
- package/dist/i18n/messages.d.cts +29 -0
- package/dist/i18n/messages.d.ts +29 -0
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/index.cjs +1001 -593
- 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 +920 -505
- package/dist/index.js.map +1 -1
- package/dist/tokens/base.css +10 -8
- 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,31 @@ 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
707
|
import { TextField, Label, Input as AriaInput, Group, Text as Text2, FieldError } from "react-aria-components";
|
|
532
|
-
import { jsx as
|
|
708
|
+
import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
533
709
|
function Input({
|
|
534
710
|
label,
|
|
535
711
|
icon,
|
|
@@ -556,7 +732,7 @@ function Input({
|
|
|
556
732
|
children: [
|
|
557
733
|
label ? /* @__PURE__ */ jsxs10(Label, { className: "pire-field-label", children: [
|
|
558
734
|
label,
|
|
559
|
-
rest.isRequired ? /* @__PURE__ */
|
|
735
|
+
rest.isRequired ? /* @__PURE__ */ jsx16("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
560
736
|
] }) : null,
|
|
561
737
|
/* @__PURE__ */ jsxs10(
|
|
562
738
|
Group,
|
|
@@ -567,14 +743,14 @@ function Input({
|
|
|
567
743
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
568
744
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
569
745
|
children: [
|
|
570
|
-
icon ? /* @__PURE__ */
|
|
571
|
-
/* @__PURE__ */
|
|
572
|
-
suffix ? /* @__PURE__ */
|
|
746
|
+
icon ? /* @__PURE__ */ jsx16(Icon, { name: icon, size: 16, className: "pire-leading-icon" }) : null,
|
|
747
|
+
/* @__PURE__ */ jsx16(AriaInput, { ref: inputRef, className: "pire-input", "data-numeric": numeric ? "true" : void 0 }),
|
|
748
|
+
suffix ? /* @__PURE__ */ jsx16("span", { className: "pire-affix", children: suffix }) : null
|
|
573
749
|
]
|
|
574
750
|
}
|
|
575
751
|
),
|
|
576
|
-
description ? /* @__PURE__ */
|
|
577
|
-
/* @__PURE__ */
|
|
752
|
+
description ? /* @__PURE__ */ jsx16(Text2, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
753
|
+
/* @__PURE__ */ jsx16(FieldError, { className: "pire-field-error", children: errorMessage })
|
|
578
754
|
]
|
|
579
755
|
}
|
|
580
756
|
);
|
|
@@ -583,7 +759,7 @@ function Input({
|
|
|
583
759
|
// src/components/forms/TextArea.tsx
|
|
584
760
|
import * as React5 from "react";
|
|
585
761
|
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
|
|
762
|
+
import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
587
763
|
var useIsomorphicLayoutEffect = typeof document === "undefined" ? React5.useEffect : React5.useLayoutEffect;
|
|
588
764
|
function TextArea({
|
|
589
765
|
label,
|
|
@@ -635,9 +811,9 @@ function TextArea({
|
|
|
635
811
|
children: [
|
|
636
812
|
label ? /* @__PURE__ */ jsxs11(Label2, { className: "pire-field-label", children: [
|
|
637
813
|
label,
|
|
638
|
-
rest.isRequired ? /* @__PURE__ */
|
|
814
|
+
rest.isRequired ? /* @__PURE__ */ jsx17("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
639
815
|
] }) : null,
|
|
640
|
-
/* @__PURE__ */
|
|
816
|
+
/* @__PURE__ */ jsx17(
|
|
641
817
|
Group2,
|
|
642
818
|
{
|
|
643
819
|
className: "pire-control",
|
|
@@ -646,7 +822,7 @@ function TextArea({
|
|
|
646
822
|
"data-multiline": "true",
|
|
647
823
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
648
824
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
649
|
-
children: /* @__PURE__ */
|
|
825
|
+
children: /* @__PURE__ */ jsx17(
|
|
650
826
|
AriaTextArea,
|
|
651
827
|
{
|
|
652
828
|
ref,
|
|
@@ -658,8 +834,8 @@ function TextArea({
|
|
|
658
834
|
)
|
|
659
835
|
}
|
|
660
836
|
),
|
|
661
|
-
description ? /* @__PURE__ */
|
|
662
|
-
/* @__PURE__ */
|
|
837
|
+
description ? /* @__PURE__ */ jsx17(Text3, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
838
|
+
/* @__PURE__ */ jsx17(FieldError2, { className: "pire-field-error", children: errorMessage })
|
|
663
839
|
]
|
|
664
840
|
}
|
|
665
841
|
);
|
|
@@ -677,124 +853,6 @@ import {
|
|
|
677
853
|
Text as Text4,
|
|
678
854
|
FieldError as FieldError3
|
|
679
855
|
} from "react-aria-components";
|
|
680
|
-
import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
681
|
-
var norm = (o) => typeof o === "string" ? { value: o, label: o, isDisabled: false } : o;
|
|
682
|
-
function Select({
|
|
683
|
-
label,
|
|
684
|
-
value,
|
|
685
|
-
defaultValue,
|
|
686
|
-
onChange,
|
|
687
|
-
options = [],
|
|
688
|
-
placeholder = "Select\u2026",
|
|
689
|
-
description,
|
|
690
|
-
errorMessage,
|
|
691
|
-
size = "md",
|
|
692
|
-
fullWidth = true,
|
|
693
|
-
className,
|
|
694
|
-
style,
|
|
695
|
-
...rest
|
|
696
|
-
}) {
|
|
697
|
-
const items = options.map(norm);
|
|
698
|
-
return /* @__PURE__ */ jsxs12(
|
|
699
|
-
AriaSelect,
|
|
700
|
-
{
|
|
701
|
-
className: cx("pire-field", className),
|
|
702
|
-
style,
|
|
703
|
-
selectedKey: value,
|
|
704
|
-
defaultSelectedKey: defaultValue,
|
|
705
|
-
onSelectionChange: (k) => onChange?.(String(k)),
|
|
706
|
-
placeholder,
|
|
707
|
-
validationBehavior: "aria",
|
|
708
|
-
...rest,
|
|
709
|
-
children: [
|
|
710
|
-
label ? /* @__PURE__ */ jsxs12(Label3, { className: "pire-field-label", children: [
|
|
711
|
-
label,
|
|
712
|
-
rest.isRequired ? /* @__PURE__ */ jsx17("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
713
|
-
] }) : null,
|
|
714
|
-
/* @__PURE__ */ jsxs12(
|
|
715
|
-
AriaButton4,
|
|
716
|
-
{
|
|
717
|
-
className: "pire-control",
|
|
718
|
-
"data-size": size,
|
|
719
|
-
"data-full-width": String(fullWidth),
|
|
720
|
-
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
721
|
-
children: [
|
|
722
|
-
/* @__PURE__ */ jsx17(SelectValue, { className: "pire-select-value" }),
|
|
723
|
-
/* @__PURE__ */ jsx17(Icon, { name: "chevron-down", size: 16, className: "pire-leading-icon" })
|
|
724
|
-
]
|
|
725
|
-
}
|
|
726
|
-
),
|
|
727
|
-
description ? /* @__PURE__ */ jsx17(Text4, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
728
|
-
/* @__PURE__ */ jsx17(FieldError3, { className: "pire-field-error", children: errorMessage }),
|
|
729
|
-
/* @__PURE__ */ jsx17(Popover, { className: "pire-popover", children: /* @__PURE__ */ jsx17(ListBox, { className: "pire-listbox", items, children: (item) => /* @__PURE__ */ jsx17(ListBoxItem, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: item.label }) }) })
|
|
730
|
-
]
|
|
731
|
-
}
|
|
732
|
-
);
|
|
733
|
-
}
|
|
734
|
-
|
|
735
|
-
// src/components/forms/Checkbox.tsx
|
|
736
|
-
import { Checkbox as AriaCheckbox } from "react-aria-components";
|
|
737
|
-
import { Fragment, jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
738
|
-
function Checkbox({ label, hint, children, className, ...rest }) {
|
|
739
|
-
return /* @__PURE__ */ jsx18(AriaCheckbox, { className: cx("pire-choice", className), ...rest, children: ({ isSelected, isIndeterminate }) => /* @__PURE__ */ jsxs13(Fragment, { children: [
|
|
740
|
-
/* @__PURE__ */ jsx18("span", { className: "pire-choice-box", "aria-hidden": "true", children: isIndeterminate ? /* @__PURE__ */ jsx18(Icon, { name: "minus", size: 12 }) : isSelected ? /* @__PURE__ */ jsx18(Icon, { name: "check", size: 12 }) : null }),
|
|
741
|
-
/* @__PURE__ */ jsxs13("span", { children: [
|
|
742
|
-
label ?? children,
|
|
743
|
-
hint ? /* @__PURE__ */ jsx18("span", { className: "pire-choice-hint", children: hint }) : null
|
|
744
|
-
] })
|
|
745
|
-
] }) });
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
// src/components/forms/Radio.tsx
|
|
749
|
-
import {
|
|
750
|
-
RadioGroup as AriaRadioGroup,
|
|
751
|
-
Radio as AriaRadio,
|
|
752
|
-
Label as Label4,
|
|
753
|
-
Text as Text5,
|
|
754
|
-
FieldError as FieldError4
|
|
755
|
-
} from "react-aria-components";
|
|
756
|
-
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
757
|
-
function RadioGroup({ label, description, errorMessage, children, className, ...rest }) {
|
|
758
|
-
return /* @__PURE__ */ jsxs14(AriaRadioGroup, { className: cx("pire-field", className), validationBehavior: "aria", ...rest, children: [
|
|
759
|
-
label ? /* @__PURE__ */ jsx19(Label4, { className: "pire-field-label", children: label }) : null,
|
|
760
|
-
/* @__PURE__ */ jsx19("div", { className: "pire-radiogroup", children }),
|
|
761
|
-
description ? /* @__PURE__ */ jsx19(Text5, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
762
|
-
/* @__PURE__ */ jsx19(FieldError4, { className: "pire-field-error", children: errorMessage })
|
|
763
|
-
] });
|
|
764
|
-
}
|
|
765
|
-
function Radio({ label, hint, children, className, ...rest }) {
|
|
766
|
-
return /* @__PURE__ */ jsxs14(AriaRadio, { className: cx("pire-choice", className), ...rest, children: [
|
|
767
|
-
/* @__PURE__ */ jsx19("span", { className: "pire-choice-box", "data-radio": "true", "aria-hidden": "true" }),
|
|
768
|
-
/* @__PURE__ */ jsxs14("span", { children: [
|
|
769
|
-
label ?? children,
|
|
770
|
-
hint ? /* @__PURE__ */ jsx19("span", { className: "pire-choice-hint", children: hint }) : null
|
|
771
|
-
] })
|
|
772
|
-
] });
|
|
773
|
-
}
|
|
774
|
-
|
|
775
|
-
// src/components/forms/Switch.tsx
|
|
776
|
-
import { Switch as AriaSwitch } from "react-aria-components";
|
|
777
|
-
import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
778
|
-
function Switch({ label, children, className, ...rest }) {
|
|
779
|
-
return /* @__PURE__ */ jsxs15(AriaSwitch, { className: cx("pire-choice", className), ...rest, children: [
|
|
780
|
-
/* @__PURE__ */ jsx20("span", { className: "pire-switch-track", "aria-hidden": "true", children: /* @__PURE__ */ jsx20("span", { className: "pire-switch-thumb" }) }),
|
|
781
|
-
/* @__PURE__ */ jsx20("span", { children: label ?? children })
|
|
782
|
-
] });
|
|
783
|
-
}
|
|
784
|
-
|
|
785
|
-
// src/components/forms/ComboBox.tsx
|
|
786
|
-
import {
|
|
787
|
-
ComboBox as AriaComboBox,
|
|
788
|
-
Label as Label5,
|
|
789
|
-
Input as AriaInput2,
|
|
790
|
-
Button as AriaButton5,
|
|
791
|
-
Group as Group3,
|
|
792
|
-
Popover as Popover2,
|
|
793
|
-
ListBox as ListBox2,
|
|
794
|
-
ListBoxItem as ListBoxItem2,
|
|
795
|
-
Text as Text6,
|
|
796
|
-
FieldError as FieldError5
|
|
797
|
-
} from "react-aria-components";
|
|
798
856
|
|
|
799
857
|
// src/i18n/PireIntlProvider.tsx
|
|
800
858
|
import * as React6 from "react";
|
|
@@ -812,6 +870,7 @@ var enMessages = {
|
|
|
812
870
|
inlineMessageDismiss: "Dismiss message",
|
|
813
871
|
toastDismiss: "Dismiss",
|
|
814
872
|
toastRegionLabel: "Notifications",
|
|
873
|
+
selectEmpty: "No options available",
|
|
815
874
|
comboBoxShowSuggestions: "Show suggestions",
|
|
816
875
|
comboBoxLoading: "Searching\u2026",
|
|
817
876
|
datePickerOpenCalendar: "Open calendar",
|
|
@@ -820,10 +879,14 @@ var enMessages = {
|
|
|
820
879
|
dateRangePresetsLabel: "Date range shortcuts",
|
|
821
880
|
numberFieldIncrease: "Increase",
|
|
822
881
|
numberFieldDecrease: "Decrease",
|
|
882
|
+
valueHelpFieldPlaceholder: "Not selected",
|
|
823
883
|
valueHelpFieldClear: "Clear selection",
|
|
824
884
|
valueHelpFieldOpenNamed: "Select {label}",
|
|
825
885
|
valueHelpFieldOpen: "Open value help",
|
|
826
886
|
valueHelpDialogSearch: "Search records",
|
|
887
|
+
valueHelpDialogTitle: "Select a record",
|
|
888
|
+
valueHelpDialogSearchPlaceholder: "Search by ID or name",
|
|
889
|
+
valueHelpDialogEmpty: "No records found",
|
|
827
890
|
valueHelpDialogCancel: "Cancel",
|
|
828
891
|
paginationLabel: "Pagination",
|
|
829
892
|
paginationRange: "{from}\u2013{to} of {total}",
|
|
@@ -836,6 +899,15 @@ var enMessages = {
|
|
|
836
899
|
fileUploadRemoveNamed: "Remove {name}",
|
|
837
900
|
fileUploadUploading: "Uploading",
|
|
838
901
|
fileDropZonePrompt: "Drag files here, or choose them",
|
|
902
|
+
shellBarUserMenu: "Account menu for {user}",
|
|
903
|
+
commandPaletteLabel: "Command palette",
|
|
904
|
+
commandPaletteSearchLabel: "Search commands and records",
|
|
905
|
+
commandPalettePlaceholder: "Search for a screen, an action or a record\u2026",
|
|
906
|
+
commandPaletteEmpty: "Nothing matches that",
|
|
907
|
+
commandPaletteLoading: "Searching\u2026",
|
|
908
|
+
commandPaletteHintNavigate: "navigate",
|
|
909
|
+
commandPaletteHintSelect: "open",
|
|
910
|
+
commandPaletteHintClose: "close",
|
|
839
911
|
chartCategoryHeader: "Category",
|
|
840
912
|
chartNoValue: "No data",
|
|
841
913
|
chartEmpty: "No data for this period"
|
|
@@ -852,6 +924,7 @@ var esMessages = {
|
|
|
852
924
|
inlineMessageDismiss: "Descartar mensaje",
|
|
853
925
|
toastDismiss: "Descartar",
|
|
854
926
|
toastRegionLabel: "Notificaciones",
|
|
927
|
+
selectEmpty: "Sin opciones disponibles",
|
|
855
928
|
comboBoxShowSuggestions: "Mostrar sugerencias",
|
|
856
929
|
comboBoxLoading: "Buscando\u2026",
|
|
857
930
|
datePickerOpenCalendar: "Abrir calendario",
|
|
@@ -860,10 +933,14 @@ var esMessages = {
|
|
|
860
933
|
dateRangePresetsLabel: "Atajos de rango de fechas",
|
|
861
934
|
numberFieldIncrease: "Aumentar",
|
|
862
935
|
numberFieldDecrease: "Disminuir",
|
|
936
|
+
valueHelpFieldPlaceholder: "Sin seleccionar",
|
|
863
937
|
valueHelpFieldClear: "Limpiar selecci\xF3n",
|
|
864
938
|
valueHelpFieldOpenNamed: "Seleccionar {label}",
|
|
865
939
|
valueHelpFieldOpen: "Abrir ayuda de valores",
|
|
866
940
|
valueHelpDialogSearch: "Buscar registros",
|
|
941
|
+
valueHelpDialogTitle: "Seleccionar un registro",
|
|
942
|
+
valueHelpDialogSearchPlaceholder: "Buscar por c\xF3digo o nombre",
|
|
943
|
+
valueHelpDialogEmpty: "No se encontraron registros",
|
|
867
944
|
valueHelpDialogCancel: "Cancelar",
|
|
868
945
|
paginationLabel: "Paginaci\xF3n",
|
|
869
946
|
paginationRange: "{from}\u2013{to} de {total}",
|
|
@@ -876,20 +953,29 @@ var esMessages = {
|
|
|
876
953
|
fileUploadRemoveNamed: "Quitar {name}",
|
|
877
954
|
fileUploadUploading: "Subiendo",
|
|
878
955
|
fileDropZonePrompt: "Arrastr\xE1 archivos ac\xE1, o elegilos",
|
|
956
|
+
shellBarUserMenu: "Men\xFA de cuenta de {user}",
|
|
957
|
+
commandPaletteLabel: "Paleta de comandos",
|
|
958
|
+
commandPaletteSearchLabel: "Buscar comandos y registros",
|
|
959
|
+
commandPalettePlaceholder: "Busc\xE1 una pantalla, una acci\xF3n o un registro\u2026",
|
|
960
|
+
commandPaletteEmpty: "No hay coincidencias",
|
|
961
|
+
commandPaletteLoading: "Buscando\u2026",
|
|
962
|
+
commandPaletteHintNavigate: "navegar",
|
|
963
|
+
commandPaletteHintSelect: "abrir",
|
|
964
|
+
commandPaletteHintClose: "cerrar",
|
|
879
965
|
chartCategoryHeader: "Categor\xEDa",
|
|
880
966
|
chartNoValue: "Sin datos",
|
|
881
967
|
chartEmpty: "Sin datos para este per\xEDodo"
|
|
882
968
|
};
|
|
883
969
|
|
|
884
970
|
// src/i18n/PireIntlProvider.tsx
|
|
885
|
-
import { jsx as
|
|
971
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
886
972
|
var MessagesContext = React6.createContext(enMessages);
|
|
887
973
|
function PireIntlProvider({ messages, children }) {
|
|
888
974
|
const value = React6.useMemo(
|
|
889
975
|
() => messages ? { ...enMessages, ...messages } : enMessages,
|
|
890
976
|
[messages]
|
|
891
977
|
);
|
|
892
|
-
return /* @__PURE__ */
|
|
978
|
+
return /* @__PURE__ */ jsx18(MessagesContext.Provider, { value, children });
|
|
893
979
|
}
|
|
894
980
|
function usePireMessages() {
|
|
895
981
|
return React6.useContext(MessagesContext);
|
|
@@ -899,8 +985,137 @@ function useMessage(key, override) {
|
|
|
899
985
|
return override ?? messages[key];
|
|
900
986
|
}
|
|
901
987
|
|
|
988
|
+
// src/components/forms/Select.tsx
|
|
989
|
+
import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
990
|
+
var norm = (o) => typeof o === "string" ? { value: o, label: o, isDisabled: false } : o;
|
|
991
|
+
function Select({
|
|
992
|
+
label,
|
|
993
|
+
value,
|
|
994
|
+
defaultValue,
|
|
995
|
+
onChange,
|
|
996
|
+
options = [],
|
|
997
|
+
placeholder = "Select\u2026",
|
|
998
|
+
description,
|
|
999
|
+
errorMessage,
|
|
1000
|
+
emptyLabel,
|
|
1001
|
+
size = "md",
|
|
1002
|
+
fullWidth = true,
|
|
1003
|
+
className,
|
|
1004
|
+
style,
|
|
1005
|
+
...rest
|
|
1006
|
+
}) {
|
|
1007
|
+
const msg = usePireMessages();
|
|
1008
|
+
const items = options.map(norm);
|
|
1009
|
+
return /* @__PURE__ */ jsxs12(
|
|
1010
|
+
AriaSelect,
|
|
1011
|
+
{
|
|
1012
|
+
className: cx("pire-field", className),
|
|
1013
|
+
style,
|
|
1014
|
+
selectedKey: value,
|
|
1015
|
+
defaultSelectedKey: defaultValue,
|
|
1016
|
+
onSelectionChange: (k) => onChange?.(String(k)),
|
|
1017
|
+
allowsEmptyCollection: true,
|
|
1018
|
+
placeholder,
|
|
1019
|
+
validationBehavior: "aria",
|
|
1020
|
+
...rest,
|
|
1021
|
+
children: [
|
|
1022
|
+
label ? /* @__PURE__ */ jsxs12(Label3, { className: "pire-field-label", children: [
|
|
1023
|
+
label,
|
|
1024
|
+
rest.isRequired ? /* @__PURE__ */ jsx19("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1025
|
+
] }) : null,
|
|
1026
|
+
/* @__PURE__ */ jsxs12(
|
|
1027
|
+
AriaButton4,
|
|
1028
|
+
{
|
|
1029
|
+
className: "pire-control",
|
|
1030
|
+
"data-size": size,
|
|
1031
|
+
"data-full-width": String(fullWidth),
|
|
1032
|
+
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1033
|
+
children: [
|
|
1034
|
+
/* @__PURE__ */ jsx19(SelectValue, { className: "pire-select-value" }),
|
|
1035
|
+
/* @__PURE__ */ jsx19(Icon, { name: "chevron-down", size: 16, className: "pire-leading-icon" })
|
|
1036
|
+
]
|
|
1037
|
+
}
|
|
1038
|
+
),
|
|
1039
|
+
description ? /* @__PURE__ */ jsx19(Text4, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1040
|
+
/* @__PURE__ */ jsx19(FieldError3, { className: "pire-field-error", children: errorMessage }),
|
|
1041
|
+
/* @__PURE__ */ jsx19(Popover, { className: "pire-popover", children: /* @__PURE__ */ jsx19(
|
|
1042
|
+
ListBox,
|
|
1043
|
+
{
|
|
1044
|
+
className: "pire-listbox",
|
|
1045
|
+
items,
|
|
1046
|
+
renderEmptyState: () => /* @__PURE__ */ jsx19("div", { className: "pire-listbox-status", role: "status", "aria-live": "polite", children: emptyLabel ?? msg.selectEmpty }),
|
|
1047
|
+
children: (item) => /* @__PURE__ */ jsx19(ListBoxItem, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: item.label })
|
|
1048
|
+
}
|
|
1049
|
+
) })
|
|
1050
|
+
]
|
|
1051
|
+
}
|
|
1052
|
+
);
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
// src/components/forms/Checkbox.tsx
|
|
1056
|
+
import { Checkbox as AriaCheckbox } from "react-aria-components";
|
|
1057
|
+
import { Fragment, jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1058
|
+
function Checkbox({ label, hint, children, className, ...rest }) {
|
|
1059
|
+
return /* @__PURE__ */ jsx20(AriaCheckbox, { className: cx("pire-choice", className), ...rest, children: ({ isSelected, isIndeterminate }) => /* @__PURE__ */ jsxs13(Fragment, { children: [
|
|
1060
|
+
/* @__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 }),
|
|
1061
|
+
/* @__PURE__ */ jsxs13("span", { children: [
|
|
1062
|
+
label ?? children,
|
|
1063
|
+
hint ? /* @__PURE__ */ jsx20("span", { className: "pire-choice-hint", children: hint }) : null
|
|
1064
|
+
] })
|
|
1065
|
+
] }) });
|
|
1066
|
+
}
|
|
1067
|
+
|
|
1068
|
+
// src/components/forms/Radio.tsx
|
|
1069
|
+
import {
|
|
1070
|
+
RadioGroup as AriaRadioGroup,
|
|
1071
|
+
Radio as AriaRadio,
|
|
1072
|
+
Label as Label4,
|
|
1073
|
+
Text as Text5,
|
|
1074
|
+
FieldError as FieldError4
|
|
1075
|
+
} from "react-aria-components";
|
|
1076
|
+
import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1077
|
+
function RadioGroup({ label, description, errorMessage, children, className, ...rest }) {
|
|
1078
|
+
return /* @__PURE__ */ jsxs14(AriaRadioGroup, { className: cx("pire-field", className), validationBehavior: "aria", ...rest, children: [
|
|
1079
|
+
label ? /* @__PURE__ */ jsx21(Label4, { className: "pire-field-label", children: label }) : null,
|
|
1080
|
+
/* @__PURE__ */ jsx21("div", { className: "pire-radiogroup", children }),
|
|
1081
|
+
description ? /* @__PURE__ */ jsx21(Text5, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1082
|
+
/* @__PURE__ */ jsx21(FieldError4, { className: "pire-field-error", children: errorMessage })
|
|
1083
|
+
] });
|
|
1084
|
+
}
|
|
1085
|
+
function Radio({ label, hint, children, className, ...rest }) {
|
|
1086
|
+
return /* @__PURE__ */ jsxs14(AriaRadio, { className: cx("pire-choice", className), ...rest, children: [
|
|
1087
|
+
/* @__PURE__ */ jsx21("span", { className: "pire-choice-box", "data-radio": "true", "aria-hidden": "true" }),
|
|
1088
|
+
/* @__PURE__ */ jsxs14("span", { children: [
|
|
1089
|
+
label ?? children,
|
|
1090
|
+
hint ? /* @__PURE__ */ jsx21("span", { className: "pire-choice-hint", children: hint }) : null
|
|
1091
|
+
] })
|
|
1092
|
+
] });
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
// src/components/forms/Switch.tsx
|
|
1096
|
+
import { Switch as AriaSwitch } from "react-aria-components";
|
|
1097
|
+
import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1098
|
+
function Switch({ label, children, className, ...rest }) {
|
|
1099
|
+
return /* @__PURE__ */ jsxs15(AriaSwitch, { className: cx("pire-choice", className), ...rest, children: [
|
|
1100
|
+
/* @__PURE__ */ jsx22("span", { className: "pire-switch-track", "aria-hidden": "true", children: /* @__PURE__ */ jsx22("span", { className: "pire-switch-thumb" }) }),
|
|
1101
|
+
/* @__PURE__ */ jsx22("span", { children: label ?? children })
|
|
1102
|
+
] });
|
|
1103
|
+
}
|
|
1104
|
+
|
|
902
1105
|
// src/components/forms/ComboBox.tsx
|
|
903
|
-
import {
|
|
1106
|
+
import {
|
|
1107
|
+
ComboBox as AriaComboBox,
|
|
1108
|
+
Label as Label5,
|
|
1109
|
+
Input as AriaInput2,
|
|
1110
|
+
Button as AriaButton5,
|
|
1111
|
+
Group as Group3,
|
|
1112
|
+
Popover as Popover2,
|
|
1113
|
+
ListBox as ListBox2,
|
|
1114
|
+
ListBoxItem as ListBoxItem2,
|
|
1115
|
+
Text as Text6,
|
|
1116
|
+
FieldError as FieldError5
|
|
1117
|
+
} from "react-aria-components";
|
|
1118
|
+
import { jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
904
1119
|
var norm2 = (o) => typeof o === "string" ? { value: o, label: o } : o;
|
|
905
1120
|
function ComboBox({
|
|
906
1121
|
label,
|
|
@@ -908,6 +1123,7 @@ function ComboBox({
|
|
|
908
1123
|
defaultValue,
|
|
909
1124
|
onChange,
|
|
910
1125
|
onInputChange,
|
|
1126
|
+
inputValue,
|
|
911
1127
|
options = [],
|
|
912
1128
|
description,
|
|
913
1129
|
errorMessage,
|
|
@@ -937,6 +1153,7 @@ function ComboBox({
|
|
|
937
1153
|
if (isLoading) return;
|
|
938
1154
|
onChange?.(k == null ? null : String(k));
|
|
939
1155
|
},
|
|
1156
|
+
inputValue,
|
|
940
1157
|
onInputChange,
|
|
941
1158
|
...collection,
|
|
942
1159
|
allowsEmptyCollection: isFilteredExternally || isLoading,
|
|
@@ -946,7 +1163,7 @@ function ComboBox({
|
|
|
946
1163
|
children: [
|
|
947
1164
|
label ? /* @__PURE__ */ jsxs16(Label5, { className: "pire-field-label", children: [
|
|
948
1165
|
label,
|
|
949
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1166
|
+
rest.isRequired ? /* @__PURE__ */ jsx23("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
950
1167
|
] }) : null,
|
|
951
1168
|
/* @__PURE__ */ jsxs16(
|
|
952
1169
|
Group3,
|
|
@@ -956,15 +1173,15 @@ function ComboBox({
|
|
|
956
1173
|
"data-full-width": String(fullWidth),
|
|
957
1174
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
958
1175
|
children: [
|
|
959
|
-
/* @__PURE__ */
|
|
960
|
-
/* @__PURE__ */
|
|
961
|
-
/* @__PURE__ */
|
|
1176
|
+
/* @__PURE__ */ jsx23(Icon, { name: "search", size: 16, className: "pire-leading-icon" }),
|
|
1177
|
+
/* @__PURE__ */ jsx23(AriaInput2, { className: "pire-input", placeholder: rest.placeholder }),
|
|
1178
|
+
/* @__PURE__ */ jsx23(AriaButton5, { className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.comboBoxShowSuggestions, style: { width: 20, height: 20 }, children: /* @__PURE__ */ jsx23(Icon, { name: "chevron-down", size: 16 }) })
|
|
962
1179
|
]
|
|
963
1180
|
}
|
|
964
1181
|
),
|
|
965
|
-
description ? /* @__PURE__ */
|
|
966
|
-
/* @__PURE__ */
|
|
967
|
-
/* @__PURE__ */
|
|
1182
|
+
description ? /* @__PURE__ */ jsx23(Text6, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1183
|
+
/* @__PURE__ */ jsx23(FieldError5, { className: "pire-field-error", children: errorMessage }),
|
|
1184
|
+
/* @__PURE__ */ jsx23(Popover2, { className: "pire-popover", children: /* @__PURE__ */ jsx23(
|
|
968
1185
|
ListBox2,
|
|
969
1186
|
{
|
|
970
1187
|
className: "pire-listbox",
|
|
@@ -972,10 +1189,10 @@ function ComboBox({
|
|
|
972
1189
|
const el = e.currentTarget;
|
|
973
1190
|
if (el.scrollHeight - el.scrollTop - el.clientHeight < 48) onLoadMore();
|
|
974
1191
|
} : void 0,
|
|
975
|
-
renderEmptyState: showsStatus ? () => /* @__PURE__ */
|
|
1192
|
+
renderEmptyState: showsStatus ? () => /* @__PURE__ */ jsx23("div", { className: "pire-listbox-status", role: "status", "aria-live": "polite", children: isLoading ? loadingLabel ?? msg.comboBoxLoading : emptyLabel }) : void 0,
|
|
976
1193
|
children: (item) => /* @__PURE__ */ jsxs16(ListBoxItem2, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: [
|
|
977
|
-
/* @__PURE__ */
|
|
978
|
-
item.secondary ? /* @__PURE__ */
|
|
1194
|
+
/* @__PURE__ */ jsx23("span", { className: "pire-option-label", children: item.label }),
|
|
1195
|
+
item.secondary ? /* @__PURE__ */ jsx23("span", { className: "pire-option-secondary", children: item.secondary }) : null
|
|
979
1196
|
] })
|
|
980
1197
|
}
|
|
981
1198
|
) })
|
|
@@ -1000,7 +1217,7 @@ import {
|
|
|
1000
1217
|
FieldError as FieldError6,
|
|
1001
1218
|
VisuallyHidden
|
|
1002
1219
|
} from "react-aria-components";
|
|
1003
|
-
import { jsx as
|
|
1220
|
+
import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1004
1221
|
var norm3 = (o) => typeof o === "string" ? { value: o, label: o } : o;
|
|
1005
1222
|
function MultiComboBox({
|
|
1006
1223
|
label,
|
|
@@ -1084,7 +1301,7 @@ function MultiComboBox({
|
|
|
1084
1301
|
children: [
|
|
1085
1302
|
label ? /* @__PURE__ */ jsxs17(Label6, { className: "pire-field-label", children: [
|
|
1086
1303
|
label,
|
|
1087
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1304
|
+
rest.isRequired ? /* @__PURE__ */ jsx24("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1088
1305
|
] }) : null,
|
|
1089
1306
|
/* @__PURE__ */ jsxs17(
|
|
1090
1307
|
Group4,
|
|
@@ -1096,14 +1313,14 @@ function MultiComboBox({
|
|
|
1096
1313
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1097
1314
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1098
1315
|
children: [
|
|
1099
|
-
/* @__PURE__ */
|
|
1316
|
+
/* @__PURE__ */ jsx24(Icon, { name: "search", size: 16, className: "pire-leading-icon" }),
|
|
1100
1317
|
/* @__PURE__ */ jsxs17("div", { className: "pire-chipfield", children: [
|
|
1101
|
-
/* @__PURE__ */
|
|
1318
|
+
/* @__PURE__ */ jsx24(ButtonContext.Provider, { value: null, children: values.map((v) => (
|
|
1102
1319
|
/* Disabled follows the field, not `isEditable`: a read-only field's chips are
|
|
1103
1320
|
real, current values and should read as such — they simply lose the × . */
|
|
1104
|
-
/* @__PURE__ */
|
|
1321
|
+
/* @__PURE__ */ jsx24(Tag, { isDisabled: rest.isDisabled, onRemove: isEditable ? () => remove(v) : void 0, children: labelOf(v) }, v)
|
|
1105
1322
|
)) }),
|
|
1106
|
-
/* @__PURE__ */
|
|
1323
|
+
/* @__PURE__ */ jsx24(
|
|
1107
1324
|
AriaInput3,
|
|
1108
1325
|
{
|
|
1109
1326
|
ref: inputRef,
|
|
@@ -1113,14 +1330,14 @@ function MultiComboBox({
|
|
|
1113
1330
|
}
|
|
1114
1331
|
)
|
|
1115
1332
|
] }),
|
|
1116
|
-
/* @__PURE__ */
|
|
1333
|
+
/* @__PURE__ */ jsx24(AriaButton6, { className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.comboBoxShowSuggestions, style: { width: 20, height: 20 }, children: /* @__PURE__ */ jsx24(Icon, { name: "chevron-down", size: 16 }) })
|
|
1117
1334
|
]
|
|
1118
1335
|
}
|
|
1119
1336
|
),
|
|
1120
|
-
/* @__PURE__ */
|
|
1121
|
-
description ? /* @__PURE__ */
|
|
1122
|
-
/* @__PURE__ */
|
|
1123
|
-
/* @__PURE__ */
|
|
1337
|
+
/* @__PURE__ */ jsx24(VisuallyHidden, { children: /* @__PURE__ */ jsx24("span", { "aria-live": "polite", children: announcement }) }),
|
|
1338
|
+
description ? /* @__PURE__ */ jsx24(Text7, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1339
|
+
/* @__PURE__ */ jsx24(FieldError6, { className: "pire-field-error", children: errorMessage }),
|
|
1340
|
+
/* @__PURE__ */ jsx24(Popover3, { className: "pire-popover", children: /* @__PURE__ */ jsx24(
|
|
1124
1341
|
ListBox3,
|
|
1125
1342
|
{
|
|
1126
1343
|
className: "pire-listbox",
|
|
@@ -1128,10 +1345,10 @@ function MultiComboBox({
|
|
|
1128
1345
|
const el = e.currentTarget;
|
|
1129
1346
|
if (el.scrollHeight - el.scrollTop - el.clientHeight < 48) onLoadMore();
|
|
1130
1347
|
} : void 0,
|
|
1131
|
-
renderEmptyState: showsStatus ? () => /* @__PURE__ */
|
|
1348
|
+
renderEmptyState: showsStatus ? () => /* @__PURE__ */ jsx24("div", { className: "pire-listbox-status", role: "status", "aria-live": "polite", children: isLoading ? loadingLabel ?? msg.comboBoxLoading : emptyLabel }) : void 0,
|
|
1132
1349
|
children: (item) => /* @__PURE__ */ jsxs17(ListBoxItem3, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: [
|
|
1133
|
-
/* @__PURE__ */
|
|
1134
|
-
item.secondary ? /* @__PURE__ */
|
|
1350
|
+
/* @__PURE__ */ jsx24("span", { className: "pire-option-label", children: item.label }),
|
|
1351
|
+
item.secondary ? /* @__PURE__ */ jsx24("span", { className: "pire-option-secondary", children: item.secondary }) : null
|
|
1135
1352
|
] })
|
|
1136
1353
|
}
|
|
1137
1354
|
) })
|
|
@@ -1150,7 +1367,7 @@ import {
|
|
|
1150
1367
|
Text as Text8,
|
|
1151
1368
|
FieldError as FieldError7
|
|
1152
1369
|
} from "react-aria-components";
|
|
1153
|
-
import { jsx as
|
|
1370
|
+
import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1154
1371
|
function NumberField({
|
|
1155
1372
|
label,
|
|
1156
1373
|
suffix,
|
|
@@ -1167,7 +1384,7 @@ function NumberField({
|
|
|
1167
1384
|
return /* @__PURE__ */ jsxs18(AriaNumberField, { className: cx("pire-field", className), style, validationBehavior: "aria", ...rest, children: [
|
|
1168
1385
|
label ? /* @__PURE__ */ jsxs18(Label7, { className: "pire-field-label", children: [
|
|
1169
1386
|
label,
|
|
1170
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1387
|
+
rest.isRequired ? /* @__PURE__ */ jsx25("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1171
1388
|
] }) : null,
|
|
1172
1389
|
/* @__PURE__ */ jsxs18(
|
|
1173
1390
|
Group5,
|
|
@@ -1178,17 +1395,17 @@ function NumberField({
|
|
|
1178
1395
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1179
1396
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1180
1397
|
children: [
|
|
1181
|
-
/* @__PURE__ */
|
|
1182
|
-
suffix ? /* @__PURE__ */
|
|
1398
|
+
/* @__PURE__ */ jsx25(AriaInput4, { className: "pire-input", "data-numeric": "true" }),
|
|
1399
|
+
suffix ? /* @__PURE__ */ jsx25("span", { className: "pire-affix", children: suffix }) : null,
|
|
1183
1400
|
hideStepper ? null : /* @__PURE__ */ jsxs18("span", { className: "pire-stepper", children: [
|
|
1184
|
-
/* @__PURE__ */
|
|
1185
|
-
/* @__PURE__ */
|
|
1401
|
+
/* @__PURE__ */ jsx25(AriaButton7, { slot: "increment", className: "pire-stepper-btn", "aria-label": msg.numberFieldIncrease, children: /* @__PURE__ */ jsx25(Icon, { name: "plus", size: 10 }) }),
|
|
1402
|
+
/* @__PURE__ */ jsx25(AriaButton7, { slot: "decrement", className: "pire-stepper-btn", "aria-label": msg.numberFieldDecrease, children: /* @__PURE__ */ jsx25(Icon, { name: "minus", size: 10 }) })
|
|
1186
1403
|
] })
|
|
1187
1404
|
]
|
|
1188
1405
|
}
|
|
1189
1406
|
),
|
|
1190
|
-
description ? /* @__PURE__ */
|
|
1191
|
-
/* @__PURE__ */
|
|
1407
|
+
description ? /* @__PURE__ */ jsx25(Text8, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1408
|
+
/* @__PURE__ */ jsx25(FieldError7, { className: "pire-field-error", children: errorMessage })
|
|
1192
1409
|
] });
|
|
1193
1410
|
}
|
|
1194
1411
|
|
|
@@ -1212,7 +1429,7 @@ import {
|
|
|
1212
1429
|
Text as Text9,
|
|
1213
1430
|
FieldError as FieldError8
|
|
1214
1431
|
} from "react-aria-components";
|
|
1215
|
-
import { jsx as
|
|
1432
|
+
import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1216
1433
|
function DatePicker({
|
|
1217
1434
|
label,
|
|
1218
1435
|
description,
|
|
@@ -1227,7 +1444,7 @@ function DatePicker({
|
|
|
1227
1444
|
return /* @__PURE__ */ jsxs19(AriaDatePicker, { className: cx("pire-field", className), style, validationBehavior: "aria", ...rest, children: [
|
|
1228
1445
|
label ? /* @__PURE__ */ jsxs19(Label8, { className: "pire-field-label", children: [
|
|
1229
1446
|
label,
|
|
1230
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1447
|
+
rest.isRequired ? /* @__PURE__ */ jsx26("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1231
1448
|
] }) : null,
|
|
1232
1449
|
/* @__PURE__ */ jsxs19(
|
|
1233
1450
|
Group6,
|
|
@@ -1238,22 +1455,22 @@ function DatePicker({
|
|
|
1238
1455
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1239
1456
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1240
1457
|
children: [
|
|
1241
|
-
/* @__PURE__ */
|
|
1242
|
-
/* @__PURE__ */
|
|
1458
|
+
/* @__PURE__ */ jsx26(DateInput, { className: "pire-datefield", children: (segment) => /* @__PURE__ */ jsx26(DateSegment, { segment, className: "pire-datesegment" }) }),
|
|
1459
|
+
/* @__PURE__ */ jsx26(AriaButton8, { className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.datePickerOpenCalendar, style: { width: 24, height: 24 }, children: /* @__PURE__ */ jsx26(Icon, { name: "calendar", size: 16 }) })
|
|
1243
1460
|
]
|
|
1244
1461
|
}
|
|
1245
1462
|
),
|
|
1246
|
-
description ? /* @__PURE__ */
|
|
1247
|
-
/* @__PURE__ */
|
|
1248
|
-
/* @__PURE__ */
|
|
1463
|
+
description ? /* @__PURE__ */ jsx26(Text9, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1464
|
+
/* @__PURE__ */ jsx26(FieldError8, { className: "pire-field-error", children: errorMessage }),
|
|
1465
|
+
/* @__PURE__ */ jsx26(Popover4, { className: "pire-popover", children: /* @__PURE__ */ jsx26(AriaDialog, { children: /* @__PURE__ */ jsxs19(Calendar, { className: "pire-calendar", children: [
|
|
1249
1466
|
/* @__PURE__ */ jsxs19("header", { className: "pire-calendar-head", children: [
|
|
1250
|
-
/* @__PURE__ */
|
|
1251
|
-
/* @__PURE__ */
|
|
1252
|
-
/* @__PURE__ */
|
|
1467
|
+
/* @__PURE__ */ jsx26(AriaButton8, { slot: "previous", className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.datePickerPreviousMonth, children: /* @__PURE__ */ jsx26(Icon, { name: "chevron-left", size: 16 }) }),
|
|
1468
|
+
/* @__PURE__ */ jsx26(Heading2, { className: "pire-calendar-title" }),
|
|
1469
|
+
/* @__PURE__ */ jsx26(AriaButton8, { slot: "next", className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.datePickerNextMonth, children: /* @__PURE__ */ jsx26(Icon, { name: "chevron-right", size: 16 }) })
|
|
1253
1470
|
] }),
|
|
1254
1471
|
/* @__PURE__ */ jsxs19(CalendarGrid, { className: "pire-calendar-grid", children: [
|
|
1255
|
-
/* @__PURE__ */
|
|
1256
|
-
/* @__PURE__ */
|
|
1472
|
+
/* @__PURE__ */ jsx26(CalendarGridHeader, { children: (day) => /* @__PURE__ */ jsx26(CalendarHeaderCell, { children: day }) }),
|
|
1473
|
+
/* @__PURE__ */ jsx26(CalendarGridBody, { children: (date) => /* @__PURE__ */ jsx26(CalendarCell, { date, className: "pire-calendar-cell" }) })
|
|
1257
1474
|
] })
|
|
1258
1475
|
] }) }) })
|
|
1259
1476
|
] });
|
|
@@ -1279,7 +1496,7 @@ import {
|
|
|
1279
1496
|
Text as Text10,
|
|
1280
1497
|
FieldError as FieldError9
|
|
1281
1498
|
} from "react-aria-components";
|
|
1282
|
-
import { jsx as
|
|
1499
|
+
import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1283
1500
|
function rangeLengthInDays(range) {
|
|
1284
1501
|
return range.end.toDate("UTC").getTime() / 864e5 - range.start.toDate("UTC").getTime() / 864e5 + 1;
|
|
1285
1502
|
}
|
|
@@ -1313,7 +1530,7 @@ function DateRangePicker({
|
|
|
1313
1530
|
children: [
|
|
1314
1531
|
label ? /* @__PURE__ */ jsxs20(Label9, { className: "pire-field-label", children: [
|
|
1315
1532
|
label,
|
|
1316
|
-
rest.isRequired ? /* @__PURE__ */
|
|
1533
|
+
rest.isRequired ? /* @__PURE__ */ jsx27("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1317
1534
|
] }) : null,
|
|
1318
1535
|
/* @__PURE__ */ jsxs20(
|
|
1319
1536
|
Group7,
|
|
@@ -1324,29 +1541,29 @@ function DateRangePicker({
|
|
|
1324
1541
|
"data-invalid": rest.isInvalid || tooLong ? "true" : void 0,
|
|
1325
1542
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1326
1543
|
children: [
|
|
1327
|
-
/* @__PURE__ */
|
|
1328
|
-
/* @__PURE__ */
|
|
1329
|
-
/* @__PURE__ */
|
|
1330
|
-
/* @__PURE__ */
|
|
1544
|
+
/* @__PURE__ */ jsx27(DateInput2, { slot: "start", className: "pire-datefield", children: (segment) => /* @__PURE__ */ jsx27(DateSegment2, { segment, className: "pire-datesegment" }) }),
|
|
1545
|
+
/* @__PURE__ */ jsx27("span", { "aria-hidden": "true", className: "pire-daterange-dash", children: "\u2013" }),
|
|
1546
|
+
/* @__PURE__ */ jsx27(DateInput2, { slot: "end", className: "pire-datefield", children: (segment) => /* @__PURE__ */ jsx27(DateSegment2, { segment, className: "pire-datesegment" }) }),
|
|
1547
|
+
/* @__PURE__ */ jsx27(
|
|
1331
1548
|
AriaButton9,
|
|
1332
1549
|
{
|
|
1333
1550
|
className: "pire-iconbtn",
|
|
1334
1551
|
"data-size": "sm",
|
|
1335
1552
|
"aria-label": msg.datePickerOpenCalendar,
|
|
1336
1553
|
style: { width: 24, height: 24 },
|
|
1337
|
-
children: /* @__PURE__ */
|
|
1554
|
+
children: /* @__PURE__ */ jsx27(Icon, { name: "calendar", size: 16 })
|
|
1338
1555
|
}
|
|
1339
1556
|
)
|
|
1340
1557
|
]
|
|
1341
1558
|
}
|
|
1342
1559
|
),
|
|
1343
|
-
description ? /* @__PURE__ */
|
|
1344
|
-
/* @__PURE__ */
|
|
1345
|
-
/* @__PURE__ */
|
|
1560
|
+
description ? /* @__PURE__ */ jsx27(Text10, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1561
|
+
/* @__PURE__ */ jsx27(FieldError9, { className: "pire-field-error", children: errorMessage }),
|
|
1562
|
+
/* @__PURE__ */ jsx27(Popover5, { className: "pire-popover", children: /* @__PURE__ */ jsxs20(AriaDialog2, { className: "pire-daterange-dialog", children: [
|
|
1346
1563
|
presets?.length ? (
|
|
1347
1564
|
// Before the calendar in the DOM, so keyboard users reach the shortcut without
|
|
1348
1565
|
// arrowing through a month first.
|
|
1349
|
-
/* @__PURE__ */
|
|
1566
|
+
/* @__PURE__ */ jsx27("div", { className: "pire-daterange-presets", role: "group", "aria-label": msg.dateRangePresetsLabel, children: presets.map((preset) => /* @__PURE__ */ jsx27(
|
|
1350
1567
|
AriaButton9,
|
|
1351
1568
|
{
|
|
1352
1569
|
className: "pire-daterange-preset",
|
|
@@ -1358,31 +1575,31 @@ function DateRangePicker({
|
|
|
1358
1575
|
) : null,
|
|
1359
1576
|
/* @__PURE__ */ jsxs20(RangeCalendar, { className: "pire-calendar", children: [
|
|
1360
1577
|
/* @__PURE__ */ jsxs20("header", { className: "pire-calendar-head", children: [
|
|
1361
|
-
/* @__PURE__ */
|
|
1578
|
+
/* @__PURE__ */ jsx27(
|
|
1362
1579
|
AriaButton9,
|
|
1363
1580
|
{
|
|
1364
1581
|
slot: "previous",
|
|
1365
1582
|
className: "pire-iconbtn",
|
|
1366
1583
|
"data-size": "sm",
|
|
1367
1584
|
"aria-label": msg.datePickerPreviousMonth,
|
|
1368
|
-
children: /* @__PURE__ */
|
|
1585
|
+
children: /* @__PURE__ */ jsx27(Icon, { name: "chevron-left", size: 16 })
|
|
1369
1586
|
}
|
|
1370
1587
|
),
|
|
1371
|
-
/* @__PURE__ */
|
|
1372
|
-
/* @__PURE__ */
|
|
1588
|
+
/* @__PURE__ */ jsx27(Heading3, { className: "pire-calendar-title" }),
|
|
1589
|
+
/* @__PURE__ */ jsx27(
|
|
1373
1590
|
AriaButton9,
|
|
1374
1591
|
{
|
|
1375
1592
|
slot: "next",
|
|
1376
1593
|
className: "pire-iconbtn",
|
|
1377
1594
|
"data-size": "sm",
|
|
1378
1595
|
"aria-label": msg.datePickerNextMonth,
|
|
1379
|
-
children: /* @__PURE__ */
|
|
1596
|
+
children: /* @__PURE__ */ jsx27(Icon, { name: "chevron-right", size: 16 })
|
|
1380
1597
|
}
|
|
1381
1598
|
)
|
|
1382
1599
|
] }),
|
|
1383
1600
|
/* @__PURE__ */ jsxs20(CalendarGrid2, { className: "pire-calendar-grid", children: [
|
|
1384
|
-
/* @__PURE__ */
|
|
1385
|
-
/* @__PURE__ */
|
|
1601
|
+
/* @__PURE__ */ jsx27(CalendarGridHeader2, { children: (day) => /* @__PURE__ */ jsx27(CalendarHeaderCell2, { children: day }) }),
|
|
1602
|
+
/* @__PURE__ */ jsx27(CalendarGridBody2, { children: (date) => /* @__PURE__ */ jsx27(CalendarCell2, { date, className: "pire-calendar-cell" }) })
|
|
1386
1603
|
] })
|
|
1387
1604
|
] })
|
|
1388
1605
|
] }) })
|
|
@@ -1399,7 +1616,7 @@ import * as React8 from "react";
|
|
|
1399
1616
|
|
|
1400
1617
|
// src/components/feedback/Dialog.tsx
|
|
1401
1618
|
import { ModalOverlay, Modal, Dialog as AriaDialog3, Heading as Heading4 } from "react-aria-components";
|
|
1402
|
-
import { jsx as
|
|
1619
|
+
import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1403
1620
|
function Dialog({
|
|
1404
1621
|
isOpen,
|
|
1405
1622
|
onOpenChange,
|
|
@@ -1419,7 +1636,7 @@ function Dialog({
|
|
|
1419
1636
|
onClose?.();
|
|
1420
1637
|
onOpenChange?.(false);
|
|
1421
1638
|
};
|
|
1422
|
-
return /* @__PURE__ */
|
|
1639
|
+
return /* @__PURE__ */ jsx28(
|
|
1423
1640
|
ModalOverlay,
|
|
1424
1641
|
{
|
|
1425
1642
|
className: "pire-modal-overlay",
|
|
@@ -1428,16 +1645,16 @@ function Dialog({
|
|
|
1428
1645
|
onOpenChange: (o) => {
|
|
1429
1646
|
if (!o) close();
|
|
1430
1647
|
},
|
|
1431
|
-
children: /* @__PURE__ */
|
|
1648
|
+
children: /* @__PURE__ */ jsx28(Modal, { className: cx("pire-modal", className), "data-size": size, style, children: /* @__PURE__ */ jsxs21(AriaDialog3, { className: "pire-dialog", children: [
|
|
1432
1649
|
title ? /* @__PURE__ */ jsxs21("header", { className: "pire-dialog-head", children: [
|
|
1433
1650
|
/* @__PURE__ */ jsxs21("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
1434
|
-
/* @__PURE__ */
|
|
1435
|
-
subtitle ? /* @__PURE__ */
|
|
1651
|
+
/* @__PURE__ */ jsx28(Heading4, { slot: "title", className: "pire-dialog-title", children: title }),
|
|
1652
|
+
subtitle ? /* @__PURE__ */ jsx28("p", { className: "pire-dialog-sub", style: { margin: 0 }, children: subtitle }) : null
|
|
1436
1653
|
] }),
|
|
1437
|
-
showClose ? /* @__PURE__ */
|
|
1654
|
+
showClose ? /* @__PURE__ */ jsx28(IconButton, { icon: "x", label: msg.dialogClose, size: "sm", onPress: close }) : null
|
|
1438
1655
|
] }) : null,
|
|
1439
|
-
/* @__PURE__ */
|
|
1440
|
-
footer ? /* @__PURE__ */
|
|
1656
|
+
children ? /* @__PURE__ */ jsx28("div", { className: "pire-dialog-body", children }) : null,
|
|
1657
|
+
footer ? /* @__PURE__ */ jsx28("footer", { className: "pire-dialog-foot", children: footer }) : null
|
|
1441
1658
|
] }) })
|
|
1442
1659
|
}
|
|
1443
1660
|
);
|
|
@@ -1454,9 +1671,9 @@ import {
|
|
|
1454
1671
|
} from "react-aria-components";
|
|
1455
1672
|
|
|
1456
1673
|
// src/components/feedback/Skeleton.tsx
|
|
1457
|
-
import { jsx as
|
|
1674
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1458
1675
|
function Skeleton({ shape = "text", width, height, className, style, ...rest }) {
|
|
1459
|
-
return /* @__PURE__ */
|
|
1676
|
+
return /* @__PURE__ */ jsx29(
|
|
1460
1677
|
"div",
|
|
1461
1678
|
{
|
|
1462
1679
|
className: cx("pire-skeleton", className),
|
|
@@ -1470,7 +1687,7 @@ function Skeleton({ shape = "text", width, height, className, style, ...rest })
|
|
|
1470
1687
|
var BAR_WIDTHS = ["72%", "54%", "86%", "63%"];
|
|
1471
1688
|
function SkeletonTableRow({ columns, density = "regular", className, style, ...rest }) {
|
|
1472
1689
|
const cells = typeof columns === "number" ? Array.from({ length: columns }, () => ({})) : columns;
|
|
1473
|
-
return /* @__PURE__ */
|
|
1690
|
+
return /* @__PURE__ */ jsx29(
|
|
1474
1691
|
"div",
|
|
1475
1692
|
{
|
|
1476
1693
|
className: cx("pire-skeleton-row", className),
|
|
@@ -1482,13 +1699,13 @@ function SkeletonTableRow({ columns, density = "regular", className, style, ...r
|
|
|
1482
1699
|
const align = c.numeric ? "right" : c.align ?? "left";
|
|
1483
1700
|
return (
|
|
1484
1701
|
// biome-ignore lint/suspicious/noArrayIndexKey: columns are positional and never reordered.
|
|
1485
|
-
/* @__PURE__ */
|
|
1702
|
+
/* @__PURE__ */ jsx29(
|
|
1486
1703
|
"div",
|
|
1487
1704
|
{
|
|
1488
1705
|
className: "pire-skeleton-cell",
|
|
1489
1706
|
"data-align": align,
|
|
1490
1707
|
style: { width: c.width, flex: c.width ? "0 0 auto" : void 0 },
|
|
1491
|
-
children: /* @__PURE__ */
|
|
1708
|
+
children: /* @__PURE__ */ jsx29(Skeleton, { width: BAR_WIDTHS[i % BAR_WIDTHS.length] })
|
|
1492
1709
|
},
|
|
1493
1710
|
i
|
|
1494
1711
|
)
|
|
@@ -1499,7 +1716,7 @@ function SkeletonTableRow({ columns, density = "regular", className, style, ...r
|
|
|
1499
1716
|
}
|
|
1500
1717
|
|
|
1501
1718
|
// src/components/data/DataTable.tsx
|
|
1502
|
-
import { jsx as
|
|
1719
|
+
import { jsx as jsx30, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1503
1720
|
function DataTable({
|
|
1504
1721
|
columns,
|
|
1505
1722
|
rows,
|
|
@@ -1531,7 +1748,7 @@ function DataTable({
|
|
|
1531
1748
|
...columns.map((c) => ({ width: c.width, align: c.align, numeric: c.numeric }))
|
|
1532
1749
|
];
|
|
1533
1750
|
const body = isLoading ? [] : rows;
|
|
1534
|
-
return /* @__PURE__ */
|
|
1751
|
+
return /* @__PURE__ */ jsx30(
|
|
1535
1752
|
"div",
|
|
1536
1753
|
{
|
|
1537
1754
|
className: cx("pire-table-wrap", className),
|
|
@@ -1556,8 +1773,8 @@ function DataTable({
|
|
|
1556
1773
|
} : void 0,
|
|
1557
1774
|
children: [
|
|
1558
1775
|
/* @__PURE__ */ jsxs22(TableHeader, { className: "pire-thead-row", children: [
|
|
1559
|
-
selectable ? /* @__PURE__ */
|
|
1560
|
-
columns.map((c, i) => /* @__PURE__ */
|
|
1776
|
+
selectable ? /* @__PURE__ */ jsx30(Column, { className: "pire-th", width: 44, children: /* @__PURE__ */ jsx30(Checkbox, { slot: "selection", "aria-label": msg.dataTableSelectAll }) }) : null,
|
|
1777
|
+
columns.map((c, i) => /* @__PURE__ */ jsx30(
|
|
1561
1778
|
Column,
|
|
1562
1779
|
{
|
|
1563
1780
|
id: c.key,
|
|
@@ -1569,7 +1786,7 @@ function DataTable({
|
|
|
1569
1786
|
"data-allows-sorting": c.sortable ? "true" : void 0,
|
|
1570
1787
|
children: /* @__PURE__ */ jsxs22("span", { className: "pire-th-inner", children: [
|
|
1571
1788
|
c.label,
|
|
1572
|
-
c.sortable ? /* @__PURE__ */
|
|
1789
|
+
c.sortable ? /* @__PURE__ */ jsx30(
|
|
1573
1790
|
Icon,
|
|
1574
1791
|
{
|
|
1575
1792
|
size: 12,
|
|
@@ -1582,15 +1799,15 @@ function DataTable({
|
|
|
1582
1799
|
c.key
|
|
1583
1800
|
))
|
|
1584
1801
|
] }),
|
|
1585
|
-
/* @__PURE__ */
|
|
1586
|
-
/* @__PURE__ */
|
|
1802
|
+
/* @__PURE__ */ jsx30(TableBody, { renderEmptyState: () => isLoading ? /* @__PURE__ */ jsxs22("div", { className: "pire-table-loading", role: "status", "aria-live": "polite", children: [
|
|
1803
|
+
/* @__PURE__ */ jsx30("span", { className: "pire-sr-only", children: loadingLabel ?? msg.dataTableLoading }),
|
|
1587
1804
|
Array.from({ length: skeletonRows }, (_, i) => (
|
|
1588
1805
|
// biome-ignore lint/suspicious/noArrayIndexKey: placeholder rows are positional.
|
|
1589
|
-
/* @__PURE__ */
|
|
1806
|
+
/* @__PURE__ */ jsx30(SkeletonTableRow, { columns: skeletonColumns, density }, i)
|
|
1590
1807
|
))
|
|
1591
|
-
] }) : /* @__PURE__ */
|
|
1592
|
-
selectable ? /* @__PURE__ */
|
|
1593
|
-
columns.map((c) => /* @__PURE__ */
|
|
1808
|
+
] }) : /* @__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: [
|
|
1809
|
+
selectable ? /* @__PURE__ */ jsx30(Cell, { className: "pire-td", children: /* @__PURE__ */ jsx30(Checkbox, { slot: "selection", "aria-label": msg.dataTableSelectRow }) }) : null,
|
|
1810
|
+
columns.map((c) => /* @__PURE__ */ jsx30(
|
|
1594
1811
|
Cell,
|
|
1595
1812
|
{
|
|
1596
1813
|
className: "pire-td",
|
|
@@ -1609,14 +1826,18 @@ function DataTable({
|
|
|
1609
1826
|
}
|
|
1610
1827
|
|
|
1611
1828
|
// src/components/patterns/ValueHelpDialog.tsx
|
|
1612
|
-
import { jsx as
|
|
1829
|
+
import { jsx as jsx31, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1613
1830
|
function ValueHelpDialog({
|
|
1614
1831
|
isOpen,
|
|
1615
|
-
title
|
|
1832
|
+
title,
|
|
1616
1833
|
columns = [],
|
|
1617
1834
|
rows = [],
|
|
1618
|
-
searchPlaceholder
|
|
1835
|
+
searchPlaceholder,
|
|
1619
1836
|
emptyLabel,
|
|
1837
|
+
onSearch,
|
|
1838
|
+
isFilteredExternally,
|
|
1839
|
+
isLoading,
|
|
1840
|
+
onLoadMore,
|
|
1620
1841
|
onSelect,
|
|
1621
1842
|
onClose
|
|
1622
1843
|
}) {
|
|
@@ -1626,52 +1847,61 @@ function ValueHelpDialog({
|
|
|
1626
1847
|
if (isOpen) setQuery("");
|
|
1627
1848
|
}, [isOpen]);
|
|
1628
1849
|
const filtered = React8.useMemo(() => {
|
|
1850
|
+
if (isFilteredExternally) return rows;
|
|
1629
1851
|
const q = query.trim().toLowerCase();
|
|
1630
1852
|
if (!q) return rows;
|
|
1631
1853
|
return rows.filter((row) => Object.values(row).some((v) => String(v).toLowerCase().includes(q)));
|
|
1632
|
-
}, [rows, query]);
|
|
1633
|
-
|
|
1854
|
+
}, [rows, query, isFilteredExternally]);
|
|
1855
|
+
const handleSearch = (value) => {
|
|
1856
|
+
setQuery(value);
|
|
1857
|
+
onSearch?.(value);
|
|
1858
|
+
};
|
|
1859
|
+
return /* @__PURE__ */ jsx31(
|
|
1634
1860
|
Dialog,
|
|
1635
1861
|
{
|
|
1636
1862
|
isOpen,
|
|
1637
1863
|
size: "lg",
|
|
1638
|
-
title,
|
|
1864
|
+
title: title ?? msg.valueHelpDialogTitle,
|
|
1639
1865
|
onClose,
|
|
1640
|
-
footer: /* @__PURE__ */
|
|
1866
|
+
footer: /* @__PURE__ */ jsx31(Button, { variant: "tertiary", onPress: onClose, children: msg.valueHelpDialogCancel }),
|
|
1641
1867
|
children: /* @__PURE__ */ jsxs23("div", { style: { display: "flex", flexDirection: "column", gap: "var(--sp-3)" }, children: [
|
|
1642
|
-
/* @__PURE__ */
|
|
1868
|
+
/* @__PURE__ */ jsx31(
|
|
1643
1869
|
Input,
|
|
1644
1870
|
{
|
|
1645
1871
|
"aria-label": msg.valueHelpDialogSearch,
|
|
1646
1872
|
icon: "search",
|
|
1647
1873
|
type: "search",
|
|
1648
1874
|
value: query,
|
|
1649
|
-
onChange:
|
|
1650
|
-
placeholder: searchPlaceholder,
|
|
1875
|
+
onChange: handleSearch,
|
|
1876
|
+
placeholder: searchPlaceholder ?? msg.valueHelpDialogSearchPlaceholder,
|
|
1651
1877
|
autoFocus: true
|
|
1652
1878
|
}
|
|
1653
1879
|
),
|
|
1654
|
-
/* @__PURE__ */
|
|
1880
|
+
/* @__PURE__ */ jsx31("div", { onScroll: onLoadMore ? (event) => {
|
|
1881
|
+
const el = event.currentTarget;
|
|
1882
|
+
if (el.scrollHeight - el.scrollTop - el.clientHeight < 64) onLoadMore();
|
|
1883
|
+
} : void 0, style: { overflow: "auto", maxHeight: "48vh" }, children: /* @__PURE__ */ jsx31(
|
|
1655
1884
|
DataTable,
|
|
1656
1885
|
{
|
|
1657
|
-
"aria-label": typeof title === "string" ? title :
|
|
1886
|
+
"aria-label": typeof title === "string" ? title : msg.valueHelpDialogTitle,
|
|
1658
1887
|
density: "condensed",
|
|
1659
1888
|
columns,
|
|
1660
1889
|
rows: filtered,
|
|
1661
|
-
|
|
1890
|
+
isLoading,
|
|
1891
|
+
emptyLabel: emptyLabel ?? msg.valueHelpDialogEmpty,
|
|
1662
1892
|
onRowAction: (row) => {
|
|
1663
1893
|
onSelect?.(row);
|
|
1664
1894
|
onClose?.();
|
|
1665
1895
|
}
|
|
1666
1896
|
}
|
|
1667
|
-
)
|
|
1897
|
+
) })
|
|
1668
1898
|
] })
|
|
1669
1899
|
}
|
|
1670
1900
|
);
|
|
1671
1901
|
}
|
|
1672
1902
|
|
|
1673
1903
|
// src/components/forms/ValueHelpField.tsx
|
|
1674
|
-
import { jsx as
|
|
1904
|
+
import { jsx as jsx32, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
1675
1905
|
var defaultFormat = (row) => [row.id, row.name ?? row.label ?? row.text].filter(Boolean).join(" \u2014 ");
|
|
1676
1906
|
function ValueHelpField({
|
|
1677
1907
|
label,
|
|
@@ -1681,7 +1911,12 @@ function ValueHelpField({
|
|
|
1681
1911
|
rows = [],
|
|
1682
1912
|
columns = [],
|
|
1683
1913
|
dialogTitle,
|
|
1684
|
-
|
|
1914
|
+
onSearch,
|
|
1915
|
+
isFilteredExternally,
|
|
1916
|
+
isLoading,
|
|
1917
|
+
onLoadMore,
|
|
1918
|
+
emptyLabel,
|
|
1919
|
+
placeholder,
|
|
1685
1920
|
description,
|
|
1686
1921
|
errorMessage,
|
|
1687
1922
|
isInvalid,
|
|
@@ -1694,50 +1929,53 @@ function ValueHelpField({
|
|
|
1694
1929
|
const msg = usePireMessages();
|
|
1695
1930
|
const [open, setOpen] = React9.useState(false);
|
|
1696
1931
|
return /* @__PURE__ */ jsxs24("div", { className: cx(className), style, children: [
|
|
1697
|
-
/* @__PURE__ */
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
] }),
|
|
1733
|
-
/* @__PURE__ */ jsx31(
|
|
1932
|
+
/* @__PURE__ */ jsx32(
|
|
1933
|
+
Input,
|
|
1934
|
+
{
|
|
1935
|
+
label,
|
|
1936
|
+
isReadOnly: true,
|
|
1937
|
+
isInvalid,
|
|
1938
|
+
isDisabled,
|
|
1939
|
+
isRequired,
|
|
1940
|
+
value: value ? format(value) : "",
|
|
1941
|
+
placeholder: placeholder ?? msg.valueHelpFieldPlaceholder,
|
|
1942
|
+
description,
|
|
1943
|
+
errorMessage,
|
|
1944
|
+
suffix: /* @__PURE__ */ jsxs24("span", { className: "pire-valuehelp-actions", children: [
|
|
1945
|
+
allowsClear && value ? /* @__PURE__ */ jsx32(
|
|
1946
|
+
IconButton,
|
|
1947
|
+
{
|
|
1948
|
+
icon: "x",
|
|
1949
|
+
label: msg.valueHelpFieldClear,
|
|
1950
|
+
isDisabled,
|
|
1951
|
+
onPress: () => onChange?.(null)
|
|
1952
|
+
}
|
|
1953
|
+
) : null,
|
|
1954
|
+
/* @__PURE__ */ jsx32(
|
|
1955
|
+
IconButton,
|
|
1956
|
+
{
|
|
1957
|
+
icon: "search",
|
|
1958
|
+
label: typeof label === "string" ? msg.valueHelpFieldOpenNamed.replace("{label}", label.toLowerCase()) : msg.valueHelpFieldOpen,
|
|
1959
|
+
isDisabled,
|
|
1960
|
+
onPress: () => setOpen(true)
|
|
1961
|
+
}
|
|
1962
|
+
)
|
|
1963
|
+
] })
|
|
1964
|
+
}
|
|
1965
|
+
),
|
|
1966
|
+
/* @__PURE__ */ jsx32(
|
|
1734
1967
|
ValueHelpDialog,
|
|
1735
1968
|
{
|
|
1736
1969
|
isOpen: open,
|
|
1737
1970
|
onClose: () => setOpen(false),
|
|
1738
|
-
title: dialogTitle ?? label
|
|
1971
|
+
title: dialogTitle ?? label,
|
|
1739
1972
|
columns,
|
|
1740
1973
|
rows,
|
|
1974
|
+
onSearch,
|
|
1975
|
+
isFilteredExternally,
|
|
1976
|
+
isLoading,
|
|
1977
|
+
onLoadMore,
|
|
1978
|
+
emptyLabel,
|
|
1741
1979
|
onSelect: (row) => onChange?.(row)
|
|
1742
1980
|
}
|
|
1743
1981
|
)
|
|
@@ -1750,7 +1988,7 @@ import { FileTrigger, Text as Text11 } from "react-aria-components";
|
|
|
1750
1988
|
|
|
1751
1989
|
// src/components/feedback/ProgressBar.tsx
|
|
1752
1990
|
import { ProgressBar as AriaProgressBar, Label as Label10 } from "react-aria-components";
|
|
1753
|
-
import { Fragment as Fragment2, jsx as
|
|
1991
|
+
import { Fragment as Fragment2, jsx as jsx33, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
1754
1992
|
function ProgressBar({
|
|
1755
1993
|
value = 0,
|
|
1756
1994
|
minValue = 0,
|
|
@@ -1763,7 +2001,7 @@ function ProgressBar({
|
|
|
1763
2001
|
className,
|
|
1764
2002
|
style
|
|
1765
2003
|
}) {
|
|
1766
|
-
return /* @__PURE__ */
|
|
2004
|
+
return /* @__PURE__ */ jsx33(
|
|
1767
2005
|
AriaProgressBar,
|
|
1768
2006
|
{
|
|
1769
2007
|
className: cx("pire-progress", className),
|
|
@@ -1776,17 +2014,17 @@ function ProgressBar({
|
|
|
1776
2014
|
style,
|
|
1777
2015
|
children: ({ percentage, valueText }) => /* @__PURE__ */ jsxs25(Fragment2, { children: [
|
|
1778
2016
|
label || showValue ? /* @__PURE__ */ jsxs25("div", { className: "pire-progress-head", children: [
|
|
1779
|
-
label ? /* @__PURE__ */
|
|
1780
|
-
showValue && !isIndeterminate ? /* @__PURE__ */
|
|
2017
|
+
label ? /* @__PURE__ */ jsx33(Label10, { children: label }) : /* @__PURE__ */ jsx33("span", {}),
|
|
2018
|
+
showValue && !isIndeterminate ? /* @__PURE__ */ jsx33("span", { className: "pire-numeric", children: valueText }) : null
|
|
1781
2019
|
] }) : null,
|
|
1782
|
-
/* @__PURE__ */
|
|
2020
|
+
/* @__PURE__ */ jsx33("div", { className: "pire-progress-track", children: /* @__PURE__ */ jsx33("div", { className: "pire-progress-fill", style: { width: `${isIndeterminate ? 40 : percentage}%` } }) })
|
|
1783
2021
|
] })
|
|
1784
2022
|
}
|
|
1785
2023
|
);
|
|
1786
2024
|
}
|
|
1787
2025
|
|
|
1788
2026
|
// src/components/forms/FileUpload.tsx
|
|
1789
|
-
import { jsx as
|
|
2027
|
+
import { jsx as jsx34, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1790
2028
|
var isImage = (file) => file.type.startsWith("image/");
|
|
1791
2029
|
function formatFileSize(bytes) {
|
|
1792
2030
|
if (bytes < 1024) return `${bytes} B`;
|
|
@@ -1868,22 +2106,22 @@ function FileUpload({
|
|
|
1868
2106
|
children: [
|
|
1869
2107
|
label ? /* @__PURE__ */ jsxs26("span", { className: "pire-field-label", children: [
|
|
1870
2108
|
label,
|
|
1871
|
-
isRequired ? /* @__PURE__ */
|
|
2109
|
+
isRequired ? /* @__PURE__ */ jsx34("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1872
2110
|
] }) : null,
|
|
1873
|
-
/* @__PURE__ */
|
|
2111
|
+
/* @__PURE__ */ jsx34(
|
|
1874
2112
|
FileTrigger,
|
|
1875
2113
|
{
|
|
1876
2114
|
acceptedFileTypes,
|
|
1877
2115
|
allowsMultiple,
|
|
1878
2116
|
onSelect: accept,
|
|
1879
|
-
children: /* @__PURE__ */
|
|
2117
|
+
children: /* @__PURE__ */ jsx34(Button, { icon: "paperclip", isDisabled: isDisabled || isReadOnly, children: chooseLabel ?? msg.fileUploadChoose })
|
|
1880
2118
|
}
|
|
1881
2119
|
),
|
|
1882
|
-
files.length ? /* @__PURE__ */
|
|
1883
|
-
previewUrl ? /* @__PURE__ */
|
|
1884
|
-
/* @__PURE__ */
|
|
1885
|
-
/* @__PURE__ */
|
|
1886
|
-
isDisabled || isReadOnly ? null : /* @__PURE__ */
|
|
2120
|
+
files.length ? /* @__PURE__ */ jsx34("ul", { className: "pire-fileupload-list", children: files.map(({ file, previewUrl }) => /* @__PURE__ */ jsxs26("li", { className: "pire-fileupload-item", children: [
|
|
2121
|
+
previewUrl ? /* @__PURE__ */ jsx34("img", { className: "pire-fileupload-thumb", src: previewUrl, alt: "" }) : /* @__PURE__ */ jsx34(Icon, { name: "file-text", size: 16, className: "pire-fileupload-icon" }),
|
|
2122
|
+
/* @__PURE__ */ jsx34("span", { className: "pire-fileupload-name", children: file.name }),
|
|
2123
|
+
/* @__PURE__ */ jsx34("span", { className: "pire-fileupload-size", children: formatFileSize(file.size) }),
|
|
2124
|
+
isDisabled || isReadOnly ? null : /* @__PURE__ */ jsx34(
|
|
1887
2125
|
IconButton,
|
|
1888
2126
|
{
|
|
1889
2127
|
icon: "x",
|
|
@@ -1893,16 +2131,17 @@ function FileUpload({
|
|
|
1893
2131
|
}
|
|
1894
2132
|
)
|
|
1895
2133
|
] }, `${file.name}-${file.size}-${file.lastModified}`)) }) : null,
|
|
1896
|
-
uploadProgress != null ? /* @__PURE__ */
|
|
1897
|
-
description ? /* @__PURE__ */
|
|
1898
|
-
isInvalid && errorMessage ? /* @__PURE__ */
|
|
2134
|
+
uploadProgress != null ? /* @__PURE__ */ jsx34(ProgressBar, { value: uploadProgress, label: msg.fileUploadUploading }) : null,
|
|
2135
|
+
description ? /* @__PURE__ */ jsx34(Text11, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
2136
|
+
isInvalid && errorMessage ? /* @__PURE__ */ jsx34("span", { className: "pire-field-error", children: errorMessage }) : null
|
|
1899
2137
|
]
|
|
1900
2138
|
}
|
|
1901
2139
|
);
|
|
1902
2140
|
}
|
|
1903
2141
|
|
|
1904
2142
|
// src/components/navigation/ShellBar.tsx
|
|
1905
|
-
import {
|
|
2143
|
+
import { MenuTrigger, Button as AriaButton10, Popover as Popover6 } from "react-aria-components";
|
|
2144
|
+
import { jsx as jsx35, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1906
2145
|
var initials2 = (name) => name.trim().split(/\s+/).slice(0, 2).map((p) => p[0]).join("").toUpperCase();
|
|
1907
2146
|
function ShellBar({
|
|
1908
2147
|
product,
|
|
@@ -1914,30 +2153,48 @@ function ShellBar({
|
|
|
1914
2153
|
searchLabel = "Search",
|
|
1915
2154
|
actions,
|
|
1916
2155
|
user,
|
|
2156
|
+
userMenu,
|
|
2157
|
+
userMenuLabel,
|
|
1917
2158
|
className,
|
|
1918
2159
|
...rest
|
|
1919
2160
|
}) {
|
|
2161
|
+
const msg = usePireMessages();
|
|
1920
2162
|
return /* @__PURE__ */ jsxs27("header", { className: cx("pire-shellbar", className), ...rest, children: [
|
|
1921
|
-
onMenu ? /* @__PURE__ */
|
|
1922
|
-
monogram ? /* @__PURE__ */
|
|
1923
|
-
product ? /* @__PURE__ */
|
|
1924
|
-
title ? /* @__PURE__ */
|
|
1925
|
-
/* @__PURE__ */
|
|
1926
|
-
onSearch ? /* @__PURE__ */
|
|
2163
|
+
onMenu ? /* @__PURE__ */ jsx35(IconButton, { icon: "menu", label: menuLabel, variant: "inverse", size: "sm", onPress: onMenu }) : null,
|
|
2164
|
+
monogram ? /* @__PURE__ */ jsx35("span", { className: "pire-shellbar-mono", "aria-hidden": "true", children: monogram }) : null,
|
|
2165
|
+
product ? /* @__PURE__ */ jsx35("span", { className: "pire-shellbar-product", children: product }) : null,
|
|
2166
|
+
title ? /* @__PURE__ */ jsx35("span", { className: "pire-shellbar-title", children: title }) : null,
|
|
2167
|
+
/* @__PURE__ */ jsx35("span", { className: "pire-shellbar-spacer" }),
|
|
2168
|
+
onSearch ? /* @__PURE__ */ jsx35(IconButton, { icon: "search", label: searchLabel, variant: "inverse", size: "sm", onPress: onSearch }) : null,
|
|
1927
2169
|
actions,
|
|
1928
|
-
user
|
|
2170
|
+
user && userMenu ? (
|
|
2171
|
+
// A real button, not the img-role span: the avatar is where "my profile", "switch company"
|
|
2172
|
+
// and "sign out" live in any ERP, and a span accepts neither focus nor onPress. Popover is
|
|
2173
|
+
// rendered here rather than expected from the consumer so the panel keeps shell placement.
|
|
2174
|
+
/* @__PURE__ */ jsxs27(MenuTrigger, { children: [
|
|
2175
|
+
/* @__PURE__ */ jsx35(
|
|
2176
|
+
AriaButton10,
|
|
2177
|
+
{
|
|
2178
|
+
className: "pire-avatar pire-avatar-trigger",
|
|
2179
|
+
"aria-label": (userMenuLabel ?? msg.shellBarUserMenu).replace("{user}", user),
|
|
2180
|
+
children: initials2(user)
|
|
2181
|
+
}
|
|
2182
|
+
),
|
|
2183
|
+
/* @__PURE__ */ jsx35(Popover6, { className: "pire-popover", children: userMenu })
|
|
2184
|
+
] })
|
|
2185
|
+
) : user ? /* @__PURE__ */ jsx35("span", { className: "pire-avatar", title: user, "aria-label": user, role: "img", children: initials2(user) }) : null
|
|
1929
2186
|
] });
|
|
1930
2187
|
}
|
|
1931
2188
|
|
|
1932
2189
|
// src/components/navigation/SideNav.tsx
|
|
1933
2190
|
import * as React11 from "react";
|
|
1934
2191
|
import {
|
|
1935
|
-
Button as
|
|
2192
|
+
Button as AriaButton11,
|
|
1936
2193
|
Disclosure,
|
|
1937
2194
|
DisclosureGroup,
|
|
1938
2195
|
DisclosurePanel,
|
|
1939
|
-
MenuTrigger,
|
|
1940
|
-
Popover as
|
|
2196
|
+
MenuTrigger as MenuTrigger2,
|
|
2197
|
+
Popover as Popover7
|
|
1941
2198
|
} from "react-aria-components";
|
|
1942
2199
|
|
|
1943
2200
|
// src/components/navigation/Menu.tsx
|
|
@@ -1948,11 +2205,11 @@ import {
|
|
|
1948
2205
|
Separator as AriaSeparator2,
|
|
1949
2206
|
Header
|
|
1950
2207
|
} from "react-aria-components";
|
|
1951
|
-
import { jsx as
|
|
2208
|
+
import { jsx as jsx36, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
1952
2209
|
function Menu({ minWidth, className, style, ...rest }) {
|
|
1953
2210
|
const width = typeof minWidth === "number" ? `${minWidth}px` : minWidth;
|
|
1954
2211
|
const menuStyle = width == null ? style : { ["--pire-menu-min-w"]: width, ...style };
|
|
1955
|
-
return /* @__PURE__ */
|
|
2212
|
+
return /* @__PURE__ */ jsx36(
|
|
1956
2213
|
AriaMenu,
|
|
1957
2214
|
{
|
|
1958
2215
|
className: cx("pire-menu", className),
|
|
@@ -1961,6 +2218,11 @@ function Menu({ minWidth, className, style, ...rest }) {
|
|
|
1961
2218
|
}
|
|
1962
2219
|
);
|
|
1963
2220
|
}
|
|
2221
|
+
var shortcutKeys = (shortcut) => {
|
|
2222
|
+
if (shortcut == null) return [];
|
|
2223
|
+
const parts = Array.isArray(shortcut) ? shortcut : shortcut.split(/[+\s]+/);
|
|
2224
|
+
return parts.map((part) => part.trim()).filter(Boolean);
|
|
2225
|
+
};
|
|
1964
2226
|
function MenuItem({
|
|
1965
2227
|
children,
|
|
1966
2228
|
icon,
|
|
@@ -1970,6 +2232,7 @@ function MenuItem({
|
|
|
1970
2232
|
className,
|
|
1971
2233
|
...rest
|
|
1972
2234
|
}) {
|
|
2235
|
+
const keys = shortcutKeys(shortcut);
|
|
1973
2236
|
return /* @__PURE__ */ jsxs28(
|
|
1974
2237
|
AriaMenuItem,
|
|
1975
2238
|
{
|
|
@@ -1977,28 +2240,28 @@ function MenuItem({
|
|
|
1977
2240
|
"data-tone": tone === "danger" ? "danger" : void 0,
|
|
1978
2241
|
...rest,
|
|
1979
2242
|
children: [
|
|
1980
|
-
icon ? /* @__PURE__ */
|
|
2243
|
+
icon ? /* @__PURE__ */ jsx36(Icon, { name: icon, size: 16, className: "pire-menu-item-icon" }) : null,
|
|
1981
2244
|
/* @__PURE__ */ jsxs28("span", { className: "pire-menu-item-body", children: [
|
|
1982
|
-
/* @__PURE__ */
|
|
1983
|
-
description ? /* @__PURE__ */
|
|
2245
|
+
/* @__PURE__ */ jsx36("span", { className: "pire-menu-item-label", children }),
|
|
2246
|
+
description ? /* @__PURE__ */ jsx36("span", { className: "pire-menu-item-desc", children: description }) : null
|
|
1984
2247
|
] }),
|
|
1985
|
-
|
|
2248
|
+
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
|
|
1986
2249
|
]
|
|
1987
2250
|
}
|
|
1988
2251
|
);
|
|
1989
2252
|
}
|
|
1990
2253
|
function MenuSection({ title, children, className, ...rest }) {
|
|
1991
2254
|
return /* @__PURE__ */ jsxs28(AriaMenuSection, { className: cx("pire-menu-section", className), ...rest, children: [
|
|
1992
|
-
title ? /* @__PURE__ */
|
|
2255
|
+
title ? /* @__PURE__ */ jsx36(Header, { className: "pire-menu-section-title", children: title }) : null,
|
|
1993
2256
|
children
|
|
1994
2257
|
] });
|
|
1995
2258
|
}
|
|
1996
2259
|
function MenuSeparator({ className }) {
|
|
1997
|
-
return /* @__PURE__ */
|
|
2260
|
+
return /* @__PURE__ */ jsx36(AriaSeparator2, { className: cx("pire-menu-separator", className) });
|
|
1998
2261
|
}
|
|
1999
2262
|
|
|
2000
2263
|
// src/components/navigation/SideNav.tsx
|
|
2001
|
-
import { jsx as
|
|
2264
|
+
import { jsx as jsx37, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
2002
2265
|
function findActiveParent(groups, value) {
|
|
2003
2266
|
if (value == null) return void 0;
|
|
2004
2267
|
for (const group of groups) {
|
|
@@ -2048,7 +2311,7 @@ function SideNav({
|
|
|
2048
2311
|
const renderRow = (item, onPress, isGroup) => {
|
|
2049
2312
|
const selected = !isGroup && item.id === value;
|
|
2050
2313
|
const button = /* @__PURE__ */ jsxs29(
|
|
2051
|
-
|
|
2314
|
+
AriaButton11,
|
|
2052
2315
|
{
|
|
2053
2316
|
className: "pire-sidenav-item",
|
|
2054
2317
|
"data-selected": selected ? "true" : void 0,
|
|
@@ -2057,63 +2320,63 @@ function SideNav({
|
|
|
2057
2320
|
"aria-label": collapsed ? item.label : void 0,
|
|
2058
2321
|
onPress,
|
|
2059
2322
|
children: [
|
|
2060
|
-
item.icon ? /* @__PURE__ */
|
|
2061
|
-
collapsed ? null : /* @__PURE__ */
|
|
2062
|
-
item.count != null && !collapsed ? /* @__PURE__ */
|
|
2323
|
+
item.icon ? /* @__PURE__ */ jsx37(Icon, { name: item.icon, size: 16 }) : null,
|
|
2324
|
+
collapsed ? null : /* @__PURE__ */ jsx37("span", { children: item.label }),
|
|
2325
|
+
item.count != null && !collapsed ? /* @__PURE__ */ jsx37("span", { className: "pire-sidenav-count", children: item.count }) : null
|
|
2063
2326
|
]
|
|
2064
2327
|
},
|
|
2065
2328
|
item.id
|
|
2066
2329
|
);
|
|
2067
|
-
return collapsed ? /* @__PURE__ */
|
|
2330
|
+
return collapsed ? /* @__PURE__ */ jsx37(Tooltip, { label: item.label, placement: "right", children: button }, item.id) : button;
|
|
2068
2331
|
};
|
|
2069
|
-
const renderRailFlyout = (item) => /* @__PURE__ */ jsxs29(
|
|
2070
|
-
/* @__PURE__ */
|
|
2071
|
-
|
|
2332
|
+
const renderRailFlyout = (item) => /* @__PURE__ */ jsxs29(MenuTrigger2, { children: [
|
|
2333
|
+
/* @__PURE__ */ jsx37(
|
|
2334
|
+
AriaButton11,
|
|
2072
2335
|
{
|
|
2073
2336
|
className: "pire-sidenav-item",
|
|
2074
2337
|
"aria-label": item.label,
|
|
2075
2338
|
"data-active-child": item.id === activeParent ? "true" : void 0,
|
|
2076
|
-
children: item.icon ? /* @__PURE__ */
|
|
2339
|
+
children: item.icon ? /* @__PURE__ */ jsx37(Icon, { name: item.icon, size: 16 }) : null
|
|
2077
2340
|
}
|
|
2078
2341
|
),
|
|
2079
|
-
/* @__PURE__ */
|
|
2342
|
+
/* @__PURE__ */ jsx37(Popover7, { className: "pire-popover", placement: "right top", offset: 4, children: /* @__PURE__ */ jsx37(
|
|
2080
2343
|
Menu,
|
|
2081
2344
|
{
|
|
2082
2345
|
"aria-label": item.label,
|
|
2083
2346
|
className: "pire-sidenav-flyout",
|
|
2084
2347
|
onAction: (key) => onChange?.(String(key)),
|
|
2085
|
-
children: (item.items ?? []).map((child) => /* @__PURE__ */
|
|
2348
|
+
children: (item.items ?? []).map((child) => /* @__PURE__ */ jsx37(MenuItem, { id: child.id, children: child.label }, child.id))
|
|
2086
2349
|
}
|
|
2087
2350
|
) })
|
|
2088
2351
|
] }, item.id);
|
|
2089
2352
|
const renderSection = (item) => /* @__PURE__ */ jsxs29(Disclosure, { id: item.id, className: "pire-sidenav-section", children: [
|
|
2090
2353
|
/* @__PURE__ */ jsxs29(
|
|
2091
|
-
|
|
2354
|
+
AriaButton11,
|
|
2092
2355
|
{
|
|
2093
2356
|
slot: "trigger",
|
|
2094
2357
|
className: "pire-sidenav-item",
|
|
2095
2358
|
"data-kind": "group",
|
|
2096
2359
|
"data-active-child": item.id === activeParent ? "true" : void 0,
|
|
2097
2360
|
children: [
|
|
2098
|
-
item.icon ? /* @__PURE__ */
|
|
2099
|
-
/* @__PURE__ */
|
|
2100
|
-
item.count != null ? /* @__PURE__ */
|
|
2101
|
-
/* @__PURE__ */
|
|
2361
|
+
item.icon ? /* @__PURE__ */ jsx37(Icon, { name: item.icon, size: 16 }) : null,
|
|
2362
|
+
/* @__PURE__ */ jsx37("span", { children: item.label }),
|
|
2363
|
+
item.count != null ? /* @__PURE__ */ jsx37("span", { className: "pire-sidenav-count", children: item.count }) : null,
|
|
2364
|
+
/* @__PURE__ */ jsx37(Icon, { name: "chevron-down", size: 16, className: "pire-sidenav-chevron" })
|
|
2102
2365
|
]
|
|
2103
2366
|
}
|
|
2104
2367
|
),
|
|
2105
|
-
/* @__PURE__ */
|
|
2368
|
+
/* @__PURE__ */ jsx37(DisclosurePanel, { className: "pire-sidenav-subnav", children: item.items?.map((child) => {
|
|
2106
2369
|
const selected = child.id === value;
|
|
2107
2370
|
return /* @__PURE__ */ jsxs29(
|
|
2108
|
-
|
|
2371
|
+
AriaButton11,
|
|
2109
2372
|
{
|
|
2110
2373
|
className: "pire-sidenav-item pire-sidenav-subitem",
|
|
2111
2374
|
"data-selected": selected ? "true" : void 0,
|
|
2112
2375
|
"aria-current": selected ? "page" : void 0,
|
|
2113
2376
|
onPress: () => onChange?.(child.id),
|
|
2114
2377
|
children: [
|
|
2115
|
-
/* @__PURE__ */
|
|
2116
|
-
child.count != null ? /* @__PURE__ */
|
|
2378
|
+
/* @__PURE__ */ jsx37("span", { children: child.label }),
|
|
2379
|
+
child.count != null ? /* @__PURE__ */ jsx37("span", { className: "pire-sidenav-count", children: child.count }) : null
|
|
2117
2380
|
]
|
|
2118
2381
|
},
|
|
2119
2382
|
child.id
|
|
@@ -2137,8 +2400,8 @@ function SideNav({
|
|
|
2137
2400
|
return renderRow(item, () => isGroup ? toggleExpanded(item.id) : onChange?.(item.id), isGroup);
|
|
2138
2401
|
});
|
|
2139
2402
|
return /* @__PURE__ */ jsxs29("div", { className: "pire-sidenav-group", children: [
|
|
2140
|
-
group.label && !collapsed ? /* @__PURE__ */
|
|
2141
|
-
hasSections ? /* @__PURE__ */
|
|
2403
|
+
group.label && !collapsed ? /* @__PURE__ */ jsx37("div", { className: "pire-sidenav-label", children: group.label }) : null,
|
|
2404
|
+
hasSections ? /* @__PURE__ */ jsx37(
|
|
2142
2405
|
DisclosureGroup,
|
|
2143
2406
|
{
|
|
2144
2407
|
className: "pire-sidenav-tree",
|
|
@@ -2150,7 +2413,7 @@ function SideNav({
|
|
|
2150
2413
|
) : rows
|
|
2151
2414
|
] }, group.label ?? gi);
|
|
2152
2415
|
}),
|
|
2153
|
-
footer ? /* @__PURE__ */
|
|
2416
|
+
footer ? /* @__PURE__ */ jsx37("div", { className: "pire-sidenav-footer", children: footer }) : null
|
|
2154
2417
|
]
|
|
2155
2418
|
}
|
|
2156
2419
|
);
|
|
@@ -2158,7 +2421,7 @@ function SideNav({
|
|
|
2158
2421
|
|
|
2159
2422
|
// src/components/navigation/Tabs.tsx
|
|
2160
2423
|
import { Tabs as AriaTabs, TabList, Tab as AriaTab, TabPanel } from "react-aria-components";
|
|
2161
|
-
import { jsx as
|
|
2424
|
+
import { jsx as jsx38, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2162
2425
|
function Tabs({ items, value, defaultValue, onChange, panels, className, style, ...rest }) {
|
|
2163
2426
|
return /* @__PURE__ */ jsxs30(
|
|
2164
2427
|
AriaTabs,
|
|
@@ -2169,12 +2432,12 @@ function Tabs({ items, value, defaultValue, onChange, panels, className, style,
|
|
|
2169
2432
|
defaultSelectedKey: defaultValue,
|
|
2170
2433
|
onSelectionChange: (k) => onChange?.(String(k)),
|
|
2171
2434
|
children: [
|
|
2172
|
-
/* @__PURE__ */
|
|
2173
|
-
item.icon ? /* @__PURE__ */
|
|
2435
|
+
/* @__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: [
|
|
2436
|
+
item.icon ? /* @__PURE__ */ jsx38(Icon, { name: item.icon, size: 16 }) : null,
|
|
2174
2437
|
item.label,
|
|
2175
|
-
item.count != null ? /* @__PURE__ */
|
|
2438
|
+
item.count != null ? /* @__PURE__ */ jsx38("span", { className: "pire-tab-count", children: item.count }) : null
|
|
2176
2439
|
] }) }),
|
|
2177
|
-
items.map((item) => /* @__PURE__ */
|
|
2440
|
+
items.map((item) => /* @__PURE__ */ jsx38(TabPanel, { id: item.id, className: panels ? "pire-tabpanel" : void 0, children: panels?.[item.id] }, item.id))
|
|
2178
2441
|
]
|
|
2179
2442
|
}
|
|
2180
2443
|
);
|
|
@@ -2182,9 +2445,9 @@ function Tabs({ items, value, defaultValue, onChange, panels, className, style,
|
|
|
2182
2445
|
|
|
2183
2446
|
// src/components/navigation/Breadcrumb.tsx
|
|
2184
2447
|
import { Breadcrumbs as AriaBreadcrumbs, Breadcrumb as AriaBreadcrumb, Link as Link2 } from "react-aria-components";
|
|
2185
|
-
import { jsx as
|
|
2448
|
+
import { jsx as jsx39, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
2186
2449
|
function Breadcrumb({ items, onNavigate, className, style }) {
|
|
2187
|
-
return /* @__PURE__ */
|
|
2450
|
+
return /* @__PURE__ */ jsx39(
|
|
2188
2451
|
AriaBreadcrumbs,
|
|
2189
2452
|
{
|
|
2190
2453
|
className: cx("pire-breadcrumbs", className),
|
|
@@ -2194,8 +2457,8 @@ function Breadcrumb({ items, onNavigate, className, style }) {
|
|
|
2194
2457
|
children: (item) => {
|
|
2195
2458
|
const last = items[items.length - 1] === item;
|
|
2196
2459
|
return /* @__PURE__ */ jsxs31(AriaBreadcrumb, { className: "pire-breadcrumb", id: item.id ?? item.label, children: [
|
|
2197
|
-
last ? item.label : /* @__PURE__ */
|
|
2198
|
-
last ? null : /* @__PURE__ */
|
|
2460
|
+
last ? item.label : /* @__PURE__ */ jsx39(Link2, { href: item.href, children: item.label }),
|
|
2461
|
+
last ? null : /* @__PURE__ */ jsx39(Icon, { name: "chevron-right", size: 12, style: { color: "var(--text-tertiary)" } })
|
|
2199
2462
|
] });
|
|
2200
2463
|
}
|
|
2201
2464
|
}
|
|
@@ -2203,7 +2466,7 @@ function Breadcrumb({ items, onNavigate, className, style }) {
|
|
|
2203
2466
|
}
|
|
2204
2467
|
|
|
2205
2468
|
// src/components/navigation/Pagination.tsx
|
|
2206
|
-
import { jsx as
|
|
2469
|
+
import { jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
2207
2470
|
function Pagination({
|
|
2208
2471
|
page = 1,
|
|
2209
2472
|
pageSize = 25,
|
|
@@ -2219,8 +2482,8 @@ function Pagination({
|
|
|
2219
2482
|
const from = total === 0 ? 0 : (page - 1) * pageSize + 1;
|
|
2220
2483
|
const to = Math.min(total, page * pageSize);
|
|
2221
2484
|
return /* @__PURE__ */ jsxs32("nav", { className: cx("pire-pagination", className), style, "aria-label": msg.paginationLabel, children: [
|
|
2222
|
-
/* @__PURE__ */
|
|
2223
|
-
/* @__PURE__ */
|
|
2485
|
+
/* @__PURE__ */ jsx40("span", { className: "pire-pagination-count", children: msg.paginationRange.replace("{from}", from.toLocaleString()).replace("{to}", to.toLocaleString()).replace("{total}", total.toLocaleString()) }),
|
|
2486
|
+
/* @__PURE__ */ jsx40(
|
|
2224
2487
|
IconButton,
|
|
2225
2488
|
{
|
|
2226
2489
|
icon: "chevron-left",
|
|
@@ -2231,8 +2494,8 @@ function Pagination({
|
|
|
2231
2494
|
onPress: () => onPageChange?.(page - 1)
|
|
2232
2495
|
}
|
|
2233
2496
|
),
|
|
2234
|
-
/* @__PURE__ */
|
|
2235
|
-
/* @__PURE__ */
|
|
2497
|
+
/* @__PURE__ */ jsx40("span", { className: "pire-pagination-count", "aria-live": "polite", children: msg.paginationPageOf.replace("{page}", String(page)).replace("{pages}", String(pages)) }),
|
|
2498
|
+
/* @__PURE__ */ jsx40(
|
|
2236
2499
|
IconButton,
|
|
2237
2500
|
{
|
|
2238
2501
|
icon: "chevron-right",
|
|
@@ -2243,7 +2506,7 @@ function Pagination({
|
|
|
2243
2506
|
onPress: () => onPageChange?.(page + 1)
|
|
2244
2507
|
}
|
|
2245
2508
|
),
|
|
2246
|
-
onPageSizeChange ? /* @__PURE__ */
|
|
2509
|
+
onPageSizeChange ? /* @__PURE__ */ jsx40(
|
|
2247
2510
|
Select,
|
|
2248
2511
|
{
|
|
2249
2512
|
"aria-label": msg.paginationRowsPerPage,
|
|
@@ -2259,7 +2522,7 @@ function Pagination({
|
|
|
2259
2522
|
}
|
|
2260
2523
|
|
|
2261
2524
|
// src/components/feedback/InlineMessage.tsx
|
|
2262
|
-
import { jsx as
|
|
2525
|
+
import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
2263
2526
|
var KIND_ICON = {
|
|
2264
2527
|
info: "info",
|
|
2265
2528
|
success: "check-circle-2",
|
|
@@ -2278,13 +2541,13 @@ function InlineMessage({ kind = "info", title, action, onClose, children, classN
|
|
|
2278
2541
|
"aria-live": assertive ? "assertive" : "polite",
|
|
2279
2542
|
...rest,
|
|
2280
2543
|
children: [
|
|
2281
|
-
/* @__PURE__ */
|
|
2544
|
+
/* @__PURE__ */ jsx41(Icon, { name: KIND_ICON[kind], size: 16, style: { marginTop: 2 } }),
|
|
2282
2545
|
/* @__PURE__ */ jsxs33("div", { style: { flex: 1, display: "flex", flexDirection: "column", gap: "var(--sp-1)" }, children: [
|
|
2283
|
-
title ? /* @__PURE__ */
|
|
2284
|
-
children ? /* @__PURE__ */
|
|
2546
|
+
title ? /* @__PURE__ */ jsx41("span", { className: "pire-msg-title", children: title }) : null,
|
|
2547
|
+
children ? /* @__PURE__ */ jsx41("span", { className: "pire-msg-body", children }) : null,
|
|
2285
2548
|
action
|
|
2286
2549
|
] }),
|
|
2287
|
-
onClose ? /* @__PURE__ */
|
|
2550
|
+
onClose ? /* @__PURE__ */ jsx41(IconButton, { icon: "x", label: msg.inlineMessageDismiss, size: "sm", onPress: onClose }) : null
|
|
2288
2551
|
]
|
|
2289
2552
|
}
|
|
2290
2553
|
);
|
|
@@ -2292,7 +2555,7 @@ function InlineMessage({ kind = "info", title, action, onClose, children, classN
|
|
|
2292
2555
|
|
|
2293
2556
|
// src/components/feedback/Toast.tsx
|
|
2294
2557
|
import * as React12 from "react";
|
|
2295
|
-
import { jsx as
|
|
2558
|
+
import { jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
2296
2559
|
var KIND_ICON2 = {
|
|
2297
2560
|
info: "info",
|
|
2298
2561
|
success: "check-circle-2",
|
|
@@ -2310,9 +2573,9 @@ function Toast({ kind = "success", onClose, position = "bottom-center", children
|
|
|
2310
2573
|
"aria-live": kind === "error" ? "assertive" : "polite",
|
|
2311
2574
|
...rest,
|
|
2312
2575
|
children: [
|
|
2313
|
-
/* @__PURE__ */
|
|
2314
|
-
/* @__PURE__ */
|
|
2315
|
-
onClose ? /* @__PURE__ */
|
|
2576
|
+
/* @__PURE__ */ jsx42(Icon, { name: KIND_ICON2[kind], size: 16 }),
|
|
2577
|
+
/* @__PURE__ */ jsx42("span", { style: { flex: 1 }, children }),
|
|
2578
|
+
onClose ? /* @__PURE__ */ jsx42(IconButton, { icon: "x", label: msg.toastDismiss, size: "sm", variant: "inverse", onPress: onClose }) : null
|
|
2316
2579
|
]
|
|
2317
2580
|
}
|
|
2318
2581
|
);
|
|
@@ -2332,7 +2595,7 @@ function ToastProvider({ children, timeout = 6e3 }) {
|
|
|
2332
2595
|
const value = React12.useMemo(() => ({ add, close }), [add, close]);
|
|
2333
2596
|
return /* @__PURE__ */ jsxs34(ToastContext.Provider, { value, children: [
|
|
2334
2597
|
children,
|
|
2335
|
-
/* @__PURE__ */
|
|
2598
|
+
/* @__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)) })
|
|
2336
2599
|
] });
|
|
2337
2600
|
}
|
|
2338
2601
|
function useToast() {
|
|
@@ -2342,8 +2605,8 @@ function useToast() {
|
|
|
2342
2605
|
}
|
|
2343
2606
|
|
|
2344
2607
|
// src/components/data/KpiTile.tsx
|
|
2345
|
-
import { Button as
|
|
2346
|
-
import { Fragment as Fragment3, jsx as
|
|
2608
|
+
import { Button as AriaButton12 } from "react-aria-components";
|
|
2609
|
+
import { Fragment as Fragment3, jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
2347
2610
|
function KpiTile({
|
|
2348
2611
|
label,
|
|
2349
2612
|
value,
|
|
@@ -2361,48 +2624,48 @@ function KpiTile({
|
|
|
2361
2624
|
const tone = deltaTone ?? (deltaDirection === "down" ? "negative" : "positive");
|
|
2362
2625
|
const body = /* @__PURE__ */ jsxs35(Fragment3, { children: [
|
|
2363
2626
|
/* @__PURE__ */ jsxs35("span", { className: "pire-kpi-label", children: [
|
|
2364
|
-
icon ? /* @__PURE__ */
|
|
2627
|
+
icon ? /* @__PURE__ */ jsx43(Icon, { name: icon, size: 16 }) : null,
|
|
2365
2628
|
label
|
|
2366
2629
|
] }),
|
|
2367
2630
|
/* @__PURE__ */ jsxs35("span", { className: "pire-kpi-value", children: [
|
|
2368
2631
|
value,
|
|
2369
|
-
unit ? /* @__PURE__ */
|
|
2632
|
+
unit ? /* @__PURE__ */ jsx43("span", { className: "pire-kpi-unit", children: unit }) : null
|
|
2370
2633
|
] }),
|
|
2371
2634
|
delta ? /* @__PURE__ */ jsxs35("span", { className: "pire-kpi-delta", "data-tone": tone, children: [
|
|
2372
|
-
deltaDirection ? /* @__PURE__ */
|
|
2635
|
+
deltaDirection ? /* @__PURE__ */ jsx43(Icon, { name: deltaDirection === "up" ? "trending-up" : "trending-down", size: 12 }) : null,
|
|
2373
2636
|
delta
|
|
2374
2637
|
] }) : null,
|
|
2375
|
-
footnote ? /* @__PURE__ */
|
|
2638
|
+
footnote ? /* @__PURE__ */ jsx43("span", { className: "pire-kpi-foot", children: footnote }) : null
|
|
2376
2639
|
] });
|
|
2377
2640
|
const props = { className: cx("pire-kpi", className), "data-status": status, style };
|
|
2378
|
-
return onPress ? /* @__PURE__ */
|
|
2641
|
+
return onPress ? /* @__PURE__ */ jsx43(AriaButton12, { ...props, "data-pressable": "true", onPress, children: body }) : /* @__PURE__ */ jsx43("div", { ...props, children: body });
|
|
2379
2642
|
}
|
|
2380
2643
|
|
|
2381
2644
|
// src/components/data/ObjectHeader.tsx
|
|
2382
|
-
import { jsx as
|
|
2645
|
+
import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
2383
2646
|
function ObjectHeader({ title, subtitle, id, breadcrumb, badge, facts, actions, className, ...rest }) {
|
|
2384
2647
|
return /* @__PURE__ */ jsxs36("header", { className: cx("pire-objheader", className), ...rest, children: [
|
|
2385
2648
|
breadcrumb,
|
|
2386
2649
|
/* @__PURE__ */ jsxs36("div", { className: "pire-objheader-row", children: [
|
|
2387
2650
|
/* @__PURE__ */ jsxs36("div", { style: { minWidth: 0 }, children: [
|
|
2388
|
-
/* @__PURE__ */
|
|
2651
|
+
/* @__PURE__ */ jsx44("h1", { className: "pire-objheader-title", children: title }),
|
|
2389
2652
|
subtitle || id ? /* @__PURE__ */ jsxs36("div", { className: "pire-objheader-sub", children: [
|
|
2390
2653
|
subtitle,
|
|
2391
|
-
id ? /* @__PURE__ */
|
|
2654
|
+
id ? /* @__PURE__ */ jsx44("span", { className: "pire-objheader-id", children: id }) : null
|
|
2392
2655
|
] }) : null
|
|
2393
2656
|
] }),
|
|
2394
2657
|
badge,
|
|
2395
|
-
actions ? /* @__PURE__ */
|
|
2658
|
+
actions ? /* @__PURE__ */ jsx44("div", { className: "pire-objheader-actions", children: actions }) : null
|
|
2396
2659
|
] }),
|
|
2397
|
-
facts?.length ? /* @__PURE__ */
|
|
2398
|
-
/* @__PURE__ */
|
|
2399
|
-
/* @__PURE__ */
|
|
2660
|
+
facts?.length ? /* @__PURE__ */ jsx44("dl", { className: "pire-facts", style: { margin: 0 }, children: facts.map((fact) => /* @__PURE__ */ jsxs36("div", { children: [
|
|
2661
|
+
/* @__PURE__ */ jsx44("dt", { className: "pire-fact-label", children: fact.label }),
|
|
2662
|
+
/* @__PURE__ */ jsx44("dd", { className: "pire-fact-value", "data-numeric": fact.numeric ? "true" : void 0, style: { margin: 0 }, children: fact.value })
|
|
2400
2663
|
] }, fact.label)) }) : null
|
|
2401
2664
|
] });
|
|
2402
2665
|
}
|
|
2403
2666
|
|
|
2404
2667
|
// src/components/data/FilterBar.tsx
|
|
2405
|
-
import { jsx as
|
|
2668
|
+
import { jsx as jsx45, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
2406
2669
|
function FilterBar({
|
|
2407
2670
|
children,
|
|
2408
2671
|
activeFilters = [],
|
|
@@ -2422,21 +2685,21 @@ function FilterBar({
|
|
|
2422
2685
|
return /* @__PURE__ */ jsxs37("section", { className: cx("pire-filterbar", className), ...rest, "aria-label": label, children: [
|
|
2423
2686
|
/* @__PURE__ */ jsxs37("div", { className: "pire-filterbar-controls", children: [
|
|
2424
2687
|
children,
|
|
2425
|
-
onGo ? /* @__PURE__ */
|
|
2688
|
+
onGo ? /* @__PURE__ */ jsx45(Button, { variant: "primary", onPress: onGo, children: go }) : null
|
|
2426
2689
|
] }),
|
|
2427
2690
|
activeFilters.length || resultLabel || actions ? /* @__PURE__ */ jsxs37("div", { className: "pire-filterbar-foot", children: [
|
|
2428
|
-
activeFilters.map((filter) => /* @__PURE__ */
|
|
2429
|
-
activeFilters.length && onClear ? /* @__PURE__ */
|
|
2430
|
-
resultLabel ? /* @__PURE__ */
|
|
2431
|
-
actions ? /* @__PURE__ */
|
|
2691
|
+
activeFilters.map((filter) => /* @__PURE__ */ jsx45(Tag, { onRemove: onRemoveFilter ? () => onRemoveFilter(filter.id) : void 0, children: filter.label }, filter.id)),
|
|
2692
|
+
activeFilters.length && onClear ? /* @__PURE__ */ jsx45(Button, { variant: "tertiary", size: "sm", onPress: onClear, children: clearAll }) : null,
|
|
2693
|
+
resultLabel ? /* @__PURE__ */ jsx45("span", { className: "pire-filterbar-result", "aria-live": "polite", children: resultLabel }) : null,
|
|
2694
|
+
actions ? /* @__PURE__ */ jsx45("div", { className: "pire-filterbar-actions", children: actions }) : null
|
|
2432
2695
|
] }) : null
|
|
2433
2696
|
] });
|
|
2434
2697
|
}
|
|
2435
2698
|
|
|
2436
2699
|
// src/components/data/DescriptionList.tsx
|
|
2437
|
-
import { jsx as
|
|
2700
|
+
import { jsx as jsx46, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
2438
2701
|
function DescriptionList({ items, layout = "rows", columns = 3, className, style, ...rest }) {
|
|
2439
|
-
return /* @__PURE__ */
|
|
2702
|
+
return /* @__PURE__ */ jsx46(
|
|
2440
2703
|
"dl",
|
|
2441
2704
|
{
|
|
2442
2705
|
className: cx("pire-dl", className),
|
|
@@ -2448,20 +2711,20 @@ function DescriptionList({ items, layout = "rows", columns = 3, className, style
|
|
|
2448
2711
|
item.label,
|
|
2449
2712
|
item.hint
|
|
2450
2713
|
] }),
|
|
2451
|
-
/* @__PURE__ */
|
|
2714
|
+
/* @__PURE__ */ jsx46("dd", { className: "pire-dl-value", "data-numeric": item.numeric ? "true" : void 0, children: item.value })
|
|
2452
2715
|
] }, i))
|
|
2453
2716
|
}
|
|
2454
2717
|
);
|
|
2455
2718
|
}
|
|
2456
2719
|
|
|
2457
2720
|
// src/components/data/Timeline.tsx
|
|
2458
|
-
import { jsx as
|
|
2721
|
+
import { jsx as jsx47, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
2459
2722
|
function Timeline({ entries, reverse = false, className, ...rest }) {
|
|
2460
2723
|
const list = reverse ? [...entries].reverse() : entries;
|
|
2461
|
-
return /* @__PURE__ */
|
|
2462
|
-
/* @__PURE__ */
|
|
2463
|
-
/* @__PURE__ */
|
|
2464
|
-
entry.actor ? /* @__PURE__ */
|
|
2724
|
+
return /* @__PURE__ */ jsx47("ol", { className: cx("pire-timeline", className), ...rest, children: list.map((entry, i) => /* @__PURE__ */ jsxs39("li", { className: "pire-timeline-item", children: [
|
|
2725
|
+
/* @__PURE__ */ jsx47("span", { className: "pire-timeline-time", children: entry.time }),
|
|
2726
|
+
/* @__PURE__ */ jsx47("span", { className: "pire-timeline-text", children: entry.event }),
|
|
2727
|
+
entry.actor ? /* @__PURE__ */ jsx47("span", { className: "pire-timeline-actor", children: entry.actor }) : null
|
|
2465
2728
|
] }, entry.id ?? i)) });
|
|
2466
2729
|
}
|
|
2467
2730
|
|
|
@@ -2544,7 +2807,7 @@ function alignToCategories(series, categoryCount) {
|
|
|
2544
2807
|
}
|
|
2545
2808
|
|
|
2546
2809
|
// src/components/data/ChartFrame.tsx
|
|
2547
|
-
import { jsx as
|
|
2810
|
+
import { jsx as jsx48, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
2548
2811
|
function seriesLegend(series) {
|
|
2549
2812
|
return series.map((one, index) => ({
|
|
2550
2813
|
key: one.id,
|
|
@@ -2569,27 +2832,27 @@ function ChartFrame({
|
|
|
2569
2832
|
const msg = usePireMessages();
|
|
2570
2833
|
return /* @__PURE__ */ jsxs40("figure", { className: cx("pire-chart", className), style, children: [
|
|
2571
2834
|
title || description ? /* @__PURE__ */ jsxs40("figcaption", { className: "pire-chart-head", children: [
|
|
2572
|
-
title ? /* @__PURE__ */
|
|
2573
|
-
description ? /* @__PURE__ */
|
|
2835
|
+
title ? /* @__PURE__ */ jsx48("span", { className: "pire-chart-title", children: title }) : null,
|
|
2836
|
+
description ? /* @__PURE__ */ jsx48("span", { className: "pire-chart-desc", children: description }) : null
|
|
2574
2837
|
] }) : null,
|
|
2575
|
-
legend && legend.length > 1 ? /* @__PURE__ */
|
|
2576
|
-
/* @__PURE__ */
|
|
2838
|
+
legend && legend.length > 1 ? /* @__PURE__ */ jsx48("ul", { className: "pire-chart-legend", children: legend.map((item) => /* @__PURE__ */ jsxs40("li", { className: "pire-chart-legend-item", children: [
|
|
2839
|
+
/* @__PURE__ */ jsx48("span", { className: "pire-chart-swatch", style: { background: item.color } }),
|
|
2577
2840
|
item.label
|
|
2578
2841
|
] }, item.key)) }) : null,
|
|
2579
|
-
/* @__PURE__ */
|
|
2580
|
-
/* @__PURE__ */
|
|
2581
|
-
/* @__PURE__ */
|
|
2582
|
-
/* @__PURE__ */
|
|
2583
|
-
/* @__PURE__ */
|
|
2584
|
-
series.map((one) => /* @__PURE__ */
|
|
2842
|
+
/* @__PURE__ */ jsx48("div", { className: "pire-chart-plot", "aria-hidden": "true", children }),
|
|
2843
|
+
/* @__PURE__ */ jsx48("div", { className: showDataTable ? "pire-chart-table" : "pire-sr-only", children: /* @__PURE__ */ jsxs40("table", { children: [
|
|
2844
|
+
/* @__PURE__ */ jsx48("caption", { children: label }),
|
|
2845
|
+
/* @__PURE__ */ jsx48("thead", { children: /* @__PURE__ */ jsxs40("tr", { children: [
|
|
2846
|
+
/* @__PURE__ */ jsx48("th", { scope: "col", children: msg.chartCategoryHeader }),
|
|
2847
|
+
series.map((one) => /* @__PURE__ */ jsx48("th", { scope: "col", children: one.label }, one.id))
|
|
2585
2848
|
] }) }),
|
|
2586
|
-
/* @__PURE__ */
|
|
2849
|
+
/* @__PURE__ */ jsx48("tbody", { children: categories.map((category, categoryIndex) => (
|
|
2587
2850
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2588
2851
|
/* @__PURE__ */ jsxs40("tr", { children: [
|
|
2589
|
-
/* @__PURE__ */
|
|
2852
|
+
/* @__PURE__ */ jsx48("th", { scope: "row", children: category }),
|
|
2590
2853
|
series.map((one) => {
|
|
2591
2854
|
const value = one.values[categoryIndex];
|
|
2592
|
-
return /* @__PURE__ */
|
|
2855
|
+
return /* @__PURE__ */ jsx48("td", { children: value == null ? msg.chartNoValue : formatValue(value) }, one.id);
|
|
2593
2856
|
})
|
|
2594
2857
|
] }, categoryIndex)
|
|
2595
2858
|
)) })
|
|
@@ -2598,7 +2861,7 @@ function ChartFrame({
|
|
|
2598
2861
|
}
|
|
2599
2862
|
|
|
2600
2863
|
// src/components/data/BarChart.tsx
|
|
2601
|
-
import { jsx as
|
|
2864
|
+
import { jsx as jsx49, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
2602
2865
|
function BarChart({
|
|
2603
2866
|
categories,
|
|
2604
2867
|
series: rawSeries,
|
|
@@ -2630,7 +2893,7 @@ function BarChart({
|
|
|
2630
2893
|
const value = series[0].values[categoryIndex];
|
|
2631
2894
|
return value == null ? msg.chartNoValue : formatValue(value);
|
|
2632
2895
|
};
|
|
2633
|
-
return /* @__PURE__ */
|
|
2896
|
+
return /* @__PURE__ */ jsx49(
|
|
2634
2897
|
ChartFrame,
|
|
2635
2898
|
{
|
|
2636
2899
|
label,
|
|
@@ -2643,7 +2906,7 @@ function BarChart({
|
|
|
2643
2906
|
showDataTable,
|
|
2644
2907
|
className,
|
|
2645
2908
|
style,
|
|
2646
|
-
children: !hasData ? /* @__PURE__ */
|
|
2909
|
+
children: !hasData ? /* @__PURE__ */ jsx49("div", { className: "pire-chart-empty", children: emptyState ?? msg.chartEmpty }) : /* @__PURE__ */ jsx49(
|
|
2647
2910
|
"div",
|
|
2648
2911
|
{
|
|
2649
2912
|
className: "pire-chart-bars",
|
|
@@ -2653,8 +2916,8 @@ function BarChart({
|
|
|
2653
2916
|
children: categories.map((category, categoryIndex) => (
|
|
2654
2917
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2655
2918
|
/* @__PURE__ */ jsxs41("div", { className: "pire-chart-group", children: [
|
|
2656
|
-
/* @__PURE__ */
|
|
2657
|
-
/* @__PURE__ */
|
|
2919
|
+
/* @__PURE__ */ jsx49("span", { className: "pire-chart-cat", children: category }),
|
|
2920
|
+
/* @__PURE__ */ jsx49("div", { className: "pire-chart-track", children: series.map((one, seriesIndex) => {
|
|
2658
2921
|
const value = one.values[categoryIndex];
|
|
2659
2922
|
if (value == null) return null;
|
|
2660
2923
|
return /* @__PURE__ */ jsxs41(
|
|
@@ -2666,7 +2929,7 @@ function BarChart({
|
|
|
2666
2929
|
"--pire-bar-color": seriesColor(one, seriesIndex)
|
|
2667
2930
|
},
|
|
2668
2931
|
children: [
|
|
2669
|
-
withValues && orientation === "vertical" ? /* @__PURE__ */
|
|
2932
|
+
withValues && orientation === "vertical" ? /* @__PURE__ */ jsx49("span", { className: "pire-chart-barval", children: formatValue(value) }) : null,
|
|
2670
2933
|
/* @__PURE__ */ jsxs41("span", { className: "pire-chart-tip", role: "presentation", children: [
|
|
2671
2934
|
series.length > 1 ? `${one.label}: ` : "",
|
|
2672
2935
|
formatValue(value)
|
|
@@ -2676,7 +2939,7 @@ function BarChart({
|
|
|
2676
2939
|
one.id
|
|
2677
2940
|
);
|
|
2678
2941
|
}) }),
|
|
2679
|
-
withValues && orientation === "horizontal" ? /* @__PURE__ */
|
|
2942
|
+
withValues && orientation === "horizontal" ? /* @__PURE__ */ jsx49("span", { className: "pire-chart-val", children: horizontalLabelFor(categoryIndex) }) : null
|
|
2680
2943
|
] }, categoryIndex)
|
|
2681
2944
|
))
|
|
2682
2945
|
}
|
|
@@ -2687,7 +2950,7 @@ function BarChart({
|
|
|
2687
2950
|
|
|
2688
2951
|
// src/components/data/LineChart.tsx
|
|
2689
2952
|
import * as React13 from "react";
|
|
2690
|
-
import { jsx as
|
|
2953
|
+
import { jsx as jsx50, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
2691
2954
|
var PLOT_INSET = { top: 10, right: 14, bottom: 24, left: 58 };
|
|
2692
2955
|
var MARKER_LIMIT = 20;
|
|
2693
2956
|
var useIsomorphicLayoutEffect2 = typeof window === "undefined" ? React13.useEffect : React13.useLayoutEffect;
|
|
@@ -2754,7 +3017,7 @@ function LineChart({
|
|
|
2754
3017
|
return `M${xAt(present[0].index)} ${baseline} L${line} L${xAt(last.index)} ${baseline} Z`;
|
|
2755
3018
|
};
|
|
2756
3019
|
const labelEvery = Math.max(1, Math.ceil(categories.length / Math.max(2, Math.floor(innerWidth / 64))));
|
|
2757
|
-
return /* @__PURE__ */
|
|
3020
|
+
return /* @__PURE__ */ jsx50(
|
|
2758
3021
|
ChartFrame,
|
|
2759
3022
|
{
|
|
2760
3023
|
label,
|
|
@@ -2767,7 +3030,7 @@ function LineChart({
|
|
|
2767
3030
|
showDataTable,
|
|
2768
3031
|
className,
|
|
2769
3032
|
style,
|
|
2770
|
-
children: !hasData ? /* @__PURE__ */
|
|
3033
|
+
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: [
|
|
2771
3034
|
width > 0 ? /* @__PURE__ */ jsxs42(
|
|
2772
3035
|
"svg",
|
|
2773
3036
|
{
|
|
@@ -2777,7 +3040,7 @@ function LineChart({
|
|
|
2777
3040
|
"aria-hidden": "true",
|
|
2778
3041
|
focusable: "false",
|
|
2779
3042
|
children: [
|
|
2780
|
-
/* @__PURE__ */
|
|
3043
|
+
/* @__PURE__ */ jsx50("g", { className: "pire-chart-grid", children: scale.ticks.map((tick) => /* @__PURE__ */ jsx50(
|
|
2781
3044
|
"line",
|
|
2782
3045
|
{
|
|
2783
3046
|
x1: PLOT_INSET.left,
|
|
@@ -2788,7 +3051,7 @@ function LineChart({
|
|
|
2788
3051
|
tick
|
|
2789
3052
|
)) }),
|
|
2790
3053
|
/* @__PURE__ */ jsxs42("g", { className: "pire-chart-tick", children: [
|
|
2791
|
-
scale.ticks.map((tick) => /* @__PURE__ */
|
|
3054
|
+
scale.ticks.map((tick) => /* @__PURE__ */ jsx50(
|
|
2792
3055
|
"text",
|
|
2793
3056
|
{
|
|
2794
3057
|
x: PLOT_INSET.left - 8,
|
|
@@ -2801,10 +3064,10 @@ function LineChart({
|
|
|
2801
3064
|
)),
|
|
2802
3065
|
categories.map((category, index) => index % labelEvery === 0 ? (
|
|
2803
3066
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2804
|
-
/* @__PURE__ */
|
|
3067
|
+
/* @__PURE__ */ jsx50("text", { x: xAt(index), y: height - 6, textAnchor: "middle", children: category }, index)
|
|
2805
3068
|
) : null)
|
|
2806
3069
|
] }),
|
|
2807
|
-
showArea && series[0] ? /* @__PURE__ */
|
|
3070
|
+
showArea && series[0] ? /* @__PURE__ */ jsx50(
|
|
2808
3071
|
"path",
|
|
2809
3072
|
{
|
|
2810
3073
|
d: areaFor(series[0].values),
|
|
@@ -2812,10 +3075,10 @@ function LineChart({
|
|
|
2812
3075
|
style: { fill: seriesColor(series[0], 0) }
|
|
2813
3076
|
}
|
|
2814
3077
|
) : null,
|
|
2815
|
-
/* @__PURE__ */
|
|
2816
|
-
withMarkers ? /* @__PURE__ */
|
|
3078
|
+
/* @__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)) }),
|
|
3079
|
+
withMarkers ? /* @__PURE__ */ jsx50("g", { className: "pire-chart-marker", children: series.map((one, seriesIndex) => one.values.map((value, index) => value == null ? null : (
|
|
2817
3080
|
// biome-ignore lint/suspicious/noArrayIndexKey: a series is positional — the index is the point's identity, and category labels repeat.
|
|
2818
|
-
/* @__PURE__ */
|
|
3081
|
+
/* @__PURE__ */ jsx50(
|
|
2819
3082
|
"circle",
|
|
2820
3083
|
{
|
|
2821
3084
|
cx: xAt(index),
|
|
@@ -2829,15 +3092,15 @@ function LineChart({
|
|
|
2829
3092
|
]
|
|
2830
3093
|
}
|
|
2831
3094
|
) : null,
|
|
2832
|
-
/* @__PURE__ */
|
|
3095
|
+
/* @__PURE__ */ jsx50(
|
|
2833
3096
|
"div",
|
|
2834
3097
|
{
|
|
2835
3098
|
className: "pire-chart-hover",
|
|
2836
3099
|
style: { inset: `${PLOT_INSET.top}px ${PLOT_INSET.right}px ${PLOT_INSET.bottom}px ${PLOT_INSET.left}px` },
|
|
2837
3100
|
children: categories.map((category, categoryIndex) => (
|
|
2838
3101
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2839
|
-
/* @__PURE__ */
|
|
2840
|
-
/* @__PURE__ */
|
|
3102
|
+
/* @__PURE__ */ jsx50("div", { className: "pire-chart-band", children: /* @__PURE__ */ jsxs42("span", { className: "pire-chart-tip", role: "presentation", children: [
|
|
3103
|
+
/* @__PURE__ */ jsx50("strong", { children: category }),
|
|
2841
3104
|
series.map((one) => {
|
|
2842
3105
|
const value = one.values[categoryIndex];
|
|
2843
3106
|
return /* @__PURE__ */ jsxs42("span", { className: "pire-chart-tip-row", children: [
|
|
@@ -2857,7 +3120,7 @@ function LineChart({
|
|
|
2857
3120
|
|
|
2858
3121
|
// src/components/data/DonutChart.tsx
|
|
2859
3122
|
import * as React14 from "react";
|
|
2860
|
-
import { jsx as
|
|
3123
|
+
import { jsx as jsx51, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
2861
3124
|
var SEGMENT_GAP_DEGREES = 1.5;
|
|
2862
3125
|
function DonutChart({
|
|
2863
3126
|
categories,
|
|
@@ -2894,7 +3157,7 @@ function DonutChart({
|
|
|
2894
3157
|
}));
|
|
2895
3158
|
const hovered = hoveredIndex == null ? null : segments.find((segment) => segment.index === hoveredIndex) ?? null;
|
|
2896
3159
|
let arcStart = 0;
|
|
2897
|
-
return /* @__PURE__ */
|
|
3160
|
+
return /* @__PURE__ */ jsx51(
|
|
2898
3161
|
ChartFrame,
|
|
2899
3162
|
{
|
|
2900
3163
|
label,
|
|
@@ -2907,8 +3170,8 @@ function DonutChart({
|
|
|
2907
3170
|
showDataTable,
|
|
2908
3171
|
className,
|
|
2909
3172
|
style,
|
|
2910
|
-
children: !hasData ? /* @__PURE__ */
|
|
2911
|
-
/* @__PURE__ */
|
|
3173
|
+
children: !hasData ? /* @__PURE__ */ jsx51("div", { className: "pire-chart-empty", children: emptyState ?? msg.chartEmpty }) : /* @__PURE__ */ jsxs43("div", { className: "pire-chart-donut", style: { height: size }, children: [
|
|
3174
|
+
/* @__PURE__ */ jsx51(
|
|
2912
3175
|
"svg",
|
|
2913
3176
|
{
|
|
2914
3177
|
width: size,
|
|
@@ -2916,13 +3179,13 @@ function DonutChart({
|
|
|
2916
3179
|
"aria-hidden": "true",
|
|
2917
3180
|
focusable: "false",
|
|
2918
3181
|
onMouseLeave: () => setHoveredIndex(null),
|
|
2919
|
-
children: /* @__PURE__ */
|
|
3182
|
+
children: /* @__PURE__ */ jsx51("g", { transform: `rotate(-90 ${size / 2} ${size / 2})`, children: segments.map((segment) => {
|
|
2920
3183
|
const arcLength = segment.value / total * circumference;
|
|
2921
3184
|
const offset = arcStart;
|
|
2922
3185
|
arcStart += arcLength;
|
|
2923
3186
|
return (
|
|
2924
3187
|
// 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.
|
|
2925
|
-
/* @__PURE__ */
|
|
3188
|
+
/* @__PURE__ */ jsx51(
|
|
2926
3189
|
"circle",
|
|
2927
3190
|
{
|
|
2928
3191
|
className: "pire-chart-arc",
|
|
@@ -2943,8 +3206,8 @@ function DonutChart({
|
|
|
2943
3206
|
}
|
|
2944
3207
|
),
|
|
2945
3208
|
/* @__PURE__ */ jsxs43("div", { className: "pire-chart-donut-center", style: { width: size - thickness * 2 - 8 }, children: [
|
|
2946
|
-
/* @__PURE__ */
|
|
2947
|
-
/* @__PURE__ */
|
|
3209
|
+
/* @__PURE__ */ jsx51("span", { className: "pire-chart-donut-value", children: hovered ? formatValue(hovered.value) : centerLabel ?? formatValue(total) }),
|
|
3210
|
+
/* @__PURE__ */ jsx51("span", { className: "pire-chart-donut-caption", children: hovered ? hovered.category : centerCaption })
|
|
2948
3211
|
] })
|
|
2949
3212
|
] })
|
|
2950
3213
|
}
|
|
@@ -2955,19 +3218,24 @@ function colorForSegment(index) {
|
|
|
2955
3218
|
}
|
|
2956
3219
|
|
|
2957
3220
|
// src/components/data/LinkList.tsx
|
|
2958
|
-
import { Button as
|
|
2959
|
-
import { jsx as
|
|
2960
|
-
function LinkList({ items, onSelect, className, ...rest }) {
|
|
2961
|
-
return /* @__PURE__ */
|
|
2962
|
-
item.
|
|
2963
|
-
item.
|
|
2964
|
-
|
|
2965
|
-
item.
|
|
2966
|
-
|
|
3221
|
+
import { Button as AriaButton13 } from "react-aria-components";
|
|
3222
|
+
import { jsx as jsx52, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
3223
|
+
function LinkList({ items, onSelect, emphasis = "key", className, ...rest }) {
|
|
3224
|
+
return /* @__PURE__ */ jsx52("div", { className: cx("pire-linklist", className), role: "list", "data-emphasis": emphasis, ...rest, children: items.map((item) => {
|
|
3225
|
+
const keySlot = item.key ? /* @__PURE__ */ jsx52("span", { className: "pire-linklist-key", children: item.key }) : null;
|
|
3226
|
+
const textSlot = item.text ? /* @__PURE__ */ jsx52("span", { className: "pire-linklist-text", children: item.text }) : null;
|
|
3227
|
+
const [first, second] = emphasis === "text" ? [textSlot, keySlot] : [keySlot, textSlot];
|
|
3228
|
+
return /* @__PURE__ */ jsx52("div", { role: "listitem", className: "pire-linklist-row", children: /* @__PURE__ */ jsxs44(AriaButton13, { className: "pire-linklist-item", onPress: () => onSelect?.(item.id), children: [
|
|
3229
|
+
item.icon ? /* @__PURE__ */ jsx52(Icon, { name: item.icon, size: 16, style: { color: "var(--text-secondary)" } }) : null,
|
|
3230
|
+
first,
|
|
3231
|
+
second,
|
|
3232
|
+
item.trailing
|
|
3233
|
+
] }) }, item.id);
|
|
3234
|
+
}) });
|
|
2967
3235
|
}
|
|
2968
3236
|
|
|
2969
3237
|
// src/components/layout/PageBand.tsx
|
|
2970
|
-
import { jsx as
|
|
3238
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
2971
3239
|
function PageBand({
|
|
2972
3240
|
surface = "card",
|
|
2973
3241
|
hasBorder = true,
|
|
@@ -2975,7 +3243,7 @@ function PageBand({
|
|
|
2975
3243
|
className,
|
|
2976
3244
|
...rest
|
|
2977
3245
|
}) {
|
|
2978
|
-
return /* @__PURE__ */
|
|
3246
|
+
return /* @__PURE__ */ jsx53(
|
|
2979
3247
|
"div",
|
|
2980
3248
|
{
|
|
2981
3249
|
className: cx("pire-pageband", className),
|
|
@@ -2988,29 +3256,29 @@ function PageBand({
|
|
|
2988
3256
|
}
|
|
2989
3257
|
|
|
2990
3258
|
// src/components/layout/PageHeader.tsx
|
|
2991
|
-
import { jsx as
|
|
3259
|
+
import { jsx as jsx54, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
2992
3260
|
function PageHeader({ title, subtitle, actions, className, ...rest }) {
|
|
2993
3261
|
return /* @__PURE__ */ jsxs45("header", { className: cx("pire-pageheader", className), ...rest, children: [
|
|
2994
3262
|
/* @__PURE__ */ jsxs45("div", { style: { minWidth: 0 }, children: [
|
|
2995
|
-
/* @__PURE__ */
|
|
2996
|
-
subtitle ? /* @__PURE__ */
|
|
3263
|
+
/* @__PURE__ */ jsx54("h1", { className: "pire-pageheader-title", children: title }),
|
|
3264
|
+
subtitle ? /* @__PURE__ */ jsx54("p", { className: "pire-pageheader-sub", children: subtitle }) : null
|
|
2997
3265
|
] }),
|
|
2998
|
-
actions ? /* @__PURE__ */
|
|
3266
|
+
actions ? /* @__PURE__ */ jsx54("div", { className: "pire-pageheader-actions", children: actions }) : null
|
|
2999
3267
|
] });
|
|
3000
3268
|
}
|
|
3001
3269
|
|
|
3002
3270
|
// src/components/layout/SectionHeader.tsx
|
|
3003
|
-
import { jsx as
|
|
3271
|
+
import { jsx as jsx55, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
3004
3272
|
function SectionHeader({ title, meta, actions, className, ...rest }) {
|
|
3005
3273
|
return /* @__PURE__ */ jsxs46("div", { className: cx("pire-sectionhead", className), ...rest, children: [
|
|
3006
|
-
/* @__PURE__ */
|
|
3007
|
-
meta ? /* @__PURE__ */
|
|
3008
|
-
actions ? /* @__PURE__ */
|
|
3274
|
+
/* @__PURE__ */ jsx55("span", { className: "pire-eyebrow", children: title }),
|
|
3275
|
+
meta ? /* @__PURE__ */ jsx55("span", { style: { font: "var(--type-caption)", color: "var(--text-tertiary)" }, children: meta }) : null,
|
|
3276
|
+
actions ? /* @__PURE__ */ jsx55("div", { className: "pire-sectionhead-actions", children: actions }) : null
|
|
3009
3277
|
] });
|
|
3010
3278
|
}
|
|
3011
3279
|
|
|
3012
3280
|
// src/components/layout/SelectionBar.tsx
|
|
3013
|
-
import { jsx as
|
|
3281
|
+
import { jsx as jsx56, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
3014
3282
|
function SelectionBar({ count, noun = "record", children, actions, className, ...rest }) {
|
|
3015
3283
|
if (!count) return null;
|
|
3016
3284
|
return /* @__PURE__ */ jsxs47("div", { className: cx("pire-selectionbar", className), role: "status", "aria-live": "polite", ...rest, children: [
|
|
@@ -3021,23 +3289,23 @@ function SelectionBar({ count, noun = "record", children, actions, className, ..
|
|
|
3021
3289
|
count === 1 ? "" : "s",
|
|
3022
3290
|
" selected"
|
|
3023
3291
|
] }),
|
|
3024
|
-
children ? /* @__PURE__ */
|
|
3025
|
-
actions ? /* @__PURE__ */
|
|
3292
|
+
children ? /* @__PURE__ */ jsx56("span", { style: { color: "var(--text-secondary)", font: "var(--type-caption)" }, children }) : null,
|
|
3293
|
+
actions ? /* @__PURE__ */ jsx56("div", { className: "pire-selectionbar-actions", children: actions }) : null
|
|
3026
3294
|
] });
|
|
3027
3295
|
}
|
|
3028
3296
|
|
|
3029
3297
|
// src/components/layout/FooterBar.tsx
|
|
3030
|
-
import { jsx as
|
|
3298
|
+
import { jsx as jsx57, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
3031
3299
|
function FooterBar({ note, actions, children, className, ...rest }) {
|
|
3032
3300
|
return /* @__PURE__ */ jsxs48("footer", { className: cx("pire-footerbar", className), ...rest, children: [
|
|
3033
|
-
note ? /* @__PURE__ */
|
|
3301
|
+
note ? /* @__PURE__ */ jsx57("span", { className: "pire-footerbar-note", children: note }) : null,
|
|
3034
3302
|
children,
|
|
3035
|
-
actions ? /* @__PURE__ */
|
|
3303
|
+
actions ? /* @__PURE__ */ jsx57("div", { className: "pire-footerbar-actions", children: actions }) : null
|
|
3036
3304
|
] });
|
|
3037
3305
|
}
|
|
3038
3306
|
|
|
3039
3307
|
// src/components/patterns/ConfirmDialog.tsx
|
|
3040
|
-
import { Fragment as Fragment4, jsx as
|
|
3308
|
+
import { Fragment as Fragment4, jsx as jsx58, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
3041
3309
|
function ConfirmDialog({
|
|
3042
3310
|
isOpen,
|
|
3043
3311
|
title,
|
|
@@ -3062,24 +3330,167 @@ function ConfirmDialog({
|
|
|
3062
3330
|
isDismissable: !isBusy,
|
|
3063
3331
|
showClose: false,
|
|
3064
3332
|
footer: /* @__PURE__ */ jsxs49(Fragment4, { children: [
|
|
3065
|
-
/* @__PURE__ */
|
|
3066
|
-
/* @__PURE__ */
|
|
3333
|
+
/* @__PURE__ */ jsx58(Button, { variant: "tertiary", isDisabled: isBusy, onPress: onCancel, children: cancelLabel }),
|
|
3334
|
+
/* @__PURE__ */ jsx58(Button, { variant: tone === "danger" ? "danger" : "primary", isDisabled: isBusy, onPress: onConfirm, children: isBusy ? "Working\u2026" : confirmLabel })
|
|
3067
3335
|
] }),
|
|
3068
3336
|
children: [
|
|
3069
|
-
consequence ? /* @__PURE__ */
|
|
3337
|
+
consequence ? /* @__PURE__ */ jsx58(InlineMessage, { kind: tone === "danger" ? "error" : "warning", style: { marginBottom: children ? "var(--sp-3)" : 0 }, children: consequence }) : null,
|
|
3070
3338
|
children
|
|
3071
3339
|
]
|
|
3072
3340
|
}
|
|
3073
3341
|
);
|
|
3074
3342
|
}
|
|
3075
3343
|
|
|
3344
|
+
// src/components/patterns/CommandPalette.tsx
|
|
3345
|
+
import * as React15 from "react";
|
|
3346
|
+
import {
|
|
3347
|
+
Autocomplete,
|
|
3348
|
+
ModalOverlay as ModalOverlay2,
|
|
3349
|
+
Modal as Modal2,
|
|
3350
|
+
Dialog as AriaDialog4,
|
|
3351
|
+
SearchField,
|
|
3352
|
+
Input as AriaInput5,
|
|
3353
|
+
Menu as AriaMenu2,
|
|
3354
|
+
MenuSection as AriaMenuSection2,
|
|
3355
|
+
Header as Header2,
|
|
3356
|
+
useFilter
|
|
3357
|
+
} from "react-aria-components";
|
|
3358
|
+
import { Fragment as Fragment5, jsx as jsx59, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
3359
|
+
var RESULTS_SECTION_KEY = "__pire_results__";
|
|
3360
|
+
var searchableText = (item) => [item.label, item.description, item.keywords].filter(Boolean).join(" ");
|
|
3361
|
+
function CommandPalette({
|
|
3362
|
+
isOpen,
|
|
3363
|
+
onOpenChange,
|
|
3364
|
+
groups = [],
|
|
3365
|
+
resultsGroup,
|
|
3366
|
+
onAction,
|
|
3367
|
+
onSearch,
|
|
3368
|
+
isLoading,
|
|
3369
|
+
emptyLabel,
|
|
3370
|
+
loadingLabel,
|
|
3371
|
+
placeholder,
|
|
3372
|
+
footer,
|
|
3373
|
+
showFooter = true,
|
|
3374
|
+
"aria-label": ariaLabel,
|
|
3375
|
+
className,
|
|
3376
|
+
style
|
|
3377
|
+
}) {
|
|
3378
|
+
const msg = usePireMessages();
|
|
3379
|
+
const [query, setQuery] = React15.useState("");
|
|
3380
|
+
const { contains } = useFilter({ sensitivity: "base" });
|
|
3381
|
+
React15.useEffect(() => {
|
|
3382
|
+
if (isOpen) setQuery("");
|
|
3383
|
+
}, [isOpen]);
|
|
3384
|
+
const searchableById = React15.useMemo(() => {
|
|
3385
|
+
const byId = /* @__PURE__ */ new Map();
|
|
3386
|
+
for (const group of groups) for (const item of group.items) byId.set(item.id, searchableText(item));
|
|
3387
|
+
return byId;
|
|
3388
|
+
}, [groups]);
|
|
3389
|
+
const filter = React15.useCallback((textValue, inputValue, node) => {
|
|
3390
|
+
if (node.parentKey === RESULTS_SECTION_KEY) return true;
|
|
3391
|
+
return contains(searchableById.get(String(node.key)) ?? textValue, inputValue);
|
|
3392
|
+
}, [contains, searchableById]);
|
|
3393
|
+
const handleInputChange = (value) => {
|
|
3394
|
+
setQuery(value);
|
|
3395
|
+
onSearch?.(value);
|
|
3396
|
+
};
|
|
3397
|
+
const sections = [...groups, ...resultsGroup ? [{ ...resultsGroup, id: RESULTS_SECTION_KEY }] : []];
|
|
3398
|
+
const status = isLoading ? loadingLabel ?? msg.commandPaletteLoading : emptyLabel ?? msg.commandPaletteEmpty;
|
|
3399
|
+
return /* @__PURE__ */ jsx59(
|
|
3400
|
+
ModalOverlay2,
|
|
3401
|
+
{
|
|
3402
|
+
className: "pire-cp-overlay",
|
|
3403
|
+
isOpen,
|
|
3404
|
+
isDismissable: true,
|
|
3405
|
+
onOpenChange: (open) => {
|
|
3406
|
+
if (!open) onOpenChange?.(false);
|
|
3407
|
+
},
|
|
3408
|
+
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: [
|
|
3409
|
+
/* @__PURE__ */ jsxs50(Autocomplete, { filter, inputValue: query, onInputChange: handleInputChange, children: [
|
|
3410
|
+
/* @__PURE__ */ jsxs50(SearchField, { className: "pire-cp-search", "aria-label": msg.commandPaletteSearchLabel, children: [
|
|
3411
|
+
/* @__PURE__ */ jsx59(Icon, { name: "search", size: 18, className: "pire-cp-search-icon" }),
|
|
3412
|
+
/* @__PURE__ */ jsx59(
|
|
3413
|
+
AriaInput5,
|
|
3414
|
+
{
|
|
3415
|
+
className: "pire-cp-input",
|
|
3416
|
+
autoFocus: true,
|
|
3417
|
+
placeholder: placeholder ?? msg.commandPalettePlaceholder
|
|
3418
|
+
}
|
|
3419
|
+
)
|
|
3420
|
+
] }),
|
|
3421
|
+
isLoading ? /* @__PURE__ */ jsx59("div", { className: "pire-cp-loading", role: "status", "aria-live": "polite", children: loadingLabel ?? msg.commandPaletteLoading }) : null,
|
|
3422
|
+
/* @__PURE__ */ jsx59(
|
|
3423
|
+
AriaMenu2,
|
|
3424
|
+
{
|
|
3425
|
+
className: "pire-cp-list",
|
|
3426
|
+
onAction: (key) => onAction?.(String(key)),
|
|
3427
|
+
renderEmptyState: () => /* @__PURE__ */ jsx59("div", { className: "pire-cp-status", children: status }),
|
|
3428
|
+
children: sections.map((section) => /* @__PURE__ */ jsxs50(AriaMenuSection2, { id: section.id, className: "pire-cp-section", children: [
|
|
3429
|
+
section.label ? /* @__PURE__ */ jsx59(Header2, { className: "pire-cp-section-title", children: section.label }) : null,
|
|
3430
|
+
section.items.map((item) => /* @__PURE__ */ jsx59(
|
|
3431
|
+
MenuItem,
|
|
3432
|
+
{
|
|
3433
|
+
id: item.id,
|
|
3434
|
+
textValue: item.label,
|
|
3435
|
+
icon: item.icon,
|
|
3436
|
+
description: item.description,
|
|
3437
|
+
shortcut: item.shortcut,
|
|
3438
|
+
isDisabled: item.isDisabled,
|
|
3439
|
+
children: item.label
|
|
3440
|
+
},
|
|
3441
|
+
item.id
|
|
3442
|
+
))
|
|
3443
|
+
] }, section.id))
|
|
3444
|
+
}
|
|
3445
|
+
)
|
|
3446
|
+
] }),
|
|
3447
|
+
showFooter ? (
|
|
3448
|
+
// aria-hidden: the glyphs are a sighted affordance for discovering the keys. A screen
|
|
3449
|
+
// reader already announces the listbox semantics that make those keys work, so reading
|
|
3450
|
+
// "up arrow down arrow navigate" out loud is noise on every open.
|
|
3451
|
+
/* @__PURE__ */ jsx59("div", { className: "pire-cp-foot", "aria-hidden": "true", children: footer ?? /* @__PURE__ */ jsxs50(Fragment5, { children: [
|
|
3452
|
+
/* @__PURE__ */ jsxs50("span", { className: "pire-cp-hint", children: [
|
|
3453
|
+
/* @__PURE__ */ jsx59(Kbd, { children: "\u2191" }),
|
|
3454
|
+
/* @__PURE__ */ jsx59(Kbd, { children: "\u2193" }),
|
|
3455
|
+
msg.commandPaletteHintNavigate
|
|
3456
|
+
] }),
|
|
3457
|
+
/* @__PURE__ */ jsxs50("span", { className: "pire-cp-hint", children: [
|
|
3458
|
+
/* @__PURE__ */ jsx59(Kbd, { children: "\u21B5" }),
|
|
3459
|
+
msg.commandPaletteHintSelect
|
|
3460
|
+
] }),
|
|
3461
|
+
/* @__PURE__ */ jsxs50("span", { className: "pire-cp-hint", children: [
|
|
3462
|
+
/* @__PURE__ */ jsx59(Kbd, { children: "esc" }),
|
|
3463
|
+
msg.commandPaletteHintClose
|
|
3464
|
+
] })
|
|
3465
|
+
] }) })
|
|
3466
|
+
) : null
|
|
3467
|
+
] }) })
|
|
3468
|
+
}
|
|
3469
|
+
);
|
|
3470
|
+
}
|
|
3471
|
+
function useCommandPaletteShortcut(onTrigger, { key = "k", isDisabled } = {}) {
|
|
3472
|
+
const handler = React15.useRef(onTrigger);
|
|
3473
|
+
handler.current = onTrigger;
|
|
3474
|
+
React15.useEffect(() => {
|
|
3475
|
+
if (isDisabled) return;
|
|
3476
|
+
const onKeyDown = (event) => {
|
|
3477
|
+
if (!(event.metaKey || event.ctrlKey) || event.altKey) return;
|
|
3478
|
+
if (event.key.toLowerCase() !== key.toLowerCase()) return;
|
|
3479
|
+
event.preventDefault();
|
|
3480
|
+
handler.current();
|
|
3481
|
+
};
|
|
3482
|
+
document.addEventListener("keydown", onKeyDown);
|
|
3483
|
+
return () => document.removeEventListener("keydown", onKeyDown);
|
|
3484
|
+
}, [key, isDisabled]);
|
|
3485
|
+
}
|
|
3486
|
+
|
|
3076
3487
|
// src/components/patterns/SidePanel.tsx
|
|
3077
|
-
import { ModalOverlay as
|
|
3078
|
-
import { jsx as
|
|
3488
|
+
import { ModalOverlay as ModalOverlay3, Modal as Modal3, Dialog as AriaDialog5, Heading as Heading5 } from "react-aria-components";
|
|
3489
|
+
import { jsx as jsx60, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
3079
3490
|
function SidePanel({ isOpen, title, subtitle, width = 400, children, footer, onClose, className }) {
|
|
3080
3491
|
const msg = usePireMessages();
|
|
3081
|
-
return /* @__PURE__ */
|
|
3082
|
-
|
|
3492
|
+
return /* @__PURE__ */ jsx60(
|
|
3493
|
+
ModalOverlay3,
|
|
3083
3494
|
{
|
|
3084
3495
|
className: "pire-sidepanel-overlay",
|
|
3085
3496
|
isOpen,
|
|
@@ -3087,36 +3498,36 @@ function SidePanel({ isOpen, title, subtitle, width = 400, children, footer, onC
|
|
|
3087
3498
|
onOpenChange: (o) => {
|
|
3088
3499
|
if (!o) onClose?.();
|
|
3089
3500
|
},
|
|
3090
|
-
children: /* @__PURE__ */
|
|
3091
|
-
/* @__PURE__ */
|
|
3092
|
-
/* @__PURE__ */
|
|
3093
|
-
/* @__PURE__ */
|
|
3094
|
-
subtitle ? /* @__PURE__ */
|
|
3501
|
+
children: /* @__PURE__ */ jsx60(Modal3, { className: cx("pire-sidepanel", className), style: { width }, children: /* @__PURE__ */ jsxs51(AriaDialog5, { className: "pire-dialog", style: { height: "100%" }, children: [
|
|
3502
|
+
/* @__PURE__ */ jsxs51("header", { className: "pire-dialog-head", children: [
|
|
3503
|
+
/* @__PURE__ */ jsxs51("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
3504
|
+
/* @__PURE__ */ jsx60(Heading5, { slot: "title", className: "pire-dialog-title", children: title }),
|
|
3505
|
+
subtitle ? /* @__PURE__ */ jsx60("p", { className: "pire-dialog-sub", style: { margin: 0 }, children: subtitle }) : null
|
|
3095
3506
|
] }),
|
|
3096
|
-
/* @__PURE__ */
|
|
3507
|
+
/* @__PURE__ */ jsx60(IconButton, { icon: "x", label: msg.sidePanelClose, size: "sm", onPress: onClose })
|
|
3097
3508
|
] }),
|
|
3098
|
-
/* @__PURE__ */
|
|
3099
|
-
footer ? /* @__PURE__ */
|
|
3509
|
+
/* @__PURE__ */ jsx60("div", { className: "pire-dialog-body", style: { flex: 1 }, children }),
|
|
3510
|
+
footer ? /* @__PURE__ */ jsx60("footer", { className: "pire-dialog-foot", children: footer }) : null
|
|
3100
3511
|
] }) })
|
|
3101
3512
|
}
|
|
3102
3513
|
);
|
|
3103
3514
|
}
|
|
3104
3515
|
|
|
3105
3516
|
// src/components/patterns/EmptyState.tsx
|
|
3106
|
-
import { jsx as
|
|
3517
|
+
import { jsx as jsx61, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
3107
3518
|
function EmptyState({ icon = "file-text", title, action, compact, children, className, ...rest }) {
|
|
3108
|
-
return /* @__PURE__ */
|
|
3109
|
-
/* @__PURE__ */
|
|
3110
|
-
title ? /* @__PURE__ */
|
|
3111
|
-
children ? /* @__PURE__ */
|
|
3519
|
+
return /* @__PURE__ */ jsxs52("div", { className: cx("pire-empty", className), "data-compact": compact ? "true" : void 0, ...rest, children: [
|
|
3520
|
+
/* @__PURE__ */ jsx61(Icon, { name: icon, size: 24, className: "pire-empty-icon" }),
|
|
3521
|
+
title ? /* @__PURE__ */ jsx61("p", { className: "pire-empty-title", style: { margin: 0 }, children: title }) : null,
|
|
3522
|
+
children ? /* @__PURE__ */ jsx61("p", { className: "pire-empty-body", style: { margin: 0 }, children }) : null,
|
|
3112
3523
|
action
|
|
3113
3524
|
] });
|
|
3114
3525
|
}
|
|
3115
3526
|
|
|
3116
3527
|
// src/components/patterns/FileDropZone.tsx
|
|
3117
|
-
import * as
|
|
3528
|
+
import * as React16 from "react";
|
|
3118
3529
|
import { DropZone, FileTrigger as FileTrigger2, isFileDropItem } from "react-aria-components";
|
|
3119
|
-
import { jsx as
|
|
3530
|
+
import { jsx as jsx62, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
3120
3531
|
var isImage2 = (file) => file.type.startsWith("image/");
|
|
3121
3532
|
function FileDropZone({
|
|
3122
3533
|
label,
|
|
@@ -3142,10 +3553,10 @@ function FileDropZone({
|
|
|
3142
3553
|
style
|
|
3143
3554
|
}) {
|
|
3144
3555
|
const msg = usePireMessages();
|
|
3145
|
-
const [uncontrolled, setUncontrolled] =
|
|
3556
|
+
const [uncontrolled, setUncontrolled] = React16.useState(defaultValue ?? []);
|
|
3146
3557
|
const files = value ?? uncontrolled;
|
|
3147
|
-
const created =
|
|
3148
|
-
|
|
3558
|
+
const created = React16.useRef([]);
|
|
3559
|
+
React16.useEffect(() => () => {
|
|
3149
3560
|
for (const url of created.current) URL.revokeObjectURL(url);
|
|
3150
3561
|
}, []);
|
|
3151
3562
|
const commit = (next) => {
|
|
@@ -3165,12 +3576,12 @@ function FileDropZone({
|
|
|
3165
3576
|
commit(allowsMultiple ? [...files, ...wrapped] : wrapped.slice(0, 1));
|
|
3166
3577
|
};
|
|
3167
3578
|
const remove = (target) => commit(files.filter((f) => f.file !== target));
|
|
3168
|
-
return /* @__PURE__ */
|
|
3169
|
-
label ? /* @__PURE__ */
|
|
3579
|
+
return /* @__PURE__ */ jsxs53("div", { className: cx("pire-field", className), style, "data-full-width": String(fullWidth), children: [
|
|
3580
|
+
label ? /* @__PURE__ */ jsxs53("span", { className: "pire-field-label", children: [
|
|
3170
3581
|
label,
|
|
3171
|
-
isRequired ? /* @__PURE__ */
|
|
3582
|
+
isRequired ? /* @__PURE__ */ jsx62("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
3172
3583
|
] }) : null,
|
|
3173
|
-
/* @__PURE__ */
|
|
3584
|
+
/* @__PURE__ */ jsxs53(
|
|
3174
3585
|
DropZone,
|
|
3175
3586
|
{
|
|
3176
3587
|
className: "pire-dropzone",
|
|
@@ -3183,25 +3594,25 @@ function FileDropZone({
|
|
|
3183
3594
|
accept(dropped);
|
|
3184
3595
|
},
|
|
3185
3596
|
children: [
|
|
3186
|
-
/* @__PURE__ */
|
|
3187
|
-
/* @__PURE__ */
|
|
3188
|
-
/* @__PURE__ */
|
|
3597
|
+
/* @__PURE__ */ jsx62(Icon, { name: "download", size: 24, className: "pire-dropzone-icon" }),
|
|
3598
|
+
/* @__PURE__ */ jsx62("span", { className: "pire-dropzone-prompt", children: promptLabel ?? msg.fileDropZonePrompt }),
|
|
3599
|
+
/* @__PURE__ */ jsx62(
|
|
3189
3600
|
FileTrigger2,
|
|
3190
3601
|
{
|
|
3191
3602
|
acceptedFileTypes,
|
|
3192
3603
|
allowsMultiple,
|
|
3193
3604
|
onSelect: (list) => accept(list ? [...list] : []),
|
|
3194
|
-
children: /* @__PURE__ */
|
|
3605
|
+
children: /* @__PURE__ */ jsx62(Button, { variant: "secondary", isDisabled: isDisabled || isReadOnly, children: msg.fileUploadChoose })
|
|
3195
3606
|
}
|
|
3196
3607
|
)
|
|
3197
3608
|
]
|
|
3198
3609
|
}
|
|
3199
3610
|
),
|
|
3200
|
-
files.length ? /* @__PURE__ */
|
|
3201
|
-
previewUrl ? /* @__PURE__ */
|
|
3202
|
-
/* @__PURE__ */
|
|
3203
|
-
/* @__PURE__ */
|
|
3204
|
-
isDisabled || isReadOnly ? null : /* @__PURE__ */
|
|
3611
|
+
files.length ? /* @__PURE__ */ jsx62("ul", { className: "pire-fileupload-list", children: files.map(({ file, previewUrl }) => /* @__PURE__ */ jsxs53("li", { className: "pire-fileupload-item", children: [
|
|
3612
|
+
previewUrl ? /* @__PURE__ */ jsx62("img", { className: "pire-fileupload-thumb", src: previewUrl, alt: "" }) : /* @__PURE__ */ jsx62(Icon, { name: "file-text", size: 16, className: "pire-fileupload-icon" }),
|
|
3613
|
+
/* @__PURE__ */ jsx62("span", { className: "pire-fileupload-name", children: file.name }),
|
|
3614
|
+
/* @__PURE__ */ jsx62("span", { className: "pire-fileupload-size", children: formatFileSize(file.size) }),
|
|
3615
|
+
isDisabled || isReadOnly ? null : /* @__PURE__ */ jsx62(
|
|
3205
3616
|
IconButton,
|
|
3206
3617
|
{
|
|
3207
3618
|
icon: "x",
|
|
@@ -3211,14 +3622,14 @@ function FileDropZone({
|
|
|
3211
3622
|
}
|
|
3212
3623
|
)
|
|
3213
3624
|
] }, `${file.name}-${file.size}-${file.lastModified}`)) }) : null,
|
|
3214
|
-
uploadProgress != null ? /* @__PURE__ */
|
|
3215
|
-
description ? /* @__PURE__ */
|
|
3216
|
-
isInvalid && errorMessage ? /* @__PURE__ */
|
|
3625
|
+
uploadProgress != null ? /* @__PURE__ */ jsx62(ProgressBar, { value: uploadProgress, label: msg.fileUploadUploading }) : null,
|
|
3626
|
+
description ? /* @__PURE__ */ jsx62("span", { className: "pire-field-hint", children: description }) : null,
|
|
3627
|
+
isInvalid && errorMessage ? /* @__PURE__ */ jsx62("span", { className: "pire-field-error", children: errorMessage }) : null
|
|
3217
3628
|
] });
|
|
3218
3629
|
}
|
|
3219
3630
|
|
|
3220
3631
|
// src/index.ts
|
|
3221
|
-
import { DialogTrigger, MenuTrigger as
|
|
3632
|
+
import { DialogTrigger, MenuTrigger as MenuTrigger3, SubmenuTrigger, Popover as Popover8, RouterProvider, I18nProvider } from "react-aria-components";
|
|
3222
3633
|
export {
|
|
3223
3634
|
Avatar,
|
|
3224
3635
|
Badge,
|
|
@@ -3228,6 +3639,7 @@ export {
|
|
|
3228
3639
|
Card,
|
|
3229
3640
|
Checkbox,
|
|
3230
3641
|
ComboBox,
|
|
3642
|
+
CommandPalette,
|
|
3231
3643
|
ConfirmDialog,
|
|
3232
3644
|
DataTable,
|
|
3233
3645
|
DatePicker,
|
|
@@ -3244,10 +3656,12 @@ export {
|
|
|
3244
3656
|
FormField,
|
|
3245
3657
|
Heading,
|
|
3246
3658
|
I18nProvider,
|
|
3659
|
+
ICON_NAMES,
|
|
3247
3660
|
Icon,
|
|
3248
3661
|
IconButton,
|
|
3249
3662
|
InlineMessage,
|
|
3250
3663
|
Input,
|
|
3664
|
+
Kbd,
|
|
3251
3665
|
KpiTile,
|
|
3252
3666
|
LineChart,
|
|
3253
3667
|
Link,
|
|
@@ -3256,7 +3670,7 @@ export {
|
|
|
3256
3670
|
MenuItem,
|
|
3257
3671
|
MenuSection,
|
|
3258
3672
|
MenuSeparator,
|
|
3259
|
-
|
|
3673
|
+
MenuTrigger3 as MenuTrigger,
|
|
3260
3674
|
MultiComboBox,
|
|
3261
3675
|
NumberField,
|
|
3262
3676
|
ObjectHeader,
|
|
@@ -3264,7 +3678,7 @@ export {
|
|
|
3264
3678
|
PageHeader,
|
|
3265
3679
|
Pagination,
|
|
3266
3680
|
PireIntlProvider,
|
|
3267
|
-
|
|
3681
|
+
Popover8 as Popover,
|
|
3268
3682
|
ProgressBar,
|
|
3269
3683
|
Radio,
|
|
3270
3684
|
RadioGroup,
|
|
@@ -3298,6 +3712,7 @@ export {
|
|
|
3298
3712
|
esMessages,
|
|
3299
3713
|
formatFileSize,
|
|
3300
3714
|
rangeLengthInDays,
|
|
3715
|
+
useCommandPaletteShortcut,
|
|
3301
3716
|
usePireMessages,
|
|
3302
3717
|
useToast
|
|
3303
3718
|
};
|