@warp-ds/elements 1.3.1-next.1 → 1.3.2-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.js +199 -129
- package/dist/index.js.map +4 -4
- package/dist/packages/affix/index.js +139 -62
- package/dist/packages/affix/index.js.map +4 -4
- package/dist/packages/alert/index.js +148 -71
- package/dist/packages/alert/index.js.map +4 -4
- package/dist/packages/attention/index.d.ts +1 -1
- package/dist/packages/attention/index.js +139 -62
- package/dist/packages/attention/index.js.map +4 -4
- package/dist/packages/badge/index.js +114 -46
- package/dist/packages/badge/index.js.map +3 -3
- package/dist/packages/box/index.js +105 -39
- package/dist/packages/box/index.js.map +3 -3
- package/dist/packages/breadcrumbs/index.js +142 -65
- package/dist/packages/breadcrumbs/index.js.map +4 -4
- package/dist/packages/broadcast/index.js.map +1 -1
- package/dist/packages/button/index.js +139 -62
- package/dist/packages/button/index.js.map +4 -4
- package/dist/packages/card/index.js +112 -46
- package/dist/packages/card/index.js.map +3 -3
- package/dist/packages/expandable/index.js +139 -62
- package/dist/packages/expandable/index.js.map +4 -4
- package/dist/packages/pill/index.js +141 -64
- package/dist/packages/pill/index.js.map +4 -4
- package/dist/packages/select/index.js +153 -80
- package/dist/packages/select/index.js.map +4 -4
- package/dist/packages/textfield/index.d.ts +0 -1
- package/dist/packages/textfield/index.js +119 -55
- package/dist/packages/textfield/index.js.map +3 -3
- package/dist/packages/toast/index.js +146 -69
- package/dist/packages/toast/index.js.map +4 -4
- package/package.json +25 -37
|
@@ -1033,26 +1033,27 @@ function interleave(array, separator2) {
|
|
|
1033
1033
|
return array.flatMap((el) => [el, separator2]).slice(0, -1);
|
|
1034
1034
|
}
|
|
1035
1035
|
|
|
1036
|
-
// node_modules/.pnpm/@warp-ds+css@1.
|
|
1036
|
+
// node_modules/.pnpm/@warp-ds+css@1.9.1/node_modules/@warp-ds/css/component-classes/index.js
|
|
1037
1037
|
var box = {
|
|
1038
1038
|
box: "group block relative break-words last-child:mb-0 p-16 rounded-8",
|
|
1039
1039
|
// Relative here enables w-clickable
|
|
1040
1040
|
bleed: "-mx-16 sm:mx-0 rounded-l-0 rounded-r-0 sm:rounded-8",
|
|
1041
1041
|
// We target L and R to override the default rounded-8
|
|
1042
|
-
info: "
|
|
1043
|
-
neutral: "
|
|
1044
|
-
bordered: "border-2
|
|
1045
|
-
infoClickable: "hover:
|
|
1046
|
-
neutralClickable: "hover:
|
|
1047
|
-
borderedClickable: "hover:
|
|
1042
|
+
info: "s-bg-info-subtle",
|
|
1043
|
+
neutral: "bg-[--w-s-color-surface-sunken]",
|
|
1044
|
+
bordered: "border-2 s-border s-bg",
|
|
1045
|
+
infoClickable: "hover:s-bg-info-subtle-hover active:s-bg-info-subtle-hover",
|
|
1046
|
+
neutralClickable: "hover:s-bg-subtle-hover active:s-bg-subtle-hover",
|
|
1047
|
+
borderedClickable: "hover:s-bg-hover active:s-bg-hover hover:s-border-hover active:s-border-hover"
|
|
1048
1048
|
};
|
|
1049
1049
|
var buttonReset = "focus:outline-none appearance-none cursor-pointer bg-transparent border-0 m-0 p-0 inline-block";
|
|
1050
1050
|
var expandable = {
|
|
1051
1051
|
expandable: "will-change-height",
|
|
1052
|
-
expandableTitle: "font-bold
|
|
1053
|
-
expandableBox: "
|
|
1052
|
+
expandableTitle: "font-bold s-text",
|
|
1053
|
+
expandableBox: "s-bg-subtle hover:s-bg-subtle-hover py-0 px-0 " + box.box,
|
|
1054
|
+
expandableInfo: "s-bg-info-subtle! hover:s-bg-info-subtle-hover!",
|
|
1054
1055
|
expandableBleed: box.bleed,
|
|
1055
|
-
chevron: "inline-block align-middle
|
|
1056
|
+
chevron: "inline-block align-middle s-icon",
|
|
1056
1057
|
chevronNonBox: "ml-8",
|
|
1057
1058
|
chevronBox: "",
|
|
1058
1059
|
chevronTransform: "transform transition-transform transform-gpu ease-in-out",
|
|
@@ -1072,17 +1073,17 @@ var expandable = {
|
|
|
1072
1073
|
};
|
|
1073
1074
|
var buttonDefaultStyling = "font-bold focusable justify-center transition-colors ease-in-out";
|
|
1074
1075
|
var buttonColors = {
|
|
1075
|
-
primary: "
|
|
1076
|
-
secondary: "
|
|
1077
|
-
utility: "
|
|
1078
|
-
destructive: "
|
|
1079
|
-
pill: "
|
|
1080
|
-
disabled: "
|
|
1081
|
-
quiet: "
|
|
1082
|
-
utilityQuiet: "
|
|
1083
|
-
negativeQuiet: "
|
|
1084
|
-
loading: "
|
|
1085
|
-
link: "
|
|
1076
|
+
primary: "s-text-inverted bg-[--w-color-button-primary-background] hover:bg-[--w-color-button-primary-background-hover] active:bg-[--w-color-button-primary-background-active]",
|
|
1077
|
+
secondary: "s-text-link s-border s-bg hover:s-bg-hover hover:s-border-hover active:s-bg-active",
|
|
1078
|
+
utility: "s-text s-bg hover:s-bg-hover active:s-bg-active s-border hover:s-border-hover active:s-border-active",
|
|
1079
|
+
destructive: "s-bg-negative s-text-inverted hover:s-bg-negative-hover active:s-bg-negative-active",
|
|
1080
|
+
pill: "s-icon hover:s-icon-hover active:s-icon-active bg-transparent hover:bg-[--w-color-button-pill-background-hover] active:bg-[--w-color-button-pill-background-active]",
|
|
1081
|
+
disabled: "s-text-inverted s-bg-disabled",
|
|
1082
|
+
quiet: "bg-transparent s-text-link hover:s-bg-hover active:s-bg-active",
|
|
1083
|
+
utilityQuiet: "s-text bg-transparent hover:s-bg-hover active:s-bg-active",
|
|
1084
|
+
negativeQuiet: "bg-transparent s-text-negative hover:s-bg-negative-subtle-hover active:s-bg-negative-subtle-active",
|
|
1085
|
+
loading: "s-text s-bg-subtle",
|
|
1086
|
+
link: "s-text-link"
|
|
1086
1087
|
};
|
|
1087
1088
|
var buttonTypes = {
|
|
1088
1089
|
primary: `border-0 rounded-8 ${buttonDefaultStyling}`,
|
|
@@ -1186,10 +1187,10 @@ var button = {
|
|
|
1186
1187
|
contentWidth: "max-w-max"
|
|
1187
1188
|
};
|
|
1188
1189
|
var modal = {
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
backdrop: "fixed inset-0 flex sm:place-content-center sm:place-items-center items-end z-30 [--w-modal-max-height:80%] [--w-modal-width:640px]",
|
|
1192
|
-
modal: "pb-safe-[32]
|
|
1190
|
+
transparentBg: "",
|
|
1191
|
+
//TODO: Remove in v2 - previously used for opacity before changing to a rgba background in backdrop
|
|
1192
|
+
backdrop: "fixed inset-0 flex sm:place-content-center sm:place-items-center items-end z-30 [--w-modal-max-height:80%] [--w-modal-width:640px] bg-[--w-black/25]",
|
|
1193
|
+
modal: "pb-safe-[32] shadow-m max-h-[--w-modal-max-height] min-h-[--w-modal-min-height] w-[--w-modal-width] h-[--w-modal-height] relative transition-300 ease-in-out backface-hidden will-change-height rounded-8 mx-0 sm:mx-16 bg-[--w-s-color-surface-elevated-100] flex flex-col overflow-hidden outline-none space-y-16 pt-8 sm:pt-32 sm:pb-32 rounded-b-0 sm:rounded-b-8",
|
|
1193
1194
|
content: "block overflow-y-auto overflow-x-hidden last-child:mb-0 grow shrink px-16 sm:px-32 relative",
|
|
1194
1195
|
footer: "flex justify-end shrink-0 px-16 sm:px-32",
|
|
1195
1196
|
transitionTitle: "transition-all duration-300",
|
|
@@ -1204,30 +1205,87 @@ var modal = {
|
|
|
1204
1205
|
titleButtonIconRotated: "transform rotate-90"
|
|
1205
1206
|
};
|
|
1206
1207
|
var label = {
|
|
1207
|
-
label: "antialiased block relative text-s font-bold pb-4 cursor-pointer
|
|
1208
|
-
|
|
1209
|
-
|
|
1208
|
+
label: "antialiased block relative text-s font-bold pb-4 cursor-pointer s-text",
|
|
1209
|
+
optional: "pl-8 font-normal text-s s-text-subtle",
|
|
1210
|
+
labelInvalid: "s-text-negative"
|
|
1211
|
+
// TODO: Remove in v2 - kept for backwards compatibility
|
|
1210
1212
|
};
|
|
1211
|
-
var prefixSuffixWrapperBase = "absolute top-0 bottom-0 flex justify-center items-center focusable focus:[--w-outline-offset:-2px] bg-transparent ";
|
|
1213
|
+
var prefixSuffixWrapperBase = "absolute top-0 bottom-0 flex justify-center items-center focusable rounded-4 focus:[--w-outline-offset:-2px] bg-transparent ";
|
|
1212
1214
|
var suffix = {
|
|
1213
1215
|
wrapper: prefixSuffixWrapperBase + "right-0",
|
|
1214
1216
|
wrapperWithLabel: "w-max pr-12",
|
|
1215
1217
|
wrapperWithIcon: "w-40",
|
|
1216
|
-
label: "antialiased block relative cursor-default pb-0 font-bold text-xs
|
|
1218
|
+
label: "antialiased block relative cursor-default pb-0 font-bold text-xs s-text"
|
|
1217
1219
|
};
|
|
1218
1220
|
var prefix = {
|
|
1219
1221
|
wrapper: prefixSuffixWrapperBase + "left-0",
|
|
1220
1222
|
wrapperWithLabel: "w-max pl-12",
|
|
1221
1223
|
wrapperWithIcon: "w-40",
|
|
1222
|
-
label: "antialiased block relative cursor-default pb-0 font-bold text-xs
|
|
1224
|
+
label: "antialiased block relative cursor-default pb-0 font-bold text-xs s-text"
|
|
1223
1225
|
};
|
|
1224
1226
|
var breadcrumbs = {
|
|
1225
1227
|
wrapper: "flex space-x-8",
|
|
1226
|
-
text: "
|
|
1227
|
-
link: "
|
|
1228
|
-
separator: "select-none
|
|
1228
|
+
text: "s-text",
|
|
1229
|
+
link: "s-text-link",
|
|
1230
|
+
separator: "select-none s-icon",
|
|
1229
1231
|
a11y: "sr-only"
|
|
1230
1232
|
};
|
|
1233
|
+
var toggle = {
|
|
1234
|
+
// wrapper classes
|
|
1235
|
+
field: "relative text-m",
|
|
1236
|
+
// true
|
|
1237
|
+
wrapper: "relative py-1",
|
|
1238
|
+
// true
|
|
1239
|
+
wrapperRadioButtons: "inline-flex font-bold rounded-8 focus-within:focusable",
|
|
1240
|
+
// isRadioButton && !isEqualWidth
|
|
1241
|
+
wrapperRadioButtonsJustified: "flex font-bold rounded-8 focus-within:focusable",
|
|
1242
|
+
// isRadioButton && isEqualWidth,
|
|
1243
|
+
// group classes
|
|
1244
|
+
radioButtonsGroup: "group",
|
|
1245
|
+
// isRadioButton
|
|
1246
|
+
radioButtonsGroupJustified: "grow-1 shrink-0 basis-auto",
|
|
1247
|
+
// isRadioButton && isEqualWidth
|
|
1248
|
+
// input classes
|
|
1249
|
+
input: "peer",
|
|
1250
|
+
a11y: "sr-only",
|
|
1251
|
+
// label classes
|
|
1252
|
+
label: "peer-focus:focusable cursor-pointer text-m s-text s-border py-2 pl-28 select-none relative block before:border before:absolute before:transition-all before:left-0 before:w-20 before:h-20 before:top-2",
|
|
1253
|
+
// !isRadioButton
|
|
1254
|
+
labelBefore: 'before:content-[""] before:block',
|
|
1255
|
+
// !isRadioButton && !isIndeterminate
|
|
1256
|
+
checkbox: "before:s-bg before:rounded-2 hover:before:s-border-primary hover:before:s-bg-hover peer-checked:before:bg-center peer-checked:before:bg-[url(var(--w-form-check-mark))] peer-checked:before:s-border-primary peer-checked:before:s-bg-primary peer-checked:peer-hover:before:s-border-primary-hover peer-checked:peer-hover:before:s-bg-primary-hover",
|
|
1257
|
+
// isCheckbox && !isIndeterminate && !isInvalid && !isDisabled
|
|
1258
|
+
checkboxInvalid: "before:s-bg before:s-border-negative before:rounded-2 hover:before:s-bg-negative-subtle-hover hover:before:s-border-negative-hover peer-checked:before:bg-center peer-checked:before:bg-[url(var(--w-form-check-mark))] peer-checked:before:s-bg-negative peer-checked:before:s-border-negative peer-checked:peer-hover:before:s-bg-negative-hover peer-checked:peer-hover:before:s-border-negative-hover",
|
|
1259
|
+
// isCheckbox && !isIndeterminate && isInvalid && !isDisabled
|
|
1260
|
+
checkboxDisabled: "before:s-bg-disabled-subtle before:s-border-disabled pointer-events-none before:rounded-2 peer-checked:before:bg-center peer-checked:before:bg-[url(var(--w-form-check-mark))] peer-checked:before:s-border-disabled peer-checked:before:s-bg-disabled",
|
|
1261
|
+
// isCheckbox && !isIndeterminate && !isInvalid && isDisabled
|
|
1262
|
+
indeterminate: 'before:content-["\u2013"] before:rounded-2 before:leading-xs before:text-center before:font-bold before:s-icon-inverted peer-indeterminate:before:s-border-primary peer-indeterminate:before:s-bg-primary peer-indeterminate:hover:before:s-border-primary-hover peer-indeterminate:hover:before:s-bg-primary-hover',
|
|
1263
|
+
// isCheckbox && isIndeterminate && !isInvalid && !isDisabled
|
|
1264
|
+
indeterminateInvalid: 'before:content-["\u2013"] before:rounded-2 before:leading-xs before:text-center before:font-bold before:s-icon-inverted peer-indeterminate:before:s-border-negative peer-indeterminate:before:s-bg-negative peer-indeterminate:hover:before:s-border-negative-hover peer-indeterminate:hover:before:s-bg-negative-hover',
|
|
1265
|
+
// isCheckbox && isIndeterminate && isInvalid && !isDisabled
|
|
1266
|
+
indeterminateDisabled: 'before:content-["\u2013"] before:rounded-2 before:leading-xs before:text-center before:font-bold pointer-events-none before:s-icon-inverted peer-indeterminate:before:s-border-disabled peer-indeterminate:before:s-bg-disabled',
|
|
1267
|
+
// isCheckbox && isIndeterminate && !isInvalid && isDisabled
|
|
1268
|
+
radio: "before:s-bg before:rounded-full peer-checked:before:border-[6] peer-checked:before:s-border-selected peer-checked:peer-hover:before:s-border-selected-hover peer-hover:before:s-border-primary peer-hover:before:s-bg-hover",
|
|
1269
|
+
// isRadio && !isDisabled && !isInvalid
|
|
1270
|
+
radioInvalid: "before:s-bg before:s-border-negative before:rounded-full peer-checked:before:border-[6] peer-hover:before:s-bg-negative-subtle peer-hover:before:s-border-negative-hover peer-checked:before:s-border-negative peer-checked:peer-hover:before:s-border-negative-hover",
|
|
1271
|
+
// isRadio && isInvalid && !isDisabled
|
|
1272
|
+
radioDisabled: "before:s-bg-disabled-subtle before:s-border-disabled pointer-events-none before:rounded-full peer-checked:before:border-[6]",
|
|
1273
|
+
// isRadio && !isInvalid && isDisabled
|
|
1274
|
+
radioButtonsLabel: "peer-hover:peer-not-checked:s-bg-hover peer-checked:s-text-inverted peer-checked:s-bg-primary peer-checked:s-border-primary block relative font-bold cursor-pointer s-text-link text-center s-bg border-2 s-border group-first-of-type:rounded-tl-8 group-first-of-type:rounded-bl-8 group-last-of-type:rounded-tr-8 group-last-of-type:rounded-br-8 group-not-last-of-type:border-r-0 peer-checked:z-10 group-not-first:-ml-2",
|
|
1275
|
+
// isRadioButtons
|
|
1276
|
+
radioButtonsRegular: "text-s py-8 pl-12 pr-14",
|
|
1277
|
+
// isRadioButtons && !isSmall
|
|
1278
|
+
radioButtonsSmall: "text-xs py-[5px] px-[8px]"
|
|
1279
|
+
// isRadioButtons && isSmall
|
|
1280
|
+
};
|
|
1281
|
+
var deadToggle = {
|
|
1282
|
+
wrapper: `${toggle.wrapper} h-20 w-20 pointer-events-none`,
|
|
1283
|
+
input: `${toggle.input} hidden`,
|
|
1284
|
+
inputVue: "hidden",
|
|
1285
|
+
labelRadio: `${toggle.label} ${toggle.labelBefore} ${toggle.radio}`,
|
|
1286
|
+
labelCheckbox: `${toggle.label} ${toggle.labelBefore} ${toggle.checkbox}`,
|
|
1287
|
+
labelVue: "-mt-2"
|
|
1288
|
+
};
|
|
1231
1289
|
var clickable = {
|
|
1232
1290
|
toggle: "absolute inset-0 h-full w-full appearance-none cursor-pointer focusable focusable-inset",
|
|
1233
1291
|
label: `px-12 ${label.label} py-8! cursor-pointer focusable focusable-inset`,
|
|
@@ -1236,19 +1294,27 @@ var clickable = {
|
|
|
1236
1294
|
};
|
|
1237
1295
|
var attention = {
|
|
1238
1296
|
base: "border-2 relative flex items-start",
|
|
1239
|
-
tooltip: "
|
|
1240
|
-
callout: "
|
|
1241
|
-
highlight: "
|
|
1242
|
-
popover: "
|
|
1297
|
+
tooltip: "s-bg-inverted border-[--w-s-color-background-inverted] shadow-m s-text-inverted-static rounded-4 py-6 px-8",
|
|
1298
|
+
callout: "bg-[--w-color-callout-background] border-[--w-color-callout-border] s-text py-8 px-16 rounded-8",
|
|
1299
|
+
highlight: "bg-[--w-color-callout-background] border-[--w-color-callout-border] s-text py-8 px-16 rounded-8 drop-shadow-m translate-z-0",
|
|
1300
|
+
popover: "bg-[--w-s-color-surface-elevated-300] border-[--w-s-color-surface-elevated-300] s-text rounded-8 p-16 drop-shadow-m translate-z-0",
|
|
1243
1301
|
arrowBase: "absolute h-[14px] w-[14px] border-2 border-b-0 border-r-0 rounded-tl-4 transform",
|
|
1302
|
+
arrowDirectionLeftStart: "-left-[8px]",
|
|
1244
1303
|
arrowDirectionLeft: "-left-[8px]",
|
|
1304
|
+
arrowDirectionLeftEnd: "-left-[8px]",
|
|
1305
|
+
arrowDirectionRightStart: "-right-[8px]",
|
|
1245
1306
|
arrowDirectionRight: "-right-[8px]",
|
|
1307
|
+
arrowDirectionRightEnd: "-right-[8px]",
|
|
1308
|
+
arrowDirectionBottomStart: "-bottom-[8px]",
|
|
1246
1309
|
arrowDirectionBottom: "-bottom-[8px]",
|
|
1310
|
+
arrowDirectionBottomEnd: "-bottom-[8px]",
|
|
1311
|
+
arrowDirectionTopStart: "-top-[8px]",
|
|
1247
1312
|
arrowDirectionTop: "-top-[8px]",
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1313
|
+
arrowDirectionTopEnd: "-top-[8px]",
|
|
1314
|
+
arrowTooltip: "s-bg-inverted border-[--w-s-color-background-inverted]",
|
|
1315
|
+
arrowCallout: "bg-[--w-color-callout-background] border-[--w-color-callout-border]",
|
|
1316
|
+
arrowPopover: "bg-[--w-s-color-surface-elevated-300] border-[--w-s-color-surface-elevated-300]",
|
|
1317
|
+
arrowHighlight: "bg-[--w-color-callout-background] border-[--w-color-callout-border]",
|
|
1252
1318
|
content: "last-child:mb-0",
|
|
1253
1319
|
notCallout: "absolute z-50",
|
|
1254
1320
|
closeBtn: `${buttonTextSizes.medium} ${buttonTypes.pill} ${buttonColors.pill} justify-self-end -mr-8 ml-8`
|
|
@@ -1271,10 +1337,10 @@ function kebabCaseAttributes(constructor) {
|
|
|
1271
1337
|
};
|
|
1272
1338
|
}
|
|
1273
1339
|
|
|
1274
|
-
// node_modules/.pnpm/@lingui+core@4.7.
|
|
1340
|
+
// node_modules/.pnpm/@lingui+core@4.7.1/node_modules/@lingui/core/dist/index.mjs
|
|
1275
1341
|
var import_unraw = __toESM(require_dist(), 1);
|
|
1276
1342
|
|
|
1277
|
-
// node_modules/.pnpm/@lingui+message-utils@4.7.
|
|
1343
|
+
// node_modules/.pnpm/@lingui+message-utils@4.7.1/node_modules/@lingui/message-utils/dist/compileMessage.mjs
|
|
1278
1344
|
var import_parser = __toESM(require_parser(), 1);
|
|
1279
1345
|
function processTokens(tokens, mapText) {
|
|
1280
1346
|
if (!tokens.filter((token) => token.type !== "content").length) {
|
|
@@ -1324,7 +1390,7 @@ Message: ${message}`);
|
|
|
1324
1390
|
}
|
|
1325
1391
|
}
|
|
1326
1392
|
|
|
1327
|
-
// node_modules/.pnpm/@lingui+core@4.7.
|
|
1393
|
+
// node_modules/.pnpm/@lingui+core@4.7.1/node_modules/@lingui/core/dist/index.mjs
|
|
1328
1394
|
var isString = (s) => typeof s === "string";
|
|
1329
1395
|
var isFunction = (f) => typeof f === "function";
|
|
1330
1396
|
var cache = /* @__PURE__ */ new Map();
|
|
@@ -1376,6 +1442,7 @@ function cacheKey(type, locales, options) {
|
|
|
1376
1442
|
return `${type}-${localeKey}-${JSON.stringify(options)}`;
|
|
1377
1443
|
}
|
|
1378
1444
|
var UNICODE_REGEX = /\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/g;
|
|
1445
|
+
var OCTOTHORPE_PH = "%__lingui_octothorpe__%";
|
|
1379
1446
|
var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
1380
1447
|
const locales = passedLocales || locale;
|
|
1381
1448
|
const style = (format) => {
|
|
@@ -1384,7 +1451,7 @@ var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
|
1384
1451
|
const replaceOctothorpe = (value, message) => {
|
|
1385
1452
|
const numberFormat = Object.keys(formats).length ? style("number") : void 0;
|
|
1386
1453
|
const valueStr = number(locales, value, numberFormat);
|
|
1387
|
-
return message.replace("
|
|
1454
|
+
return message.replace(new RegExp(OCTOTHORPE_PH, "g"), valueStr);
|
|
1388
1455
|
};
|
|
1389
1456
|
return {
|
|
1390
1457
|
plural: (value, cases) => {
|
|
@@ -1399,43 +1466,53 @@ var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
|
1399
1466
|
},
|
|
1400
1467
|
select: selectFormatter,
|
|
1401
1468
|
number: (value, format) => number(locales, value, style(format)),
|
|
1402
|
-
date: (value, format) => date(locales, value, style(format))
|
|
1403
|
-
undefined: undefinedFormatter
|
|
1469
|
+
date: (value, format) => date(locales, value, style(format))
|
|
1404
1470
|
};
|
|
1405
1471
|
};
|
|
1406
1472
|
var selectFormatter = (value, rules) => {
|
|
1407
1473
|
var _a;
|
|
1408
1474
|
return (_a = rules[value]) != null ? _a : rules.other;
|
|
1409
1475
|
};
|
|
1410
|
-
var undefinedFormatter = (value) => value;
|
|
1411
1476
|
function interpolate(translation, locale, locales) {
|
|
1412
1477
|
return (values = {}, formats) => {
|
|
1413
1478
|
const formatters = getDefaultFormats(locale, locales, formats);
|
|
1414
|
-
const formatMessage = (
|
|
1415
|
-
if (!Array.isArray(
|
|
1416
|
-
return
|
|
1417
|
-
return
|
|
1418
|
-
if (
|
|
1419
|
-
return
|
|
1479
|
+
const formatMessage = (tokens) => {
|
|
1480
|
+
if (!Array.isArray(tokens))
|
|
1481
|
+
return tokens;
|
|
1482
|
+
return tokens.reduce((message, token) => {
|
|
1483
|
+
if (token === "#") {
|
|
1484
|
+
return message + OCTOTHORPE_PH;
|
|
1485
|
+
}
|
|
1486
|
+
if (isString(token)) {
|
|
1487
|
+
return message + token;
|
|
1488
|
+
}
|
|
1420
1489
|
const [name, type, format] = token;
|
|
1421
1490
|
let interpolatedFormat = {};
|
|
1422
|
-
if (
|
|
1423
|
-
Object.entries(format).forEach(
|
|
1424
|
-
|
|
1425
|
-
|
|
1491
|
+
if (type === "plural" || type === "selectordinal" || type === "select") {
|
|
1492
|
+
Object.entries(format).forEach(
|
|
1493
|
+
([key, value2]) => {
|
|
1494
|
+
interpolatedFormat[key] = formatMessage(value2);
|
|
1495
|
+
}
|
|
1496
|
+
);
|
|
1426
1497
|
} else {
|
|
1427
1498
|
interpolatedFormat = format;
|
|
1428
1499
|
}
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1500
|
+
let value;
|
|
1501
|
+
if (type) {
|
|
1502
|
+
const formatter = formatters[type];
|
|
1503
|
+
value = formatter(values[name], interpolatedFormat);
|
|
1504
|
+
} else {
|
|
1505
|
+
value = values[name];
|
|
1506
|
+
}
|
|
1507
|
+
if (value == null) {
|
|
1508
|
+
return message;
|
|
1509
|
+
}
|
|
1510
|
+
return message + value;
|
|
1434
1511
|
}, "");
|
|
1435
1512
|
};
|
|
1436
1513
|
const result = formatMessage(translation);
|
|
1437
1514
|
if (isString(result) && UNICODE_REGEX.test(result)) {
|
|
1438
|
-
return (0, import_unraw.
|
|
1515
|
+
return (0, import_unraw.unraw)(result.trim());
|
|
1439
1516
|
}
|
|
1440
1517
|
if (isString(result))
|
|
1441
1518
|
return result.trim();
|