@warp-ds/elements 1.3.1 → 1.3.2
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
|
@@ -1028,26 +1028,27 @@ var require_parser = __commonJS({
|
|
|
1028
1028
|
import WarpElement from "@warp-ds/elements-core";
|
|
1029
1029
|
import { css, html as html5 } from "lit";
|
|
1030
1030
|
|
|
1031
|
-
// node_modules/.pnpm/@warp-ds+css@1.
|
|
1031
|
+
// node_modules/.pnpm/@warp-ds+css@1.9.1/node_modules/@warp-ds/css/component-classes/index.js
|
|
1032
1032
|
var box = {
|
|
1033
1033
|
box: "group block relative break-words last-child:mb-0 p-16 rounded-8",
|
|
1034
1034
|
// Relative here enables w-clickable
|
|
1035
1035
|
bleed: "-mx-16 sm:mx-0 rounded-l-0 rounded-r-0 sm:rounded-8",
|
|
1036
1036
|
// We target L and R to override the default rounded-8
|
|
1037
|
-
info: "
|
|
1038
|
-
neutral: "
|
|
1039
|
-
bordered: "border-2
|
|
1040
|
-
infoClickable: "hover:
|
|
1041
|
-
neutralClickable: "hover:
|
|
1042
|
-
borderedClickable: "hover:
|
|
1037
|
+
info: "s-bg-info-subtle",
|
|
1038
|
+
neutral: "bg-[--w-s-color-surface-sunken]",
|
|
1039
|
+
bordered: "border-2 s-border s-bg",
|
|
1040
|
+
infoClickable: "hover:s-bg-info-subtle-hover active:s-bg-info-subtle-hover",
|
|
1041
|
+
neutralClickable: "hover:s-bg-subtle-hover active:s-bg-subtle-hover",
|
|
1042
|
+
borderedClickable: "hover:s-bg-hover active:s-bg-hover hover:s-border-hover active:s-border-hover"
|
|
1043
1043
|
};
|
|
1044
1044
|
var buttonReset = "focus:outline-none appearance-none cursor-pointer bg-transparent border-0 m-0 p-0 inline-block";
|
|
1045
1045
|
var expandable = {
|
|
1046
1046
|
expandable: "will-change-height",
|
|
1047
|
-
expandableTitle: "font-bold
|
|
1048
|
-
expandableBox: "
|
|
1047
|
+
expandableTitle: "font-bold s-text",
|
|
1048
|
+
expandableBox: "s-bg-subtle hover:s-bg-subtle-hover py-0 px-0 " + box.box,
|
|
1049
|
+
expandableInfo: "s-bg-info-subtle! hover:s-bg-info-subtle-hover!",
|
|
1049
1050
|
expandableBleed: box.bleed,
|
|
1050
|
-
chevron: "inline-block align-middle
|
|
1051
|
+
chevron: "inline-block align-middle s-icon",
|
|
1051
1052
|
chevronNonBox: "ml-8",
|
|
1052
1053
|
chevronBox: "",
|
|
1053
1054
|
chevronTransform: "transform transition-transform transform-gpu ease-in-out",
|
|
@@ -1067,17 +1068,17 @@ var expandable = {
|
|
|
1067
1068
|
};
|
|
1068
1069
|
var buttonDefaultStyling = "font-bold focusable justify-center transition-colors ease-in-out";
|
|
1069
1070
|
var buttonColors = {
|
|
1070
|
-
primary: "
|
|
1071
|
-
secondary: "
|
|
1072
|
-
utility: "
|
|
1073
|
-
destructive: "
|
|
1074
|
-
pill: "
|
|
1075
|
-
disabled: "
|
|
1076
|
-
quiet: "
|
|
1077
|
-
utilityQuiet: "
|
|
1078
|
-
negativeQuiet: "
|
|
1079
|
-
loading: "
|
|
1080
|
-
link: "
|
|
1071
|
+
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]",
|
|
1072
|
+
secondary: "s-text-link s-border s-bg hover:s-bg-hover hover:s-border-hover active:s-bg-active",
|
|
1073
|
+
utility: "s-text s-bg hover:s-bg-hover active:s-bg-active s-border hover:s-border-hover active:s-border-active",
|
|
1074
|
+
destructive: "s-bg-negative s-text-inverted hover:s-bg-negative-hover active:s-bg-negative-active",
|
|
1075
|
+
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]",
|
|
1076
|
+
disabled: "s-text-inverted s-bg-disabled",
|
|
1077
|
+
quiet: "bg-transparent s-text-link hover:s-bg-hover active:s-bg-active",
|
|
1078
|
+
utilityQuiet: "s-text bg-transparent hover:s-bg-hover active:s-bg-active",
|
|
1079
|
+
negativeQuiet: "bg-transparent s-text-negative hover:s-bg-negative-subtle-hover active:s-bg-negative-subtle-active",
|
|
1080
|
+
loading: "s-text s-bg-subtle",
|
|
1081
|
+
link: "s-text-link"
|
|
1081
1082
|
};
|
|
1082
1083
|
var buttonTypes = {
|
|
1083
1084
|
primary: `border-0 rounded-8 ${buttonDefaultStyling}`,
|
|
@@ -1181,10 +1182,10 @@ var button = {
|
|
|
1181
1182
|
contentWidth: "max-w-max"
|
|
1182
1183
|
};
|
|
1183
1184
|
var modal = {
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
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]",
|
|
1187
|
-
modal: "pb-safe-[32]
|
|
1185
|
+
transparentBg: "",
|
|
1186
|
+
//TODO: Remove in v2 - previously used for opacity before changing to a rgba background in backdrop
|
|
1187
|
+
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]",
|
|
1188
|
+
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",
|
|
1188
1189
|
content: "block overflow-y-auto overflow-x-hidden last-child:mb-0 grow shrink px-16 sm:px-32 relative",
|
|
1189
1190
|
footer: "flex justify-end shrink-0 px-16 sm:px-32",
|
|
1190
1191
|
transitionTitle: "transition-all duration-300",
|
|
@@ -1199,37 +1200,94 @@ var modal = {
|
|
|
1199
1200
|
titleButtonIconRotated: "transform rotate-90"
|
|
1200
1201
|
};
|
|
1201
1202
|
var alert = {
|
|
1202
|
-
alert: "flex p-16 border border-l-4 rounded-4",
|
|
1203
|
+
alert: "flex p-16 border border-l-4 rounded-4 s-text",
|
|
1203
1204
|
willChangeHeight: "will-change-height",
|
|
1204
1205
|
textWrapper: "last-child:mb-0 text-s",
|
|
1205
1206
|
title: "text-s",
|
|
1206
1207
|
icon: "w-16 mr-8 min-w-16",
|
|
1207
|
-
negative: "
|
|
1208
|
-
negativeIcon: "
|
|
1209
|
-
positive: "
|
|
1210
|
-
positiveIcon: "
|
|
1211
|
-
warning: "
|
|
1212
|
-
warningIcon: "
|
|
1213
|
-
info: "
|
|
1214
|
-
infoIcon: "
|
|
1208
|
+
negative: "s-border-negative-subtle s-border-l-negative s-bg-negative-subtle",
|
|
1209
|
+
negativeIcon: "s-icon-negative",
|
|
1210
|
+
positive: "s-border-positive-subtle s-border-l-positive s-bg-positive-subtle",
|
|
1211
|
+
positiveIcon: "s-icon-positive",
|
|
1212
|
+
warning: "s-border-warning-subtle s-border-l-warning s-bg-warning-subtle",
|
|
1213
|
+
warningIcon: "s-icon-warning",
|
|
1214
|
+
info: "s-border-info-subtle s-border-l-info s-bg-info-subtle",
|
|
1215
|
+
infoIcon: "s-icon-info"
|
|
1215
1216
|
};
|
|
1216
1217
|
var label = {
|
|
1217
|
-
label: "antialiased block relative text-s font-bold pb-4 cursor-pointer
|
|
1218
|
-
|
|
1219
|
-
|
|
1218
|
+
label: "antialiased block relative text-s font-bold pb-4 cursor-pointer s-text",
|
|
1219
|
+
optional: "pl-8 font-normal text-s s-text-subtle",
|
|
1220
|
+
labelInvalid: "s-text-negative"
|
|
1221
|
+
// TODO: Remove in v2 - kept for backwards compatibility
|
|
1220
1222
|
};
|
|
1221
|
-
var prefixSuffixWrapperBase = "absolute top-0 bottom-0 flex justify-center items-center focusable focus:[--w-outline-offset:-2px] bg-transparent ";
|
|
1223
|
+
var prefixSuffixWrapperBase = "absolute top-0 bottom-0 flex justify-center items-center focusable rounded-4 focus:[--w-outline-offset:-2px] bg-transparent ";
|
|
1222
1224
|
var suffix = {
|
|
1223
1225
|
wrapper: prefixSuffixWrapperBase + "right-0",
|
|
1224
1226
|
wrapperWithLabel: "w-max pr-12",
|
|
1225
1227
|
wrapperWithIcon: "w-40",
|
|
1226
|
-
label: "antialiased block relative cursor-default pb-0 font-bold text-xs
|
|
1228
|
+
label: "antialiased block relative cursor-default pb-0 font-bold text-xs s-text"
|
|
1227
1229
|
};
|
|
1228
1230
|
var prefix = {
|
|
1229
1231
|
wrapper: prefixSuffixWrapperBase + "left-0",
|
|
1230
1232
|
wrapperWithLabel: "w-max pl-12",
|
|
1231
1233
|
wrapperWithIcon: "w-40",
|
|
1232
|
-
label: "antialiased block relative cursor-default pb-0 font-bold text-xs
|
|
1234
|
+
label: "antialiased block relative cursor-default pb-0 font-bold text-xs s-text"
|
|
1235
|
+
};
|
|
1236
|
+
var toggle = {
|
|
1237
|
+
// wrapper classes
|
|
1238
|
+
field: "relative text-m",
|
|
1239
|
+
// true
|
|
1240
|
+
wrapper: "relative py-1",
|
|
1241
|
+
// true
|
|
1242
|
+
wrapperRadioButtons: "inline-flex font-bold rounded-8 focus-within:focusable",
|
|
1243
|
+
// isRadioButton && !isEqualWidth
|
|
1244
|
+
wrapperRadioButtonsJustified: "flex font-bold rounded-8 focus-within:focusable",
|
|
1245
|
+
// isRadioButton && isEqualWidth,
|
|
1246
|
+
// group classes
|
|
1247
|
+
radioButtonsGroup: "group",
|
|
1248
|
+
// isRadioButton
|
|
1249
|
+
radioButtonsGroupJustified: "grow-1 shrink-0 basis-auto",
|
|
1250
|
+
// isRadioButton && isEqualWidth
|
|
1251
|
+
// input classes
|
|
1252
|
+
input: "peer",
|
|
1253
|
+
a11y: "sr-only",
|
|
1254
|
+
// label classes
|
|
1255
|
+
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",
|
|
1256
|
+
// !isRadioButton
|
|
1257
|
+
labelBefore: 'before:content-[""] before:block',
|
|
1258
|
+
// !isRadioButton && !isIndeterminate
|
|
1259
|
+
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",
|
|
1260
|
+
// isCheckbox && !isIndeterminate && !isInvalid && !isDisabled
|
|
1261
|
+
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",
|
|
1262
|
+
// isCheckbox && !isIndeterminate && isInvalid && !isDisabled
|
|
1263
|
+
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",
|
|
1264
|
+
// isCheckbox && !isIndeterminate && !isInvalid && isDisabled
|
|
1265
|
+
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',
|
|
1266
|
+
// isCheckbox && isIndeterminate && !isInvalid && !isDisabled
|
|
1267
|
+
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',
|
|
1268
|
+
// isCheckbox && isIndeterminate && isInvalid && !isDisabled
|
|
1269
|
+
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',
|
|
1270
|
+
// isCheckbox && isIndeterminate && !isInvalid && isDisabled
|
|
1271
|
+
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",
|
|
1272
|
+
// isRadio && !isDisabled && !isInvalid
|
|
1273
|
+
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",
|
|
1274
|
+
// isRadio && isInvalid && !isDisabled
|
|
1275
|
+
radioDisabled: "before:s-bg-disabled-subtle before:s-border-disabled pointer-events-none before:rounded-full peer-checked:before:border-[6]",
|
|
1276
|
+
// isRadio && !isInvalid && isDisabled
|
|
1277
|
+
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",
|
|
1278
|
+
// isRadioButtons
|
|
1279
|
+
radioButtonsRegular: "text-s py-8 pl-12 pr-14",
|
|
1280
|
+
// isRadioButtons && !isSmall
|
|
1281
|
+
radioButtonsSmall: "text-xs py-[5px] px-[8px]"
|
|
1282
|
+
// isRadioButtons && isSmall
|
|
1283
|
+
};
|
|
1284
|
+
var deadToggle = {
|
|
1285
|
+
wrapper: `${toggle.wrapper} h-20 w-20 pointer-events-none`,
|
|
1286
|
+
input: `${toggle.input} hidden`,
|
|
1287
|
+
inputVue: "hidden",
|
|
1288
|
+
labelRadio: `${toggle.label} ${toggle.labelBefore} ${toggle.radio}`,
|
|
1289
|
+
labelCheckbox: `${toggle.label} ${toggle.labelBefore} ${toggle.checkbox}`,
|
|
1290
|
+
labelVue: "-mt-2"
|
|
1233
1291
|
};
|
|
1234
1292
|
var clickable = {
|
|
1235
1293
|
toggle: "absolute inset-0 h-full w-full appearance-none cursor-pointer focusable focusable-inset",
|
|
@@ -1239,19 +1297,27 @@ var clickable = {
|
|
|
1239
1297
|
};
|
|
1240
1298
|
var attention = {
|
|
1241
1299
|
base: "border-2 relative flex items-start",
|
|
1242
|
-
tooltip: "
|
|
1243
|
-
callout: "
|
|
1244
|
-
highlight: "
|
|
1245
|
-
popover: "
|
|
1300
|
+
tooltip: "s-bg-inverted border-[--w-s-color-background-inverted] shadow-m s-text-inverted-static rounded-4 py-6 px-8",
|
|
1301
|
+
callout: "bg-[--w-color-callout-background] border-[--w-color-callout-border] s-text py-8 px-16 rounded-8",
|
|
1302
|
+
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",
|
|
1303
|
+
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",
|
|
1246
1304
|
arrowBase: "absolute h-[14px] w-[14px] border-2 border-b-0 border-r-0 rounded-tl-4 transform",
|
|
1305
|
+
arrowDirectionLeftStart: "-left-[8px]",
|
|
1247
1306
|
arrowDirectionLeft: "-left-[8px]",
|
|
1307
|
+
arrowDirectionLeftEnd: "-left-[8px]",
|
|
1308
|
+
arrowDirectionRightStart: "-right-[8px]",
|
|
1248
1309
|
arrowDirectionRight: "-right-[8px]",
|
|
1310
|
+
arrowDirectionRightEnd: "-right-[8px]",
|
|
1311
|
+
arrowDirectionBottomStart: "-bottom-[8px]",
|
|
1249
1312
|
arrowDirectionBottom: "-bottom-[8px]",
|
|
1313
|
+
arrowDirectionBottomEnd: "-bottom-[8px]",
|
|
1314
|
+
arrowDirectionTopStart: "-top-[8px]",
|
|
1250
1315
|
arrowDirectionTop: "-top-[8px]",
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1316
|
+
arrowDirectionTopEnd: "-top-[8px]",
|
|
1317
|
+
arrowTooltip: "s-bg-inverted border-[--w-s-color-background-inverted]",
|
|
1318
|
+
arrowCallout: "bg-[--w-color-callout-background] border-[--w-color-callout-border]",
|
|
1319
|
+
arrowPopover: "bg-[--w-s-color-surface-elevated-300] border-[--w-s-color-surface-elevated-300]",
|
|
1320
|
+
arrowHighlight: "bg-[--w-color-callout-background] border-[--w-color-callout-border]",
|
|
1255
1321
|
content: "last-child:mb-0",
|
|
1256
1322
|
notCallout: "absolute z-50",
|
|
1257
1323
|
closeBtn: `${buttonTextSizes.medium} ${buttonTypes.pill} ${buttonColors.pill} justify-self-end -mr-8 ml-8`
|
|
@@ -1272,10 +1338,10 @@ var r = function() {
|
|
|
1272
1338
|
import { LitElement } from "lit";
|
|
1273
1339
|
import { unsafeStatic, html } from "lit/static-html.js";
|
|
1274
1340
|
|
|
1275
|
-
// node_modules/.pnpm/@lingui+core@4.7.
|
|
1341
|
+
// node_modules/.pnpm/@lingui+core@4.7.1/node_modules/@lingui/core/dist/index.mjs
|
|
1276
1342
|
var import_unraw = __toESM(require_dist(), 1);
|
|
1277
1343
|
|
|
1278
|
-
// node_modules/.pnpm/@lingui+message-utils@4.7.
|
|
1344
|
+
// node_modules/.pnpm/@lingui+message-utils@4.7.1/node_modules/@lingui/message-utils/dist/compileMessage.mjs
|
|
1279
1345
|
var import_parser = __toESM(require_parser(), 1);
|
|
1280
1346
|
function processTokens(tokens, mapText) {
|
|
1281
1347
|
if (!tokens.filter((token) => token.type !== "content").length) {
|
|
@@ -1325,7 +1391,7 @@ Message: ${message}`);
|
|
|
1325
1391
|
}
|
|
1326
1392
|
}
|
|
1327
1393
|
|
|
1328
|
-
// node_modules/.pnpm/@lingui+core@4.7.
|
|
1394
|
+
// node_modules/.pnpm/@lingui+core@4.7.1/node_modules/@lingui/core/dist/index.mjs
|
|
1329
1395
|
var isString = (s) => typeof s === "string";
|
|
1330
1396
|
var isFunction = (f) => typeof f === "function";
|
|
1331
1397
|
var cache = /* @__PURE__ */ new Map();
|
|
@@ -1377,6 +1443,7 @@ function cacheKey(type, locales, options) {
|
|
|
1377
1443
|
return `${type}-${localeKey}-${JSON.stringify(options)}`;
|
|
1378
1444
|
}
|
|
1379
1445
|
var UNICODE_REGEX = /\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/g;
|
|
1446
|
+
var OCTOTHORPE_PH = "%__lingui_octothorpe__%";
|
|
1380
1447
|
var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
1381
1448
|
const locales = passedLocales || locale;
|
|
1382
1449
|
const style = (format) => {
|
|
@@ -1385,7 +1452,7 @@ var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
|
1385
1452
|
const replaceOctothorpe = (value, message) => {
|
|
1386
1453
|
const numberFormat = Object.keys(formats).length ? style("number") : void 0;
|
|
1387
1454
|
const valueStr = number(locales, value, numberFormat);
|
|
1388
|
-
return message.replace("
|
|
1455
|
+
return message.replace(new RegExp(OCTOTHORPE_PH, "g"), valueStr);
|
|
1389
1456
|
};
|
|
1390
1457
|
return {
|
|
1391
1458
|
plural: (value, cases) => {
|
|
@@ -1400,43 +1467,53 @@ var getDefaultFormats = (locale, passedLocales, formats = {}) => {
|
|
|
1400
1467
|
},
|
|
1401
1468
|
select: selectFormatter,
|
|
1402
1469
|
number: (value, format) => number(locales, value, style(format)),
|
|
1403
|
-
date: (value, format) => date(locales, value, style(format))
|
|
1404
|
-
undefined: undefinedFormatter
|
|
1470
|
+
date: (value, format) => date(locales, value, style(format))
|
|
1405
1471
|
};
|
|
1406
1472
|
};
|
|
1407
1473
|
var selectFormatter = (value, rules) => {
|
|
1408
1474
|
var _a;
|
|
1409
1475
|
return (_a = rules[value]) != null ? _a : rules.other;
|
|
1410
1476
|
};
|
|
1411
|
-
var undefinedFormatter = (value) => value;
|
|
1412
1477
|
function interpolate(translation, locale, locales) {
|
|
1413
1478
|
return (values = {}, formats) => {
|
|
1414
1479
|
const formatters = getDefaultFormats(locale, locales, formats);
|
|
1415
|
-
const formatMessage = (
|
|
1416
|
-
if (!Array.isArray(
|
|
1417
|
-
return
|
|
1418
|
-
return
|
|
1419
|
-
if (
|
|
1420
|
-
return
|
|
1480
|
+
const formatMessage = (tokens) => {
|
|
1481
|
+
if (!Array.isArray(tokens))
|
|
1482
|
+
return tokens;
|
|
1483
|
+
return tokens.reduce((message, token) => {
|
|
1484
|
+
if (token === "#") {
|
|
1485
|
+
return message + OCTOTHORPE_PH;
|
|
1486
|
+
}
|
|
1487
|
+
if (isString(token)) {
|
|
1488
|
+
return message + token;
|
|
1489
|
+
}
|
|
1421
1490
|
const [name, type, format] = token;
|
|
1422
1491
|
let interpolatedFormat = {};
|
|
1423
|
-
if (
|
|
1424
|
-
Object.entries(format).forEach(
|
|
1425
|
-
|
|
1426
|
-
|
|
1492
|
+
if (type === "plural" || type === "selectordinal" || type === "select") {
|
|
1493
|
+
Object.entries(format).forEach(
|
|
1494
|
+
([key, value2]) => {
|
|
1495
|
+
interpolatedFormat[key] = formatMessage(value2);
|
|
1496
|
+
}
|
|
1497
|
+
);
|
|
1427
1498
|
} else {
|
|
1428
1499
|
interpolatedFormat = format;
|
|
1429
1500
|
}
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1501
|
+
let value;
|
|
1502
|
+
if (type) {
|
|
1503
|
+
const formatter = formatters[type];
|
|
1504
|
+
value = formatter(values[name], interpolatedFormat);
|
|
1505
|
+
} else {
|
|
1506
|
+
value = values[name];
|
|
1507
|
+
}
|
|
1508
|
+
if (value == null) {
|
|
1509
|
+
return message;
|
|
1510
|
+
}
|
|
1511
|
+
return message + value;
|
|
1435
1512
|
}, "");
|
|
1436
1513
|
};
|
|
1437
1514
|
const result = formatMessage(translation);
|
|
1438
1515
|
if (isString(result) && UNICODE_REGEX.test(result)) {
|
|
1439
|
-
return (0, import_unraw.
|
|
1516
|
+
return (0, import_unraw.unraw)(result.trim());
|
|
1440
1517
|
}
|
|
1441
1518
|
if (isString(result))
|
|
1442
1519
|
return result.trim();
|