@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,18 +1033,18 @@ import WarpElement from "@warp-ds/elements-core";
|
|
|
1033
1033
|
import { classMap } from "lit/directives/class-map.js";
|
|
1034
1034
|
import { when } from "lit/directives/when.js";
|
|
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 toaster = {
|
|
1050
1050
|
container: "fixed transform translate-z-0 bottom-16 left-0 right-0 mx-8 sm:mx-16 z-50 pointer-events-none",
|
|
@@ -1054,24 +1054,25 @@ var toaster = {
|
|
|
1054
1054
|
var toast = {
|
|
1055
1055
|
wrapper: "relative overflow-hidden w-full",
|
|
1056
1056
|
toast: "flex group p-8 mt-16 rounded-8 border-2 w-full pointer-events-auto transition-all",
|
|
1057
|
-
positive: "
|
|
1058
|
-
warning: "
|
|
1059
|
-
negative: "
|
|
1057
|
+
positive: "s-bg-positive-subtle s-border-positive-subtle s-text",
|
|
1058
|
+
warning: "s-bg-warning-subtle s-border-warning-subtle s-text",
|
|
1059
|
+
negative: "s-bg-negative-subtle s-border-negative-subtle s-text",
|
|
1060
1060
|
icon: "shrink-0 rounded-full w-[16px] h-[16px] m-[8px]",
|
|
1061
|
-
iconPositive: "
|
|
1062
|
-
iconWarning: "
|
|
1063
|
-
iconNegative: "
|
|
1061
|
+
iconPositive: "s-icon-positive",
|
|
1062
|
+
iconWarning: "s-icon-warning",
|
|
1063
|
+
iconNegative: "s-icon-negative",
|
|
1064
1064
|
iconLoading: "animate-bounce",
|
|
1065
1065
|
content: "self-center mr-8 py-4 last-child:mb-0",
|
|
1066
|
-
close: "bg-transparent ml-auto p-[8px]
|
|
1066
|
+
close: "bg-transparent ml-auto p-[8px] s-icon hover:s-icon-hover active:s-icon-active"
|
|
1067
1067
|
};
|
|
1068
1068
|
var buttonReset = "focus:outline-none appearance-none cursor-pointer bg-transparent border-0 m-0 p-0 inline-block";
|
|
1069
1069
|
var expandable = {
|
|
1070
1070
|
expandable: "will-change-height",
|
|
1071
|
-
expandableTitle: "font-bold
|
|
1072
|
-
expandableBox: "
|
|
1071
|
+
expandableTitle: "font-bold s-text",
|
|
1072
|
+
expandableBox: "s-bg-subtle hover:s-bg-subtle-hover py-0 px-0 " + box.box,
|
|
1073
|
+
expandableInfo: "s-bg-info-subtle! hover:s-bg-info-subtle-hover!",
|
|
1073
1074
|
expandableBleed: box.bleed,
|
|
1074
|
-
chevron: "inline-block align-middle
|
|
1075
|
+
chevron: "inline-block align-middle s-icon",
|
|
1075
1076
|
chevronNonBox: "ml-8",
|
|
1076
1077
|
chevronBox: "",
|
|
1077
1078
|
chevronTransform: "transform transition-transform transform-gpu ease-in-out",
|
|
@@ -1091,17 +1092,17 @@ var expandable = {
|
|
|
1091
1092
|
};
|
|
1092
1093
|
var buttonDefaultStyling = "font-bold focusable justify-center transition-colors ease-in-out";
|
|
1093
1094
|
var buttonColors = {
|
|
1094
|
-
primary: "
|
|
1095
|
-
secondary: "
|
|
1096
|
-
utility: "
|
|
1097
|
-
destructive: "
|
|
1098
|
-
pill: "
|
|
1099
|
-
disabled: "
|
|
1100
|
-
quiet: "
|
|
1101
|
-
utilityQuiet: "
|
|
1102
|
-
negativeQuiet: "
|
|
1103
|
-
loading: "
|
|
1104
|
-
link: "
|
|
1095
|
+
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]",
|
|
1096
|
+
secondary: "s-text-link s-border s-bg hover:s-bg-hover hover:s-border-hover active:s-bg-active",
|
|
1097
|
+
utility: "s-text s-bg hover:s-bg-hover active:s-bg-active s-border hover:s-border-hover active:s-border-active",
|
|
1098
|
+
destructive: "s-bg-negative s-text-inverted hover:s-bg-negative-hover active:s-bg-negative-active",
|
|
1099
|
+
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]",
|
|
1100
|
+
disabled: "s-text-inverted s-bg-disabled",
|
|
1101
|
+
quiet: "bg-transparent s-text-link hover:s-bg-hover active:s-bg-active",
|
|
1102
|
+
utilityQuiet: "s-text bg-transparent hover:s-bg-hover active:s-bg-active",
|
|
1103
|
+
negativeQuiet: "bg-transparent s-text-negative hover:s-bg-negative-subtle-hover active:s-bg-negative-subtle-active",
|
|
1104
|
+
loading: "s-text s-bg-subtle",
|
|
1105
|
+
link: "s-text-link"
|
|
1105
1106
|
};
|
|
1106
1107
|
var buttonTypes = {
|
|
1107
1108
|
primary: `border-0 rounded-8 ${buttonDefaultStyling}`,
|
|
@@ -1205,10 +1206,10 @@ var button = {
|
|
|
1205
1206
|
contentWidth: "max-w-max"
|
|
1206
1207
|
};
|
|
1207
1208
|
var modal = {
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
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]",
|
|
1211
|
-
modal: "pb-safe-[32]
|
|
1209
|
+
transparentBg: "",
|
|
1210
|
+
//TODO: Remove in v2 - previously used for opacity before changing to a rgba background in backdrop
|
|
1211
|
+
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]",
|
|
1212
|
+
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",
|
|
1212
1213
|
content: "block overflow-y-auto overflow-x-hidden last-child:mb-0 grow shrink px-16 sm:px-32 relative",
|
|
1213
1214
|
footer: "flex justify-end shrink-0 px-16 sm:px-32",
|
|
1214
1215
|
transitionTitle: "transition-all duration-300",
|
|
@@ -1223,22 +1224,79 @@ var modal = {
|
|
|
1223
1224
|
titleButtonIconRotated: "transform rotate-90"
|
|
1224
1225
|
};
|
|
1225
1226
|
var label = {
|
|
1226
|
-
label: "antialiased block relative text-s font-bold pb-4 cursor-pointer
|
|
1227
|
-
|
|
1228
|
-
|
|
1227
|
+
label: "antialiased block relative text-s font-bold pb-4 cursor-pointer s-text",
|
|
1228
|
+
optional: "pl-8 font-normal text-s s-text-subtle",
|
|
1229
|
+
labelInvalid: "s-text-negative"
|
|
1230
|
+
// TODO: Remove in v2 - kept for backwards compatibility
|
|
1229
1231
|
};
|
|
1230
|
-
var prefixSuffixWrapperBase = "absolute top-0 bottom-0 flex justify-center items-center focusable focus:[--w-outline-offset:-2px] bg-transparent ";
|
|
1232
|
+
var prefixSuffixWrapperBase = "absolute top-0 bottom-0 flex justify-center items-center focusable rounded-4 focus:[--w-outline-offset:-2px] bg-transparent ";
|
|
1231
1233
|
var suffix = {
|
|
1232
1234
|
wrapper: prefixSuffixWrapperBase + "right-0",
|
|
1233
1235
|
wrapperWithLabel: "w-max pr-12",
|
|
1234
1236
|
wrapperWithIcon: "w-40",
|
|
1235
|
-
label: "antialiased block relative cursor-default pb-0 font-bold text-xs
|
|
1237
|
+
label: "antialiased block relative cursor-default pb-0 font-bold text-xs s-text"
|
|
1236
1238
|
};
|
|
1237
1239
|
var prefix = {
|
|
1238
1240
|
wrapper: prefixSuffixWrapperBase + "left-0",
|
|
1239
1241
|
wrapperWithLabel: "w-max pl-12",
|
|
1240
1242
|
wrapperWithIcon: "w-40",
|
|
1241
|
-
label: "antialiased block relative cursor-default pb-0 font-bold text-xs
|
|
1243
|
+
label: "antialiased block relative cursor-default pb-0 font-bold text-xs s-text"
|
|
1244
|
+
};
|
|
1245
|
+
var toggle = {
|
|
1246
|
+
// wrapper classes
|
|
1247
|
+
field: "relative text-m",
|
|
1248
|
+
// true
|
|
1249
|
+
wrapper: "relative py-1",
|
|
1250
|
+
// true
|
|
1251
|
+
wrapperRadioButtons: "inline-flex font-bold rounded-8 focus-within:focusable",
|
|
1252
|
+
// isRadioButton && !isEqualWidth
|
|
1253
|
+
wrapperRadioButtonsJustified: "flex font-bold rounded-8 focus-within:focusable",
|
|
1254
|
+
// isRadioButton && isEqualWidth,
|
|
1255
|
+
// group classes
|
|
1256
|
+
radioButtonsGroup: "group",
|
|
1257
|
+
// isRadioButton
|
|
1258
|
+
radioButtonsGroupJustified: "grow-1 shrink-0 basis-auto",
|
|
1259
|
+
// isRadioButton && isEqualWidth
|
|
1260
|
+
// input classes
|
|
1261
|
+
input: "peer",
|
|
1262
|
+
a11y: "sr-only",
|
|
1263
|
+
// label classes
|
|
1264
|
+
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",
|
|
1265
|
+
// !isRadioButton
|
|
1266
|
+
labelBefore: 'before:content-[""] before:block',
|
|
1267
|
+
// !isRadioButton && !isIndeterminate
|
|
1268
|
+
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",
|
|
1269
|
+
// isCheckbox && !isIndeterminate && !isInvalid && !isDisabled
|
|
1270
|
+
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",
|
|
1271
|
+
// isCheckbox && !isIndeterminate && isInvalid && !isDisabled
|
|
1272
|
+
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",
|
|
1273
|
+
// isCheckbox && !isIndeterminate && !isInvalid && isDisabled
|
|
1274
|
+
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',
|
|
1275
|
+
// isCheckbox && isIndeterminate && !isInvalid && !isDisabled
|
|
1276
|
+
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',
|
|
1277
|
+
// isCheckbox && isIndeterminate && isInvalid && !isDisabled
|
|
1278
|
+
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',
|
|
1279
|
+
// isCheckbox && isIndeterminate && !isInvalid && isDisabled
|
|
1280
|
+
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",
|
|
1281
|
+
// isRadio && !isDisabled && !isInvalid
|
|
1282
|
+
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",
|
|
1283
|
+
// isRadio && isInvalid && !isDisabled
|
|
1284
|
+
radioDisabled: "before:s-bg-disabled-subtle before:s-border-disabled pointer-events-none before:rounded-full peer-checked:before:border-[6]",
|
|
1285
|
+
// isRadio && !isInvalid && isDisabled
|
|
1286
|
+
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",
|
|
1287
|
+
// isRadioButtons
|
|
1288
|
+
radioButtonsRegular: "text-s py-8 pl-12 pr-14",
|
|
1289
|
+
// isRadioButtons && !isSmall
|
|
1290
|
+
radioButtonsSmall: "text-xs py-[5px] px-[8px]"
|
|
1291
|
+
// isRadioButtons && isSmall
|
|
1292
|
+
};
|
|
1293
|
+
var deadToggle = {
|
|
1294
|
+
wrapper: `${toggle.wrapper} h-20 w-20 pointer-events-none`,
|
|
1295
|
+
input: `${toggle.input} hidden`,
|
|
1296
|
+
inputVue: "hidden",
|
|
1297
|
+
labelRadio: `${toggle.label} ${toggle.labelBefore} ${toggle.radio}`,
|
|
1298
|
+
labelCheckbox: `${toggle.label} ${toggle.labelBefore} ${toggle.checkbox}`,
|
|
1299
|
+
labelVue: "-mt-2"
|
|
1242
1300
|
};
|
|
1243
1301
|
var clickable = {
|
|
1244
1302
|
toggle: "absolute inset-0 h-full w-full appearance-none cursor-pointer focusable focusable-inset",
|
|
@@ -1248,19 +1306,27 @@ var clickable = {
|
|
|
1248
1306
|
};
|
|
1249
1307
|
var attention = {
|
|
1250
1308
|
base: "border-2 relative flex items-start",
|
|
1251
|
-
tooltip: "
|
|
1252
|
-
callout: "
|
|
1253
|
-
highlight: "
|
|
1254
|
-
popover: "
|
|
1309
|
+
tooltip: "s-bg-inverted border-[--w-s-color-background-inverted] shadow-m s-text-inverted-static rounded-4 py-6 px-8",
|
|
1310
|
+
callout: "bg-[--w-color-callout-background] border-[--w-color-callout-border] s-text py-8 px-16 rounded-8",
|
|
1311
|
+
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",
|
|
1312
|
+
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",
|
|
1255
1313
|
arrowBase: "absolute h-[14px] w-[14px] border-2 border-b-0 border-r-0 rounded-tl-4 transform",
|
|
1314
|
+
arrowDirectionLeftStart: "-left-[8px]",
|
|
1256
1315
|
arrowDirectionLeft: "-left-[8px]",
|
|
1316
|
+
arrowDirectionLeftEnd: "-left-[8px]",
|
|
1317
|
+
arrowDirectionRightStart: "-right-[8px]",
|
|
1257
1318
|
arrowDirectionRight: "-right-[8px]",
|
|
1319
|
+
arrowDirectionRightEnd: "-right-[8px]",
|
|
1320
|
+
arrowDirectionBottomStart: "-bottom-[8px]",
|
|
1258
1321
|
arrowDirectionBottom: "-bottom-[8px]",
|
|
1322
|
+
arrowDirectionBottomEnd: "-bottom-[8px]",
|
|
1323
|
+
arrowDirectionTopStart: "-top-[8px]",
|
|
1259
1324
|
arrowDirectionTop: "-top-[8px]",
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1325
|
+
arrowDirectionTopEnd: "-top-[8px]",
|
|
1326
|
+
arrowTooltip: "s-bg-inverted border-[--w-s-color-background-inverted]",
|
|
1327
|
+
arrowCallout: "bg-[--w-color-callout-background] border-[--w-color-callout-border]",
|
|
1328
|
+
arrowPopover: "bg-[--w-s-color-surface-elevated-300] border-[--w-s-color-surface-elevated-300]",
|
|
1329
|
+
arrowHighlight: "bg-[--w-color-callout-background] border-[--w-color-callout-border]",
|
|
1264
1330
|
content: "last-child:mb-0",
|
|
1265
1331
|
notCallout: "absolute z-50",
|
|
1266
1332
|
closeBtn: `${buttonTextSizes.medium} ${buttonTypes.pill} ${buttonColors.pill} justify-self-end -mr-8 ml-8`
|
|
@@ -1343,10 +1409,10 @@ var collapse = (el, done) => {
|
|
|
1343
1409
|
import { LitElement } from "lit";
|
|
1344
1410
|
import { unsafeStatic, html } from "lit/static-html.js";
|
|
1345
1411
|
|
|
1346
|
-
// node_modules/.pnpm/@lingui+core@4.7.
|
|
1412
|
+
// node_modules/.pnpm/@lingui+core@4.7.1/node_modules/@lingui/core/dist/index.mjs
|
|
1347
1413
|
var import_unraw = __toESM(require_dist(), 1);
|
|
1348
1414
|
|
|
1349
|
-
// node_modules/.pnpm/@lingui+message-utils@4.7.
|
|
1415
|
+
// node_modules/.pnpm/@lingui+message-utils@4.7.1/node_modules/@lingui/message-utils/dist/compileMessage.mjs
|
|
1350
1416
|
var import_parser = __toESM(require_parser(), 1);
|
|
1351
1417
|
function processTokens(tokens, mapText) {
|
|
1352
1418
|
if (!tokens.filter((token) => token.type !== "content").length) {
|
|
@@ -1396,7 +1462,7 @@ Message: ${message}`);
|
|
|
1396
1462
|
}
|
|
1397
1463
|
}
|
|
1398
1464
|
|
|
1399
|
-
// node_modules/.pnpm/@lingui+core@4.7.
|
|
1465
|
+
// node_modules/.pnpm/@lingui+core@4.7.1/node_modules/@lingui/core/dist/index.mjs
|
|
1400
1466
|
var isString = (s) => typeof s === "string";
|
|
1401
1467
|
var isFunction = (f) => typeof f === "function";
|
|
1402
1468
|
var cache = /* @__PURE__ */ new Map();
|
|
@@ -1448,6 +1514,7 @@ function cacheKey(type, locales, options) {
|
|
|
1448
1514
|
return `${type}-${localeKey}-${JSON.stringify(options)}`;
|
|
1449
1515
|
}
|
|
1450
1516
|
var UNICODE_REGEX = /\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/g;
|
|
1517
|
+
var OCTOTHORPE_PH = "%__lingui_octothorpe__%";
|
|
1451
1518
|
var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
1452
1519
|
const locales = passedLocales || locale;
|
|
1453
1520
|
const style = (format) => {
|
|
@@ -1456,7 +1523,7 @@ var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
|
1456
1523
|
const replaceOctothorpe = (value, message) => {
|
|
1457
1524
|
const numberFormat = Object.keys(formats).length ? style("number") : void 0;
|
|
1458
1525
|
const valueStr = number(locales, value, numberFormat);
|
|
1459
|
-
return message.replace("
|
|
1526
|
+
return message.replace(new RegExp(OCTOTHORPE_PH, "g"), valueStr);
|
|
1460
1527
|
};
|
|
1461
1528
|
return {
|
|
1462
1529
|
plural: (value, cases) => {
|
|
@@ -1471,43 +1538,53 @@ var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
|
1471
1538
|
},
|
|
1472
1539
|
select: selectFormatter,
|
|
1473
1540
|
number: (value, format) => number(locales, value, style(format)),
|
|
1474
|
-
date: (value, format) => date(locales, value, style(format))
|
|
1475
|
-
undefined: undefinedFormatter
|
|
1541
|
+
date: (value, format) => date(locales, value, style(format))
|
|
1476
1542
|
};
|
|
1477
1543
|
};
|
|
1478
1544
|
var selectFormatter = (value, rules) => {
|
|
1479
1545
|
var _a;
|
|
1480
1546
|
return (_a = rules[value]) != null ? _a : rules.other;
|
|
1481
1547
|
};
|
|
1482
|
-
var undefinedFormatter = (value) => value;
|
|
1483
1548
|
function interpolate(translation, locale, locales) {
|
|
1484
1549
|
return (values = {}, formats) => {
|
|
1485
1550
|
const formatters = getDefaultFormats(locale, locales, formats);
|
|
1486
|
-
const formatMessage = (
|
|
1487
|
-
if (!Array.isArray(
|
|
1488
|
-
return
|
|
1489
|
-
return
|
|
1490
|
-
if (
|
|
1491
|
-
return
|
|
1551
|
+
const formatMessage = (tokens) => {
|
|
1552
|
+
if (!Array.isArray(tokens))
|
|
1553
|
+
return tokens;
|
|
1554
|
+
return tokens.reduce((message, token) => {
|
|
1555
|
+
if (token === "#") {
|
|
1556
|
+
return message + OCTOTHORPE_PH;
|
|
1557
|
+
}
|
|
1558
|
+
if (isString(token)) {
|
|
1559
|
+
return message + token;
|
|
1560
|
+
}
|
|
1492
1561
|
const [name, type, format] = token;
|
|
1493
1562
|
let interpolatedFormat = {};
|
|
1494
|
-
if (
|
|
1495
|
-
Object.entries(format).forEach(
|
|
1496
|
-
|
|
1497
|
-
|
|
1563
|
+
if (type === "plural" || type === "selectordinal" || type === "select") {
|
|
1564
|
+
Object.entries(format).forEach(
|
|
1565
|
+
([key, value2]) => {
|
|
1566
|
+
interpolatedFormat[key] = formatMessage(value2);
|
|
1567
|
+
}
|
|
1568
|
+
);
|
|
1498
1569
|
} else {
|
|
1499
1570
|
interpolatedFormat = format;
|
|
1500
1571
|
}
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1572
|
+
let value;
|
|
1573
|
+
if (type) {
|
|
1574
|
+
const formatter = formatters[type];
|
|
1575
|
+
value = formatter(values[name], interpolatedFormat);
|
|
1576
|
+
} else {
|
|
1577
|
+
value = values[name];
|
|
1578
|
+
}
|
|
1579
|
+
if (value == null) {
|
|
1580
|
+
return message;
|
|
1581
|
+
}
|
|
1582
|
+
return message + value;
|
|
1506
1583
|
}, "");
|
|
1507
1584
|
};
|
|
1508
1585
|
const result = formatMessage(translation);
|
|
1509
1586
|
if (isString(result) && UNICODE_REGEX.test(result)) {
|
|
1510
|
-
return (0, import_unraw.
|
|
1587
|
+
return (0, import_unraw.unraw)(result.trim());
|
|
1511
1588
|
}
|
|
1512
1589
|
if (isString(result))
|
|
1513
1590
|
return result.trim();
|