@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.cjs
CHANGED
|
@@ -38,13 +38,14 @@ __export(src_exports, {
|
|
|
38
38
|
Card: () => Card,
|
|
39
39
|
Checkbox: () => Checkbox,
|
|
40
40
|
ComboBox: () => ComboBox,
|
|
41
|
+
CommandPalette: () => CommandPalette,
|
|
41
42
|
ConfirmDialog: () => ConfirmDialog,
|
|
42
43
|
DataTable: () => DataTable,
|
|
43
44
|
DatePicker: () => DatePicker,
|
|
44
45
|
DateRangePicker: () => DateRangePicker,
|
|
45
46
|
DescriptionList: () => DescriptionList,
|
|
46
47
|
Dialog: () => Dialog,
|
|
47
|
-
DialogTrigger: () =>
|
|
48
|
+
DialogTrigger: () => import_react_aria_components34.DialogTrigger,
|
|
48
49
|
DonutChart: () => DonutChart,
|
|
49
50
|
EmptyState: () => EmptyState,
|
|
50
51
|
FileDropZone: () => FileDropZone,
|
|
@@ -53,11 +54,13 @@ __export(src_exports, {
|
|
|
53
54
|
FooterBar: () => FooterBar,
|
|
54
55
|
FormField: () => FormField,
|
|
55
56
|
Heading: () => Heading,
|
|
56
|
-
I18nProvider: () =>
|
|
57
|
+
I18nProvider: () => import_react_aria_components34.I18nProvider,
|
|
58
|
+
ICON_NAMES: () => ICON_NAMES,
|
|
57
59
|
Icon: () => Icon,
|
|
58
60
|
IconButton: () => IconButton,
|
|
59
61
|
InlineMessage: () => InlineMessage,
|
|
60
62
|
Input: () => Input,
|
|
63
|
+
Kbd: () => Kbd,
|
|
61
64
|
KpiTile: () => KpiTile,
|
|
62
65
|
LineChart: () => LineChart,
|
|
63
66
|
Link: () => Link,
|
|
@@ -66,7 +69,7 @@ __export(src_exports, {
|
|
|
66
69
|
MenuItem: () => MenuItem,
|
|
67
70
|
MenuSection: () => MenuSection,
|
|
68
71
|
MenuSeparator: () => MenuSeparator,
|
|
69
|
-
MenuTrigger: () =>
|
|
72
|
+
MenuTrigger: () => import_react_aria_components34.MenuTrigger,
|
|
70
73
|
MultiComboBox: () => MultiComboBox,
|
|
71
74
|
NumberField: () => NumberField,
|
|
72
75
|
ObjectHeader: () => ObjectHeader,
|
|
@@ -74,11 +77,11 @@ __export(src_exports, {
|
|
|
74
77
|
PageHeader: () => PageHeader,
|
|
75
78
|
Pagination: () => Pagination,
|
|
76
79
|
PireIntlProvider: () => PireIntlProvider,
|
|
77
|
-
Popover: () =>
|
|
80
|
+
Popover: () => import_react_aria_components34.Popover,
|
|
78
81
|
ProgressBar: () => ProgressBar,
|
|
79
82
|
Radio: () => Radio,
|
|
80
83
|
RadioGroup: () => RadioGroup,
|
|
81
|
-
RouterProvider: () =>
|
|
84
|
+
RouterProvider: () => import_react_aria_components34.RouterProvider,
|
|
82
85
|
SectionHeader: () => SectionHeader,
|
|
83
86
|
SegmentedControl: () => SegmentedControl,
|
|
84
87
|
Select: () => Select,
|
|
@@ -90,7 +93,7 @@ __export(src_exports, {
|
|
|
90
93
|
Skeleton: () => Skeleton,
|
|
91
94
|
SkeletonTableRow: () => SkeletonTableRow,
|
|
92
95
|
Strong: () => Strong,
|
|
93
|
-
SubmenuTrigger: () =>
|
|
96
|
+
SubmenuTrigger: () => import_react_aria_components34.SubmenuTrigger,
|
|
94
97
|
Switch: () => Switch,
|
|
95
98
|
Tabs: () => Tabs,
|
|
96
99
|
Tag: () => Tag,
|
|
@@ -108,6 +111,7 @@ __export(src_exports, {
|
|
|
108
111
|
esMessages: () => esMessages,
|
|
109
112
|
formatFileSize: () => formatFileSize,
|
|
110
113
|
rangeLengthInDays: () => rangeLengthInDays,
|
|
114
|
+
useCommandPaletteShortcut: () => useCommandPaletteShortcut,
|
|
111
115
|
usePireMessages: () => usePireMessages,
|
|
112
116
|
useToast: () => useToast
|
|
113
117
|
});
|
|
@@ -117,16 +121,30 @@ module.exports = __toCommonJS(src_exports);
|
|
|
117
121
|
var ICON_MARKUP = {
|
|
118
122
|
"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"/>',
|
|
119
123
|
"apps": '<path d="M8,4V8H4V4Zm2-2H2v8h8Zm8,2V8H14V4Zm2-2H12v8h8Zm8,2V8H24V4Zm2-2H22v8h8ZM8,14v4H4V14Zm2-2H2v8h8Zm8,2v4H14V14Zm2-2H12v8h8Zm8,2v4H24V14Zm2-2H22v8h8ZM8,24v4H4V24Zm2-2H2v8h8Zm8,2v4H14V24Zm2-2H12v8h8Zm8,2v4H24V24Zm2-2H22v8h8Z"/>',
|
|
124
|
+
"archive": '<path d="M14 19H18V21H14z"/><path d="M6,2V28a2,2,0,0,0,2,2H24a2,2,0,0,0,2-2V2ZM24,28H8V16H24Zm0-14H8V10H24ZM8,8V4H24V8Z"/>',
|
|
120
125
|
"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"/>',
|
|
126
|
+
"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"/>',
|
|
121
127
|
"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"/>',
|
|
122
128
|
"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"/>',
|
|
123
129
|
"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"/>',
|
|
130
|
+
"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"/>',
|
|
124
131
|
"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"/>',
|
|
132
|
+
"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"/>',
|
|
133
|
+
"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"/>',
|
|
134
|
+
"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"/>',
|
|
135
|
+
"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"/>',
|
|
125
136
|
"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"/>',
|
|
126
137
|
"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"/>',
|
|
127
138
|
"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"/>',
|
|
128
139
|
"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"/>',
|
|
129
140
|
"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"/>',
|
|
141
|
+
"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>',
|
|
142
|
+
"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"/>',
|
|
143
|
+
"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"/>',
|
|
144
|
+
"chart--bar": '<path d="M4,2H2V28a2,2,0,0,0,2,2H30V28H4V25H26V17H4V13H18V5H4ZM24,19v4H4V19ZM16,7v4H4V7Z"/>',
|
|
145
|
+
"chart--column": '<path d="M27,28V6H19V28H15V14H7V28H4V2H2V28a2,2,0,0,0,2,2H30V28ZM13,28H9V16h4Zm12,0H21V8h4Z"/>',
|
|
146
|
+
"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"/>',
|
|
147
|
+
"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"/>',
|
|
130
148
|
"checkmark": '<path d="M13 24 4 15 5.414 13.586 13 21.171 26.586 7.586 28 9 13 24z"/>',
|
|
131
149
|
"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"/>',
|
|
132
150
|
"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"/>',
|
|
@@ -134,48 +152,109 @@ var ICON_MARKUP = {
|
|
|
134
152
|
"chevron--left": '<path d="M10 16 20 6 21.4 7.4 12.8 16 21.4 24.6 20 26z"/>',
|
|
135
153
|
"chevron--right": '<path d="M22 16 12 26 10.6 24.6 19.2 16 10.6 7.4 12 6z"/>',
|
|
136
154
|
"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"/>',
|
|
155
|
+
"chevron--up": '<path d="M16 10 26 20 24.6 21.4 16 12.8 7.4 21.4 6 20z"/>',
|
|
137
156
|
"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"/>',
|
|
138
157
|
"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"/>',
|
|
158
|
+
"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"/>',
|
|
159
|
+
"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"/>',
|
|
139
160
|
"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"/>',
|
|
140
161
|
"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"/>',
|
|
162
|
+
"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"/>',
|
|
163
|
+
"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"/>',
|
|
164
|
+
"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"/>',
|
|
165
|
+
"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"/>',
|
|
166
|
+
"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"/>',
|
|
167
|
+
"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)"/>',
|
|
141
168
|
"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"/>',
|
|
142
169
|
"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"/>',
|
|
170
|
+
"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"/>',
|
|
143
171
|
"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"/>',
|
|
144
172
|
"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"/>',
|
|
173
|
+
"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"/>',
|
|
145
174
|
"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"/>',
|
|
175
|
+
"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"/>',
|
|
146
176
|
"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"/>',
|
|
177
|
+
"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"/>',
|
|
147
178
|
"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"/>',
|
|
179
|
+
"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"/>',
|
|
180
|
+
"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"/>',
|
|
181
|
+
"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"/>',
|
|
182
|
+
"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"/>',
|
|
148
183
|
"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"/>',
|
|
149
184
|
"hashtag": '<path d="M28,12V10H22V4H20v6H12V4H10v6H4v2h6v8H4v2h6v6h2V22h8v6h2V22h6V20H22V12Zm-8,8H12V12h8Z"/>',
|
|
150
185
|
"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"/>',
|
|
151
186
|
"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"/>',
|
|
187
|
+
"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"/>',
|
|
188
|
+
"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"/>',
|
|
152
189
|
"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"/>',
|
|
190
|
+
"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"/>',
|
|
191
|
+
"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"/>',
|
|
153
192
|
"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"/>',
|
|
154
193
|
"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"/>',
|
|
194
|
+
"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"/>',
|
|
155
195
|
"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"/>',
|
|
156
196
|
"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"/>',
|
|
157
197
|
"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"/>',
|
|
158
198
|
"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"/>',
|
|
199
|
+
"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"/>',
|
|
159
200
|
"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"/>',
|
|
201
|
+
"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"/>',
|
|
202
|
+
"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"/>',
|
|
203
|
+
"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"/>',
|
|
160
204
|
"menu": '<path d="M4 6H28V8H4z"/><path d="M4 24H28V26H4z"/><path d="M4 12H28V14H4z"/><path d="M4 18H28V20H4z"/>',
|
|
161
205
|
"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"/>',
|
|
162
206
|
"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"/>',
|
|
207
|
+
"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"/>',
|
|
208
|
+
"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"/>',
|
|
163
209
|
"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"/>',
|
|
210
|
+
"overflow-menu--horizontal": '<circle cx="8" cy="16" r="2"/><circle cx="16" cy="16" r="2"/><circle cx="24" cy="16" r="2"/>',
|
|
164
211
|
"overflow-menu--vertical": '<circle cx="16" cy="8" r="2"/><circle cx="16" cy="16" r="2"/><circle cx="16" cy="24" r="2"/>',
|
|
212
|
+
"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"/>',
|
|
213
|
+
"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"/>',
|
|
214
|
+
"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"/>',
|
|
215
|
+
"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"/>',
|
|
216
|
+
"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"/>',
|
|
217
|
+
"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"/>',
|
|
165
218
|
"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"/>',
|
|
219
|
+
"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"/>',
|
|
166
220
|
"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"/>',
|
|
221
|
+
"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"/>',
|
|
167
222
|
"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"/>',
|
|
223
|
+
"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"/>',
|
|
168
224
|
"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"/>',
|
|
225
|
+
"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"/>',
|
|
226
|
+
"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"/>',
|
|
227
|
+
"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"/>',
|
|
228
|
+
"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"/>',
|
|
229
|
+
"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"/>',
|
|
230
|
+
"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"/>',
|
|
231
|
+
"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"/>',
|
|
169
232
|
"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"/>',
|
|
233
|
+
"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"/>',
|
|
170
234
|
"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"/>',
|
|
171
235
|
"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"/>',
|
|
236
|
+
"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"/>',
|
|
172
237
|
"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"/>',
|
|
238
|
+
"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"/>',
|
|
239
|
+
"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"/>',
|
|
240
|
+
"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"/>',
|
|
241
|
+
"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"/>',
|
|
173
242
|
"subtract": '<path d="M8 15H24V17H8z"/>',
|
|
243
|
+
"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"/>',
|
|
244
|
+
"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"/>',
|
|
245
|
+
"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"/>',
|
|
246
|
+
"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"/>',
|
|
174
247
|
"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"/>',
|
|
175
248
|
"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"/>',
|
|
176
249
|
"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"/>',
|
|
250
|
+
"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"/>',
|
|
177
251
|
"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"/>',
|
|
252
|
+
"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"/>',
|
|
253
|
+
"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"/>',
|
|
254
|
+
"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"/>',
|
|
255
|
+
"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"/>',
|
|
178
256
|
"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"/>',
|
|
257
|
+
"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"/>',
|
|
179
258
|
"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"/>',
|
|
180
259
|
"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"/>'
|
|
181
260
|
};
|
|
@@ -248,8 +327,96 @@ var CARBON_MAP = {
|
|
|
248
327
|
"pencil": "edit",
|
|
249
328
|
"lock": "locked",
|
|
250
329
|
"eye": "view",
|
|
251
|
-
"minimize-2": "minimize"
|
|
330
|
+
"minimize-2": "minimize",
|
|
331
|
+
/* --- Direction and chrome, completing the sets above --------------------
|
|
332
|
+
`chevron-up` and `arrow-left` were missing while their three siblings shipped, so a collapsible
|
|
333
|
+
that pointed down had nothing to point back up with. */
|
|
334
|
+
"chevron-up": "chevron--up",
|
|
335
|
+
"arrow-left": "arrow--left",
|
|
336
|
+
"more-horizontal": "overflow-menu--horizontal",
|
|
337
|
+
"maximize-2": "maximize",
|
|
338
|
+
"log-out": "logout",
|
|
339
|
+
"log-in": "login",
|
|
340
|
+
"archive": "archive",
|
|
341
|
+
"folder": "folder",
|
|
342
|
+
"book": "book",
|
|
343
|
+
"notebook": "notebook",
|
|
344
|
+
"asterisk": "asterisk",
|
|
345
|
+
"bookmark": "bookmark",
|
|
346
|
+
"star": "star",
|
|
347
|
+
"star-filled": "star--filled",
|
|
348
|
+
"tag": "tag",
|
|
349
|
+
"repeat": "repeat",
|
|
350
|
+
"undo-2": "undo",
|
|
351
|
+
"redo-2": "redo",
|
|
352
|
+
"rotate-ccw": "reset",
|
|
353
|
+
"table": "table--split",
|
|
354
|
+
"database": "data--base",
|
|
355
|
+
"function-square": "function",
|
|
356
|
+
/* --- Money -------------------------------------------------------------
|
|
357
|
+
`credit-card` is here because its absence shipped: it resolved to nothing, rendered an empty
|
|
358
|
+
box, and reached production on the payment notifications. Carbon spells it `payment--methods`,
|
|
359
|
+
which is exactly the kind of mismatch this map exists to absorb. */
|
|
360
|
+
"credit-card": "payment--methods",
|
|
361
|
+
"wallet": "wallet",
|
|
362
|
+
"banknote": "money",
|
|
363
|
+
"coins": "currency",
|
|
364
|
+
"dollar-sign": "currency--dollar",
|
|
365
|
+
"euro": "currency--euro",
|
|
366
|
+
"receipt": "receipt",
|
|
367
|
+
"percent": "percentage",
|
|
368
|
+
"piggy-bank": "piggy-bank",
|
|
369
|
+
"landmark": "bank--vault",
|
|
370
|
+
"scale": "scales",
|
|
371
|
+
"purchase": "purchase",
|
|
372
|
+
/* --- Documents and ERP objects ----------------------------------------- */
|
|
373
|
+
"file-signature": "request-quote",
|
|
374
|
+
"scroll-text": "license",
|
|
375
|
+
"file-plus": "document--add",
|
|
376
|
+
"save": "save",
|
|
377
|
+
"file-bar-chart": "report",
|
|
378
|
+
"list-todo": "task",
|
|
379
|
+
"check-square": "task--complete",
|
|
380
|
+
"gavel": "rule",
|
|
381
|
+
"id-card": "identification",
|
|
382
|
+
"briefcase": "portfolio",
|
|
383
|
+
"handshake": "partnership",
|
|
384
|
+
"lightbulb": "idea",
|
|
385
|
+
"inventory": "inventory-management",
|
|
386
|
+
"package-2": "delivery--parcel",
|
|
387
|
+
"shopping-bag": "shopping--bag",
|
|
388
|
+
"barcode": "barcode",
|
|
389
|
+
"qr-code": "qr-code",
|
|
390
|
+
"git-branch": "flow",
|
|
391
|
+
"bug": "debug",
|
|
392
|
+
/* --- People and contact ------------------------------------------------- */
|
|
393
|
+
"users": "user--multiple",
|
|
394
|
+
"user-plus": "user--follow",
|
|
395
|
+
"user-cog": "user--admin",
|
|
396
|
+
"user-circle": "user--profile",
|
|
397
|
+
"mail": "email",
|
|
398
|
+
"phone": "phone",
|
|
399
|
+
"send": "send",
|
|
400
|
+
"globe": "globe",
|
|
401
|
+
"building": "location--company",
|
|
402
|
+
/* --- Charts and time ---------------------------------------------------- */
|
|
403
|
+
"bar-chart-3": "chart--column",
|
|
404
|
+
"bar-chart-horizontal": "chart--bar",
|
|
405
|
+
"line-chart": "chart--line",
|
|
406
|
+
"pie-chart": "chart--pie",
|
|
407
|
+
"area-chart": "chart--area",
|
|
408
|
+
"calendar-days": "events",
|
|
409
|
+
"calendar-plus": "calendar--add",
|
|
410
|
+
"calendar-heatmap": "calendar--heat-map",
|
|
411
|
+
/* --- Transfer ----------------------------------------------------------- */
|
|
412
|
+
"cloud-upload": "cloud--upload",
|
|
413
|
+
"cloud-download": "cloud--download",
|
|
414
|
+
"filter-x": "filter--edit",
|
|
415
|
+
"arrow-up-narrow-wide": "sort--ascending",
|
|
416
|
+
"arrow-down-wide-narrow": "sort--descending",
|
|
417
|
+
"badge-info": "information--square"
|
|
252
418
|
};
|
|
419
|
+
var ICON_NAMES = Object.freeze(Object.keys(CARBON_MAP).sort());
|
|
253
420
|
|
|
254
421
|
// src/components/core/Icon.tsx
|
|
255
422
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -302,7 +469,14 @@ function Icon({ name, size = 16, label, pack, style, ...rest }) {
|
|
|
302
469
|
"data-icon": name,
|
|
303
470
|
...rest,
|
|
304
471
|
style: { display: "inline-block", flex: "0 0 auto", width: size, height: size, ...style },
|
|
305
|
-
children: markup === void 0 ?
|
|
472
|
+
children: markup === void 0 ? (
|
|
473
|
+
// A broken icon has to look broken. In development the box gets a dashed outline so the
|
|
474
|
+
// gap is visible on screen instead of only in a console warning that is easy to lose in a
|
|
475
|
+
// busy log — which is how a missing `credit-card` reached production as a blank square.
|
|
476
|
+
// Production still renders nothing at all: a dev diagnostic must never become a user's
|
|
477
|
+
// first sight of a defect. Deliberately not an <svg>, so nothing reads it as a real glyph.
|
|
478
|
+
IS_DEV ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "pire-icon-missing", title: `Unknown icon: ${name}` }) : null
|
|
479
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
306
480
|
"svg",
|
|
307
481
|
{
|
|
308
482
|
viewBox: "0 0 32 32",
|
|
@@ -626,25 +800,31 @@ function Separator({
|
|
|
626
800
|
);
|
|
627
801
|
}
|
|
628
802
|
|
|
629
|
-
// src/components/
|
|
803
|
+
// src/components/core/Kbd.tsx
|
|
630
804
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
805
|
+
function Kbd({ children, size = "md", className, ...rest }) {
|
|
806
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("kbd", { className: cx("pire-kbd", className), "data-size": size, ...rest, children });
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
// src/components/forms/FormField.tsx
|
|
810
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
631
811
|
function FormField({ label, htmlFor, isRequired, hint, error, layout = "stacked", children, className, ...rest }) {
|
|
632
|
-
return /* @__PURE__ */ (0,
|
|
633
|
-
/* @__PURE__ */ (0,
|
|
812
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: cx("pire-field", className), "data-layout": layout, ...rest, children: [
|
|
813
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("label", { className: "pire-field-label", htmlFor, children: [
|
|
634
814
|
label,
|
|
635
|
-
isRequired ? /* @__PURE__ */ (0,
|
|
815
|
+
isRequired ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
636
816
|
] }),
|
|
637
817
|
children,
|
|
638
|
-
error ? /* @__PURE__ */ (0,
|
|
639
|
-
/* @__PURE__ */ (0,
|
|
818
|
+
error ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "pire-field-error", role: "alert", children: [
|
|
819
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Icon, { name: "alert-circle", size: 12 }),
|
|
640
820
|
error
|
|
641
|
-
] }) : hint ? /* @__PURE__ */ (0,
|
|
821
|
+
] }) : hint ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "pire-field-hint", children: hint }) : null
|
|
642
822
|
] });
|
|
643
823
|
}
|
|
644
824
|
|
|
645
825
|
// src/components/forms/Input.tsx
|
|
646
826
|
var import_react_aria_components9 = require("react-aria-components");
|
|
647
|
-
var
|
|
827
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
648
828
|
function Input({
|
|
649
829
|
label,
|
|
650
830
|
icon,
|
|
@@ -660,7 +840,7 @@ function Input({
|
|
|
660
840
|
onChange,
|
|
661
841
|
...rest
|
|
662
842
|
}) {
|
|
663
|
-
return /* @__PURE__ */ (0,
|
|
843
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
664
844
|
import_react_aria_components9.TextField,
|
|
665
845
|
{
|
|
666
846
|
className: cx("pire-field", className),
|
|
@@ -669,11 +849,11 @@ function Input({
|
|
|
669
849
|
validationBehavior: "aria",
|
|
670
850
|
...rest,
|
|
671
851
|
children: [
|
|
672
|
-
label ? /* @__PURE__ */ (0,
|
|
852
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_react_aria_components9.Label, { className: "pire-field-label", children: [
|
|
673
853
|
label,
|
|
674
|
-
rest.isRequired ? /* @__PURE__ */ (0,
|
|
854
|
+
rest.isRequired ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
675
855
|
] }) : null,
|
|
676
|
-
/* @__PURE__ */ (0,
|
|
856
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
677
857
|
import_react_aria_components9.Group,
|
|
678
858
|
{
|
|
679
859
|
className: "pire-control",
|
|
@@ -682,14 +862,14 @@ function Input({
|
|
|
682
862
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
683
863
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
684
864
|
children: [
|
|
685
|
-
icon ? /* @__PURE__ */ (0,
|
|
686
|
-
/* @__PURE__ */ (0,
|
|
687
|
-
suffix ? /* @__PURE__ */ (0,
|
|
865
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon, { name: icon, size: 16, className: "pire-leading-icon" }) : null,
|
|
866
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_aria_components9.Input, { ref: inputRef, className: "pire-input", "data-numeric": numeric ? "true" : void 0 }),
|
|
867
|
+
suffix ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "pire-affix", children: suffix }) : null
|
|
688
868
|
]
|
|
689
869
|
}
|
|
690
870
|
),
|
|
691
|
-
description ? /* @__PURE__ */ (0,
|
|
692
|
-
/* @__PURE__ */ (0,
|
|
871
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_aria_components9.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
872
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react_aria_components9.FieldError, { className: "pire-field-error", children: errorMessage })
|
|
693
873
|
]
|
|
694
874
|
}
|
|
695
875
|
);
|
|
@@ -698,7 +878,7 @@ function Input({
|
|
|
698
878
|
// src/components/forms/TextArea.tsx
|
|
699
879
|
var React5 = __toESM(require("react"), 1);
|
|
700
880
|
var import_react_aria_components10 = require("react-aria-components");
|
|
701
|
-
var
|
|
881
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
702
882
|
var useIsomorphicLayoutEffect = typeof document === "undefined" ? React5.useEffect : React5.useLayoutEffect;
|
|
703
883
|
function TextArea({
|
|
704
884
|
label,
|
|
@@ -739,7 +919,7 @@ function TextArea({
|
|
|
739
919
|
}
|
|
740
920
|
grow();
|
|
741
921
|
}, [autoGrow, grow, rest.value]);
|
|
742
|
-
return /* @__PURE__ */ (0,
|
|
922
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
743
923
|
import_react_aria_components10.TextField,
|
|
744
924
|
{
|
|
745
925
|
className: cx("pire-field", className),
|
|
@@ -748,11 +928,11 @@ function TextArea({
|
|
|
748
928
|
validationBehavior: "aria",
|
|
749
929
|
...rest,
|
|
750
930
|
children: [
|
|
751
|
-
label ? /* @__PURE__ */ (0,
|
|
931
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react_aria_components10.Label, { className: "pire-field-label", children: [
|
|
752
932
|
label,
|
|
753
|
-
rest.isRequired ? /* @__PURE__ */ (0,
|
|
933
|
+
rest.isRequired ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
754
934
|
] }) : null,
|
|
755
|
-
/* @__PURE__ */ (0,
|
|
935
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
756
936
|
import_react_aria_components10.Group,
|
|
757
937
|
{
|
|
758
938
|
className: "pire-control",
|
|
@@ -761,7 +941,7 @@ function TextArea({
|
|
|
761
941
|
"data-multiline": "true",
|
|
762
942
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
763
943
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
764
|
-
children: /* @__PURE__ */ (0,
|
|
944
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
765
945
|
import_react_aria_components10.TextArea,
|
|
766
946
|
{
|
|
767
947
|
ref,
|
|
@@ -773,8 +953,8 @@ function TextArea({
|
|
|
773
953
|
)
|
|
774
954
|
}
|
|
775
955
|
),
|
|
776
|
-
description ? /* @__PURE__ */ (0,
|
|
777
|
-
/* @__PURE__ */ (0,
|
|
956
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components10.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
957
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components10.FieldError, { className: "pire-field-error", children: errorMessage })
|
|
778
958
|
]
|
|
779
959
|
}
|
|
780
960
|
);
|
|
@@ -782,107 +962,6 @@ function TextArea({
|
|
|
782
962
|
|
|
783
963
|
// src/components/forms/Select.tsx
|
|
784
964
|
var import_react_aria_components11 = require("react-aria-components");
|
|
785
|
-
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
786
|
-
var norm = (o) => typeof o === "string" ? { value: o, label: o, isDisabled: false } : o;
|
|
787
|
-
function Select({
|
|
788
|
-
label,
|
|
789
|
-
value,
|
|
790
|
-
defaultValue,
|
|
791
|
-
onChange,
|
|
792
|
-
options = [],
|
|
793
|
-
placeholder = "Select\u2026",
|
|
794
|
-
description,
|
|
795
|
-
errorMessage,
|
|
796
|
-
size = "md",
|
|
797
|
-
fullWidth = true,
|
|
798
|
-
className,
|
|
799
|
-
style,
|
|
800
|
-
...rest
|
|
801
|
-
}) {
|
|
802
|
-
const items = options.map(norm);
|
|
803
|
-
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
804
|
-
import_react_aria_components11.Select,
|
|
805
|
-
{
|
|
806
|
-
className: cx("pire-field", className),
|
|
807
|
-
style,
|
|
808
|
-
selectedKey: value,
|
|
809
|
-
defaultSelectedKey: defaultValue,
|
|
810
|
-
onSelectionChange: (k) => onChange?.(String(k)),
|
|
811
|
-
placeholder,
|
|
812
|
-
validationBehavior: "aria",
|
|
813
|
-
...rest,
|
|
814
|
-
children: [
|
|
815
|
-
label ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_react_aria_components11.Label, { className: "pire-field-label", children: [
|
|
816
|
-
label,
|
|
817
|
-
rest.isRequired ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
818
|
-
] }) : null,
|
|
819
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
820
|
-
import_react_aria_components11.Button,
|
|
821
|
-
{
|
|
822
|
-
className: "pire-control",
|
|
823
|
-
"data-size": size,
|
|
824
|
-
"data-full-width": String(fullWidth),
|
|
825
|
-
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
826
|
-
children: [
|
|
827
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.SelectValue, { className: "pire-select-value" }),
|
|
828
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Icon, { name: "chevron-down", size: 16, className: "pire-leading-icon" })
|
|
829
|
-
]
|
|
830
|
-
}
|
|
831
|
-
),
|
|
832
|
-
description ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
833
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.FieldError, { className: "pire-field-error", children: errorMessage }),
|
|
834
|
-
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.Popover, { className: "pire-popover", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.ListBox, { className: "pire-listbox", items, children: (item) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_aria_components11.ListBoxItem, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: item.label }) }) })
|
|
835
|
-
]
|
|
836
|
-
}
|
|
837
|
-
);
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
// src/components/forms/Checkbox.tsx
|
|
841
|
-
var import_react_aria_components12 = require("react-aria-components");
|
|
842
|
-
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
843
|
-
function Checkbox({ label, hint, children, className, ...rest }) {
|
|
844
|
-
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_aria_components12.Checkbox, { className: cx("pire-choice", className), ...rest, children: ({ isSelected, isIndeterminate }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
|
|
845
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "pire-choice-box", "aria-hidden": "true", children: isIndeterminate ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { name: "minus", size: 12 }) : isSelected ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { name: "check", size: 12 }) : null }),
|
|
846
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { children: [
|
|
847
|
-
label ?? children,
|
|
848
|
-
hint ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "pire-choice-hint", children: hint }) : null
|
|
849
|
-
] })
|
|
850
|
-
] }) });
|
|
851
|
-
}
|
|
852
|
-
|
|
853
|
-
// src/components/forms/Radio.tsx
|
|
854
|
-
var import_react_aria_components13 = require("react-aria-components");
|
|
855
|
-
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
856
|
-
function RadioGroup({ label, description, errorMessage, children, className, ...rest }) {
|
|
857
|
-
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react_aria_components13.RadioGroup, { className: cx("pire-field", className), validationBehavior: "aria", ...rest, children: [
|
|
858
|
-
label ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_aria_components13.Label, { className: "pire-field-label", children: label }) : null,
|
|
859
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "pire-radiogroup", children }),
|
|
860
|
-
description ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_aria_components13.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
861
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_aria_components13.FieldError, { className: "pire-field-error", children: errorMessage })
|
|
862
|
-
] });
|
|
863
|
-
}
|
|
864
|
-
function Radio({ label, hint, children, className, ...rest }) {
|
|
865
|
-
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react_aria_components13.Radio, { className: cx("pire-choice", className), ...rest, children: [
|
|
866
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "pire-choice-box", "data-radio": "true", "aria-hidden": "true" }),
|
|
867
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { children: [
|
|
868
|
-
label ?? children,
|
|
869
|
-
hint ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "pire-choice-hint", children: hint }) : null
|
|
870
|
-
] })
|
|
871
|
-
] });
|
|
872
|
-
}
|
|
873
|
-
|
|
874
|
-
// src/components/forms/Switch.tsx
|
|
875
|
-
var import_react_aria_components14 = require("react-aria-components");
|
|
876
|
-
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
877
|
-
function Switch({ label, children, className, ...rest }) {
|
|
878
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_aria_components14.Switch, { className: cx("pire-choice", className), ...rest, children: [
|
|
879
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "pire-switch-track", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "pire-switch-thumb" }) }),
|
|
880
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { children: label ?? children })
|
|
881
|
-
] });
|
|
882
|
-
}
|
|
883
|
-
|
|
884
|
-
// src/components/forms/ComboBox.tsx
|
|
885
|
-
var import_react_aria_components15 = require("react-aria-components");
|
|
886
965
|
|
|
887
966
|
// src/i18n/PireIntlProvider.tsx
|
|
888
967
|
var React6 = __toESM(require("react"), 1);
|
|
@@ -900,6 +979,7 @@ var enMessages = {
|
|
|
900
979
|
inlineMessageDismiss: "Dismiss message",
|
|
901
980
|
toastDismiss: "Dismiss",
|
|
902
981
|
toastRegionLabel: "Notifications",
|
|
982
|
+
selectEmpty: "No options available",
|
|
903
983
|
comboBoxShowSuggestions: "Show suggestions",
|
|
904
984
|
comboBoxLoading: "Searching\u2026",
|
|
905
985
|
datePickerOpenCalendar: "Open calendar",
|
|
@@ -908,10 +988,14 @@ var enMessages = {
|
|
|
908
988
|
dateRangePresetsLabel: "Date range shortcuts",
|
|
909
989
|
numberFieldIncrease: "Increase",
|
|
910
990
|
numberFieldDecrease: "Decrease",
|
|
991
|
+
valueHelpFieldPlaceholder: "Not selected",
|
|
911
992
|
valueHelpFieldClear: "Clear selection",
|
|
912
993
|
valueHelpFieldOpenNamed: "Select {label}",
|
|
913
994
|
valueHelpFieldOpen: "Open value help",
|
|
914
995
|
valueHelpDialogSearch: "Search records",
|
|
996
|
+
valueHelpDialogTitle: "Select a record",
|
|
997
|
+
valueHelpDialogSearchPlaceholder: "Search by ID or name",
|
|
998
|
+
valueHelpDialogEmpty: "No records found",
|
|
915
999
|
valueHelpDialogCancel: "Cancel",
|
|
916
1000
|
paginationLabel: "Pagination",
|
|
917
1001
|
paginationRange: "{from}\u2013{to} of {total}",
|
|
@@ -924,6 +1008,15 @@ var enMessages = {
|
|
|
924
1008
|
fileUploadRemoveNamed: "Remove {name}",
|
|
925
1009
|
fileUploadUploading: "Uploading",
|
|
926
1010
|
fileDropZonePrompt: "Drag files here, or choose them",
|
|
1011
|
+
shellBarUserMenu: "Account menu for {user}",
|
|
1012
|
+
commandPaletteLabel: "Command palette",
|
|
1013
|
+
commandPaletteSearchLabel: "Search commands and records",
|
|
1014
|
+
commandPalettePlaceholder: "Search for a screen, an action or a record\u2026",
|
|
1015
|
+
commandPaletteEmpty: "Nothing matches that",
|
|
1016
|
+
commandPaletteLoading: "Searching\u2026",
|
|
1017
|
+
commandPaletteHintNavigate: "navigate",
|
|
1018
|
+
commandPaletteHintSelect: "open",
|
|
1019
|
+
commandPaletteHintClose: "close",
|
|
927
1020
|
chartCategoryHeader: "Category",
|
|
928
1021
|
chartNoValue: "No data",
|
|
929
1022
|
chartEmpty: "No data for this period"
|
|
@@ -940,6 +1033,7 @@ var esMessages = {
|
|
|
940
1033
|
inlineMessageDismiss: "Descartar mensaje",
|
|
941
1034
|
toastDismiss: "Descartar",
|
|
942
1035
|
toastRegionLabel: "Notificaciones",
|
|
1036
|
+
selectEmpty: "Sin opciones disponibles",
|
|
943
1037
|
comboBoxShowSuggestions: "Mostrar sugerencias",
|
|
944
1038
|
comboBoxLoading: "Buscando\u2026",
|
|
945
1039
|
datePickerOpenCalendar: "Abrir calendario",
|
|
@@ -948,10 +1042,14 @@ var esMessages = {
|
|
|
948
1042
|
dateRangePresetsLabel: "Atajos de rango de fechas",
|
|
949
1043
|
numberFieldIncrease: "Aumentar",
|
|
950
1044
|
numberFieldDecrease: "Disminuir",
|
|
1045
|
+
valueHelpFieldPlaceholder: "Sin seleccionar",
|
|
951
1046
|
valueHelpFieldClear: "Limpiar selecci\xF3n",
|
|
952
1047
|
valueHelpFieldOpenNamed: "Seleccionar {label}",
|
|
953
1048
|
valueHelpFieldOpen: "Abrir ayuda de valores",
|
|
954
1049
|
valueHelpDialogSearch: "Buscar registros",
|
|
1050
|
+
valueHelpDialogTitle: "Seleccionar un registro",
|
|
1051
|
+
valueHelpDialogSearchPlaceholder: "Buscar por c\xF3digo o nombre",
|
|
1052
|
+
valueHelpDialogEmpty: "No se encontraron registros",
|
|
955
1053
|
valueHelpDialogCancel: "Cancelar",
|
|
956
1054
|
paginationLabel: "Paginaci\xF3n",
|
|
957
1055
|
paginationRange: "{from}\u2013{to} de {total}",
|
|
@@ -964,20 +1062,29 @@ var esMessages = {
|
|
|
964
1062
|
fileUploadRemoveNamed: "Quitar {name}",
|
|
965
1063
|
fileUploadUploading: "Subiendo",
|
|
966
1064
|
fileDropZonePrompt: "Arrastr\xE1 archivos ac\xE1, o elegilos",
|
|
1065
|
+
shellBarUserMenu: "Men\xFA de cuenta de {user}",
|
|
1066
|
+
commandPaletteLabel: "Paleta de comandos",
|
|
1067
|
+
commandPaletteSearchLabel: "Buscar comandos y registros",
|
|
1068
|
+
commandPalettePlaceholder: "Busc\xE1 una pantalla, una acci\xF3n o un registro\u2026",
|
|
1069
|
+
commandPaletteEmpty: "No hay coincidencias",
|
|
1070
|
+
commandPaletteLoading: "Buscando\u2026",
|
|
1071
|
+
commandPaletteHintNavigate: "navegar",
|
|
1072
|
+
commandPaletteHintSelect: "abrir",
|
|
1073
|
+
commandPaletteHintClose: "cerrar",
|
|
967
1074
|
chartCategoryHeader: "Categor\xEDa",
|
|
968
1075
|
chartNoValue: "Sin datos",
|
|
969
1076
|
chartEmpty: "Sin datos para este per\xEDodo"
|
|
970
1077
|
};
|
|
971
1078
|
|
|
972
1079
|
// src/i18n/PireIntlProvider.tsx
|
|
973
|
-
var
|
|
1080
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
974
1081
|
var MessagesContext = React6.createContext(enMessages);
|
|
975
1082
|
function PireIntlProvider({ messages, children }) {
|
|
976
1083
|
const value = React6.useMemo(
|
|
977
1084
|
() => messages ? { ...enMessages, ...messages } : enMessages,
|
|
978
1085
|
[messages]
|
|
979
1086
|
);
|
|
980
|
-
return /* @__PURE__ */ (0,
|
|
1087
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(MessagesContext.Provider, { value, children });
|
|
981
1088
|
}
|
|
982
1089
|
function usePireMessages() {
|
|
983
1090
|
return React6.useContext(MessagesContext);
|
|
@@ -987,8 +1094,120 @@ function useMessage(key, override) {
|
|
|
987
1094
|
return override ?? messages[key];
|
|
988
1095
|
}
|
|
989
1096
|
|
|
990
|
-
// src/components/forms/
|
|
1097
|
+
// src/components/forms/Select.tsx
|
|
1098
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1099
|
+
var norm = (o) => typeof o === "string" ? { value: o, label: o, isDisabled: false } : o;
|
|
1100
|
+
function Select({
|
|
1101
|
+
label,
|
|
1102
|
+
value,
|
|
1103
|
+
defaultValue,
|
|
1104
|
+
onChange,
|
|
1105
|
+
options = [],
|
|
1106
|
+
placeholder = "Select\u2026",
|
|
1107
|
+
description,
|
|
1108
|
+
errorMessage,
|
|
1109
|
+
emptyLabel,
|
|
1110
|
+
size = "md",
|
|
1111
|
+
fullWidth = true,
|
|
1112
|
+
className,
|
|
1113
|
+
style,
|
|
1114
|
+
...rest
|
|
1115
|
+
}) {
|
|
1116
|
+
const msg = usePireMessages();
|
|
1117
|
+
const items = options.map(norm);
|
|
1118
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1119
|
+
import_react_aria_components11.Select,
|
|
1120
|
+
{
|
|
1121
|
+
className: cx("pire-field", className),
|
|
1122
|
+
style,
|
|
1123
|
+
selectedKey: value,
|
|
1124
|
+
defaultSelectedKey: defaultValue,
|
|
1125
|
+
onSelectionChange: (k) => onChange?.(String(k)),
|
|
1126
|
+
allowsEmptyCollection: true,
|
|
1127
|
+
placeholder,
|
|
1128
|
+
validationBehavior: "aria",
|
|
1129
|
+
...rest,
|
|
1130
|
+
children: [
|
|
1131
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react_aria_components11.Label, { className: "pire-field-label", children: [
|
|
1132
|
+
label,
|
|
1133
|
+
rest.isRequired ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1134
|
+
] }) : null,
|
|
1135
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
1136
|
+
import_react_aria_components11.Button,
|
|
1137
|
+
{
|
|
1138
|
+
className: "pire-control",
|
|
1139
|
+
"data-size": size,
|
|
1140
|
+
"data-full-width": String(fullWidth),
|
|
1141
|
+
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1142
|
+
children: [
|
|
1143
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_aria_components11.SelectValue, { className: "pire-select-value" }),
|
|
1144
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon, { name: "chevron-down", size: 16, className: "pire-leading-icon" })
|
|
1145
|
+
]
|
|
1146
|
+
}
|
|
1147
|
+
),
|
|
1148
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_aria_components11.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1149
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_aria_components11.FieldError, { className: "pire-field-error", children: errorMessage }),
|
|
1150
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_aria_components11.Popover, { className: "pire-popover", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1151
|
+
import_react_aria_components11.ListBox,
|
|
1152
|
+
{
|
|
1153
|
+
className: "pire-listbox",
|
|
1154
|
+
items,
|
|
1155
|
+
renderEmptyState: () => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "pire-listbox-status", role: "status", "aria-live": "polite", children: emptyLabel ?? msg.selectEmpty }),
|
|
1156
|
+
children: (item) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_aria_components11.ListBoxItem, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: item.label })
|
|
1157
|
+
}
|
|
1158
|
+
) })
|
|
1159
|
+
]
|
|
1160
|
+
}
|
|
1161
|
+
);
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
// src/components/forms/Checkbox.tsx
|
|
1165
|
+
var import_react_aria_components12 = require("react-aria-components");
|
|
1166
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1167
|
+
function Checkbox({ label, hint, children, className, ...rest }) {
|
|
1168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_aria_components12.Checkbox, { className: cx("pire-choice", className), ...rest, children: ({ isSelected, isIndeterminate }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
1169
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "pire-choice-box", "aria-hidden": "true", children: isIndeterminate ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Icon, { name: "minus", size: 12 }) : isSelected ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Icon, { name: "check", size: 12 }) : null }),
|
|
1170
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { children: [
|
|
1171
|
+
label ?? children,
|
|
1172
|
+
hint ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "pire-choice-hint", children: hint }) : null
|
|
1173
|
+
] })
|
|
1174
|
+
] }) });
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
// src/components/forms/Radio.tsx
|
|
1178
|
+
var import_react_aria_components13 = require("react-aria-components");
|
|
1179
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1180
|
+
function RadioGroup({ label, description, errorMessage, children, className, ...rest }) {
|
|
1181
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_aria_components13.RadioGroup, { className: cx("pire-field", className), validationBehavior: "aria", ...rest, children: [
|
|
1182
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_aria_components13.Label, { className: "pire-field-label", children: label }) : null,
|
|
1183
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "pire-radiogroup", children }),
|
|
1184
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_aria_components13.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1185
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_aria_components13.FieldError, { className: "pire-field-error", children: errorMessage })
|
|
1186
|
+
] });
|
|
1187
|
+
}
|
|
1188
|
+
function Radio({ label, hint, children, className, ...rest }) {
|
|
1189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_aria_components13.Radio, { className: cx("pire-choice", className), ...rest, children: [
|
|
1190
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "pire-choice-box", "data-radio": "true", "aria-hidden": "true" }),
|
|
1191
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("span", { children: [
|
|
1192
|
+
label ?? children,
|
|
1193
|
+
hint ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "pire-choice-hint", children: hint }) : null
|
|
1194
|
+
] })
|
|
1195
|
+
] });
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
// src/components/forms/Switch.tsx
|
|
1199
|
+
var import_react_aria_components14 = require("react-aria-components");
|
|
991
1200
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1201
|
+
function Switch({ label, children, className, ...rest }) {
|
|
1202
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react_aria_components14.Switch, { className: cx("pire-choice", className), ...rest, children: [
|
|
1203
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "pire-switch-track", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "pire-switch-thumb" }) }),
|
|
1204
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: label ?? children })
|
|
1205
|
+
] });
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
// src/components/forms/ComboBox.tsx
|
|
1209
|
+
var import_react_aria_components15 = require("react-aria-components");
|
|
1210
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
992
1211
|
var norm2 = (o) => typeof o === "string" ? { value: o, label: o } : o;
|
|
993
1212
|
function ComboBox({
|
|
994
1213
|
label,
|
|
@@ -996,6 +1215,7 @@ function ComboBox({
|
|
|
996
1215
|
defaultValue,
|
|
997
1216
|
onChange,
|
|
998
1217
|
onInputChange,
|
|
1218
|
+
inputValue,
|
|
999
1219
|
options = [],
|
|
1000
1220
|
description,
|
|
1001
1221
|
errorMessage,
|
|
@@ -1014,7 +1234,7 @@ function ComboBox({
|
|
|
1014
1234
|
const items = options.map(norm2);
|
|
1015
1235
|
const collection = isFilteredExternally ? { items } : { defaultItems: items };
|
|
1016
1236
|
const showsStatus = isLoading || isFilteredExternally && items.length === 0 && emptyLabel != null;
|
|
1017
|
-
return /* @__PURE__ */ (0,
|
|
1237
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
1018
1238
|
import_react_aria_components15.ComboBox,
|
|
1019
1239
|
{
|
|
1020
1240
|
className: cx("pire-field", className),
|
|
@@ -1025,6 +1245,7 @@ function ComboBox({
|
|
|
1025
1245
|
if (isLoading) return;
|
|
1026
1246
|
onChange?.(k == null ? null : String(k));
|
|
1027
1247
|
},
|
|
1248
|
+
inputValue,
|
|
1028
1249
|
onInputChange,
|
|
1029
1250
|
...collection,
|
|
1030
1251
|
allowsEmptyCollection: isFilteredExternally || isLoading,
|
|
@@ -1032,11 +1253,11 @@ function ComboBox({
|
|
|
1032
1253
|
validationBehavior: "aria",
|
|
1033
1254
|
...rest,
|
|
1034
1255
|
children: [
|
|
1035
|
-
label ? /* @__PURE__ */ (0,
|
|
1256
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react_aria_components15.Label, { className: "pire-field-label", children: [
|
|
1036
1257
|
label,
|
|
1037
|
-
rest.isRequired ? /* @__PURE__ */ (0,
|
|
1258
|
+
rest.isRequired ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1038
1259
|
] }) : null,
|
|
1039
|
-
/* @__PURE__ */ (0,
|
|
1260
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
1040
1261
|
import_react_aria_components15.Group,
|
|
1041
1262
|
{
|
|
1042
1263
|
className: "pire-control",
|
|
@@ -1044,15 +1265,15 @@ function ComboBox({
|
|
|
1044
1265
|
"data-full-width": String(fullWidth),
|
|
1045
1266
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1046
1267
|
children: [
|
|
1047
|
-
/* @__PURE__ */ (0,
|
|
1048
|
-
/* @__PURE__ */ (0,
|
|
1049
|
-
/* @__PURE__ */ (0,
|
|
1268
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "search", size: 16, className: "pire-leading-icon" }),
|
|
1269
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_aria_components15.Input, { className: "pire-input", placeholder: rest.placeholder }),
|
|
1270
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_aria_components15.Button, { className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.comboBoxShowSuggestions, style: { width: 20, height: 20 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon, { name: "chevron-down", size: 16 }) })
|
|
1050
1271
|
]
|
|
1051
1272
|
}
|
|
1052
1273
|
),
|
|
1053
|
-
description ? /* @__PURE__ */ (0,
|
|
1054
|
-
/* @__PURE__ */ (0,
|
|
1055
|
-
/* @__PURE__ */ (0,
|
|
1274
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_aria_components15.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1275
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_aria_components15.FieldError, { className: "pire-field-error", children: errorMessage }),
|
|
1276
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_aria_components15.Popover, { className: "pire-popover", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
1056
1277
|
import_react_aria_components15.ListBox,
|
|
1057
1278
|
{
|
|
1058
1279
|
className: "pire-listbox",
|
|
@@ -1060,10 +1281,10 @@ function ComboBox({
|
|
|
1060
1281
|
const el = e.currentTarget;
|
|
1061
1282
|
if (el.scrollHeight - el.scrollTop - el.clientHeight < 48) onLoadMore();
|
|
1062
1283
|
} : void 0,
|
|
1063
|
-
renderEmptyState: showsStatus ? () => /* @__PURE__ */ (0,
|
|
1064
|
-
children: (item) => /* @__PURE__ */ (0,
|
|
1065
|
-
/* @__PURE__ */ (0,
|
|
1066
|
-
item.secondary ? /* @__PURE__ */ (0,
|
|
1284
|
+
renderEmptyState: showsStatus ? () => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "pire-listbox-status", role: "status", "aria-live": "polite", children: isLoading ? loadingLabel ?? msg.comboBoxLoading : emptyLabel }) : void 0,
|
|
1285
|
+
children: (item) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react_aria_components15.ListBoxItem, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: [
|
|
1286
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "pire-option-label", children: item.label }),
|
|
1287
|
+
item.secondary ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "pire-option-secondary", children: item.secondary }) : null
|
|
1067
1288
|
] })
|
|
1068
1289
|
}
|
|
1069
1290
|
) })
|
|
@@ -1075,7 +1296,7 @@ function ComboBox({
|
|
|
1075
1296
|
// src/components/forms/MultiComboBox.tsx
|
|
1076
1297
|
var React7 = __toESM(require("react"), 1);
|
|
1077
1298
|
var import_react_aria_components16 = require("react-aria-components");
|
|
1078
|
-
var
|
|
1299
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1079
1300
|
var norm3 = (o) => typeof o === "string" ? { value: o, label: o } : o;
|
|
1080
1301
|
function MultiComboBox({
|
|
1081
1302
|
label,
|
|
@@ -1140,7 +1361,7 @@ function MultiComboBox({
|
|
|
1140
1361
|
e.stopPropagation();
|
|
1141
1362
|
if (!values.includes(next)) commit([...values, next]);
|
|
1142
1363
|
};
|
|
1143
|
-
return /* @__PURE__ */ (0,
|
|
1364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1144
1365
|
import_react_aria_components16.ComboBox,
|
|
1145
1366
|
{
|
|
1146
1367
|
className: cx("pire-field", className),
|
|
@@ -1157,11 +1378,11 @@ function MultiComboBox({
|
|
|
1157
1378
|
validationBehavior: "aria",
|
|
1158
1379
|
...rest,
|
|
1159
1380
|
children: [
|
|
1160
|
-
label ? /* @__PURE__ */ (0,
|
|
1381
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_aria_components16.Label, { className: "pire-field-label", children: [
|
|
1161
1382
|
label,
|
|
1162
|
-
rest.isRequired ? /* @__PURE__ */ (0,
|
|
1383
|
+
rest.isRequired ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1163
1384
|
] }) : null,
|
|
1164
|
-
/* @__PURE__ */ (0,
|
|
1385
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1165
1386
|
import_react_aria_components16.Group,
|
|
1166
1387
|
{
|
|
1167
1388
|
className: "pire-control",
|
|
@@ -1171,14 +1392,14 @@ function MultiComboBox({
|
|
|
1171
1392
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1172
1393
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1173
1394
|
children: [
|
|
1174
|
-
/* @__PURE__ */ (0,
|
|
1175
|
-
/* @__PURE__ */ (0,
|
|
1176
|
-
/* @__PURE__ */ (0,
|
|
1395
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "search", size: 16, className: "pire-leading-icon" }),
|
|
1396
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "pire-chipfield", children: [
|
|
1397
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_aria_components16.ButtonContext.Provider, { value: null, children: values.map((v) => (
|
|
1177
1398
|
/* Disabled follows the field, not `isEditable`: a read-only field's chips are
|
|
1178
1399
|
real, current values and should read as such — they simply lose the × . */
|
|
1179
|
-
/* @__PURE__ */ (0,
|
|
1400
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Tag, { isDisabled: rest.isDisabled, onRemove: isEditable ? () => remove(v) : void 0, children: labelOf(v) }, v)
|
|
1180
1401
|
)) }),
|
|
1181
|
-
/* @__PURE__ */ (0,
|
|
1402
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1182
1403
|
import_react_aria_components16.Input,
|
|
1183
1404
|
{
|
|
1184
1405
|
ref: inputRef,
|
|
@@ -1188,14 +1409,14 @@ function MultiComboBox({
|
|
|
1188
1409
|
}
|
|
1189
1410
|
)
|
|
1190
1411
|
] }),
|
|
1191
|
-
/* @__PURE__ */ (0,
|
|
1412
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_aria_components16.Button, { className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.comboBoxShowSuggestions, style: { width: 20, height: 20 }, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "chevron-down", size: 16 }) })
|
|
1192
1413
|
]
|
|
1193
1414
|
}
|
|
1194
1415
|
),
|
|
1195
|
-
/* @__PURE__ */ (0,
|
|
1196
|
-
description ? /* @__PURE__ */ (0,
|
|
1197
|
-
/* @__PURE__ */ (0,
|
|
1198
|
-
/* @__PURE__ */ (0,
|
|
1416
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_aria_components16.VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { "aria-live": "polite", children: announcement }) }),
|
|
1417
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_aria_components16.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1418
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_aria_components16.FieldError, { className: "pire-field-error", children: errorMessage }),
|
|
1419
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_aria_components16.Popover, { className: "pire-popover", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1199
1420
|
import_react_aria_components16.ListBox,
|
|
1200
1421
|
{
|
|
1201
1422
|
className: "pire-listbox",
|
|
@@ -1203,10 +1424,10 @@ function MultiComboBox({
|
|
|
1203
1424
|
const el = e.currentTarget;
|
|
1204
1425
|
if (el.scrollHeight - el.scrollTop - el.clientHeight < 48) onLoadMore();
|
|
1205
1426
|
} : void 0,
|
|
1206
|
-
renderEmptyState: showsStatus ? () => /* @__PURE__ */ (0,
|
|
1207
|
-
children: (item) => /* @__PURE__ */ (0,
|
|
1208
|
-
/* @__PURE__ */ (0,
|
|
1209
|
-
item.secondary ? /* @__PURE__ */ (0,
|
|
1427
|
+
renderEmptyState: showsStatus ? () => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "pire-listbox-status", role: "status", "aria-live": "polite", children: isLoading ? loadingLabel ?? msg.comboBoxLoading : emptyLabel }) : void 0,
|
|
1428
|
+
children: (item) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_aria_components16.ListBoxItem, { className: "pire-option", id: item.value, textValue: item.label, isDisabled: item.isDisabled, children: [
|
|
1429
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pire-option-label", children: item.label }),
|
|
1430
|
+
item.secondary ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pire-option-secondary", children: item.secondary }) : null
|
|
1210
1431
|
] })
|
|
1211
1432
|
}
|
|
1212
1433
|
) })
|
|
@@ -1217,7 +1438,7 @@ function MultiComboBox({
|
|
|
1217
1438
|
|
|
1218
1439
|
// src/components/forms/NumberField.tsx
|
|
1219
1440
|
var import_react_aria_components17 = require("react-aria-components");
|
|
1220
|
-
var
|
|
1441
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1221
1442
|
function NumberField({
|
|
1222
1443
|
label,
|
|
1223
1444
|
suffix,
|
|
@@ -1231,12 +1452,12 @@ function NumberField({
|
|
|
1231
1452
|
...rest
|
|
1232
1453
|
}) {
|
|
1233
1454
|
const msg = usePireMessages();
|
|
1234
|
-
return /* @__PURE__ */ (0,
|
|
1235
|
-
label ? /* @__PURE__ */ (0,
|
|
1455
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_aria_components17.NumberField, { className: cx("pire-field", className), style, validationBehavior: "aria", ...rest, children: [
|
|
1456
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_aria_components17.Label, { className: "pire-field-label", children: [
|
|
1236
1457
|
label,
|
|
1237
|
-
rest.isRequired ? /* @__PURE__ */ (0,
|
|
1458
|
+
rest.isRequired ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1238
1459
|
] }) : null,
|
|
1239
|
-
/* @__PURE__ */ (0,
|
|
1460
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
1240
1461
|
import_react_aria_components17.Group,
|
|
1241
1462
|
{
|
|
1242
1463
|
className: "pire-control",
|
|
@@ -1245,23 +1466,23 @@ function NumberField({
|
|
|
1245
1466
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1246
1467
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1247
1468
|
children: [
|
|
1248
|
-
/* @__PURE__ */ (0,
|
|
1249
|
-
suffix ? /* @__PURE__ */ (0,
|
|
1250
|
-
hideStepper ? null : /* @__PURE__ */ (0,
|
|
1251
|
-
/* @__PURE__ */ (0,
|
|
1252
|
-
/* @__PURE__ */ (0,
|
|
1469
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_aria_components17.Input, { className: "pire-input", "data-numeric": "true" }),
|
|
1470
|
+
suffix ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "pire-affix", children: suffix }) : null,
|
|
1471
|
+
hideStepper ? null : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "pire-stepper", children: [
|
|
1472
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_aria_components17.Button, { slot: "increment", className: "pire-stepper-btn", "aria-label": msg.numberFieldIncrease, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: "plus", size: 10 }) }),
|
|
1473
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_aria_components17.Button, { slot: "decrement", className: "pire-stepper-btn", "aria-label": msg.numberFieldDecrease, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { name: "minus", size: 10 }) })
|
|
1253
1474
|
] })
|
|
1254
1475
|
]
|
|
1255
1476
|
}
|
|
1256
1477
|
),
|
|
1257
|
-
description ? /* @__PURE__ */ (0,
|
|
1258
|
-
/* @__PURE__ */ (0,
|
|
1478
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_aria_components17.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1479
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_aria_components17.FieldError, { className: "pire-field-error", children: errorMessage })
|
|
1259
1480
|
] });
|
|
1260
1481
|
}
|
|
1261
1482
|
|
|
1262
1483
|
// src/components/forms/DatePicker.tsx
|
|
1263
1484
|
var import_react_aria_components18 = require("react-aria-components");
|
|
1264
|
-
var
|
|
1485
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1265
1486
|
function DatePicker({
|
|
1266
1487
|
label,
|
|
1267
1488
|
description,
|
|
@@ -1273,12 +1494,12 @@ function DatePicker({
|
|
|
1273
1494
|
...rest
|
|
1274
1495
|
}) {
|
|
1275
1496
|
const msg = usePireMessages();
|
|
1276
|
-
return /* @__PURE__ */ (0,
|
|
1277
|
-
label ? /* @__PURE__ */ (0,
|
|
1497
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_aria_components18.DatePicker, { className: cx("pire-field", className), style, validationBehavior: "aria", ...rest, children: [
|
|
1498
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_aria_components18.Label, { className: "pire-field-label", children: [
|
|
1278
1499
|
label,
|
|
1279
|
-
rest.isRequired ? /* @__PURE__ */ (0,
|
|
1500
|
+
rest.isRequired ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1280
1501
|
] }) : null,
|
|
1281
|
-
/* @__PURE__ */ (0,
|
|
1502
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1282
1503
|
import_react_aria_components18.Group,
|
|
1283
1504
|
{
|
|
1284
1505
|
className: "pire-control",
|
|
@@ -1287,22 +1508,22 @@ function DatePicker({
|
|
|
1287
1508
|
"data-invalid": rest.isInvalid ? "true" : void 0,
|
|
1288
1509
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1289
1510
|
children: [
|
|
1290
|
-
/* @__PURE__ */ (0,
|
|
1291
|
-
/* @__PURE__ */ (0,
|
|
1511
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.DateInput, { className: "pire-datefield", children: (segment) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.DateSegment, { segment, className: "pire-datesegment" }) }),
|
|
1512
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.Button, { className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.datePickerOpenCalendar, style: { width: 24, height: 24 }, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Icon, { name: "calendar", size: 16 }) })
|
|
1292
1513
|
]
|
|
1293
1514
|
}
|
|
1294
1515
|
),
|
|
1295
|
-
description ? /* @__PURE__ */ (0,
|
|
1296
|
-
/* @__PURE__ */ (0,
|
|
1297
|
-
/* @__PURE__ */ (0,
|
|
1298
|
-
/* @__PURE__ */ (0,
|
|
1299
|
-
/* @__PURE__ */ (0,
|
|
1300
|
-
/* @__PURE__ */ (0,
|
|
1301
|
-
/* @__PURE__ */ (0,
|
|
1516
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1517
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.FieldError, { className: "pire-field-error", children: errorMessage }),
|
|
1518
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.Popover, { className: "pire-popover", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.Dialog, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_aria_components18.Calendar, { className: "pire-calendar", children: [
|
|
1519
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("header", { className: "pire-calendar-head", children: [
|
|
1520
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.Button, { slot: "previous", className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.datePickerPreviousMonth, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Icon, { name: "chevron-left", size: 16 }) }),
|
|
1521
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.Heading, { className: "pire-calendar-title" }),
|
|
1522
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.Button, { slot: "next", className: "pire-iconbtn", "data-size": "sm", "aria-label": msg.datePickerNextMonth, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Icon, { name: "chevron-right", size: 16 }) })
|
|
1302
1523
|
] }),
|
|
1303
|
-
/* @__PURE__ */ (0,
|
|
1304
|
-
/* @__PURE__ */ (0,
|
|
1305
|
-
/* @__PURE__ */ (0,
|
|
1524
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_aria_components18.CalendarGrid, { className: "pire-calendar-grid", children: [
|
|
1525
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.CalendarGridHeader, { children: (day) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.CalendarHeaderCell, { children: day }) }),
|
|
1526
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.CalendarGridBody, { children: (date) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_aria_components18.CalendarCell, { date, className: "pire-calendar-cell" }) })
|
|
1306
1527
|
] })
|
|
1307
1528
|
] }) }) })
|
|
1308
1529
|
] });
|
|
@@ -1310,7 +1531,7 @@ function DatePicker({
|
|
|
1310
1531
|
|
|
1311
1532
|
// src/components/forms/DateRangePicker.tsx
|
|
1312
1533
|
var import_react_aria_components19 = require("react-aria-components");
|
|
1313
|
-
var
|
|
1534
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1314
1535
|
function rangeLengthInDays(range) {
|
|
1315
1536
|
return range.end.toDate("UTC").getTime() / 864e5 - range.start.toDate("UTC").getTime() / 864e5 + 1;
|
|
1316
1537
|
}
|
|
@@ -1331,7 +1552,7 @@ function DateRangePicker({
|
|
|
1331
1552
|
const msg = usePireMessages();
|
|
1332
1553
|
const current = rest.value ?? rest.defaultValue ?? null;
|
|
1333
1554
|
const tooLong = maxRangeDays != null && current != null && rangeLengthInDays(current) > maxRangeDays;
|
|
1334
|
-
return /* @__PURE__ */ (0,
|
|
1555
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
1335
1556
|
import_react_aria_components19.DateRangePicker,
|
|
1336
1557
|
{
|
|
1337
1558
|
className: cx("pire-field", className),
|
|
@@ -1342,11 +1563,11 @@ function DateRangePicker({
|
|
|
1342
1563
|
...rest,
|
|
1343
1564
|
isInvalid: rest.isInvalid || tooLong,
|
|
1344
1565
|
children: [
|
|
1345
|
-
label ? /* @__PURE__ */ (0,
|
|
1566
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_aria_components19.Label, { className: "pire-field-label", children: [
|
|
1346
1567
|
label,
|
|
1347
|
-
rest.isRequired ? /* @__PURE__ */ (0,
|
|
1568
|
+
rest.isRequired ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1348
1569
|
] }) : null,
|
|
1349
|
-
/* @__PURE__ */ (0,
|
|
1570
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
1350
1571
|
import_react_aria_components19.Group,
|
|
1351
1572
|
{
|
|
1352
1573
|
className: "pire-control pire-daterange-control",
|
|
@@ -1355,29 +1576,29 @@ function DateRangePicker({
|
|
|
1355
1576
|
"data-invalid": rest.isInvalid || tooLong ? "true" : void 0,
|
|
1356
1577
|
"data-readonly": rest.isReadOnly ? "true" : void 0,
|
|
1357
1578
|
children: [
|
|
1358
|
-
/* @__PURE__ */ (0,
|
|
1359
|
-
/* @__PURE__ */ (0,
|
|
1360
|
-
/* @__PURE__ */ (0,
|
|
1361
|
-
/* @__PURE__ */ (0,
|
|
1579
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.DateInput, { slot: "start", className: "pire-datefield", children: (segment) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.DateSegment, { segment, className: "pire-datesegment" }) }),
|
|
1580
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { "aria-hidden": "true", className: "pire-daterange-dash", children: "\u2013" }),
|
|
1581
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.DateInput, { slot: "end", className: "pire-datefield", children: (segment) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.DateSegment, { segment, className: "pire-datesegment" }) }),
|
|
1582
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1362
1583
|
import_react_aria_components19.Button,
|
|
1363
1584
|
{
|
|
1364
1585
|
className: "pire-iconbtn",
|
|
1365
1586
|
"data-size": "sm",
|
|
1366
1587
|
"aria-label": msg.datePickerOpenCalendar,
|
|
1367
1588
|
style: { width: 24, height: 24 },
|
|
1368
|
-
children: /* @__PURE__ */ (0,
|
|
1589
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon, { name: "calendar", size: 16 })
|
|
1369
1590
|
}
|
|
1370
1591
|
)
|
|
1371
1592
|
]
|
|
1372
1593
|
}
|
|
1373
1594
|
),
|
|
1374
|
-
description ? /* @__PURE__ */ (0,
|
|
1375
|
-
/* @__PURE__ */ (0,
|
|
1376
|
-
/* @__PURE__ */ (0,
|
|
1595
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
1596
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.FieldError, { className: "pire-field-error", children: errorMessage }),
|
|
1597
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.Popover, { className: "pire-popover", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_aria_components19.Dialog, { className: "pire-daterange-dialog", children: [
|
|
1377
1598
|
presets?.length ? (
|
|
1378
1599
|
// Before the calendar in the DOM, so keyboard users reach the shortcut without
|
|
1379
1600
|
// arrowing through a month first.
|
|
1380
|
-
/* @__PURE__ */ (0,
|
|
1601
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "pire-daterange-presets", role: "group", "aria-label": msg.dateRangePresetsLabel, children: presets.map((preset) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1381
1602
|
import_react_aria_components19.Button,
|
|
1382
1603
|
{
|
|
1383
1604
|
className: "pire-daterange-preset",
|
|
@@ -1387,33 +1608,33 @@ function DateRangePicker({
|
|
|
1387
1608
|
preset.id
|
|
1388
1609
|
)) })
|
|
1389
1610
|
) : null,
|
|
1390
|
-
/* @__PURE__ */ (0,
|
|
1391
|
-
/* @__PURE__ */ (0,
|
|
1392
|
-
/* @__PURE__ */ (0,
|
|
1611
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_aria_components19.RangeCalendar, { className: "pire-calendar", children: [
|
|
1612
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("header", { className: "pire-calendar-head", children: [
|
|
1613
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1393
1614
|
import_react_aria_components19.Button,
|
|
1394
1615
|
{
|
|
1395
1616
|
slot: "previous",
|
|
1396
1617
|
className: "pire-iconbtn",
|
|
1397
1618
|
"data-size": "sm",
|
|
1398
1619
|
"aria-label": msg.datePickerPreviousMonth,
|
|
1399
|
-
children: /* @__PURE__ */ (0,
|
|
1620
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon, { name: "chevron-left", size: 16 })
|
|
1400
1621
|
}
|
|
1401
1622
|
),
|
|
1402
|
-
/* @__PURE__ */ (0,
|
|
1403
|
-
/* @__PURE__ */ (0,
|
|
1623
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.Heading, { className: "pire-calendar-title" }),
|
|
1624
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1404
1625
|
import_react_aria_components19.Button,
|
|
1405
1626
|
{
|
|
1406
1627
|
slot: "next",
|
|
1407
1628
|
className: "pire-iconbtn",
|
|
1408
1629
|
"data-size": "sm",
|
|
1409
1630
|
"aria-label": msg.datePickerNextMonth,
|
|
1410
|
-
children: /* @__PURE__ */ (0,
|
|
1631
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon, { name: "chevron-right", size: 16 })
|
|
1411
1632
|
}
|
|
1412
1633
|
)
|
|
1413
1634
|
] }),
|
|
1414
|
-
/* @__PURE__ */ (0,
|
|
1415
|
-
/* @__PURE__ */ (0,
|
|
1416
|
-
/* @__PURE__ */ (0,
|
|
1635
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_aria_components19.CalendarGrid, { className: "pire-calendar-grid", children: [
|
|
1636
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.CalendarGridHeader, { children: (day) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.CalendarHeaderCell, { children: day }) }),
|
|
1637
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.CalendarGridBody, { children: (date) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_aria_components19.CalendarCell, { date, className: "pire-calendar-cell" }) })
|
|
1417
1638
|
] })
|
|
1418
1639
|
] })
|
|
1419
1640
|
] }) })
|
|
@@ -1430,7 +1651,7 @@ var React8 = __toESM(require("react"), 1);
|
|
|
1430
1651
|
|
|
1431
1652
|
// src/components/feedback/Dialog.tsx
|
|
1432
1653
|
var import_react_aria_components20 = require("react-aria-components");
|
|
1433
|
-
var
|
|
1654
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1434
1655
|
function Dialog({
|
|
1435
1656
|
isOpen,
|
|
1436
1657
|
onOpenChange,
|
|
@@ -1450,7 +1671,7 @@ function Dialog({
|
|
|
1450
1671
|
onClose?.();
|
|
1451
1672
|
onOpenChange?.(false);
|
|
1452
1673
|
};
|
|
1453
|
-
return /* @__PURE__ */ (0,
|
|
1674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1454
1675
|
import_react_aria_components20.ModalOverlay,
|
|
1455
1676
|
{
|
|
1456
1677
|
className: "pire-modal-overlay",
|
|
@@ -1459,16 +1680,16 @@ function Dialog({
|
|
|
1459
1680
|
onOpenChange: (o) => {
|
|
1460
1681
|
if (!o) close();
|
|
1461
1682
|
},
|
|
1462
|
-
children: /* @__PURE__ */ (0,
|
|
1463
|
-
title ? /* @__PURE__ */ (0,
|
|
1464
|
-
/* @__PURE__ */ (0,
|
|
1465
|
-
/* @__PURE__ */ (0,
|
|
1466
|
-
subtitle ? /* @__PURE__ */ (0,
|
|
1683
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_aria_components20.Modal, { className: cx("pire-modal", className), "data-size": size, style, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_aria_components20.Dialog, { className: "pire-dialog", children: [
|
|
1684
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("header", { className: "pire-dialog-head", children: [
|
|
1685
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
1686
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_aria_components20.Heading, { slot: "title", className: "pire-dialog-title", children: title }),
|
|
1687
|
+
subtitle ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "pire-dialog-sub", style: { margin: 0 }, children: subtitle }) : null
|
|
1467
1688
|
] }),
|
|
1468
|
-
showClose ? /* @__PURE__ */ (0,
|
|
1689
|
+
showClose ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(IconButton, { icon: "x", label: msg.dialogClose, size: "sm", onPress: close }) : null
|
|
1469
1690
|
] }) : null,
|
|
1470
|
-
/* @__PURE__ */ (0,
|
|
1471
|
-
footer ? /* @__PURE__ */ (0,
|
|
1691
|
+
children ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "pire-dialog-body", children }) : null,
|
|
1692
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("footer", { className: "pire-dialog-foot", children: footer }) : null
|
|
1472
1693
|
] }) })
|
|
1473
1694
|
}
|
|
1474
1695
|
);
|
|
@@ -1478,9 +1699,9 @@ function Dialog({
|
|
|
1478
1699
|
var import_react_aria_components21 = require("react-aria-components");
|
|
1479
1700
|
|
|
1480
1701
|
// src/components/feedback/Skeleton.tsx
|
|
1481
|
-
var
|
|
1702
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1482
1703
|
function Skeleton({ shape = "text", width, height, className, style, ...rest }) {
|
|
1483
|
-
return /* @__PURE__ */ (0,
|
|
1704
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1484
1705
|
"div",
|
|
1485
1706
|
{
|
|
1486
1707
|
className: cx("pire-skeleton", className),
|
|
@@ -1494,7 +1715,7 @@ function Skeleton({ shape = "text", width, height, className, style, ...rest })
|
|
|
1494
1715
|
var BAR_WIDTHS = ["72%", "54%", "86%", "63%"];
|
|
1495
1716
|
function SkeletonTableRow({ columns, density = "regular", className, style, ...rest }) {
|
|
1496
1717
|
const cells = typeof columns === "number" ? Array.from({ length: columns }, () => ({})) : columns;
|
|
1497
|
-
return /* @__PURE__ */ (0,
|
|
1718
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1498
1719
|
"div",
|
|
1499
1720
|
{
|
|
1500
1721
|
className: cx("pire-skeleton-row", className),
|
|
@@ -1506,13 +1727,13 @@ function SkeletonTableRow({ columns, density = "regular", className, style, ...r
|
|
|
1506
1727
|
const align = c.numeric ? "right" : c.align ?? "left";
|
|
1507
1728
|
return (
|
|
1508
1729
|
// biome-ignore lint/suspicious/noArrayIndexKey: columns are positional and never reordered.
|
|
1509
|
-
/* @__PURE__ */ (0,
|
|
1730
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1510
1731
|
"div",
|
|
1511
1732
|
{
|
|
1512
1733
|
className: "pire-skeleton-cell",
|
|
1513
1734
|
"data-align": align,
|
|
1514
1735
|
style: { width: c.width, flex: c.width ? "0 0 auto" : void 0 },
|
|
1515
|
-
children: /* @__PURE__ */ (0,
|
|
1736
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Skeleton, { width: BAR_WIDTHS[i % BAR_WIDTHS.length] })
|
|
1516
1737
|
},
|
|
1517
1738
|
i
|
|
1518
1739
|
)
|
|
@@ -1523,7 +1744,7 @@ function SkeletonTableRow({ columns, density = "regular", className, style, ...r
|
|
|
1523
1744
|
}
|
|
1524
1745
|
|
|
1525
1746
|
// src/components/data/DataTable.tsx
|
|
1526
|
-
var
|
|
1747
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1527
1748
|
function DataTable({
|
|
1528
1749
|
columns,
|
|
1529
1750
|
rows,
|
|
@@ -1555,14 +1776,14 @@ function DataTable({
|
|
|
1555
1776
|
...columns.map((c) => ({ width: c.width, align: c.align, numeric: c.numeric }))
|
|
1556
1777
|
];
|
|
1557
1778
|
const body = isLoading ? [] : rows;
|
|
1558
|
-
return /* @__PURE__ */ (0,
|
|
1779
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1559
1780
|
"div",
|
|
1560
1781
|
{
|
|
1561
1782
|
className: cx("pire-table-wrap", className),
|
|
1562
1783
|
style,
|
|
1563
1784
|
"data-loading": isLoading ? "true" : void 0,
|
|
1564
1785
|
"aria-busy": isLoading ? "true" : void 0,
|
|
1565
|
-
children: /* @__PURE__ */ (0,
|
|
1786
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
1566
1787
|
import_react_aria_components21.Table,
|
|
1567
1788
|
{
|
|
1568
1789
|
className: "pire-table",
|
|
@@ -1579,9 +1800,9 @@ function DataTable({
|
|
|
1579
1800
|
if (row) onRowAction(row);
|
|
1580
1801
|
} : void 0,
|
|
1581
1802
|
children: [
|
|
1582
|
-
/* @__PURE__ */ (0,
|
|
1583
|
-
selectable ? /* @__PURE__ */ (0,
|
|
1584
|
-
columns.map((c, i) => /* @__PURE__ */ (0,
|
|
1803
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_aria_components21.TableHeader, { className: "pire-thead-row", children: [
|
|
1804
|
+
selectable ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_aria_components21.Column, { className: "pire-th", width: 44, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Checkbox, { slot: "selection", "aria-label": msg.dataTableSelectAll }) }) : null,
|
|
1805
|
+
columns.map((c, i) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1585
1806
|
import_react_aria_components21.Column,
|
|
1586
1807
|
{
|
|
1587
1808
|
id: c.key,
|
|
@@ -1591,9 +1812,9 @@ function DataTable({
|
|
|
1591
1812
|
width: c.width,
|
|
1592
1813
|
"data-align": c.numeric || c.align === "right" ? "right" : c.align,
|
|
1593
1814
|
"data-allows-sorting": c.sortable ? "true" : void 0,
|
|
1594
|
-
children: /* @__PURE__ */ (0,
|
|
1815
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("span", { className: "pire-th-inner", children: [
|
|
1595
1816
|
c.label,
|
|
1596
|
-
c.sortable ? /* @__PURE__ */ (0,
|
|
1817
|
+
c.sortable ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1597
1818
|
Icon,
|
|
1598
1819
|
{
|
|
1599
1820
|
size: 12,
|
|
@@ -1606,15 +1827,15 @@ function DataTable({
|
|
|
1606
1827
|
c.key
|
|
1607
1828
|
))
|
|
1608
1829
|
] }),
|
|
1609
|
-
/* @__PURE__ */ (0,
|
|
1610
|
-
/* @__PURE__ */ (0,
|
|
1830
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_aria_components21.TableBody, { renderEmptyState: () => isLoading ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "pire-table-loading", role: "status", "aria-live": "polite", children: [
|
|
1831
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "pire-sr-only", children: loadingLabel ?? msg.dataTableLoading }),
|
|
1611
1832
|
Array.from({ length: skeletonRows }, (_, i) => (
|
|
1612
1833
|
// biome-ignore lint/suspicious/noArrayIndexKey: placeholder rows are positional.
|
|
1613
|
-
/* @__PURE__ */ (0,
|
|
1834
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(SkeletonTableRow, { columns: skeletonColumns, density }, i)
|
|
1614
1835
|
))
|
|
1615
|
-
] }) : /* @__PURE__ */ (0,
|
|
1616
|
-
selectable ? /* @__PURE__ */ (0,
|
|
1617
|
-
columns.map((c) => /* @__PURE__ */ (0,
|
|
1836
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "pire-table-empty", children: emptyLabel }), children: body.map((row) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_aria_components21.Row, { id: row.id, className: "pire-tr", "data-pressable": onRowAction ? "true" : void 0, children: [
|
|
1837
|
+
selectable ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_aria_components21.Cell, { className: "pire-td", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Checkbox, { slot: "selection", "aria-label": msg.dataTableSelectRow }) }) : null,
|
|
1838
|
+
columns.map((c) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1618
1839
|
import_react_aria_components21.Cell,
|
|
1619
1840
|
{
|
|
1620
1841
|
className: "pire-td",
|
|
@@ -1633,14 +1854,18 @@ function DataTable({
|
|
|
1633
1854
|
}
|
|
1634
1855
|
|
|
1635
1856
|
// src/components/patterns/ValueHelpDialog.tsx
|
|
1636
|
-
var
|
|
1857
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
1637
1858
|
function ValueHelpDialog({
|
|
1638
1859
|
isOpen,
|
|
1639
|
-
title
|
|
1860
|
+
title,
|
|
1640
1861
|
columns = [],
|
|
1641
1862
|
rows = [],
|
|
1642
|
-
searchPlaceholder
|
|
1863
|
+
searchPlaceholder,
|
|
1643
1864
|
emptyLabel,
|
|
1865
|
+
onSearch,
|
|
1866
|
+
isFilteredExternally,
|
|
1867
|
+
isLoading,
|
|
1868
|
+
onLoadMore,
|
|
1644
1869
|
onSelect,
|
|
1645
1870
|
onClose
|
|
1646
1871
|
}) {
|
|
@@ -1650,52 +1875,61 @@ function ValueHelpDialog({
|
|
|
1650
1875
|
if (isOpen) setQuery("");
|
|
1651
1876
|
}, [isOpen]);
|
|
1652
1877
|
const filtered = React8.useMemo(() => {
|
|
1878
|
+
if (isFilteredExternally) return rows;
|
|
1653
1879
|
const q = query.trim().toLowerCase();
|
|
1654
1880
|
if (!q) return rows;
|
|
1655
1881
|
return rows.filter((row) => Object.values(row).some((v) => String(v).toLowerCase().includes(q)));
|
|
1656
|
-
}, [rows, query]);
|
|
1657
|
-
|
|
1882
|
+
}, [rows, query, isFilteredExternally]);
|
|
1883
|
+
const handleSearch = (value) => {
|
|
1884
|
+
setQuery(value);
|
|
1885
|
+
onSearch?.(value);
|
|
1886
|
+
};
|
|
1887
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1658
1888
|
Dialog,
|
|
1659
1889
|
{
|
|
1660
1890
|
isOpen,
|
|
1661
1891
|
size: "lg",
|
|
1662
|
-
title,
|
|
1892
|
+
title: title ?? msg.valueHelpDialogTitle,
|
|
1663
1893
|
onClose,
|
|
1664
|
-
footer: /* @__PURE__ */ (0,
|
|
1665
|
-
children: /* @__PURE__ */ (0,
|
|
1666
|
-
/* @__PURE__ */ (0,
|
|
1894
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Button, { variant: "tertiary", onPress: onClose, children: msg.valueHelpDialogCancel }),
|
|
1895
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "var(--sp-3)" }, children: [
|
|
1896
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1667
1897
|
Input,
|
|
1668
1898
|
{
|
|
1669
1899
|
"aria-label": msg.valueHelpDialogSearch,
|
|
1670
1900
|
icon: "search",
|
|
1671
1901
|
type: "search",
|
|
1672
1902
|
value: query,
|
|
1673
|
-
onChange:
|
|
1674
|
-
placeholder: searchPlaceholder,
|
|
1903
|
+
onChange: handleSearch,
|
|
1904
|
+
placeholder: searchPlaceholder ?? msg.valueHelpDialogSearchPlaceholder,
|
|
1675
1905
|
autoFocus: true
|
|
1676
1906
|
}
|
|
1677
1907
|
),
|
|
1678
|
-
/* @__PURE__ */ (0,
|
|
1908
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { onScroll: onLoadMore ? (event) => {
|
|
1909
|
+
const el = event.currentTarget;
|
|
1910
|
+
if (el.scrollHeight - el.scrollTop - el.clientHeight < 64) onLoadMore();
|
|
1911
|
+
} : void 0, style: { overflow: "auto", maxHeight: "48vh" }, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1679
1912
|
DataTable,
|
|
1680
1913
|
{
|
|
1681
|
-
"aria-label": typeof title === "string" ? title :
|
|
1914
|
+
"aria-label": typeof title === "string" ? title : msg.valueHelpDialogTitle,
|
|
1682
1915
|
density: "condensed",
|
|
1683
1916
|
columns,
|
|
1684
1917
|
rows: filtered,
|
|
1685
|
-
|
|
1918
|
+
isLoading,
|
|
1919
|
+
emptyLabel: emptyLabel ?? msg.valueHelpDialogEmpty,
|
|
1686
1920
|
onRowAction: (row) => {
|
|
1687
1921
|
onSelect?.(row);
|
|
1688
1922
|
onClose?.();
|
|
1689
1923
|
}
|
|
1690
1924
|
}
|
|
1691
|
-
)
|
|
1925
|
+
) })
|
|
1692
1926
|
] })
|
|
1693
1927
|
}
|
|
1694
1928
|
);
|
|
1695
1929
|
}
|
|
1696
1930
|
|
|
1697
1931
|
// src/components/forms/ValueHelpField.tsx
|
|
1698
|
-
var
|
|
1932
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
1699
1933
|
var defaultFormat = (row) => [row.id, row.name ?? row.label ?? row.text].filter(Boolean).join(" \u2014 ");
|
|
1700
1934
|
function ValueHelpField({
|
|
1701
1935
|
label,
|
|
@@ -1705,7 +1939,12 @@ function ValueHelpField({
|
|
|
1705
1939
|
rows = [],
|
|
1706
1940
|
columns = [],
|
|
1707
1941
|
dialogTitle,
|
|
1708
|
-
|
|
1942
|
+
onSearch,
|
|
1943
|
+
isFilteredExternally,
|
|
1944
|
+
isLoading,
|
|
1945
|
+
onLoadMore,
|
|
1946
|
+
emptyLabel,
|
|
1947
|
+
placeholder,
|
|
1709
1948
|
description,
|
|
1710
1949
|
errorMessage,
|
|
1711
1950
|
isInvalid,
|
|
@@ -1717,51 +1956,54 @@ function ValueHelpField({
|
|
|
1717
1956
|
}) {
|
|
1718
1957
|
const msg = usePireMessages();
|
|
1719
1958
|
const [open, setOpen] = React9.useState(false);
|
|
1720
|
-
return /* @__PURE__ */ (0,
|
|
1721
|
-
/* @__PURE__ */ (0,
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
] }),
|
|
1757
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1959
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: cx(className), style, children: [
|
|
1960
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1961
|
+
Input,
|
|
1962
|
+
{
|
|
1963
|
+
label,
|
|
1964
|
+
isReadOnly: true,
|
|
1965
|
+
isInvalid,
|
|
1966
|
+
isDisabled,
|
|
1967
|
+
isRequired,
|
|
1968
|
+
value: value ? format(value) : "",
|
|
1969
|
+
placeholder: placeholder ?? msg.valueHelpFieldPlaceholder,
|
|
1970
|
+
description,
|
|
1971
|
+
errorMessage,
|
|
1972
|
+
suffix: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("span", { className: "pire-valuehelp-actions", children: [
|
|
1973
|
+
allowsClear && value ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1974
|
+
IconButton,
|
|
1975
|
+
{
|
|
1976
|
+
icon: "x",
|
|
1977
|
+
label: msg.valueHelpFieldClear,
|
|
1978
|
+
isDisabled,
|
|
1979
|
+
onPress: () => onChange?.(null)
|
|
1980
|
+
}
|
|
1981
|
+
) : null,
|
|
1982
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1983
|
+
IconButton,
|
|
1984
|
+
{
|
|
1985
|
+
icon: "search",
|
|
1986
|
+
label: typeof label === "string" ? msg.valueHelpFieldOpenNamed.replace("{label}", label.toLowerCase()) : msg.valueHelpFieldOpen,
|
|
1987
|
+
isDisabled,
|
|
1988
|
+
onPress: () => setOpen(true)
|
|
1989
|
+
}
|
|
1990
|
+
)
|
|
1991
|
+
] })
|
|
1992
|
+
}
|
|
1993
|
+
),
|
|
1994
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1758
1995
|
ValueHelpDialog,
|
|
1759
1996
|
{
|
|
1760
1997
|
isOpen: open,
|
|
1761
1998
|
onClose: () => setOpen(false),
|
|
1762
|
-
title: dialogTitle ?? label
|
|
1999
|
+
title: dialogTitle ?? label,
|
|
1763
2000
|
columns,
|
|
1764
2001
|
rows,
|
|
2002
|
+
onSearch,
|
|
2003
|
+
isFilteredExternally,
|
|
2004
|
+
isLoading,
|
|
2005
|
+
onLoadMore,
|
|
2006
|
+
emptyLabel,
|
|
1765
2007
|
onSelect: (row) => onChange?.(row)
|
|
1766
2008
|
}
|
|
1767
2009
|
)
|
|
@@ -1774,7 +2016,7 @@ var import_react_aria_components23 = require("react-aria-components");
|
|
|
1774
2016
|
|
|
1775
2017
|
// src/components/feedback/ProgressBar.tsx
|
|
1776
2018
|
var import_react_aria_components22 = require("react-aria-components");
|
|
1777
|
-
var
|
|
2019
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
1778
2020
|
function ProgressBar({
|
|
1779
2021
|
value = 0,
|
|
1780
2022
|
minValue = 0,
|
|
@@ -1787,7 +2029,7 @@ function ProgressBar({
|
|
|
1787
2029
|
className,
|
|
1788
2030
|
style
|
|
1789
2031
|
}) {
|
|
1790
|
-
return /* @__PURE__ */ (0,
|
|
2032
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1791
2033
|
import_react_aria_components22.ProgressBar,
|
|
1792
2034
|
{
|
|
1793
2035
|
className: cx("pire-progress", className),
|
|
@@ -1798,19 +2040,19 @@ function ProgressBar({
|
|
|
1798
2040
|
maxValue,
|
|
1799
2041
|
isIndeterminate,
|
|
1800
2042
|
style,
|
|
1801
|
-
children: ({ percentage, valueText }) => /* @__PURE__ */ (0,
|
|
1802
|
-
label || showValue ? /* @__PURE__ */ (0,
|
|
1803
|
-
label ? /* @__PURE__ */ (0,
|
|
1804
|
-
showValue && !isIndeterminate ? /* @__PURE__ */ (0,
|
|
2043
|
+
children: ({ percentage, valueText }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: [
|
|
2044
|
+
label || showValue ? /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "pire-progress-head", children: [
|
|
2045
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_aria_components22.Label, { children: label }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", {}),
|
|
2046
|
+
showValue && !isIndeterminate ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "pire-numeric", children: valueText }) : null
|
|
1805
2047
|
] }) : null,
|
|
1806
|
-
/* @__PURE__ */ (0,
|
|
2048
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "pire-progress-track", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "pire-progress-fill", style: { width: `${isIndeterminate ? 40 : percentage}%` } }) })
|
|
1807
2049
|
] })
|
|
1808
2050
|
}
|
|
1809
2051
|
);
|
|
1810
2052
|
}
|
|
1811
2053
|
|
|
1812
2054
|
// src/components/forms/FileUpload.tsx
|
|
1813
|
-
var
|
|
2055
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
1814
2056
|
var isImage = (file) => file.type.startsWith("image/");
|
|
1815
2057
|
function formatFileSize(bytes) {
|
|
1816
2058
|
if (bytes < 1024) return `${bytes} B`;
|
|
@@ -1882,7 +2124,7 @@ function FileUpload({
|
|
|
1882
2124
|
commit(allowsMultiple ? [...files, ...wrapped] : wrapped.slice(0, 1));
|
|
1883
2125
|
};
|
|
1884
2126
|
const remove = (target) => commit(files.filter((f) => f.file !== target));
|
|
1885
|
-
return /* @__PURE__ */ (0,
|
|
2127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
1886
2128
|
"div",
|
|
1887
2129
|
{
|
|
1888
2130
|
className: cx("pire-field", "pire-fileupload", className),
|
|
@@ -1890,24 +2132,24 @@ function FileUpload({
|
|
|
1890
2132
|
"data-full-width": String(fullWidth),
|
|
1891
2133
|
"data-invalid": isInvalid ? "true" : void 0,
|
|
1892
2134
|
children: [
|
|
1893
|
-
label ? /* @__PURE__ */ (0,
|
|
2135
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("span", { className: "pire-field-label", children: [
|
|
1894
2136
|
label,
|
|
1895
|
-
isRequired ? /* @__PURE__ */ (0,
|
|
2137
|
+
isRequired ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
1896
2138
|
] }) : null,
|
|
1897
|
-
/* @__PURE__ */ (0,
|
|
2139
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1898
2140
|
import_react_aria_components23.FileTrigger,
|
|
1899
2141
|
{
|
|
1900
2142
|
acceptedFileTypes,
|
|
1901
2143
|
allowsMultiple,
|
|
1902
2144
|
onSelect: accept,
|
|
1903
|
-
children: /* @__PURE__ */ (0,
|
|
2145
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Button, { icon: "paperclip", isDisabled: isDisabled || isReadOnly, children: chooseLabel ?? msg.fileUploadChoose })
|
|
1904
2146
|
}
|
|
1905
2147
|
),
|
|
1906
|
-
files.length ? /* @__PURE__ */ (0,
|
|
1907
|
-
previewUrl ? /* @__PURE__ */ (0,
|
|
1908
|
-
/* @__PURE__ */ (0,
|
|
1909
|
-
/* @__PURE__ */ (0,
|
|
1910
|
-
isDisabled || isReadOnly ? null : /* @__PURE__ */ (0,
|
|
2148
|
+
files.length ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("ul", { className: "pire-fileupload-list", children: files.map(({ file, previewUrl }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("li", { className: "pire-fileupload-item", children: [
|
|
2149
|
+
previewUrl ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("img", { className: "pire-fileupload-thumb", src: previewUrl, alt: "" }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon, { name: "file-text", size: 16, className: "pire-fileupload-icon" }),
|
|
2150
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "pire-fileupload-name", children: file.name }),
|
|
2151
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "pire-fileupload-size", children: formatFileSize(file.size) }),
|
|
2152
|
+
isDisabled || isReadOnly ? null : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1911
2153
|
IconButton,
|
|
1912
2154
|
{
|
|
1913
2155
|
icon: "x",
|
|
@@ -1917,16 +2159,17 @@ function FileUpload({
|
|
|
1917
2159
|
}
|
|
1918
2160
|
)
|
|
1919
2161
|
] }, `${file.name}-${file.size}-${file.lastModified}`)) }) : null,
|
|
1920
|
-
uploadProgress != null ? /* @__PURE__ */ (0,
|
|
1921
|
-
description ? /* @__PURE__ */ (0,
|
|
1922
|
-
isInvalid && errorMessage ? /* @__PURE__ */ (0,
|
|
2162
|
+
uploadProgress != null ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ProgressBar, { value: uploadProgress, label: msg.fileUploadUploading }) : null,
|
|
2163
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react_aria_components23.Text, { slot: "description", className: "pire-field-hint", children: description }) : null,
|
|
2164
|
+
isInvalid && errorMessage ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "pire-field-error", children: errorMessage }) : null
|
|
1923
2165
|
]
|
|
1924
2166
|
}
|
|
1925
2167
|
);
|
|
1926
2168
|
}
|
|
1927
2169
|
|
|
1928
2170
|
// src/components/navigation/ShellBar.tsx
|
|
1929
|
-
var
|
|
2171
|
+
var import_react_aria_components24 = require("react-aria-components");
|
|
2172
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
1930
2173
|
var initials2 = (name) => name.trim().split(/\s+/).slice(0, 2).map((p) => p[0]).join("").toUpperCase();
|
|
1931
2174
|
function ShellBar({
|
|
1932
2175
|
product,
|
|
@@ -1938,33 +2181,51 @@ function ShellBar({
|
|
|
1938
2181
|
searchLabel = "Search",
|
|
1939
2182
|
actions,
|
|
1940
2183
|
user,
|
|
2184
|
+
userMenu,
|
|
2185
|
+
userMenuLabel,
|
|
1941
2186
|
className,
|
|
1942
2187
|
...rest
|
|
1943
2188
|
}) {
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
/* @__PURE__ */ (0,
|
|
1950
|
-
|
|
2189
|
+
const msg = usePireMessages();
|
|
2190
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("header", { className: cx("pire-shellbar", className), ...rest, children: [
|
|
2191
|
+
onMenu ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(IconButton, { icon: "menu", label: menuLabel, variant: "inverse", size: "sm", onPress: onMenu }) : null,
|
|
2192
|
+
monogram ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "pire-shellbar-mono", "aria-hidden": "true", children: monogram }) : null,
|
|
2193
|
+
product ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "pire-shellbar-product", children: product }) : null,
|
|
2194
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "pire-shellbar-title", children: title }) : null,
|
|
2195
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "pire-shellbar-spacer" }),
|
|
2196
|
+
onSearch ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(IconButton, { icon: "search", label: searchLabel, variant: "inverse", size: "sm", onPress: onSearch }) : null,
|
|
1951
2197
|
actions,
|
|
1952
|
-
user
|
|
2198
|
+
user && userMenu ? (
|
|
2199
|
+
// A real button, not the img-role span: the avatar is where "my profile", "switch company"
|
|
2200
|
+
// and "sign out" live in any ERP, and a span accepts neither focus nor onPress. Popover is
|
|
2201
|
+
// rendered here rather than expected from the consumer so the panel keeps shell placement.
|
|
2202
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_react_aria_components24.MenuTrigger, { children: [
|
|
2203
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2204
|
+
import_react_aria_components24.Button,
|
|
2205
|
+
{
|
|
2206
|
+
className: "pire-avatar pire-avatar-trigger",
|
|
2207
|
+
"aria-label": (userMenuLabel ?? msg.shellBarUserMenu).replace("{user}", user),
|
|
2208
|
+
children: initials2(user)
|
|
2209
|
+
}
|
|
2210
|
+
),
|
|
2211
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_aria_components24.Popover, { className: "pire-popover", children: userMenu })
|
|
2212
|
+
] })
|
|
2213
|
+
) : user ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "pire-avatar", title: user, "aria-label": user, role: "img", children: initials2(user) }) : null
|
|
1953
2214
|
] });
|
|
1954
2215
|
}
|
|
1955
2216
|
|
|
1956
2217
|
// src/components/navigation/SideNav.tsx
|
|
1957
2218
|
var React11 = __toESM(require("react"), 1);
|
|
1958
|
-
var
|
|
2219
|
+
var import_react_aria_components26 = require("react-aria-components");
|
|
1959
2220
|
|
|
1960
2221
|
// src/components/navigation/Menu.tsx
|
|
1961
|
-
var
|
|
1962
|
-
var
|
|
2222
|
+
var import_react_aria_components25 = require("react-aria-components");
|
|
2223
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
1963
2224
|
function Menu({ minWidth, className, style, ...rest }) {
|
|
1964
2225
|
const width = typeof minWidth === "number" ? `${minWidth}px` : minWidth;
|
|
1965
2226
|
const menuStyle = width == null ? style : { ["--pire-menu-min-w"]: width, ...style };
|
|
1966
|
-
return /* @__PURE__ */ (0,
|
|
1967
|
-
|
|
2227
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2228
|
+
import_react_aria_components25.Menu,
|
|
1968
2229
|
{
|
|
1969
2230
|
className: cx("pire-menu", className),
|
|
1970
2231
|
style: menuStyle,
|
|
@@ -1972,6 +2233,11 @@ function Menu({ minWidth, className, style, ...rest }) {
|
|
|
1972
2233
|
}
|
|
1973
2234
|
);
|
|
1974
2235
|
}
|
|
2236
|
+
var shortcutKeys = (shortcut) => {
|
|
2237
|
+
if (shortcut == null) return [];
|
|
2238
|
+
const parts = Array.isArray(shortcut) ? shortcut : shortcut.split(/[+\s]+/);
|
|
2239
|
+
return parts.map((part) => part.trim()).filter(Boolean);
|
|
2240
|
+
};
|
|
1975
2241
|
function MenuItem({
|
|
1976
2242
|
children,
|
|
1977
2243
|
icon,
|
|
@@ -1981,35 +2247,36 @@ function MenuItem({
|
|
|
1981
2247
|
className,
|
|
1982
2248
|
...rest
|
|
1983
2249
|
}) {
|
|
1984
|
-
|
|
1985
|
-
|
|
2250
|
+
const keys = shortcutKeys(shortcut);
|
|
2251
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
2252
|
+
import_react_aria_components25.MenuItem,
|
|
1986
2253
|
{
|
|
1987
2254
|
className: cx("pire-menu-item", className),
|
|
1988
2255
|
"data-tone": tone === "danger" ? "danger" : void 0,
|
|
1989
2256
|
...rest,
|
|
1990
2257
|
children: [
|
|
1991
|
-
icon ? /* @__PURE__ */ (0,
|
|
1992
|
-
/* @__PURE__ */ (0,
|
|
1993
|
-
/* @__PURE__ */ (0,
|
|
1994
|
-
description ? /* @__PURE__ */ (0,
|
|
2258
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Icon, { name: icon, size: 16, className: "pire-menu-item-icon" }) : null,
|
|
2259
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("span", { className: "pire-menu-item-body", children: [
|
|
2260
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "pire-menu-item-label", children }),
|
|
2261
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "pire-menu-item-desc", children: description }) : null
|
|
1995
2262
|
] }),
|
|
1996
|
-
|
|
2263
|
+
keys.length ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "pire-menu-item-shortcut", children: keys.map((cap, index) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Kbd, { size: "sm", children: cap }, `${cap}-${index}`)) }) : null
|
|
1997
2264
|
]
|
|
1998
2265
|
}
|
|
1999
2266
|
);
|
|
2000
2267
|
}
|
|
2001
2268
|
function MenuSection({ title, children, className, ...rest }) {
|
|
2002
|
-
return /* @__PURE__ */ (0,
|
|
2003
|
-
title ? /* @__PURE__ */ (0,
|
|
2269
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_react_aria_components25.MenuSection, { className: cx("pire-menu-section", className), ...rest, children: [
|
|
2270
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_aria_components25.Header, { className: "pire-menu-section-title", children: title }) : null,
|
|
2004
2271
|
children
|
|
2005
2272
|
] });
|
|
2006
2273
|
}
|
|
2007
2274
|
function MenuSeparator({ className }) {
|
|
2008
|
-
return /* @__PURE__ */ (0,
|
|
2275
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_aria_components25.Separator, { className: cx("pire-menu-separator", className) });
|
|
2009
2276
|
}
|
|
2010
2277
|
|
|
2011
2278
|
// src/components/navigation/SideNav.tsx
|
|
2012
|
-
var
|
|
2279
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
2013
2280
|
function findActiveParent(groups, value) {
|
|
2014
2281
|
if (value == null) return void 0;
|
|
2015
2282
|
for (const group of groups) {
|
|
@@ -2058,8 +2325,8 @@ function SideNav({
|
|
|
2058
2325
|
};
|
|
2059
2326
|
const renderRow = (item, onPress, isGroup) => {
|
|
2060
2327
|
const selected = !isGroup && item.id === value;
|
|
2061
|
-
const button = /* @__PURE__ */ (0,
|
|
2062
|
-
|
|
2328
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
2329
|
+
import_react_aria_components26.Button,
|
|
2063
2330
|
{
|
|
2064
2331
|
className: "pire-sidenav-item",
|
|
2065
2332
|
"data-selected": selected ? "true" : void 0,
|
|
@@ -2068,70 +2335,70 @@ function SideNav({
|
|
|
2068
2335
|
"aria-label": collapsed ? item.label : void 0,
|
|
2069
2336
|
onPress,
|
|
2070
2337
|
children: [
|
|
2071
|
-
item.icon ? /* @__PURE__ */ (0,
|
|
2072
|
-
collapsed ? null : /* @__PURE__ */ (0,
|
|
2073
|
-
item.count != null && !collapsed ? /* @__PURE__ */ (0,
|
|
2338
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { name: item.icon, size: 16 }) : null,
|
|
2339
|
+
collapsed ? null : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { children: item.label }),
|
|
2340
|
+
item.count != null && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "pire-sidenav-count", children: item.count }) : null
|
|
2074
2341
|
]
|
|
2075
2342
|
},
|
|
2076
2343
|
item.id
|
|
2077
2344
|
);
|
|
2078
|
-
return collapsed ? /* @__PURE__ */ (0,
|
|
2345
|
+
return collapsed ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Tooltip, { label: item.label, placement: "right", children: button }, item.id) : button;
|
|
2079
2346
|
};
|
|
2080
|
-
const renderRailFlyout = (item) => /* @__PURE__ */ (0,
|
|
2081
|
-
/* @__PURE__ */ (0,
|
|
2082
|
-
|
|
2347
|
+
const renderRailFlyout = (item) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react_aria_components26.MenuTrigger, { children: [
|
|
2348
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2349
|
+
import_react_aria_components26.Button,
|
|
2083
2350
|
{
|
|
2084
2351
|
className: "pire-sidenav-item",
|
|
2085
2352
|
"aria-label": item.label,
|
|
2086
2353
|
"data-active-child": item.id === activeParent ? "true" : void 0,
|
|
2087
|
-
children: item.icon ? /* @__PURE__ */ (0,
|
|
2354
|
+
children: item.icon ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { name: item.icon, size: 16 }) : null
|
|
2088
2355
|
}
|
|
2089
2356
|
),
|
|
2090
|
-
/* @__PURE__ */ (0,
|
|
2357
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_aria_components26.Popover, { className: "pire-popover", placement: "right top", offset: 4, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2091
2358
|
Menu,
|
|
2092
2359
|
{
|
|
2093
2360
|
"aria-label": item.label,
|
|
2094
2361
|
className: "pire-sidenav-flyout",
|
|
2095
2362
|
onAction: (key) => onChange?.(String(key)),
|
|
2096
|
-
children: (item.items ?? []).map((child) => /* @__PURE__ */ (0,
|
|
2363
|
+
children: (item.items ?? []).map((child) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(MenuItem, { id: child.id, children: child.label }, child.id))
|
|
2097
2364
|
}
|
|
2098
2365
|
) })
|
|
2099
2366
|
] }, item.id);
|
|
2100
|
-
const renderSection = (item) => /* @__PURE__ */ (0,
|
|
2101
|
-
/* @__PURE__ */ (0,
|
|
2102
|
-
|
|
2367
|
+
const renderSection = (item) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_react_aria_components26.Disclosure, { id: item.id, className: "pire-sidenav-section", children: [
|
|
2368
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
2369
|
+
import_react_aria_components26.Button,
|
|
2103
2370
|
{
|
|
2104
2371
|
slot: "trigger",
|
|
2105
2372
|
className: "pire-sidenav-item",
|
|
2106
2373
|
"data-kind": "group",
|
|
2107
2374
|
"data-active-child": item.id === activeParent ? "true" : void 0,
|
|
2108
2375
|
children: [
|
|
2109
|
-
item.icon ? /* @__PURE__ */ (0,
|
|
2110
|
-
/* @__PURE__ */ (0,
|
|
2111
|
-
item.count != null ? /* @__PURE__ */ (0,
|
|
2112
|
-
/* @__PURE__ */ (0,
|
|
2376
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { name: item.icon, size: 16 }) : null,
|
|
2377
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { children: item.label }),
|
|
2378
|
+
item.count != null ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "pire-sidenav-count", children: item.count }) : null,
|
|
2379
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { name: "chevron-down", size: 16, className: "pire-sidenav-chevron" })
|
|
2113
2380
|
]
|
|
2114
2381
|
}
|
|
2115
2382
|
),
|
|
2116
|
-
/* @__PURE__ */ (0,
|
|
2383
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_aria_components26.DisclosurePanel, { className: "pire-sidenav-subnav", children: item.items?.map((child) => {
|
|
2117
2384
|
const selected = child.id === value;
|
|
2118
|
-
return /* @__PURE__ */ (0,
|
|
2119
|
-
|
|
2385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
2386
|
+
import_react_aria_components26.Button,
|
|
2120
2387
|
{
|
|
2121
2388
|
className: "pire-sidenav-item pire-sidenav-subitem",
|
|
2122
2389
|
"data-selected": selected ? "true" : void 0,
|
|
2123
2390
|
"aria-current": selected ? "page" : void 0,
|
|
2124
2391
|
onPress: () => onChange?.(child.id),
|
|
2125
2392
|
children: [
|
|
2126
|
-
/* @__PURE__ */ (0,
|
|
2127
|
-
child.count != null ? /* @__PURE__ */ (0,
|
|
2393
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { children: child.label }),
|
|
2394
|
+
child.count != null ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "pire-sidenav-count", children: child.count }) : null
|
|
2128
2395
|
]
|
|
2129
2396
|
},
|
|
2130
2397
|
child.id
|
|
2131
2398
|
);
|
|
2132
2399
|
}) })
|
|
2133
2400
|
] }, item.id);
|
|
2134
|
-
return /* @__PURE__ */ (0,
|
|
2401
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
2135
2402
|
"nav",
|
|
2136
2403
|
{
|
|
2137
2404
|
className: cx("pire-sidenav", className),
|
|
@@ -2147,10 +2414,10 @@ function SideNav({
|
|
|
2147
2414
|
if (isGroup && collapsed && railFlyout) return renderRailFlyout(item);
|
|
2148
2415
|
return renderRow(item, () => isGroup ? toggleExpanded(item.id) : onChange?.(item.id), isGroup);
|
|
2149
2416
|
});
|
|
2150
|
-
return /* @__PURE__ */ (0,
|
|
2151
|
-
group.label && !collapsed ? /* @__PURE__ */ (0,
|
|
2152
|
-
hasSections ? /* @__PURE__ */ (0,
|
|
2153
|
-
|
|
2417
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "pire-sidenav-group", children: [
|
|
2418
|
+
group.label && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "pire-sidenav-label", children: group.label }) : null,
|
|
2419
|
+
hasSections ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2420
|
+
import_react_aria_components26.DisclosureGroup,
|
|
2154
2421
|
{
|
|
2155
2422
|
className: "pire-sidenav-tree",
|
|
2156
2423
|
allowsMultipleExpanded: true,
|
|
@@ -2161,18 +2428,18 @@ function SideNav({
|
|
|
2161
2428
|
) : rows
|
|
2162
2429
|
] }, group.label ?? gi);
|
|
2163
2430
|
}),
|
|
2164
|
-
footer ? /* @__PURE__ */ (0,
|
|
2431
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "pire-sidenav-footer", children: footer }) : null
|
|
2165
2432
|
]
|
|
2166
2433
|
}
|
|
2167
2434
|
);
|
|
2168
2435
|
}
|
|
2169
2436
|
|
|
2170
2437
|
// src/components/navigation/Tabs.tsx
|
|
2171
|
-
var
|
|
2172
|
-
var
|
|
2438
|
+
var import_react_aria_components27 = require("react-aria-components");
|
|
2439
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
2173
2440
|
function Tabs({ items, value, defaultValue, onChange, panels, className, style, ...rest }) {
|
|
2174
|
-
return /* @__PURE__ */ (0,
|
|
2175
|
-
|
|
2441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
2442
|
+
import_react_aria_components27.Tabs,
|
|
2176
2443
|
{
|
|
2177
2444
|
className,
|
|
2178
2445
|
style,
|
|
@@ -2180,23 +2447,23 @@ function Tabs({ items, value, defaultValue, onChange, panels, className, style,
|
|
|
2180
2447
|
defaultSelectedKey: defaultValue,
|
|
2181
2448
|
onSelectionChange: (k) => onChange?.(String(k)),
|
|
2182
2449
|
children: [
|
|
2183
|
-
/* @__PURE__ */ (0,
|
|
2184
|
-
item.icon ? /* @__PURE__ */ (0,
|
|
2450
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_aria_components27.TabList, { className: "pire-tablist", items, "aria-label": rest["aria-label"] ?? "Views", children: (item) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_react_aria_components27.Tab, { className: cx("pire-tab"), id: item.id, isDisabled: item.isDisabled, children: [
|
|
2451
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Icon, { name: item.icon, size: 16 }) : null,
|
|
2185
2452
|
item.label,
|
|
2186
|
-
item.count != null ? /* @__PURE__ */ (0,
|
|
2453
|
+
item.count != null ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "pire-tab-count", children: item.count }) : null
|
|
2187
2454
|
] }) }),
|
|
2188
|
-
items.map((item) => /* @__PURE__ */ (0,
|
|
2455
|
+
items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_aria_components27.TabPanel, { id: item.id, className: panels ? "pire-tabpanel" : void 0, children: panels?.[item.id] }, item.id))
|
|
2189
2456
|
]
|
|
2190
2457
|
}
|
|
2191
2458
|
);
|
|
2192
2459
|
}
|
|
2193
2460
|
|
|
2194
2461
|
// src/components/navigation/Breadcrumb.tsx
|
|
2195
|
-
var
|
|
2196
|
-
var
|
|
2462
|
+
var import_react_aria_components28 = require("react-aria-components");
|
|
2463
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
2197
2464
|
function Breadcrumb({ items, onNavigate, className, style }) {
|
|
2198
|
-
return /* @__PURE__ */ (0,
|
|
2199
|
-
|
|
2465
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
2466
|
+
import_react_aria_components28.Breadcrumbs,
|
|
2200
2467
|
{
|
|
2201
2468
|
className: cx("pire-breadcrumbs", className),
|
|
2202
2469
|
style,
|
|
@@ -2204,9 +2471,9 @@ function Breadcrumb({ items, onNavigate, className, style }) {
|
|
|
2204
2471
|
onAction: (key) => onNavigate?.(String(key)),
|
|
2205
2472
|
children: (item) => {
|
|
2206
2473
|
const last = items[items.length - 1] === item;
|
|
2207
|
-
return /* @__PURE__ */ (0,
|
|
2208
|
-
last ? item.label : /* @__PURE__ */ (0,
|
|
2209
|
-
last ? null : /* @__PURE__ */ (0,
|
|
2474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_react_aria_components28.Breadcrumb, { className: "pire-breadcrumb", id: item.id ?? item.label, children: [
|
|
2475
|
+
last ? item.label : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_aria_components28.Link, { href: item.href, children: item.label }),
|
|
2476
|
+
last ? null : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Icon, { name: "chevron-right", size: 12, style: { color: "var(--text-tertiary)" } })
|
|
2210
2477
|
] });
|
|
2211
2478
|
}
|
|
2212
2479
|
}
|
|
@@ -2214,7 +2481,7 @@ function Breadcrumb({ items, onNavigate, className, style }) {
|
|
|
2214
2481
|
}
|
|
2215
2482
|
|
|
2216
2483
|
// src/components/navigation/Pagination.tsx
|
|
2217
|
-
var
|
|
2484
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
2218
2485
|
function Pagination({
|
|
2219
2486
|
page = 1,
|
|
2220
2487
|
pageSize = 25,
|
|
@@ -2229,9 +2496,9 @@ function Pagination({
|
|
|
2229
2496
|
const pages = Math.max(1, Math.ceil(total / pageSize));
|
|
2230
2497
|
const from = total === 0 ? 0 : (page - 1) * pageSize + 1;
|
|
2231
2498
|
const to = Math.min(total, page * pageSize);
|
|
2232
|
-
return /* @__PURE__ */ (0,
|
|
2233
|
-
/* @__PURE__ */ (0,
|
|
2234
|
-
/* @__PURE__ */ (0,
|
|
2499
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("nav", { className: cx("pire-pagination", className), style, "aria-label": msg.paginationLabel, children: [
|
|
2500
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "pire-pagination-count", children: msg.paginationRange.replace("{from}", from.toLocaleString()).replace("{to}", to.toLocaleString()).replace("{total}", total.toLocaleString()) }),
|
|
2501
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2235
2502
|
IconButton,
|
|
2236
2503
|
{
|
|
2237
2504
|
icon: "chevron-left",
|
|
@@ -2242,8 +2509,8 @@ function Pagination({
|
|
|
2242
2509
|
onPress: () => onPageChange?.(page - 1)
|
|
2243
2510
|
}
|
|
2244
2511
|
),
|
|
2245
|
-
/* @__PURE__ */ (0,
|
|
2246
|
-
/* @__PURE__ */ (0,
|
|
2512
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "pire-pagination-count", "aria-live": "polite", children: msg.paginationPageOf.replace("{page}", String(page)).replace("{pages}", String(pages)) }),
|
|
2513
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2247
2514
|
IconButton,
|
|
2248
2515
|
{
|
|
2249
2516
|
icon: "chevron-right",
|
|
@@ -2254,7 +2521,7 @@ function Pagination({
|
|
|
2254
2521
|
onPress: () => onPageChange?.(page + 1)
|
|
2255
2522
|
}
|
|
2256
2523
|
),
|
|
2257
|
-
onPageSizeChange ? /* @__PURE__ */ (0,
|
|
2524
|
+
onPageSizeChange ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
2258
2525
|
Select,
|
|
2259
2526
|
{
|
|
2260
2527
|
"aria-label": msg.paginationRowsPerPage,
|
|
@@ -2270,7 +2537,7 @@ function Pagination({
|
|
|
2270
2537
|
}
|
|
2271
2538
|
|
|
2272
2539
|
// src/components/feedback/InlineMessage.tsx
|
|
2273
|
-
var
|
|
2540
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
2274
2541
|
var KIND_ICON = {
|
|
2275
2542
|
info: "info",
|
|
2276
2543
|
success: "check-circle-2",
|
|
@@ -2280,7 +2547,7 @@ var KIND_ICON = {
|
|
|
2280
2547
|
function InlineMessage({ kind = "info", title, action, onClose, children, className, ...rest }) {
|
|
2281
2548
|
const msg = usePireMessages();
|
|
2282
2549
|
const assertive = kind === "error" || kind === "warning";
|
|
2283
|
-
return /* @__PURE__ */ (0,
|
|
2550
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
2284
2551
|
"div",
|
|
2285
2552
|
{
|
|
2286
2553
|
className: cx("pire-msg", className),
|
|
@@ -2289,13 +2556,13 @@ function InlineMessage({ kind = "info", title, action, onClose, children, classN
|
|
|
2289
2556
|
"aria-live": assertive ? "assertive" : "polite",
|
|
2290
2557
|
...rest,
|
|
2291
2558
|
children: [
|
|
2292
|
-
/* @__PURE__ */ (0,
|
|
2293
|
-
/* @__PURE__ */ (0,
|
|
2294
|
-
title ? /* @__PURE__ */ (0,
|
|
2295
|
-
children ? /* @__PURE__ */ (0,
|
|
2559
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Icon, { name: KIND_ICON[kind], size: 16, style: { marginTop: 2 } }),
|
|
2560
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { style: { flex: 1, display: "flex", flexDirection: "column", gap: "var(--sp-1)" }, children: [
|
|
2561
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "pire-msg-title", children: title }) : null,
|
|
2562
|
+
children ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "pire-msg-body", children }) : null,
|
|
2296
2563
|
action
|
|
2297
2564
|
] }),
|
|
2298
|
-
onClose ? /* @__PURE__ */ (0,
|
|
2565
|
+
onClose ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(IconButton, { icon: "x", label: msg.inlineMessageDismiss, size: "sm", onPress: onClose }) : null
|
|
2299
2566
|
]
|
|
2300
2567
|
}
|
|
2301
2568
|
);
|
|
@@ -2303,7 +2570,7 @@ function InlineMessage({ kind = "info", title, action, onClose, children, classN
|
|
|
2303
2570
|
|
|
2304
2571
|
// src/components/feedback/Toast.tsx
|
|
2305
2572
|
var React12 = __toESM(require("react"), 1);
|
|
2306
|
-
var
|
|
2573
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
2307
2574
|
var KIND_ICON2 = {
|
|
2308
2575
|
info: "info",
|
|
2309
2576
|
success: "check-circle-2",
|
|
@@ -2312,7 +2579,7 @@ var KIND_ICON2 = {
|
|
|
2312
2579
|
};
|
|
2313
2580
|
function Toast({ kind = "success", onClose, position = "bottom-center", children, className, ...rest }) {
|
|
2314
2581
|
const msg = usePireMessages();
|
|
2315
|
-
return /* @__PURE__ */ (0,
|
|
2582
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
2316
2583
|
"div",
|
|
2317
2584
|
{
|
|
2318
2585
|
className: cx("pire-toast", className),
|
|
@@ -2321,9 +2588,9 @@ function Toast({ kind = "success", onClose, position = "bottom-center", children
|
|
|
2321
2588
|
"aria-live": kind === "error" ? "assertive" : "polite",
|
|
2322
2589
|
...rest,
|
|
2323
2590
|
children: [
|
|
2324
|
-
/* @__PURE__ */ (0,
|
|
2325
|
-
/* @__PURE__ */ (0,
|
|
2326
|
-
onClose ? /* @__PURE__ */ (0,
|
|
2591
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Icon, { name: KIND_ICON2[kind], size: 16 }),
|
|
2592
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { style: { flex: 1 }, children }),
|
|
2593
|
+
onClose ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(IconButton, { icon: "x", label: msg.toastDismiss, size: "sm", variant: "inverse", onPress: onClose }) : null
|
|
2327
2594
|
]
|
|
2328
2595
|
}
|
|
2329
2596
|
);
|
|
@@ -2341,9 +2608,9 @@ function ToastProvider({ children, timeout = 6e3 }) {
|
|
|
2341
2608
|
return id;
|
|
2342
2609
|
}, [close, timeout]);
|
|
2343
2610
|
const value = React12.useMemo(() => ({ add, close }), [add, close]);
|
|
2344
|
-
return /* @__PURE__ */ (0,
|
|
2611
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(ToastContext.Provider, { value, children: [
|
|
2345
2612
|
children,
|
|
2346
|
-
/* @__PURE__ */ (0,
|
|
2613
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "pire-toast-region", role: "region", "aria-label": msg.toastRegionLabel, children: toasts.map((t) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Toast, { kind: t.kind, onClose: () => close(t.id), style: { position: "static", transform: "none" }, children: t.message }, t.id)) })
|
|
2347
2614
|
] });
|
|
2348
2615
|
}
|
|
2349
2616
|
function useToast() {
|
|
@@ -2353,8 +2620,8 @@ function useToast() {
|
|
|
2353
2620
|
}
|
|
2354
2621
|
|
|
2355
2622
|
// src/components/data/KpiTile.tsx
|
|
2356
|
-
var
|
|
2357
|
-
var
|
|
2623
|
+
var import_react_aria_components29 = require("react-aria-components");
|
|
2624
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
2358
2625
|
function KpiTile({
|
|
2359
2626
|
label,
|
|
2360
2627
|
value,
|
|
@@ -2370,50 +2637,50 @@ function KpiTile({
|
|
|
2370
2637
|
style
|
|
2371
2638
|
}) {
|
|
2372
2639
|
const tone = deltaTone ?? (deltaDirection === "down" ? "negative" : "positive");
|
|
2373
|
-
const body = /* @__PURE__ */ (0,
|
|
2374
|
-
/* @__PURE__ */ (0,
|
|
2375
|
-
icon ? /* @__PURE__ */ (0,
|
|
2640
|
+
const body = /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
|
|
2641
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "pire-kpi-label", children: [
|
|
2642
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Icon, { name: icon, size: 16 }) : null,
|
|
2376
2643
|
label
|
|
2377
2644
|
] }),
|
|
2378
|
-
/* @__PURE__ */ (0,
|
|
2645
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "pire-kpi-value", children: [
|
|
2379
2646
|
value,
|
|
2380
|
-
unit ? /* @__PURE__ */ (0,
|
|
2647
|
+
unit ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "pire-kpi-unit", children: unit }) : null
|
|
2381
2648
|
] }),
|
|
2382
|
-
delta ? /* @__PURE__ */ (0,
|
|
2383
|
-
deltaDirection ? /* @__PURE__ */ (0,
|
|
2649
|
+
delta ? /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "pire-kpi-delta", "data-tone": tone, children: [
|
|
2650
|
+
deltaDirection ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Icon, { name: deltaDirection === "up" ? "trending-up" : "trending-down", size: 12 }) : null,
|
|
2384
2651
|
delta
|
|
2385
2652
|
] }) : null,
|
|
2386
|
-
footnote ? /* @__PURE__ */ (0,
|
|
2653
|
+
footnote ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "pire-kpi-foot", children: footnote }) : null
|
|
2387
2654
|
] });
|
|
2388
2655
|
const props = { className: cx("pire-kpi", className), "data-status": status, style };
|
|
2389
|
-
return onPress ? /* @__PURE__ */ (0,
|
|
2656
|
+
return onPress ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_aria_components29.Button, { ...props, "data-pressable": "true", onPress, children: body }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { ...props, children: body });
|
|
2390
2657
|
}
|
|
2391
2658
|
|
|
2392
2659
|
// src/components/data/ObjectHeader.tsx
|
|
2393
|
-
var
|
|
2660
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
2394
2661
|
function ObjectHeader({ title, subtitle, id, breadcrumb, badge, facts, actions, className, ...rest }) {
|
|
2395
|
-
return /* @__PURE__ */ (0,
|
|
2662
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("header", { className: cx("pire-objheader", className), ...rest, children: [
|
|
2396
2663
|
breadcrumb,
|
|
2397
|
-
/* @__PURE__ */ (0,
|
|
2398
|
-
/* @__PURE__ */ (0,
|
|
2399
|
-
/* @__PURE__ */ (0,
|
|
2400
|
-
subtitle || id ? /* @__PURE__ */ (0,
|
|
2664
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "pire-objheader-row", children: [
|
|
2665
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { style: { minWidth: 0 }, children: [
|
|
2666
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("h1", { className: "pire-objheader-title", children: title }),
|
|
2667
|
+
subtitle || id ? /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "pire-objheader-sub", children: [
|
|
2401
2668
|
subtitle,
|
|
2402
|
-
id ? /* @__PURE__ */ (0,
|
|
2669
|
+
id ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "pire-objheader-id", children: id }) : null
|
|
2403
2670
|
] }) : null
|
|
2404
2671
|
] }),
|
|
2405
2672
|
badge,
|
|
2406
|
-
actions ? /* @__PURE__ */ (0,
|
|
2673
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "pire-objheader-actions", children: actions }) : null
|
|
2407
2674
|
] }),
|
|
2408
|
-
facts?.length ? /* @__PURE__ */ (0,
|
|
2409
|
-
/* @__PURE__ */ (0,
|
|
2410
|
-
/* @__PURE__ */ (0,
|
|
2675
|
+
facts?.length ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("dl", { className: "pire-facts", style: { margin: 0 }, children: facts.map((fact) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { children: [
|
|
2676
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("dt", { className: "pire-fact-label", children: fact.label }),
|
|
2677
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("dd", { className: "pire-fact-value", "data-numeric": fact.numeric ? "true" : void 0, style: { margin: 0 }, children: fact.value })
|
|
2411
2678
|
] }, fact.label)) }) : null
|
|
2412
2679
|
] });
|
|
2413
2680
|
}
|
|
2414
2681
|
|
|
2415
2682
|
// src/components/data/FilterBar.tsx
|
|
2416
|
-
var
|
|
2683
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
2417
2684
|
function FilterBar({
|
|
2418
2685
|
children,
|
|
2419
2686
|
activeFilters = [],
|
|
@@ -2430,49 +2697,49 @@ function FilterBar({
|
|
|
2430
2697
|
const label = useMessage("filterBarLabel", rest["aria-label"]);
|
|
2431
2698
|
const go = useMessage("filterBarGo", goLabel);
|
|
2432
2699
|
const clearAll = useMessage("filterBarClearAll", clearAllLabel);
|
|
2433
|
-
return /* @__PURE__ */ (0,
|
|
2434
|
-
/* @__PURE__ */ (0,
|
|
2700
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("section", { className: cx("pire-filterbar", className), ...rest, "aria-label": label, children: [
|
|
2701
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "pire-filterbar-controls", children: [
|
|
2435
2702
|
children,
|
|
2436
|
-
onGo ? /* @__PURE__ */ (0,
|
|
2703
|
+
onGo ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Button, { variant: "primary", onPress: onGo, children: go }) : null
|
|
2437
2704
|
] }),
|
|
2438
|
-
activeFilters.length || resultLabel || actions ? /* @__PURE__ */ (0,
|
|
2439
|
-
activeFilters.map((filter) => /* @__PURE__ */ (0,
|
|
2440
|
-
activeFilters.length && onClear ? /* @__PURE__ */ (0,
|
|
2441
|
-
resultLabel ? /* @__PURE__ */ (0,
|
|
2442
|
-
actions ? /* @__PURE__ */ (0,
|
|
2705
|
+
activeFilters.length || resultLabel || actions ? /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "pire-filterbar-foot", children: [
|
|
2706
|
+
activeFilters.map((filter) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Tag, { onRemove: onRemoveFilter ? () => onRemoveFilter(filter.id) : void 0, children: filter.label }, filter.id)),
|
|
2707
|
+
activeFilters.length && onClear ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Button, { variant: "tertiary", size: "sm", onPress: onClear, children: clearAll }) : null,
|
|
2708
|
+
resultLabel ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "pire-filterbar-result", "aria-live": "polite", children: resultLabel }) : null,
|
|
2709
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "pire-filterbar-actions", children: actions }) : null
|
|
2443
2710
|
] }) : null
|
|
2444
2711
|
] });
|
|
2445
2712
|
}
|
|
2446
2713
|
|
|
2447
2714
|
// src/components/data/DescriptionList.tsx
|
|
2448
|
-
var
|
|
2715
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
2449
2716
|
function DescriptionList({ items, layout = "rows", columns = 3, className, style, ...rest }) {
|
|
2450
|
-
return /* @__PURE__ */ (0,
|
|
2717
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
2451
2718
|
"dl",
|
|
2452
2719
|
{
|
|
2453
2720
|
className: cx("pire-dl", className),
|
|
2454
2721
|
"data-layout": layout,
|
|
2455
2722
|
style: { ...layout === "grid" ? { "--pire-dl-cols": columns } : null, ...style },
|
|
2456
2723
|
...rest,
|
|
2457
|
-
children: items.map((item, i) => /* @__PURE__ */ (0,
|
|
2458
|
-
/* @__PURE__ */ (0,
|
|
2724
|
+
children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "pire-dl-row", "data-emphasis": item.emphasis ? "true" : void 0, children: [
|
|
2725
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("dt", { className: "pire-dl-term", children: [
|
|
2459
2726
|
item.label,
|
|
2460
2727
|
item.hint
|
|
2461
2728
|
] }),
|
|
2462
|
-
/* @__PURE__ */ (0,
|
|
2729
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("dd", { className: "pire-dl-value", "data-numeric": item.numeric ? "true" : void 0, children: item.value })
|
|
2463
2730
|
] }, i))
|
|
2464
2731
|
}
|
|
2465
2732
|
);
|
|
2466
2733
|
}
|
|
2467
2734
|
|
|
2468
2735
|
// src/components/data/Timeline.tsx
|
|
2469
|
-
var
|
|
2736
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
2470
2737
|
function Timeline({ entries, reverse = false, className, ...rest }) {
|
|
2471
2738
|
const list = reverse ? [...entries].reverse() : entries;
|
|
2472
|
-
return /* @__PURE__ */ (0,
|
|
2473
|
-
/* @__PURE__ */ (0,
|
|
2474
|
-
/* @__PURE__ */ (0,
|
|
2475
|
-
entry.actor ? /* @__PURE__ */ (0,
|
|
2739
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("ol", { className: cx("pire-timeline", className), ...rest, children: list.map((entry, i) => /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("li", { className: "pire-timeline-item", children: [
|
|
2740
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "pire-timeline-time", children: entry.time }),
|
|
2741
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "pire-timeline-text", children: entry.event }),
|
|
2742
|
+
entry.actor ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "pire-timeline-actor", children: entry.actor }) : null
|
|
2476
2743
|
] }, entry.id ?? i)) });
|
|
2477
2744
|
}
|
|
2478
2745
|
|
|
@@ -2555,7 +2822,7 @@ function alignToCategories(series, categoryCount) {
|
|
|
2555
2822
|
}
|
|
2556
2823
|
|
|
2557
2824
|
// src/components/data/ChartFrame.tsx
|
|
2558
|
-
var
|
|
2825
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
2559
2826
|
function seriesLegend(series) {
|
|
2560
2827
|
return series.map((one, index) => ({
|
|
2561
2828
|
key: one.id,
|
|
@@ -2578,29 +2845,29 @@ function ChartFrame({
|
|
|
2578
2845
|
children
|
|
2579
2846
|
}) {
|
|
2580
2847
|
const msg = usePireMessages();
|
|
2581
|
-
return /* @__PURE__ */ (0,
|
|
2582
|
-
title || description ? /* @__PURE__ */ (0,
|
|
2583
|
-
title ? /* @__PURE__ */ (0,
|
|
2584
|
-
description ? /* @__PURE__ */ (0,
|
|
2848
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("figure", { className: cx("pire-chart", className), style, children: [
|
|
2849
|
+
title || description ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("figcaption", { className: "pire-chart-head", children: [
|
|
2850
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "pire-chart-title", children: title }) : null,
|
|
2851
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "pire-chart-desc", children: description }) : null
|
|
2585
2852
|
] }) : null,
|
|
2586
|
-
legend && legend.length > 1 ? /* @__PURE__ */ (0,
|
|
2587
|
-
/* @__PURE__ */ (0,
|
|
2853
|
+
legend && legend.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("ul", { className: "pire-chart-legend", children: legend.map((item) => /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("li", { className: "pire-chart-legend-item", children: [
|
|
2854
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "pire-chart-swatch", style: { background: item.color } }),
|
|
2588
2855
|
item.label
|
|
2589
2856
|
] }, item.key)) }) : null,
|
|
2590
|
-
/* @__PURE__ */ (0,
|
|
2591
|
-
/* @__PURE__ */ (0,
|
|
2592
|
-
/* @__PURE__ */ (0,
|
|
2593
|
-
/* @__PURE__ */ (0,
|
|
2594
|
-
/* @__PURE__ */ (0,
|
|
2595
|
-
series.map((one) => /* @__PURE__ */ (0,
|
|
2857
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "pire-chart-plot", "aria-hidden": "true", children }),
|
|
2858
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: showDataTable ? "pire-chart-table" : "pire-sr-only", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("table", { children: [
|
|
2859
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("caption", { children: label }),
|
|
2860
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("tr", { children: [
|
|
2861
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("th", { scope: "col", children: msg.chartCategoryHeader }),
|
|
2862
|
+
series.map((one) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("th", { scope: "col", children: one.label }, one.id))
|
|
2596
2863
|
] }) }),
|
|
2597
|
-
/* @__PURE__ */ (0,
|
|
2864
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tbody", { children: categories.map((category, categoryIndex) => (
|
|
2598
2865
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2599
|
-
/* @__PURE__ */ (0,
|
|
2600
|
-
/* @__PURE__ */ (0,
|
|
2866
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("tr", { children: [
|
|
2867
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("th", { scope: "row", children: category }),
|
|
2601
2868
|
series.map((one) => {
|
|
2602
2869
|
const value = one.values[categoryIndex];
|
|
2603
|
-
return /* @__PURE__ */ (0,
|
|
2870
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("td", { children: value == null ? msg.chartNoValue : formatValue(value) }, one.id);
|
|
2604
2871
|
})
|
|
2605
2872
|
] }, categoryIndex)
|
|
2606
2873
|
)) })
|
|
@@ -2609,7 +2876,7 @@ function ChartFrame({
|
|
|
2609
2876
|
}
|
|
2610
2877
|
|
|
2611
2878
|
// src/components/data/BarChart.tsx
|
|
2612
|
-
var
|
|
2879
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
2613
2880
|
function BarChart({
|
|
2614
2881
|
categories,
|
|
2615
2882
|
series: rawSeries,
|
|
@@ -2641,7 +2908,7 @@ function BarChart({
|
|
|
2641
2908
|
const value = series[0].values[categoryIndex];
|
|
2642
2909
|
return value == null ? msg.chartNoValue : formatValue(value);
|
|
2643
2910
|
};
|
|
2644
|
-
return /* @__PURE__ */ (0,
|
|
2911
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
2645
2912
|
ChartFrame,
|
|
2646
2913
|
{
|
|
2647
2914
|
label,
|
|
@@ -2654,7 +2921,7 @@ function BarChart({
|
|
|
2654
2921
|
showDataTable,
|
|
2655
2922
|
className,
|
|
2656
2923
|
style,
|
|
2657
|
-
children: !hasData ? /* @__PURE__ */ (0,
|
|
2924
|
+
children: !hasData ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "pire-chart-empty", children: emptyState ?? msg.chartEmpty }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
2658
2925
|
"div",
|
|
2659
2926
|
{
|
|
2660
2927
|
className: "pire-chart-bars",
|
|
@@ -2663,12 +2930,12 @@ function BarChart({
|
|
|
2663
2930
|
style: { "--pire-chart-height": `${height}px` },
|
|
2664
2931
|
children: categories.map((category, categoryIndex) => (
|
|
2665
2932
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2666
|
-
/* @__PURE__ */ (0,
|
|
2667
|
-
/* @__PURE__ */ (0,
|
|
2668
|
-
/* @__PURE__ */ (0,
|
|
2933
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "pire-chart-group", children: [
|
|
2934
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "pire-chart-cat", children: category }),
|
|
2935
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "pire-chart-track", children: series.map((one, seriesIndex) => {
|
|
2669
2936
|
const value = one.values[categoryIndex];
|
|
2670
2937
|
if (value == null) return null;
|
|
2671
|
-
return /* @__PURE__ */ (0,
|
|
2938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
|
|
2672
2939
|
"div",
|
|
2673
2940
|
{
|
|
2674
2941
|
className: "pire-chart-bar",
|
|
@@ -2677,8 +2944,8 @@ function BarChart({
|
|
|
2677
2944
|
"--pire-bar-color": seriesColor(one, seriesIndex)
|
|
2678
2945
|
},
|
|
2679
2946
|
children: [
|
|
2680
|
-
withValues && orientation === "vertical" ? /* @__PURE__ */ (0,
|
|
2681
|
-
/* @__PURE__ */ (0,
|
|
2947
|
+
withValues && orientation === "vertical" ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "pire-chart-barval", children: formatValue(value) }) : null,
|
|
2948
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("span", { className: "pire-chart-tip", role: "presentation", children: [
|
|
2682
2949
|
series.length > 1 ? `${one.label}: ` : "",
|
|
2683
2950
|
formatValue(value)
|
|
2684
2951
|
] })
|
|
@@ -2687,7 +2954,7 @@ function BarChart({
|
|
|
2687
2954
|
one.id
|
|
2688
2955
|
);
|
|
2689
2956
|
}) }),
|
|
2690
|
-
withValues && orientation === "horizontal" ? /* @__PURE__ */ (0,
|
|
2957
|
+
withValues && orientation === "horizontal" ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "pire-chart-val", children: horizontalLabelFor(categoryIndex) }) : null
|
|
2691
2958
|
] }, categoryIndex)
|
|
2692
2959
|
))
|
|
2693
2960
|
}
|
|
@@ -2698,7 +2965,7 @@ function BarChart({
|
|
|
2698
2965
|
|
|
2699
2966
|
// src/components/data/LineChart.tsx
|
|
2700
2967
|
var React13 = __toESM(require("react"), 1);
|
|
2701
|
-
var
|
|
2968
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
2702
2969
|
var PLOT_INSET = { top: 10, right: 14, bottom: 24, left: 58 };
|
|
2703
2970
|
var MARKER_LIMIT = 20;
|
|
2704
2971
|
var useIsomorphicLayoutEffect2 = typeof window === "undefined" ? React13.useEffect : React13.useLayoutEffect;
|
|
@@ -2765,7 +3032,7 @@ function LineChart({
|
|
|
2765
3032
|
return `M${xAt(present[0].index)} ${baseline} L${line} L${xAt(last.index)} ${baseline} Z`;
|
|
2766
3033
|
};
|
|
2767
3034
|
const labelEvery = Math.max(1, Math.ceil(categories.length / Math.max(2, Math.floor(innerWidth / 64))));
|
|
2768
|
-
return /* @__PURE__ */ (0,
|
|
3035
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
2769
3036
|
ChartFrame,
|
|
2770
3037
|
{
|
|
2771
3038
|
label,
|
|
@@ -2778,8 +3045,8 @@ function LineChart({
|
|
|
2778
3045
|
showDataTable,
|
|
2779
3046
|
className,
|
|
2780
3047
|
style,
|
|
2781
|
-
children: !hasData ? /* @__PURE__ */ (0,
|
|
2782
|
-
width > 0 ? /* @__PURE__ */ (0,
|
|
3048
|
+
children: !hasData ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "pire-chart-empty", children: emptyState ?? msg.chartEmpty }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "pire-chart-lines", ref: plotRef, style: { height }, children: [
|
|
3049
|
+
width > 0 ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
2783
3050
|
"svg",
|
|
2784
3051
|
{
|
|
2785
3052
|
width,
|
|
@@ -2788,7 +3055,7 @@ function LineChart({
|
|
|
2788
3055
|
"aria-hidden": "true",
|
|
2789
3056
|
focusable: "false",
|
|
2790
3057
|
children: [
|
|
2791
|
-
/* @__PURE__ */ (0,
|
|
3058
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("g", { className: "pire-chart-grid", children: scale.ticks.map((tick) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
2792
3059
|
"line",
|
|
2793
3060
|
{
|
|
2794
3061
|
x1: PLOT_INSET.left,
|
|
@@ -2798,8 +3065,8 @@ function LineChart({
|
|
|
2798
3065
|
},
|
|
2799
3066
|
tick
|
|
2800
3067
|
)) }),
|
|
2801
|
-
/* @__PURE__ */ (0,
|
|
2802
|
-
scale.ticks.map((tick) => /* @__PURE__ */ (0,
|
|
3068
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("g", { className: "pire-chart-tick", children: [
|
|
3069
|
+
scale.ticks.map((tick) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
2803
3070
|
"text",
|
|
2804
3071
|
{
|
|
2805
3072
|
x: PLOT_INSET.left - 8,
|
|
@@ -2812,10 +3079,10 @@ function LineChart({
|
|
|
2812
3079
|
)),
|
|
2813
3080
|
categories.map((category, index) => index % labelEvery === 0 ? (
|
|
2814
3081
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2815
|
-
/* @__PURE__ */ (0,
|
|
3082
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("text", { x: xAt(index), y: height - 6, textAnchor: "middle", children: category }, index)
|
|
2816
3083
|
) : null)
|
|
2817
3084
|
] }),
|
|
2818
|
-
showArea && series[0] ? /* @__PURE__ */ (0,
|
|
3085
|
+
showArea && series[0] ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
2819
3086
|
"path",
|
|
2820
3087
|
{
|
|
2821
3088
|
d: areaFor(series[0].values),
|
|
@@ -2823,10 +3090,10 @@ function LineChart({
|
|
|
2823
3090
|
style: { fill: seriesColor(series[0], 0) }
|
|
2824
3091
|
}
|
|
2825
3092
|
) : null,
|
|
2826
|
-
/* @__PURE__ */ (0,
|
|
2827
|
-
withMarkers ? /* @__PURE__ */ (0,
|
|
3093
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("g", { className: "pire-chart-line", fill: "none", children: series.map((one, index) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("path", { d: pathFor(one.values), stroke: seriesColor(one, index) }, one.id)) }),
|
|
3094
|
+
withMarkers ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("g", { className: "pire-chart-marker", children: series.map((one, seriesIndex) => one.values.map((value, index) => value == null ? null : (
|
|
2828
3095
|
// biome-ignore lint/suspicious/noArrayIndexKey: a series is positional — the index is the point's identity, and category labels repeat.
|
|
2829
|
-
/* @__PURE__ */ (0,
|
|
3096
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
2830
3097
|
"circle",
|
|
2831
3098
|
{
|
|
2832
3099
|
cx: xAt(index),
|
|
@@ -2840,18 +3107,18 @@ function LineChart({
|
|
|
2840
3107
|
]
|
|
2841
3108
|
}
|
|
2842
3109
|
) : null,
|
|
2843
|
-
/* @__PURE__ */ (0,
|
|
3110
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
2844
3111
|
"div",
|
|
2845
3112
|
{
|
|
2846
3113
|
className: "pire-chart-hover",
|
|
2847
3114
|
style: { inset: `${PLOT_INSET.top}px ${PLOT_INSET.right}px ${PLOT_INSET.bottom}px ${PLOT_INSET.left}px` },
|
|
2848
3115
|
children: categories.map((category, categoryIndex) => (
|
|
2849
3116
|
// biome-ignore lint/suspicious/noArrayIndexKey: categories are positional and repeat legitimately (two quarters both labelled "Q1").
|
|
2850
|
-
/* @__PURE__ */ (0,
|
|
2851
|
-
/* @__PURE__ */ (0,
|
|
3117
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "pire-chart-band", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("span", { className: "pire-chart-tip", role: "presentation", children: [
|
|
3118
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("strong", { children: category }),
|
|
2852
3119
|
series.map((one) => {
|
|
2853
3120
|
const value = one.values[categoryIndex];
|
|
2854
|
-
return /* @__PURE__ */ (0,
|
|
3121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("span", { className: "pire-chart-tip-row", children: [
|
|
2855
3122
|
one.label,
|
|
2856
3123
|
": ",
|
|
2857
3124
|
value == null ? "No data" : formatValue(value)
|
|
@@ -2868,7 +3135,7 @@ function LineChart({
|
|
|
2868
3135
|
|
|
2869
3136
|
// src/components/data/DonutChart.tsx
|
|
2870
3137
|
var React14 = __toESM(require("react"), 1);
|
|
2871
|
-
var
|
|
3138
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
2872
3139
|
var SEGMENT_GAP_DEGREES = 1.5;
|
|
2873
3140
|
function DonutChart({
|
|
2874
3141
|
categories,
|
|
@@ -2905,7 +3172,7 @@ function DonutChart({
|
|
|
2905
3172
|
}));
|
|
2906
3173
|
const hovered = hoveredIndex == null ? null : segments.find((segment) => segment.index === hoveredIndex) ?? null;
|
|
2907
3174
|
let arcStart = 0;
|
|
2908
|
-
return /* @__PURE__ */ (0,
|
|
3175
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2909
3176
|
ChartFrame,
|
|
2910
3177
|
{
|
|
2911
3178
|
label,
|
|
@@ -2918,8 +3185,8 @@ function DonutChart({
|
|
|
2918
3185
|
showDataTable,
|
|
2919
3186
|
className,
|
|
2920
3187
|
style,
|
|
2921
|
-
children: !hasData ? /* @__PURE__ */ (0,
|
|
2922
|
-
/* @__PURE__ */ (0,
|
|
3188
|
+
children: !hasData ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "pire-chart-empty", children: emptyState ?? msg.chartEmpty }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "pire-chart-donut", style: { height: size }, children: [
|
|
3189
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2923
3190
|
"svg",
|
|
2924
3191
|
{
|
|
2925
3192
|
width: size,
|
|
@@ -2927,13 +3194,13 @@ function DonutChart({
|
|
|
2927
3194
|
"aria-hidden": "true",
|
|
2928
3195
|
focusable: "false",
|
|
2929
3196
|
onMouseLeave: () => setHoveredIndex(null),
|
|
2930
|
-
children: /* @__PURE__ */ (0,
|
|
3197
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("g", { transform: `rotate(-90 ${size / 2} ${size / 2})`, children: segments.map((segment) => {
|
|
2931
3198
|
const arcLength = segment.value / total * circumference;
|
|
2932
3199
|
const offset = arcStart;
|
|
2933
3200
|
arcStart += arcLength;
|
|
2934
3201
|
return (
|
|
2935
3202
|
// 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.
|
|
2936
|
-
/* @__PURE__ */ (0,
|
|
3203
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2937
3204
|
"circle",
|
|
2938
3205
|
{
|
|
2939
3206
|
className: "pire-chart-arc",
|
|
@@ -2953,9 +3220,9 @@ function DonutChart({
|
|
|
2953
3220
|
}) })
|
|
2954
3221
|
}
|
|
2955
3222
|
),
|
|
2956
|
-
/* @__PURE__ */ (0,
|
|
2957
|
-
/* @__PURE__ */ (0,
|
|
2958
|
-
/* @__PURE__ */ (0,
|
|
3223
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "pire-chart-donut-center", style: { width: size - thickness * 2 - 8 }, children: [
|
|
3224
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "pire-chart-donut-value", children: hovered ? formatValue(hovered.value) : centerLabel ?? formatValue(total) }),
|
|
3225
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "pire-chart-donut-caption", children: hovered ? hovered.category : centerCaption })
|
|
2959
3226
|
] })
|
|
2960
3227
|
] })
|
|
2961
3228
|
}
|
|
@@ -2966,19 +3233,24 @@ function colorForSegment(index) {
|
|
|
2966
3233
|
}
|
|
2967
3234
|
|
|
2968
3235
|
// src/components/data/LinkList.tsx
|
|
2969
|
-
var
|
|
2970
|
-
var
|
|
2971
|
-
function LinkList({ items, onSelect, className, ...rest }) {
|
|
2972
|
-
return /* @__PURE__ */ (0,
|
|
2973
|
-
item.
|
|
2974
|
-
item.
|
|
2975
|
-
|
|
2976
|
-
item.
|
|
2977
|
-
|
|
3236
|
+
var import_react_aria_components30 = require("react-aria-components");
|
|
3237
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
3238
|
+
function LinkList({ items, onSelect, emphasis = "key", className, ...rest }) {
|
|
3239
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: cx("pire-linklist", className), role: "list", "data-emphasis": emphasis, ...rest, children: items.map((item) => {
|
|
3240
|
+
const keySlot = item.key ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "pire-linklist-key", children: item.key }) : null;
|
|
3241
|
+
const textSlot = item.text ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "pire-linklist-text", children: item.text }) : null;
|
|
3242
|
+
const [first, second] = emphasis === "text" ? [textSlot, keySlot] : [keySlot, textSlot];
|
|
3243
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { role: "listitem", className: "pire-linklist-row", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_react_aria_components30.Button, { className: "pire-linklist-item", onPress: () => onSelect?.(item.id), children: [
|
|
3244
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icon, { name: item.icon, size: 16, style: { color: "var(--text-secondary)" } }) : null,
|
|
3245
|
+
first,
|
|
3246
|
+
second,
|
|
3247
|
+
item.trailing
|
|
3248
|
+
] }) }, item.id);
|
|
3249
|
+
}) });
|
|
2978
3250
|
}
|
|
2979
3251
|
|
|
2980
3252
|
// src/components/layout/PageBand.tsx
|
|
2981
|
-
var
|
|
3253
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
2982
3254
|
function PageBand({
|
|
2983
3255
|
surface = "card",
|
|
2984
3256
|
hasBorder = true,
|
|
@@ -2986,7 +3258,7 @@ function PageBand({
|
|
|
2986
3258
|
className,
|
|
2987
3259
|
...rest
|
|
2988
3260
|
}) {
|
|
2989
|
-
return /* @__PURE__ */ (0,
|
|
3261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
2990
3262
|
"div",
|
|
2991
3263
|
{
|
|
2992
3264
|
className: cx("pire-pageband", className),
|
|
@@ -2999,56 +3271,56 @@ function PageBand({
|
|
|
2999
3271
|
}
|
|
3000
3272
|
|
|
3001
3273
|
// src/components/layout/PageHeader.tsx
|
|
3002
|
-
var
|
|
3274
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
3003
3275
|
function PageHeader({ title, subtitle, actions, className, ...rest }) {
|
|
3004
|
-
return /* @__PURE__ */ (0,
|
|
3005
|
-
/* @__PURE__ */ (0,
|
|
3006
|
-
/* @__PURE__ */ (0,
|
|
3007
|
-
subtitle ? /* @__PURE__ */ (0,
|
|
3276
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("header", { className: cx("pire-pageheader", className), ...rest, children: [
|
|
3277
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { style: { minWidth: 0 }, children: [
|
|
3278
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("h1", { className: "pire-pageheader-title", children: title }),
|
|
3279
|
+
subtitle ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "pire-pageheader-sub", children: subtitle }) : null
|
|
3008
3280
|
] }),
|
|
3009
|
-
actions ? /* @__PURE__ */ (0,
|
|
3281
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "pire-pageheader-actions", children: actions }) : null
|
|
3010
3282
|
] });
|
|
3011
3283
|
}
|
|
3012
3284
|
|
|
3013
3285
|
// src/components/layout/SectionHeader.tsx
|
|
3014
|
-
var
|
|
3286
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
3015
3287
|
function SectionHeader({ title, meta, actions, className, ...rest }) {
|
|
3016
|
-
return /* @__PURE__ */ (0,
|
|
3017
|
-
/* @__PURE__ */ (0,
|
|
3018
|
-
meta ? /* @__PURE__ */ (0,
|
|
3019
|
-
actions ? /* @__PURE__ */ (0,
|
|
3288
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: cx("pire-sectionhead", className), ...rest, children: [
|
|
3289
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "pire-eyebrow", children: title }),
|
|
3290
|
+
meta ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { style: { font: "var(--type-caption)", color: "var(--text-tertiary)" }, children: meta }) : null,
|
|
3291
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "pire-sectionhead-actions", children: actions }) : null
|
|
3020
3292
|
] });
|
|
3021
3293
|
}
|
|
3022
3294
|
|
|
3023
3295
|
// src/components/layout/SelectionBar.tsx
|
|
3024
|
-
var
|
|
3296
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
3025
3297
|
function SelectionBar({ count, noun = "record", children, actions, className, ...rest }) {
|
|
3026
3298
|
if (!count) return null;
|
|
3027
|
-
return /* @__PURE__ */ (0,
|
|
3028
|
-
/* @__PURE__ */ (0,
|
|
3299
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: cx("pire-selectionbar", className), role: "status", "aria-live": "polite", ...rest, children: [
|
|
3300
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { className: "pire-selectionbar-count", children: [
|
|
3029
3301
|
count.toLocaleString(),
|
|
3030
3302
|
" ",
|
|
3031
3303
|
noun,
|
|
3032
3304
|
count === 1 ? "" : "s",
|
|
3033
3305
|
" selected"
|
|
3034
3306
|
] }),
|
|
3035
|
-
children ? /* @__PURE__ */ (0,
|
|
3036
|
-
actions ? /* @__PURE__ */ (0,
|
|
3307
|
+
children ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { style: { color: "var(--text-secondary)", font: "var(--type-caption)" }, children }) : null,
|
|
3308
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "pire-selectionbar-actions", children: actions }) : null
|
|
3037
3309
|
] });
|
|
3038
3310
|
}
|
|
3039
3311
|
|
|
3040
3312
|
// src/components/layout/FooterBar.tsx
|
|
3041
|
-
var
|
|
3313
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
3042
3314
|
function FooterBar({ note, actions, children, className, ...rest }) {
|
|
3043
|
-
return /* @__PURE__ */ (0,
|
|
3044
|
-
note ? /* @__PURE__ */ (0,
|
|
3315
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("footer", { className: cx("pire-footerbar", className), ...rest, children: [
|
|
3316
|
+
note ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "pire-footerbar-note", children: note }) : null,
|
|
3045
3317
|
children,
|
|
3046
|
-
actions ? /* @__PURE__ */ (0,
|
|
3318
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "pire-footerbar-actions", children: actions }) : null
|
|
3047
3319
|
] });
|
|
3048
3320
|
}
|
|
3049
3321
|
|
|
3050
3322
|
// src/components/patterns/ConfirmDialog.tsx
|
|
3051
|
-
var
|
|
3323
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
3052
3324
|
function ConfirmDialog({
|
|
3053
3325
|
isOpen,
|
|
3054
3326
|
title,
|
|
@@ -3062,7 +3334,7 @@ function ConfirmDialog({
|
|
|
3062
3334
|
onConfirm,
|
|
3063
3335
|
onCancel
|
|
3064
3336
|
}) {
|
|
3065
|
-
return /* @__PURE__ */ (0,
|
|
3337
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
3066
3338
|
Dialog,
|
|
3067
3339
|
{
|
|
3068
3340
|
isOpen,
|
|
@@ -3072,25 +3344,157 @@ function ConfirmDialog({
|
|
|
3072
3344
|
onClose: onCancel,
|
|
3073
3345
|
isDismissable: !isBusy,
|
|
3074
3346
|
showClose: false,
|
|
3075
|
-
footer: /* @__PURE__ */ (0,
|
|
3076
|
-
/* @__PURE__ */ (0,
|
|
3077
|
-
/* @__PURE__ */ (0,
|
|
3347
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment, { children: [
|
|
3348
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Button, { variant: "tertiary", isDisabled: isBusy, onPress: onCancel, children: cancelLabel }),
|
|
3349
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Button, { variant: tone === "danger" ? "danger" : "primary", isDisabled: isBusy, onPress: onConfirm, children: isBusy ? "Working\u2026" : confirmLabel })
|
|
3078
3350
|
] }),
|
|
3079
3351
|
children: [
|
|
3080
|
-
consequence ? /* @__PURE__ */ (0,
|
|
3352
|
+
consequence ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(InlineMessage, { kind: tone === "danger" ? "error" : "warning", style: { marginBottom: children ? "var(--sp-3)" : 0 }, children: consequence }) : null,
|
|
3081
3353
|
children
|
|
3082
3354
|
]
|
|
3083
3355
|
}
|
|
3084
3356
|
);
|
|
3085
3357
|
}
|
|
3086
3358
|
|
|
3359
|
+
// src/components/patterns/CommandPalette.tsx
|
|
3360
|
+
var React15 = __toESM(require("react"), 1);
|
|
3361
|
+
var import_react_aria_components31 = require("react-aria-components");
|
|
3362
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
3363
|
+
var RESULTS_SECTION_KEY = "__pire_results__";
|
|
3364
|
+
var searchableText = (item) => [item.label, item.description, item.keywords].filter(Boolean).join(" ");
|
|
3365
|
+
function CommandPalette({
|
|
3366
|
+
isOpen,
|
|
3367
|
+
onOpenChange,
|
|
3368
|
+
groups = [],
|
|
3369
|
+
resultsGroup,
|
|
3370
|
+
onAction,
|
|
3371
|
+
onSearch,
|
|
3372
|
+
isLoading,
|
|
3373
|
+
emptyLabel,
|
|
3374
|
+
loadingLabel,
|
|
3375
|
+
placeholder,
|
|
3376
|
+
footer,
|
|
3377
|
+
showFooter = true,
|
|
3378
|
+
"aria-label": ariaLabel,
|
|
3379
|
+
className,
|
|
3380
|
+
style
|
|
3381
|
+
}) {
|
|
3382
|
+
const msg = usePireMessages();
|
|
3383
|
+
const [query, setQuery] = React15.useState("");
|
|
3384
|
+
const { contains } = (0, import_react_aria_components31.useFilter)({ sensitivity: "base" });
|
|
3385
|
+
React15.useEffect(() => {
|
|
3386
|
+
if (isOpen) setQuery("");
|
|
3387
|
+
}, [isOpen]);
|
|
3388
|
+
const searchableById = React15.useMemo(() => {
|
|
3389
|
+
const byId = /* @__PURE__ */ new Map();
|
|
3390
|
+
for (const group of groups) for (const item of group.items) byId.set(item.id, searchableText(item));
|
|
3391
|
+
return byId;
|
|
3392
|
+
}, [groups]);
|
|
3393
|
+
const filter = React15.useCallback((textValue, inputValue, node) => {
|
|
3394
|
+
if (node.parentKey === RESULTS_SECTION_KEY) return true;
|
|
3395
|
+
return contains(searchableById.get(String(node.key)) ?? textValue, inputValue);
|
|
3396
|
+
}, [contains, searchableById]);
|
|
3397
|
+
const handleInputChange = (value) => {
|
|
3398
|
+
setQuery(value);
|
|
3399
|
+
onSearch?.(value);
|
|
3400
|
+
};
|
|
3401
|
+
const sections = [...groups, ...resultsGroup ? [{ ...resultsGroup, id: RESULTS_SECTION_KEY }] : []];
|
|
3402
|
+
const status = isLoading ? loadingLabel ?? msg.commandPaletteLoading : emptyLabel ?? msg.commandPaletteEmpty;
|
|
3403
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
3404
|
+
import_react_aria_components31.ModalOverlay,
|
|
3405
|
+
{
|
|
3406
|
+
className: "pire-cp-overlay",
|
|
3407
|
+
isOpen,
|
|
3408
|
+
isDismissable: true,
|
|
3409
|
+
onOpenChange: (open) => {
|
|
3410
|
+
if (!open) onOpenChange?.(false);
|
|
3411
|
+
},
|
|
3412
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_aria_components31.Modal, { className: cx("pire-cp-modal", className), style, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_react_aria_components31.Dialog, { className: "pire-cp-dialog", "aria-label": ariaLabel ?? msg.commandPaletteLabel, children: [
|
|
3413
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_react_aria_components31.Autocomplete, { filter, inputValue: query, onInputChange: handleInputChange, children: [
|
|
3414
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_react_aria_components31.SearchField, { className: "pire-cp-search", "aria-label": msg.commandPaletteSearchLabel, children: [
|
|
3415
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "search", size: 18, className: "pire-cp-search-icon" }),
|
|
3416
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
3417
|
+
import_react_aria_components31.Input,
|
|
3418
|
+
{
|
|
3419
|
+
className: "pire-cp-input",
|
|
3420
|
+
autoFocus: true,
|
|
3421
|
+
placeholder: placeholder ?? msg.commandPalettePlaceholder
|
|
3422
|
+
}
|
|
3423
|
+
)
|
|
3424
|
+
] }),
|
|
3425
|
+
isLoading ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "pire-cp-loading", role: "status", "aria-live": "polite", children: loadingLabel ?? msg.commandPaletteLoading }) : null,
|
|
3426
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
3427
|
+
import_react_aria_components31.Menu,
|
|
3428
|
+
{
|
|
3429
|
+
className: "pire-cp-list",
|
|
3430
|
+
onAction: (key) => onAction?.(String(key)),
|
|
3431
|
+
renderEmptyState: () => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "pire-cp-status", children: status }),
|
|
3432
|
+
children: sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_react_aria_components31.MenuSection, { id: section.id, className: "pire-cp-section", children: [
|
|
3433
|
+
section.label ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_aria_components31.Header, { className: "pire-cp-section-title", children: section.label }) : null,
|
|
3434
|
+
section.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
3435
|
+
MenuItem,
|
|
3436
|
+
{
|
|
3437
|
+
id: item.id,
|
|
3438
|
+
textValue: item.label,
|
|
3439
|
+
icon: item.icon,
|
|
3440
|
+
description: item.description,
|
|
3441
|
+
shortcut: item.shortcut,
|
|
3442
|
+
isDisabled: item.isDisabled,
|
|
3443
|
+
children: item.label
|
|
3444
|
+
},
|
|
3445
|
+
item.id
|
|
3446
|
+
))
|
|
3447
|
+
] }, section.id))
|
|
3448
|
+
}
|
|
3449
|
+
)
|
|
3450
|
+
] }),
|
|
3451
|
+
showFooter ? (
|
|
3452
|
+
// aria-hidden: the glyphs are a sighted affordance for discovering the keys. A screen
|
|
3453
|
+
// reader already announces the listbox semantics that make those keys work, so reading
|
|
3454
|
+
// "up arrow down arrow navigate" out loud is noise on every open.
|
|
3455
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "pire-cp-foot", "aria-hidden": "true", children: footer ?? /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_jsx_runtime59.Fragment, { children: [
|
|
3456
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { className: "pire-cp-hint", children: [
|
|
3457
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Kbd, { children: "\u2191" }),
|
|
3458
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Kbd, { children: "\u2193" }),
|
|
3459
|
+
msg.commandPaletteHintNavigate
|
|
3460
|
+
] }),
|
|
3461
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { className: "pire-cp-hint", children: [
|
|
3462
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Kbd, { children: "\u21B5" }),
|
|
3463
|
+
msg.commandPaletteHintSelect
|
|
3464
|
+
] }),
|
|
3465
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("span", { className: "pire-cp-hint", children: [
|
|
3466
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Kbd, { children: "esc" }),
|
|
3467
|
+
msg.commandPaletteHintClose
|
|
3468
|
+
] })
|
|
3469
|
+
] }) })
|
|
3470
|
+
) : null
|
|
3471
|
+
] }) })
|
|
3472
|
+
}
|
|
3473
|
+
);
|
|
3474
|
+
}
|
|
3475
|
+
function useCommandPaletteShortcut(onTrigger, { key = "k", isDisabled } = {}) {
|
|
3476
|
+
const handler = React15.useRef(onTrigger);
|
|
3477
|
+
handler.current = onTrigger;
|
|
3478
|
+
React15.useEffect(() => {
|
|
3479
|
+
if (isDisabled) return;
|
|
3480
|
+
const onKeyDown = (event) => {
|
|
3481
|
+
if (!(event.metaKey || event.ctrlKey) || event.altKey) return;
|
|
3482
|
+
if (event.key.toLowerCase() !== key.toLowerCase()) return;
|
|
3483
|
+
event.preventDefault();
|
|
3484
|
+
handler.current();
|
|
3485
|
+
};
|
|
3486
|
+
document.addEventListener("keydown", onKeyDown);
|
|
3487
|
+
return () => document.removeEventListener("keydown", onKeyDown);
|
|
3488
|
+
}, [key, isDisabled]);
|
|
3489
|
+
}
|
|
3490
|
+
|
|
3087
3491
|
// src/components/patterns/SidePanel.tsx
|
|
3088
|
-
var
|
|
3089
|
-
var
|
|
3492
|
+
var import_react_aria_components32 = require("react-aria-components");
|
|
3493
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
3090
3494
|
function SidePanel({ isOpen, title, subtitle, width = 400, children, footer, onClose, className }) {
|
|
3091
3495
|
const msg = usePireMessages();
|
|
3092
|
-
return /* @__PURE__ */ (0,
|
|
3093
|
-
|
|
3496
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
3497
|
+
import_react_aria_components32.ModalOverlay,
|
|
3094
3498
|
{
|
|
3095
3499
|
className: "pire-sidepanel-overlay",
|
|
3096
3500
|
isOpen,
|
|
@@ -3098,36 +3502,36 @@ function SidePanel({ isOpen, title, subtitle, width = 400, children, footer, onC
|
|
|
3098
3502
|
onOpenChange: (o) => {
|
|
3099
3503
|
if (!o) onClose?.();
|
|
3100
3504
|
},
|
|
3101
|
-
children: /* @__PURE__ */ (0,
|
|
3102
|
-
/* @__PURE__ */ (0,
|
|
3103
|
-
/* @__PURE__ */ (0,
|
|
3104
|
-
/* @__PURE__ */ (0,
|
|
3105
|
-
subtitle ? /* @__PURE__ */ (0,
|
|
3505
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_aria_components32.Modal, { className: cx("pire-sidepanel", className), style: { width }, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_react_aria_components32.Dialog, { className: "pire-dialog", style: { height: "100%" }, children: [
|
|
3506
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("header", { className: "pire-dialog-head", children: [
|
|
3507
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
3508
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_aria_components32.Heading, { slot: "title", className: "pire-dialog-title", children: title }),
|
|
3509
|
+
subtitle ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "pire-dialog-sub", style: { margin: 0 }, children: subtitle }) : null
|
|
3106
3510
|
] }),
|
|
3107
|
-
/* @__PURE__ */ (0,
|
|
3511
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(IconButton, { icon: "x", label: msg.sidePanelClose, size: "sm", onPress: onClose })
|
|
3108
3512
|
] }),
|
|
3109
|
-
/* @__PURE__ */ (0,
|
|
3110
|
-
footer ? /* @__PURE__ */ (0,
|
|
3513
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "pire-dialog-body", style: { flex: 1 }, children }),
|
|
3514
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("footer", { className: "pire-dialog-foot", children: footer }) : null
|
|
3111
3515
|
] }) })
|
|
3112
3516
|
}
|
|
3113
3517
|
);
|
|
3114
3518
|
}
|
|
3115
3519
|
|
|
3116
3520
|
// src/components/patterns/EmptyState.tsx
|
|
3117
|
-
var
|
|
3521
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
3118
3522
|
function EmptyState({ icon = "file-text", title, action, compact, children, className, ...rest }) {
|
|
3119
|
-
return /* @__PURE__ */ (0,
|
|
3120
|
-
/* @__PURE__ */ (0,
|
|
3121
|
-
title ? /* @__PURE__ */ (0,
|
|
3122
|
-
children ? /* @__PURE__ */ (0,
|
|
3523
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: cx("pire-empty", className), "data-compact": compact ? "true" : void 0, ...rest, children: [
|
|
3524
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: icon, size: 24, className: "pire-empty-icon" }),
|
|
3525
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "pire-empty-title", style: { margin: 0 }, children: title }) : null,
|
|
3526
|
+
children ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "pire-empty-body", style: { margin: 0 }, children }) : null,
|
|
3123
3527
|
action
|
|
3124
3528
|
] });
|
|
3125
3529
|
}
|
|
3126
3530
|
|
|
3127
3531
|
// src/components/patterns/FileDropZone.tsx
|
|
3128
|
-
var
|
|
3129
|
-
var
|
|
3130
|
-
var
|
|
3532
|
+
var React16 = __toESM(require("react"), 1);
|
|
3533
|
+
var import_react_aria_components33 = require("react-aria-components");
|
|
3534
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
3131
3535
|
var isImage2 = (file) => file.type.startsWith("image/");
|
|
3132
3536
|
function FileDropZone({
|
|
3133
3537
|
label,
|
|
@@ -3153,10 +3557,10 @@ function FileDropZone({
|
|
|
3153
3557
|
style
|
|
3154
3558
|
}) {
|
|
3155
3559
|
const msg = usePireMessages();
|
|
3156
|
-
const [uncontrolled, setUncontrolled] =
|
|
3560
|
+
const [uncontrolled, setUncontrolled] = React16.useState(defaultValue ?? []);
|
|
3157
3561
|
const files = value ?? uncontrolled;
|
|
3158
|
-
const created =
|
|
3159
|
-
|
|
3562
|
+
const created = React16.useRef([]);
|
|
3563
|
+
React16.useEffect(() => () => {
|
|
3160
3564
|
for (const url of created.current) URL.revokeObjectURL(url);
|
|
3161
3565
|
}, []);
|
|
3162
3566
|
const commit = (next) => {
|
|
@@ -3176,43 +3580,43 @@ function FileDropZone({
|
|
|
3176
3580
|
commit(allowsMultiple ? [...files, ...wrapped] : wrapped.slice(0, 1));
|
|
3177
3581
|
};
|
|
3178
3582
|
const remove = (target) => commit(files.filter((f) => f.file !== target));
|
|
3179
|
-
return /* @__PURE__ */ (0,
|
|
3180
|
-
label ? /* @__PURE__ */ (0,
|
|
3583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: cx("pire-field", className), style, "data-full-width": String(fullWidth), children: [
|
|
3584
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("span", { className: "pire-field-label", children: [
|
|
3181
3585
|
label,
|
|
3182
|
-
isRequired ? /* @__PURE__ */ (0,
|
|
3586
|
+
isRequired ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "pire-field-req", "aria-hidden": "true", children: "*" }) : null
|
|
3183
3587
|
] }) : null,
|
|
3184
|
-
/* @__PURE__ */ (0,
|
|
3185
|
-
|
|
3588
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
3589
|
+
import_react_aria_components33.DropZone,
|
|
3186
3590
|
{
|
|
3187
3591
|
className: "pire-dropzone",
|
|
3188
3592
|
"data-height": height,
|
|
3189
3593
|
isDisabled: isDisabled || isReadOnly,
|
|
3190
3594
|
onDrop: async (e) => {
|
|
3191
3595
|
const dropped = await Promise.all(
|
|
3192
|
-
e.items.filter(
|
|
3596
|
+
e.items.filter(import_react_aria_components33.isFileDropItem).map((item) => item.getFile())
|
|
3193
3597
|
);
|
|
3194
3598
|
accept(dropped);
|
|
3195
3599
|
},
|
|
3196
3600
|
children: [
|
|
3197
|
-
/* @__PURE__ */ (0,
|
|
3198
|
-
/* @__PURE__ */ (0,
|
|
3199
|
-
/* @__PURE__ */ (0,
|
|
3200
|
-
|
|
3601
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: "download", size: 24, className: "pire-dropzone-icon" }),
|
|
3602
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "pire-dropzone-prompt", children: promptLabel ?? msg.fileDropZonePrompt }),
|
|
3603
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
3604
|
+
import_react_aria_components33.FileTrigger,
|
|
3201
3605
|
{
|
|
3202
3606
|
acceptedFileTypes,
|
|
3203
3607
|
allowsMultiple,
|
|
3204
3608
|
onSelect: (list) => accept(list ? [...list] : []),
|
|
3205
|
-
children: /* @__PURE__ */ (0,
|
|
3609
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { variant: "secondary", isDisabled: isDisabled || isReadOnly, children: msg.fileUploadChoose })
|
|
3206
3610
|
}
|
|
3207
3611
|
)
|
|
3208
3612
|
]
|
|
3209
3613
|
}
|
|
3210
3614
|
),
|
|
3211
|
-
files.length ? /* @__PURE__ */ (0,
|
|
3212
|
-
previewUrl ? /* @__PURE__ */ (0,
|
|
3213
|
-
/* @__PURE__ */ (0,
|
|
3214
|
-
/* @__PURE__ */ (0,
|
|
3215
|
-
isDisabled || isReadOnly ? null : /* @__PURE__ */ (0,
|
|
3615
|
+
files.length ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("ul", { className: "pire-fileupload-list", children: files.map(({ file, previewUrl }) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("li", { className: "pire-fileupload-item", children: [
|
|
3616
|
+
previewUrl ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("img", { className: "pire-fileupload-thumb", src: previewUrl, alt: "" }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: "file-text", size: 16, className: "pire-fileupload-icon" }),
|
|
3617
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "pire-fileupload-name", children: file.name }),
|
|
3618
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "pire-fileupload-size", children: formatFileSize(file.size) }),
|
|
3619
|
+
isDisabled || isReadOnly ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
3216
3620
|
IconButton,
|
|
3217
3621
|
{
|
|
3218
3622
|
icon: "x",
|
|
@@ -3222,14 +3626,14 @@ function FileDropZone({
|
|
|
3222
3626
|
}
|
|
3223
3627
|
)
|
|
3224
3628
|
] }, `${file.name}-${file.size}-${file.lastModified}`)) }) : null,
|
|
3225
|
-
uploadProgress != null ? /* @__PURE__ */ (0,
|
|
3226
|
-
description ? /* @__PURE__ */ (0,
|
|
3227
|
-
isInvalid && errorMessage ? /* @__PURE__ */ (0,
|
|
3629
|
+
uploadProgress != null ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ProgressBar, { value: uploadProgress, label: msg.fileUploadUploading }) : null,
|
|
3630
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "pire-field-hint", children: description }) : null,
|
|
3631
|
+
isInvalid && errorMessage ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "pire-field-error", children: errorMessage }) : null
|
|
3228
3632
|
] });
|
|
3229
3633
|
}
|
|
3230
3634
|
|
|
3231
3635
|
// src/index.ts
|
|
3232
|
-
var
|
|
3636
|
+
var import_react_aria_components34 = require("react-aria-components");
|
|
3233
3637
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3234
3638
|
0 && (module.exports = {
|
|
3235
3639
|
Avatar,
|
|
@@ -3240,6 +3644,7 @@ var import_react_aria_components32 = require("react-aria-components");
|
|
|
3240
3644
|
Card,
|
|
3241
3645
|
Checkbox,
|
|
3242
3646
|
ComboBox,
|
|
3647
|
+
CommandPalette,
|
|
3243
3648
|
ConfirmDialog,
|
|
3244
3649
|
DataTable,
|
|
3245
3650
|
DatePicker,
|
|
@@ -3256,10 +3661,12 @@ var import_react_aria_components32 = require("react-aria-components");
|
|
|
3256
3661
|
FormField,
|
|
3257
3662
|
Heading,
|
|
3258
3663
|
I18nProvider,
|
|
3664
|
+
ICON_NAMES,
|
|
3259
3665
|
Icon,
|
|
3260
3666
|
IconButton,
|
|
3261
3667
|
InlineMessage,
|
|
3262
3668
|
Input,
|
|
3669
|
+
Kbd,
|
|
3263
3670
|
KpiTile,
|
|
3264
3671
|
LineChart,
|
|
3265
3672
|
Link,
|
|
@@ -3310,6 +3717,7 @@ var import_react_aria_components32 = require("react-aria-components");
|
|
|
3310
3717
|
esMessages,
|
|
3311
3718
|
formatFileSize,
|
|
3312
3719
|
rangeLengthInDays,
|
|
3720
|
+
useCommandPaletteShortcut,
|
|
3313
3721
|
usePireMessages,
|
|
3314
3722
|
useToast
|
|
3315
3723
|
});
|