sellmate-design-system-react 9.0.0-beta.103 → 9.0.0-beta.104
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/AGENTS.md +4 -2
- package/dist/components/SAccountListBox/accountListBox.config.d.ts +4 -1
- package/dist/components/SBarcodeInput/README.md +1 -1
- package/dist/components/SBarcodeInput/SBarcodeInput.d.ts +1 -0
- package/dist/components/SCalendarBoard/CalendarDayEventListBox.d.ts +1 -1
- package/dist/components/SCalendarBoard/README.md +1 -1
- package/dist/components/SCalendarBoard/SCalendarBoard.d.ts +1 -1
- package/dist/components/SChatInput/README.md +1 -1
- package/dist/components/SChatInput/SChatInput.d.ts +1 -1
- package/dist/components/SConfirmModal/README.md +1 -1
- package/dist/components/SConfirmModal/SConfirmModal.d.ts +2 -2
- package/dist/components/SEditor/README.md +1 -1
- package/dist/components/SEditor/SEditor.d.ts +1 -1
- package/dist/components/SEditor/editor.config.d.ts +8 -1
- package/dist/components/SFooter/README.md +1 -1
- package/dist/components/SFooter/SFooter.d.ts +1 -1
- package/dist/components/SGnbSystem/gnbSystem.config.d.ts +0 -4
- package/dist/components/SGuide/README.md +1 -1
- package/dist/components/SGuide/SGuide.d.ts +1 -1
- package/dist/components/SIcon/README.md +1 -1
- package/dist/components/SIcon/SIcon.d.ts +5 -1
- package/dist/components/SIcon/icons.gen.d.ts +3 -1
- package/dist/components/SMeatballButton/README.md +2 -2
- package/dist/components/SMeatballButton/SMeatballButton.d.ts +5 -2
- package/dist/components/SModalContainer/README.md +1 -1
- package/dist/components/SModalContainer/SModalContainer.d.ts +5 -2
- package/dist/components/SNumberInput/README.md +1 -1
- package/dist/components/SSearchInput/README.md +1 -1
- package/dist/components/SSearchInput/SSearchInput.d.ts +1 -1
- package/dist/components/SStepper/README.md +1 -1
- package/dist/components/SStepper/SStepper.d.ts +2 -2
- package/dist/components/STable/README.md +3 -3
- package/dist/components/STable/STable.d.ts +3 -1
- package/dist/components/STableBar/README.md +1 -1
- package/dist/components/STableBar/STableBar.d.ts +1 -1
- package/dist/components/STimePicker/timepicker.config.d.ts +2 -1
- package/dist/components/STimeRangePicker/time-range-picker.config.d.ts +2 -1
- package/dist/components/STimeline/README.md +1 -1
- package/dist/components/STimeline/STimeline.d.ts +1 -0
- package/dist/index.cjs +1492 -478
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1492 -478
- package/dist/index.js.map +1 -1
- package/dist/lib/chart/radial.d.ts +2 -2
- package/dist/lib/date.d.ts +9 -5
- package/dist/lib/form.d.ts +5 -2
- package/dist/lib/locale.d.ts +274 -0
- package/dist/lib/tree-row.d.ts +1 -1
- package/dist/llms-full.txt +23 -21
- package/dist/llms.txt +4 -2
- package/dist/styles.css +3 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -276,8 +276,211 @@ var fieldWidthValue = (v) => {
|
|
|
276
276
|
// src/lib/locale.ts
|
|
277
277
|
var SLOCALES = ["ko", "en", "ja", "zh"];
|
|
278
278
|
var DEFAULT_LOCALE = "ko";
|
|
279
|
+
var koreanParticle = (word, consonant, vowel) => {
|
|
280
|
+
const code = word.charCodeAt(word.length - 1);
|
|
281
|
+
if (code < 44032 || code > 55203) return consonant;
|
|
282
|
+
return (code - 44032) % 28 === 0 ? vowel : consonant;
|
|
283
|
+
};
|
|
279
284
|
var BUNDLES = {
|
|
280
285
|
ko: {
|
|
286
|
+
accountListBox: { accountSetting: "\uACC4\uC815 \uC124\uC815", language: "\uC5B8\uC5B4 \uBCC0\uACBD", logout: "\uACC4\uC815 \uB85C\uADF8\uC544\uC6C3" },
|
|
287
|
+
gnbSystem: { alert: "\uC54C\uB9BC", setting: "\uC124\uC815" },
|
|
288
|
+
editor: {
|
|
289
|
+
placeholder: "\uB0B4\uC6A9\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694.",
|
|
290
|
+
toolbarLabel: "\uC11C\uC2DD \uB3C4\uAD6C",
|
|
291
|
+
tableSize: "\uD45C \uD06C\uAE30",
|
|
292
|
+
linkUrl: "\uB9C1\uD06C \uC8FC\uC18C",
|
|
293
|
+
apply: "\uC801\uC6A9",
|
|
294
|
+
remove: "\uC81C\uAC70",
|
|
295
|
+
headingLevel: "\uC81C\uBAA9 \uB2E8\uACC4",
|
|
296
|
+
headingBody: "\uBCF8\uBB38",
|
|
297
|
+
fontSize: "\uAE00\uC790 \uD06C\uAE30",
|
|
298
|
+
fontSizeDefaultLabel: "\uAE30\uBCF8",
|
|
299
|
+
bold: "\uAD75\uAC8C",
|
|
300
|
+
italic: "\uAE30\uC6B8\uC784",
|
|
301
|
+
underline: "\uBC11\uC904",
|
|
302
|
+
strike: "\uCDE8\uC18C\uC120",
|
|
303
|
+
inlineCode: "\uC778\uB77C\uC778 \uCF54\uB4DC",
|
|
304
|
+
textColor: "\uAE00\uC790\uC0C9",
|
|
305
|
+
clearColor: "\uC0C9 \uC9C0\uC6B0\uAE30",
|
|
306
|
+
alignLeft: "\uC67C\uCABD \uC815\uB82C",
|
|
307
|
+
alignCenter: "\uAC00\uC6B4\uB370 \uC815\uB82C",
|
|
308
|
+
alignRight: "\uC624\uB978\uCABD \uC815\uB82C",
|
|
309
|
+
alignJustify: "\uC591\uCABD \uC815\uB82C",
|
|
310
|
+
bulletList: "\uAE00\uBA38\uB9AC \uAE30\uD638 \uBAA9\uB85D",
|
|
311
|
+
orderedList: "\uBC88\uD638 \uB9E4\uAE30\uAE30 \uBAA9\uB85D",
|
|
312
|
+
taskList: "\uCCB4\uD06C \uBAA9\uB85D",
|
|
313
|
+
list: "\uBAA9\uB85D",
|
|
314
|
+
blockquote: "\uC778\uC6A9\uAD6C",
|
|
315
|
+
codeBlock: "\uCF54\uB4DC \uBE14\uB85D",
|
|
316
|
+
divider: "\uAD6C\uBD84\uC120",
|
|
317
|
+
link: "\uB9C1\uD06C",
|
|
318
|
+
insertImage: "\uC774\uBBF8\uC9C0 \uB123\uAE30",
|
|
319
|
+
image: "\uC774\uBBF8\uC9C0",
|
|
320
|
+
table: "\uD45C",
|
|
321
|
+
addRowAbove: "\uC704\uC5D0 \uD589 \uCD94\uAC00",
|
|
322
|
+
addRowBelow: "\uC544\uB798\uC5D0 \uD589 \uCD94\uAC00",
|
|
323
|
+
addColLeft: "\uC67C\uCABD\uC5D0 \uC5F4 \uCD94\uAC00",
|
|
324
|
+
addColRight: "\uC624\uB978\uCABD\uC5D0 \uC5F4 \uCD94\uAC00",
|
|
325
|
+
mergeCells: "\uC140 \uBCD1\uD569",
|
|
326
|
+
splitCell: "\uBCD1\uD569 \uD574\uC81C",
|
|
327
|
+
toggleHeaderRow: "\uD5E4\uB354 \uD589 \uD1A0\uAE00",
|
|
328
|
+
toggleHeaderCol: "\uD5E4\uB354 \uC5F4 \uD1A0\uAE00",
|
|
329
|
+
deleteRow: "\uD589 \uC0AD\uC81C",
|
|
330
|
+
deleteCol: "\uC5F4 \uC0AD\uC81C",
|
|
331
|
+
deleteTable: "\uD45C \uC0AD\uC81C",
|
|
332
|
+
undo: "\uC2E4\uD589 \uCDE8\uC18C",
|
|
333
|
+
redo: "\uB2E4\uC2DC \uC2E4\uD589",
|
|
334
|
+
colorDefault: "\uAE30\uBCF8",
|
|
335
|
+
colorSecondary: "\uBCF4\uC870",
|
|
336
|
+
colorMuted: "\uD750\uB9BC",
|
|
337
|
+
colorAccent: "\uAC15\uC870",
|
|
338
|
+
colorBrand: "\uBE0C\uB79C\uB4DC",
|
|
339
|
+
colorSuccess: "\uC131\uACF5",
|
|
340
|
+
colorWarning: "\uC8FC\uC758",
|
|
341
|
+
colorDanger: "\uC704\uD5D8",
|
|
342
|
+
tableCell: (r3, c) => `${r3}\uD589 ${c}\uC5F4`,
|
|
343
|
+
tableSizeText: (rows, cols) => `${rows}\uD589 \xD7 ${cols}\uC5F4`,
|
|
344
|
+
heading: (level) => `\uC81C\uBAA9 ${level}`,
|
|
345
|
+
fontSizeDefault: (px) => `\uAE30\uBCF8 (\uBCF8\uBB38 ${px}px)`,
|
|
346
|
+
closeEditing: (label) => `${label} \uB2EB\uAE30`
|
|
347
|
+
},
|
|
348
|
+
form: { invalid: "\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uAC12\uC785\uB2C8\uB2E4." },
|
|
349
|
+
date: {
|
|
350
|
+
weekdays: ["\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0"],
|
|
351
|
+
weekdaysLong: ["\uC77C\uC694\uC77C", "\uC6D4\uC694\uC77C", "\uD654\uC694\uC77C", "\uC218\uC694\uC77C", "\uBAA9\uC694\uC77C", "\uAE08\uC694\uC77C", "\uD1A0\uC694\uC77C"],
|
|
352
|
+
today: "\uC624\uB298",
|
|
353
|
+
prevYear: "\uC774\uC804 \uD574",
|
|
354
|
+
nextYear: "\uB2E4\uC74C \uD574",
|
|
355
|
+
prevMonth: "\uC774\uC804 \uB2EC",
|
|
356
|
+
nextMonth: "\uB2E4\uC74C \uB2EC",
|
|
357
|
+
monthLabel: (month) => `${month}\uC6D4`,
|
|
358
|
+
dayLabel: (day) => `${day}\uC77C`,
|
|
359
|
+
unitYear: "\uB144",
|
|
360
|
+
unitMonth: "\uC6D4",
|
|
361
|
+
unitDay: "\uC77C",
|
|
362
|
+
hourItem: (hour) => `${hour}\uC2DC`,
|
|
363
|
+
minuteItem: (minute) => `${minute}\uBD84`,
|
|
364
|
+
hourAria: (prefix) => prefix ? `${prefix} \uC2DC` : "\uC2DC",
|
|
365
|
+
minuteAria: (prefix) => prefix ? `${prefix} \uBD84` : "\uBD84",
|
|
366
|
+
meridiemAria: (prefix) => prefix ? `${prefix} \uC624\uC804/\uC624\uD6C4` : "\uC624\uC804/\uC624\uD6C4",
|
|
367
|
+
am: "\uC624\uC804",
|
|
368
|
+
pm: "\uC624\uD6C4",
|
|
369
|
+
rangeFrom: "\uBD80\uD130",
|
|
370
|
+
rangeTo: "\uAE4C\uC9C0",
|
|
371
|
+
clearDate: "\uB0A0\uC9DC \uC9C0\uC6B0\uAE30",
|
|
372
|
+
clearMonth: "\uC6D4 \uC9C0\uC6B0\uAE30",
|
|
373
|
+
clearYear: "\uC5F0\uB3C4 \uC9C0\uC6B0\uAE30",
|
|
374
|
+
clearPeriod: "\uAE30\uAC04 \uC9C0\uC6B0\uAE30",
|
|
375
|
+
clearTime: "\uC2DC\uAC04 \uC9C0\uC6B0\uAE30",
|
|
376
|
+
clearTimeRange: "\uC2DC\uAC04 \uBC94\uC704 \uC9C0\uC6B0\uAE30",
|
|
377
|
+
start: "\uC2DC\uC791",
|
|
378
|
+
end: "\uC885\uB8CC",
|
|
379
|
+
startTime: "\uC2DC\uC791 \uC2DC\uAC04",
|
|
380
|
+
endTime: "\uC885\uB8CC \uC2DC\uAC04"
|
|
381
|
+
},
|
|
382
|
+
chart: {
|
|
383
|
+
unit: (unit) => `\uB2E8\uC704 : ${unit}`,
|
|
384
|
+
pie: "\uD30C\uC774 \uADF8\uB798\uD504",
|
|
385
|
+
donut: "\uB3C4\uB11B \uADF8\uB798\uD504",
|
|
386
|
+
radialSummary: (count, kind) => `${count}\uAC1C \uD56D\uBAA9 ${kind}`,
|
|
387
|
+
barSummary: (c, s, stacked) => `${c}\uAC1C \uD56D\uBAA9, ${s}\uAC1C \uACC4\uC5F4 ${stacked ? "\uB204\uC801 " : ""}\uB9C9\uB300 \uADF8\uB798\uD504`,
|
|
388
|
+
lineSummary: (c, s, stacked) => `${c}\uAC1C \uD56D\uBAA9, ${s}\uAC1C \uACC4\uC5F4 ${stacked ? "\uB204\uC801 " : ""}\uAEBE\uC740\uC120 \uADF8\uB798\uD504`
|
|
389
|
+
},
|
|
390
|
+
chipFilter: {
|
|
391
|
+
periodDay: "\uC77C\uBCC4",
|
|
392
|
+
periodMonth: "\uC6D4\uBCC4",
|
|
393
|
+
periodQuarter: "\uBD84\uAE30\uBCC4",
|
|
394
|
+
periodHalf: "\uBC18\uAE30\uBCC4",
|
|
395
|
+
periodYear: "\uC5F0\uB3C4\uBCC4",
|
|
396
|
+
custom: "\uC0AC\uC6A9\uC790 \uC9C0\uC815",
|
|
397
|
+
today: "\uC624\uB298",
|
|
398
|
+
last7: "\uC9C0\uB09C 7\uC77C",
|
|
399
|
+
last30: "\uC9C0\uB09C 30\uC77C",
|
|
400
|
+
maxWord: "\uCD5C\uB300",
|
|
401
|
+
maxRangeHint: (days) => `\uCD5C\uB300 ${days}\uC77C\uC529`,
|
|
402
|
+
requireAll: "\uD56D\uBAA9\uC744 \uBAA8\uB450 \uC120\uD0DD\uD574 \uC8FC\uC138\uC694.",
|
|
403
|
+
requireAnyDefault: "\uCD5C\uC18C 1\uAC1C\uC758 \uD544\uD130\uB97C \uC120\uD0DD\uD574\uC8FC\uC138\uC694.",
|
|
404
|
+
requireAnyNamed: (name) => `\uCD5C\uC18C 1\uAC1C\uC758 ${name}${koreanParticle(name, "\uC744", "\uB97C")} \uC120\uD0DD\uD574\uC8FC\uC138\uC694.`,
|
|
405
|
+
requireField: (label) => `${label}${koreanParticle(label, "\uC744", "\uB97C")} \uC120\uD0DD\uD574 \uC8FC\uC138\uC694.`,
|
|
406
|
+
fieldFallback: "\uD56D\uBAA9",
|
|
407
|
+
valueListMore: (first, rest) => `${first} \uC678 ${rest}\uAC1C`,
|
|
408
|
+
quarter: (n) => `${n}\uBD84\uAE30`,
|
|
409
|
+
firstHalf: "\uC0C1\uBC18\uAE30",
|
|
410
|
+
secondHalf: "\uD558\uBC18\uAE30",
|
|
411
|
+
removeFilter: (label) => `${label} \uD544\uD130 \uC81C\uAC70`,
|
|
412
|
+
clearFilter: (label) => `${label} \uD544\uD130 \uC9C0\uC6B0\uAE30`,
|
|
413
|
+
resetSearch: "\uAC80\uC0C9 \uCD08\uAE30\uD654",
|
|
414
|
+
addFilter: "\uD544\uD130 \uCD94\uAC00",
|
|
415
|
+
noAddableFilter: "\uCD94\uAC00\uD560 \uD544\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",
|
|
416
|
+
selectNone: "\uC120\uD0DD \uD574\uC81C",
|
|
417
|
+
selectAll: "\uC804\uCCB4 \uC120\uD0DD",
|
|
418
|
+
removeItem: (label) => `${label} \uC0AD\uC81C`,
|
|
419
|
+
keywordContains: "\uD3EC\uD568",
|
|
420
|
+
keywordExact: "\uC77C\uCE58",
|
|
421
|
+
keywordExcludes: "\uBBF8\uD3EC\uD568",
|
|
422
|
+
keywordHintCsv: "\uB2E4\uC911 \uD0A4\uC6CC\uB4DC\uB294 \uCF64\uB9C8(,)\uB85C \uAD6C\uBD84",
|
|
423
|
+
keywordHintEnter: "\uC785\uB825 \uD6C4 Enter\uB85C \uCD94\uAC00",
|
|
424
|
+
keywordCondition: "\uAC80\uC0C9 \uC870\uAC74 :",
|
|
425
|
+
noSearchResults: "\uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
426
|
+
},
|
|
427
|
+
numberInput: {
|
|
428
|
+
rangeBetween: (min, max) => `${min}~${max} \uC0AC\uC774\uB85C \uC785\uB825\uD574 \uC8FC\uC138\uC694.`,
|
|
429
|
+
atLeast: (min) => `${min} \uC774\uC0C1\uC73C\uB85C \uC785\uB825\uD574 \uC8FC\uC138\uC694.`,
|
|
430
|
+
atMost: (max) => `${max} \uC774\uD558\uB85C \uC785\uB825\uD574 \uC8FC\uC138\uC694.`,
|
|
431
|
+
increase: "\uC99D\uAC00",
|
|
432
|
+
decrease: "\uAC10\uC18C"
|
|
433
|
+
},
|
|
434
|
+
chipInput: {
|
|
435
|
+
placeholderWithComma: "\uD0DC\uADF8 \uC785\uB825 (Enter\xB7\uCF64\uB9C8\uB85C \uB4F1\uB85D)",
|
|
436
|
+
placeholder: "\uD0DC\uADF8 \uC785\uB825 (Enter\uB85C \uB4F1\uB85D)",
|
|
437
|
+
duplicateNamed: (label) => `\uC774\uBBF8 \uC785\uB825\uB41C ${label}\uC785\uB2C8\uB2E4.`,
|
|
438
|
+
duplicate: "\uC911\uBCF5\uB41C \uAC12\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4.",
|
|
439
|
+
maxCount: (max) => `\uCD5C\uB300 ${max}\uAC1C`
|
|
440
|
+
},
|
|
441
|
+
slider: { minValue: "\uCD5C\uC19F\uAC12", maxValue: "\uCD5C\uB313\uAC12" },
|
|
442
|
+
chat: {
|
|
443
|
+
removeAttachment: (name) => `${name} \uC81C\uAC70`,
|
|
444
|
+
placeholder: "\uBA54\uC2DC\uC9C0\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694...",
|
|
445
|
+
attachFile: "\uD30C\uC77C \uCCA8\uBD80",
|
|
446
|
+
stopResponse: "\uC751\uB2F5 \uC911\uC9C0",
|
|
447
|
+
send: "\uC804\uC1A1",
|
|
448
|
+
read: "\uC77D\uC74C",
|
|
449
|
+
unread: "\uC548 \uC77D\uC74C"
|
|
450
|
+
},
|
|
451
|
+
loadingModal: {
|
|
452
|
+
loadingMessage: "\uC791\uC5C5 \uC9C4\uD589\uC911...",
|
|
453
|
+
errorMessage: "\uC791\uC5C5\uC5D0 \uC2E4\uD328\uD558\uC600\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694.",
|
|
454
|
+
errorButton: "\uB2E4\uC2DC \uC2DC\uB3C4",
|
|
455
|
+
ariaTitle: "\uB85C\uB529 \uC911"
|
|
456
|
+
},
|
|
457
|
+
stepper: { errorTooltip: "\uD655\uC778\uC774 \uD544\uC694\uD55C \uD56D\uBAA9\uC774 \uC788\uC2B5\uB2C8\uB2E4.", ariaLabel: "\uC9C4\uD589 \uB2E8\uACC4" },
|
|
458
|
+
timeline: { empty: "\uB0B4\uC5ED\uC774 \uC5C6\uC2B5\uB2C8\uB2E4." },
|
|
459
|
+
callout: { dangerTitle: "\uC8FC\uC758\uC0AC\uD56D" },
|
|
460
|
+
guide: { tip: "\uD65C\uC6A9 TIP", notion: "\uC0AC\uC6A9\uBC95 \uC548\uB0B4" },
|
|
461
|
+
loginCard: { login: "\uD1B5\uD569 \uACC4\uC815\uC73C\uB85C \uB85C\uADF8\uC778" },
|
|
462
|
+
modal: { defaultTitle: "\uBAA8\uB2EC" },
|
|
463
|
+
launcher: { opensInNewTab: "\uC0C8 \uD0ED\uC5D0\uC11C \uC5F4\uB9BC" },
|
|
464
|
+
common: {
|
|
465
|
+
close: "\uB2EB\uAE30",
|
|
466
|
+
clear: "\uC9C0\uC6B0\uAE30",
|
|
467
|
+
confirm: "\uD655\uC778",
|
|
468
|
+
all: "\uC804\uCCB4",
|
|
469
|
+
back: "\uB4A4\uB85C\uAC00\uAE30",
|
|
470
|
+
more: "\uB354\uBCF4\uAE30",
|
|
471
|
+
moreActions: "\uAE30\uB2A5 \uB354 \uBCF4\uAE30",
|
|
472
|
+
openMenu: "\uBA54\uB274 \uC5F4\uAE30",
|
|
473
|
+
dragHandle: "\uB4DC\uB798\uADF8 \uD578\uB4E4",
|
|
474
|
+
resizeDrawer: "Drawer \uB108\uBE44 \uC870\uC808",
|
|
475
|
+
search: "\uAC80\uC0C9",
|
|
476
|
+
count: (n) => `${n}\uAC1C`
|
|
477
|
+
},
|
|
478
|
+
input: {
|
|
479
|
+
placeholder: "\uC785\uB825\uD574 \uC8FC\uC138\uC694.",
|
|
480
|
+
searchWithinResults: "\uACB0\uACFC \uB0B4 \uAC80\uC0C9",
|
|
481
|
+
clearInput: "\uC785\uB825 \uCD08\uAE30\uD654",
|
|
482
|
+
showPassword: "\uBE44\uBC00\uBC88\uD638 \uD45C\uC2DC"
|
|
483
|
+
},
|
|
281
484
|
pagination: {
|
|
282
485
|
firstPage: "\uCCAB \uD398\uC774\uC9C0",
|
|
283
486
|
prevPage: "\uC774\uC804 \uD398\uC774\uC9C0",
|
|
@@ -294,9 +497,228 @@ var BUNDLES = {
|
|
|
294
497
|
searchPlaceholder: "\uAC80\uC0C9",
|
|
295
498
|
empty: "\uD45C\uC2DC\uD560 \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",
|
|
296
499
|
loading: "\uBD88\uB7EC\uC624\uB294 \uC911..."
|
|
500
|
+
},
|
|
501
|
+
table: {
|
|
502
|
+
selectAll: "\uC804\uCCB4 \uC120\uD0DD",
|
|
503
|
+
selectRow: "\uD589 \uC120\uD0DD",
|
|
504
|
+
empty: "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",
|
|
505
|
+
rowsPerPage: (count) => `${count}\uAC1C\uC529 \uBCF4\uAE30`,
|
|
506
|
+
editable: "\uC218\uC815 \uAC00\uB2A5",
|
|
507
|
+
opensInNewScreen: "\uC0C8 \uD654\uBA74\uC5D0\uC11C \uC5F4\uAE30",
|
|
508
|
+
sortBy: (label) => `${label} \uC815\uB82C`,
|
|
509
|
+
denseOff: "\uB113\uAC8C \uBCF4\uAE30",
|
|
510
|
+
denseOn: "\uC881\uAC8C \uBCF4\uAE30"
|
|
511
|
+
},
|
|
512
|
+
tableBar: {
|
|
513
|
+
totalBefore: "\uCD1D ",
|
|
514
|
+
totalAfter: " \uAC74",
|
|
515
|
+
selectedBefore: "",
|
|
516
|
+
selectedAfter: " \uAC74 \uC120\uD0DD"
|
|
297
517
|
}
|
|
298
518
|
},
|
|
299
519
|
en: {
|
|
520
|
+
accountListBox: {
|
|
521
|
+
accountSetting: "Account settings",
|
|
522
|
+
language: "Change language",
|
|
523
|
+
logout: "Log out"
|
|
524
|
+
},
|
|
525
|
+
gnbSystem: { alert: "Notifications", setting: "Settings" },
|
|
526
|
+
editor: {
|
|
527
|
+
placeholder: "Enter your content.",
|
|
528
|
+
toolbarLabel: "Formatting tools",
|
|
529
|
+
tableSize: "Table size",
|
|
530
|
+
linkUrl: "Link URL",
|
|
531
|
+
apply: "Apply",
|
|
532
|
+
remove: "Remove",
|
|
533
|
+
headingLevel: "Heading level",
|
|
534
|
+
headingBody: "Body",
|
|
535
|
+
fontSize: "Font size",
|
|
536
|
+
fontSizeDefaultLabel: "Default",
|
|
537
|
+
bold: "Bold",
|
|
538
|
+
italic: "Italic",
|
|
539
|
+
underline: "Underline",
|
|
540
|
+
strike: "Strikethrough",
|
|
541
|
+
inlineCode: "Inline code",
|
|
542
|
+
textColor: "Text color",
|
|
543
|
+
clearColor: "Clear color",
|
|
544
|
+
alignLeft: "Align left",
|
|
545
|
+
alignCenter: "Align center",
|
|
546
|
+
alignRight: "Align right",
|
|
547
|
+
alignJustify: "Justify",
|
|
548
|
+
bulletList: "Bullet list",
|
|
549
|
+
orderedList: "Numbered list",
|
|
550
|
+
taskList: "Checklist",
|
|
551
|
+
list: "List",
|
|
552
|
+
blockquote: "Quote",
|
|
553
|
+
codeBlock: "Code block",
|
|
554
|
+
divider: "Divider",
|
|
555
|
+
link: "Link",
|
|
556
|
+
insertImage: "Insert image",
|
|
557
|
+
image: "Image",
|
|
558
|
+
table: "Table",
|
|
559
|
+
addRowAbove: "Add row above",
|
|
560
|
+
addRowBelow: "Add row below",
|
|
561
|
+
addColLeft: "Add column left",
|
|
562
|
+
addColRight: "Add column right",
|
|
563
|
+
mergeCells: "Merge cells",
|
|
564
|
+
splitCell: "Split cell",
|
|
565
|
+
toggleHeaderRow: "Toggle header row",
|
|
566
|
+
toggleHeaderCol: "Toggle header column",
|
|
567
|
+
deleteRow: "Delete row",
|
|
568
|
+
deleteCol: "Delete column",
|
|
569
|
+
deleteTable: "Delete table",
|
|
570
|
+
undo: "Undo",
|
|
571
|
+
redo: "Redo",
|
|
572
|
+
colorDefault: "Default",
|
|
573
|
+
colorSecondary: "Secondary",
|
|
574
|
+
colorMuted: "Muted",
|
|
575
|
+
colorAccent: "Accent",
|
|
576
|
+
colorBrand: "Brand",
|
|
577
|
+
colorSuccess: "Success",
|
|
578
|
+
colorWarning: "Warning",
|
|
579
|
+
colorDanger: "Danger",
|
|
580
|
+
tableCell: (r3, c) => `Row ${r3}, column ${c}`,
|
|
581
|
+
tableSizeText: (rows, cols) => `${rows} rows \xD7 ${cols} columns`,
|
|
582
|
+
heading: (level) => `Heading ${level}`,
|
|
583
|
+
fontSizeDefault: (px) => `Default (body ${px}px)`,
|
|
584
|
+
closeEditing: (label) => `Close ${label}`
|
|
585
|
+
},
|
|
586
|
+
form: { invalid: "Invalid value." },
|
|
587
|
+
date: {
|
|
588
|
+
weekdays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
|
589
|
+
weekdaysLong: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
|
590
|
+
today: "Today",
|
|
591
|
+
prevYear: "Previous year",
|
|
592
|
+
nextYear: "Next year",
|
|
593
|
+
prevMonth: "Previous month",
|
|
594
|
+
nextMonth: "Next month",
|
|
595
|
+
monthLabel: (month) => ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"][month - 1] ?? String(month),
|
|
596
|
+
dayLabel: (day) => String(day),
|
|
597
|
+
unitYear: "-",
|
|
598
|
+
unitMonth: "-",
|
|
599
|
+
unitDay: "",
|
|
600
|
+
hourItem: (hour) => hour,
|
|
601
|
+
minuteItem: (minute) => minute,
|
|
602
|
+
hourAria: (prefix) => prefix ? `${prefix} hour` : "Hour",
|
|
603
|
+
minuteAria: (prefix) => prefix ? `${prefix} minute` : "Minute",
|
|
604
|
+
meridiemAria: (prefix) => prefix ? `${prefix} AM/PM` : "AM/PM",
|
|
605
|
+
am: "AM",
|
|
606
|
+
pm: "PM",
|
|
607
|
+
rangeFrom: "From",
|
|
608
|
+
rangeTo: "To",
|
|
609
|
+
clearDate: "Clear date",
|
|
610
|
+
clearMonth: "Clear month",
|
|
611
|
+
clearYear: "Clear year",
|
|
612
|
+
clearPeriod: "Clear period",
|
|
613
|
+
clearTime: "Clear time",
|
|
614
|
+
clearTimeRange: "Clear time range",
|
|
615
|
+
start: "Start",
|
|
616
|
+
end: "End",
|
|
617
|
+
startTime: "Start time",
|
|
618
|
+
endTime: "End time"
|
|
619
|
+
},
|
|
620
|
+
chart: {
|
|
621
|
+
unit: (unit) => `Unit: ${unit}`,
|
|
622
|
+
pie: "Pie chart",
|
|
623
|
+
donut: "Donut chart",
|
|
624
|
+
radialSummary: (count, kind) => `${kind} with ${count} ${count === 1 ? "item" : "items"}`,
|
|
625
|
+
barSummary: (c, s, stacked) => `${stacked ? "Stacked bar chart" : "Bar chart"} with ${c} ${c === 1 ? "item" : "items"} and ${s} series`,
|
|
626
|
+
lineSummary: (c, s, stacked) => `${stacked ? "Stacked line chart" : "Line chart"} with ${c} ${c === 1 ? "item" : "items"} and ${s} series`
|
|
627
|
+
},
|
|
628
|
+
chipFilter: {
|
|
629
|
+
periodDay: "Daily",
|
|
630
|
+
periodMonth: "Monthly",
|
|
631
|
+
periodQuarter: "Quarterly",
|
|
632
|
+
periodHalf: "Half-yearly",
|
|
633
|
+
periodYear: "Yearly",
|
|
634
|
+
custom: "Custom",
|
|
635
|
+
today: "Today",
|
|
636
|
+
last7: "Last 7 days",
|
|
637
|
+
last30: "Last 30 days",
|
|
638
|
+
maxWord: "max",
|
|
639
|
+
maxRangeHint: (days) => `max ${days} days at a time`,
|
|
640
|
+
requireAll: "Select all items.",
|
|
641
|
+
requireAnyDefault: "Select at least one filter.",
|
|
642
|
+
requireAnyNamed: (name) => `Select at least one ${name}.`,
|
|
643
|
+
requireField: (label) => `Select ${label}.`,
|
|
644
|
+
fieldFallback: "item",
|
|
645
|
+
valueListMore: (first, rest) => `${first} +${rest} more`,
|
|
646
|
+
quarter: (n) => `Q${n}`,
|
|
647
|
+
firstHalf: "H1",
|
|
648
|
+
secondHalf: "H2",
|
|
649
|
+
removeFilter: (label) => `Remove ${label} filter`,
|
|
650
|
+
clearFilter: (label) => `Clear ${label} filter`,
|
|
651
|
+
resetSearch: "Reset search",
|
|
652
|
+
addFilter: "Add filter",
|
|
653
|
+
noAddableFilter: "No filters to add.",
|
|
654
|
+
selectNone: "Deselect all",
|
|
655
|
+
selectAll: "Select all",
|
|
656
|
+
removeItem: (label) => `Delete ${label}`,
|
|
657
|
+
keywordContains: "Contains",
|
|
658
|
+
keywordExact: "Exact",
|
|
659
|
+
keywordExcludes: "Excludes",
|
|
660
|
+
keywordHintCsv: "Separate multiple keywords with commas (,)",
|
|
661
|
+
keywordHintEnter: "Press Enter to add",
|
|
662
|
+
keywordCondition: "Search condition:",
|
|
663
|
+
noSearchResults: "No search results."
|
|
664
|
+
},
|
|
665
|
+
numberInput: {
|
|
666
|
+
rangeBetween: (min, max) => `Enter a value between ${min} and ${max}.`,
|
|
667
|
+
atLeast: (min) => `Enter ${min} or more.`,
|
|
668
|
+
atMost: (max) => `Enter ${max} or less.`,
|
|
669
|
+
increase: "Increase",
|
|
670
|
+
decrease: "Decrease"
|
|
671
|
+
},
|
|
672
|
+
chipInput: {
|
|
673
|
+
placeholderWithComma: "Add a tag (press Enter or comma)",
|
|
674
|
+
placeholder: "Add a tag (press Enter)",
|
|
675
|
+
duplicateNamed: (label) => `This ${label} has already been entered.`,
|
|
676
|
+
duplicate: "Duplicate values exist.",
|
|
677
|
+
maxCount: (max) => `Up to ${max}`
|
|
678
|
+
},
|
|
679
|
+
slider: { minValue: "Minimum", maxValue: "Maximum" },
|
|
680
|
+
chat: {
|
|
681
|
+
removeAttachment: (name) => `Remove ${name}`,
|
|
682
|
+
placeholder: "Enter a message...",
|
|
683
|
+
attachFile: "Attach file",
|
|
684
|
+
stopResponse: "Stop response",
|
|
685
|
+
send: "Send",
|
|
686
|
+
read: "Read",
|
|
687
|
+
unread: "Unread"
|
|
688
|
+
},
|
|
689
|
+
loadingModal: {
|
|
690
|
+
loadingMessage: "Working...",
|
|
691
|
+
errorMessage: "The task failed. Please try again.",
|
|
692
|
+
errorButton: "Retry",
|
|
693
|
+
ariaTitle: "Loading"
|
|
694
|
+
},
|
|
695
|
+
stepper: { errorTooltip: "Some items need your attention.", ariaLabel: "Progress steps" },
|
|
696
|
+
timeline: { empty: "No history." },
|
|
697
|
+
callout: { dangerTitle: "Caution" },
|
|
698
|
+
guide: { tip: "Tip", notion: "How-to guide" },
|
|
699
|
+
loginCard: { login: "Sign in with unified account" },
|
|
700
|
+
modal: { defaultTitle: "Modal" },
|
|
701
|
+
launcher: { opensInNewTab: "Opens in a new tab" },
|
|
702
|
+
common: {
|
|
703
|
+
close: "Close",
|
|
704
|
+
clear: "Clear",
|
|
705
|
+
confirm: "OK",
|
|
706
|
+
all: "All",
|
|
707
|
+
back: "Back",
|
|
708
|
+
more: "More",
|
|
709
|
+
moreActions: "More actions",
|
|
710
|
+
openMenu: "Open menu",
|
|
711
|
+
dragHandle: "Drag handle",
|
|
712
|
+
resizeDrawer: "Resize drawer width",
|
|
713
|
+
search: "Search",
|
|
714
|
+
count: (n) => String(n)
|
|
715
|
+
},
|
|
716
|
+
input: {
|
|
717
|
+
placeholder: "Please enter a value.",
|
|
718
|
+
searchWithinResults: "Search within results",
|
|
719
|
+
clearInput: "Reset input",
|
|
720
|
+
showPassword: "Show password"
|
|
721
|
+
},
|
|
300
722
|
pagination: {
|
|
301
723
|
firstPage: "First page",
|
|
302
724
|
prevPage: "Previous page",
|
|
@@ -313,9 +735,228 @@ var BUNDLES = {
|
|
|
313
735
|
searchPlaceholder: "Search",
|
|
314
736
|
empty: "No items to display.",
|
|
315
737
|
loading: "Loading..."
|
|
738
|
+
},
|
|
739
|
+
table: {
|
|
740
|
+
selectAll: "Select all",
|
|
741
|
+
selectRow: "Select row",
|
|
742
|
+
empty: "No data.",
|
|
743
|
+
rowsPerPage: (count) => `${count} per page`,
|
|
744
|
+
editable: "Editable",
|
|
745
|
+
opensInNewScreen: "Opens in a new screen",
|
|
746
|
+
sortBy: (label) => `Sort by ${label}`,
|
|
747
|
+
denseOff: "Comfortable view",
|
|
748
|
+
denseOn: "Compact view"
|
|
749
|
+
},
|
|
750
|
+
tableBar: {
|
|
751
|
+
totalBefore: "Total ",
|
|
752
|
+
totalAfter: "",
|
|
753
|
+
selectedBefore: "",
|
|
754
|
+
selectedAfter: " selected"
|
|
316
755
|
}
|
|
317
756
|
},
|
|
318
757
|
ja: {
|
|
758
|
+
accountListBox: {
|
|
759
|
+
accountSetting: "\u30A2\u30AB\u30A6\u30F3\u30C8\u8A2D\u5B9A",
|
|
760
|
+
language: "\u8A00\u8A9E\u306E\u5909\u66F4",
|
|
761
|
+
logout: "\u30ED\u30B0\u30A2\u30A6\u30C8"
|
|
762
|
+
},
|
|
763
|
+
gnbSystem: { alert: "\u901A\u77E5", setting: "\u8A2D\u5B9A" },
|
|
764
|
+
editor: {
|
|
765
|
+
placeholder: "\u5185\u5BB9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
766
|
+
toolbarLabel: "\u66F8\u5F0F\u30C4\u30FC\u30EB",
|
|
767
|
+
tableSize: "\u8868\u306E\u30B5\u30A4\u30BA",
|
|
768
|
+
linkUrl: "\u30EA\u30F3\u30AFURL",
|
|
769
|
+
apply: "\u9069\u7528",
|
|
770
|
+
remove: "\u524A\u9664",
|
|
771
|
+
headingLevel: "\u898B\u51FA\u3057\u30EC\u30D9\u30EB",
|
|
772
|
+
headingBody: "\u672C\u6587",
|
|
773
|
+
fontSize: "\u6587\u5B57\u30B5\u30A4\u30BA",
|
|
774
|
+
fontSizeDefaultLabel: "\u6A19\u6E96",
|
|
775
|
+
bold: "\u592A\u5B57",
|
|
776
|
+
italic: "\u659C\u4F53",
|
|
777
|
+
underline: "\u4E0B\u7DDA",
|
|
778
|
+
strike: "\u53D6\u308A\u6D88\u3057\u7DDA",
|
|
779
|
+
inlineCode: "\u30A4\u30F3\u30E9\u30A4\u30F3\u30B3\u30FC\u30C9",
|
|
780
|
+
textColor: "\u6587\u5B57\u8272",
|
|
781
|
+
clearColor: "\u8272\u3092\u30AF\u30EA\u30A2",
|
|
782
|
+
alignLeft: "\u5DE6\u63C3\u3048",
|
|
783
|
+
alignCenter: "\u4E2D\u592E\u63C3\u3048",
|
|
784
|
+
alignRight: "\u53F3\u63C3\u3048",
|
|
785
|
+
alignJustify: "\u4E21\u7AEF\u63C3\u3048",
|
|
786
|
+
bulletList: "\u7B87\u6761\u66F8\u304D",
|
|
787
|
+
orderedList: "\u756A\u53F7\u4ED8\u304D\u30EA\u30B9\u30C8",
|
|
788
|
+
taskList: "\u30C1\u30A7\u30C3\u30AF\u30EA\u30B9\u30C8",
|
|
789
|
+
list: "\u30EA\u30B9\u30C8",
|
|
790
|
+
blockquote: "\u5F15\u7528",
|
|
791
|
+
codeBlock: "\u30B3\u30FC\u30C9\u30D6\u30ED\u30C3\u30AF",
|
|
792
|
+
divider: "\u533A\u5207\u308A\u7DDA",
|
|
793
|
+
link: "\u30EA\u30F3\u30AF",
|
|
794
|
+
insertImage: "\u753B\u50CF\u3092\u633F\u5165",
|
|
795
|
+
image: "\u753B\u50CF",
|
|
796
|
+
table: "\u8868",
|
|
797
|
+
addRowAbove: "\u4E0A\u306B\u884C\u3092\u8FFD\u52A0",
|
|
798
|
+
addRowBelow: "\u4E0B\u306B\u884C\u3092\u8FFD\u52A0",
|
|
799
|
+
addColLeft: "\u5DE6\u306B\u5217\u3092\u8FFD\u52A0",
|
|
800
|
+
addColRight: "\u53F3\u306B\u5217\u3092\u8FFD\u52A0",
|
|
801
|
+
mergeCells: "\u30BB\u30EB\u3092\u7D50\u5408",
|
|
802
|
+
splitCell: "\u7D50\u5408\u3092\u89E3\u9664",
|
|
803
|
+
toggleHeaderRow: "\u30D8\u30C3\u30C0\u30FC\u884C\u3092\u5207\u308A\u66FF\u3048",
|
|
804
|
+
toggleHeaderCol: "\u30D8\u30C3\u30C0\u30FC\u5217\u3092\u5207\u308A\u66FF\u3048",
|
|
805
|
+
deleteRow: "\u884C\u3092\u524A\u9664",
|
|
806
|
+
deleteCol: "\u5217\u3092\u524A\u9664",
|
|
807
|
+
deleteTable: "\u8868\u3092\u524A\u9664",
|
|
808
|
+
undo: "\u5143\u306B\u623B\u3059",
|
|
809
|
+
redo: "\u3084\u308A\u76F4\u3057",
|
|
810
|
+
colorDefault: "\u6A19\u6E96",
|
|
811
|
+
colorSecondary: "\u88DC\u52A9",
|
|
812
|
+
colorMuted: "\u8584\u3044",
|
|
813
|
+
colorAccent: "\u5F37\u8ABF",
|
|
814
|
+
colorBrand: "\u30D6\u30E9\u30F3\u30C9",
|
|
815
|
+
colorSuccess: "\u6210\u529F",
|
|
816
|
+
colorWarning: "\u6CE8\u610F",
|
|
817
|
+
colorDanger: "\u5371\u967A",
|
|
818
|
+
tableCell: (r3, c) => `${r3}\u884C${c}\u5217`,
|
|
819
|
+
tableSizeText: (rows, cols) => `${rows}\u884C \xD7 ${cols}\u5217`,
|
|
820
|
+
heading: (level) => `\u898B\u51FA\u3057${level}`,
|
|
821
|
+
fontSizeDefault: (px) => `\u6A19\u6E96\uFF08\u672C\u6587 ${px}px\uFF09`,
|
|
822
|
+
closeEditing: (label) => `${label}\u3092\u9589\u3058\u308B`
|
|
823
|
+
},
|
|
824
|
+
form: { invalid: "\u7121\u52B9\u306A\u5024\u3067\u3059\u3002" },
|
|
825
|
+
date: {
|
|
826
|
+
weekdays: ["\u65E5", "\u6708", "\u706B", "\u6C34", "\u6728", "\u91D1", "\u571F"],
|
|
827
|
+
weekdaysLong: ["\u65E5\u66DC\u65E5", "\u6708\u66DC\u65E5", "\u706B\u66DC\u65E5", "\u6C34\u66DC\u65E5", "\u6728\u66DC\u65E5", "\u91D1\u66DC\u65E5", "\u571F\u66DC\u65E5"],
|
|
828
|
+
today: "\u4ECA\u65E5",
|
|
829
|
+
prevYear: "\u524D\u306E\u5E74",
|
|
830
|
+
nextYear: "\u6B21\u306E\u5E74",
|
|
831
|
+
prevMonth: "\u524D\u306E\u6708",
|
|
832
|
+
nextMonth: "\u6B21\u306E\u6708",
|
|
833
|
+
monthLabel: (month) => `${month}\u6708`,
|
|
834
|
+
dayLabel: (day) => `${day}\u65E5`,
|
|
835
|
+
unitYear: "\u5E74",
|
|
836
|
+
unitMonth: "\u6708",
|
|
837
|
+
unitDay: "\u65E5",
|
|
838
|
+
hourItem: (hour) => `${hour}\u6642`,
|
|
839
|
+
minuteItem: (minute) => `${minute}\u5206`,
|
|
840
|
+
hourAria: (prefix) => `${prefix}\u6642`,
|
|
841
|
+
minuteAria: (prefix) => `${prefix}\u5206`,
|
|
842
|
+
meridiemAria: (prefix) => `${prefix}\u5348\u524D/\u5348\u5F8C`,
|
|
843
|
+
am: "\u5348\u524D",
|
|
844
|
+
pm: "\u5348\u5F8C",
|
|
845
|
+
rangeFrom: "\u958B\u59CB",
|
|
846
|
+
rangeTo: "\u7D42\u4E86",
|
|
847
|
+
clearDate: "\u65E5\u4ED8\u3092\u30AF\u30EA\u30A2",
|
|
848
|
+
clearMonth: "\u6708\u3092\u30AF\u30EA\u30A2",
|
|
849
|
+
clearYear: "\u5E74\u3092\u30AF\u30EA\u30A2",
|
|
850
|
+
clearPeriod: "\u671F\u9593\u3092\u30AF\u30EA\u30A2",
|
|
851
|
+
clearTime: "\u6642\u523B\u3092\u30AF\u30EA\u30A2",
|
|
852
|
+
clearTimeRange: "\u6642\u9593\u7BC4\u56F2\u3092\u30AF\u30EA\u30A2",
|
|
853
|
+
start: "\u958B\u59CB",
|
|
854
|
+
end: "\u7D42\u4E86",
|
|
855
|
+
startTime: "\u958B\u59CB\u6642\u523B",
|
|
856
|
+
endTime: "\u7D42\u4E86\u6642\u523B"
|
|
857
|
+
},
|
|
858
|
+
chart: {
|
|
859
|
+
unit: (unit) => `\u5358\u4F4D\uFF1A${unit}`,
|
|
860
|
+
pie: "\u5186\u30B0\u30E9\u30D5",
|
|
861
|
+
donut: "\u30C9\u30FC\u30CA\u30C4\u30B0\u30E9\u30D5",
|
|
862
|
+
radialSummary: (count, kind) => `${count}\u9805\u76EE\u306E${kind}`,
|
|
863
|
+
barSummary: (c, s, stacked) => `${c}\u9805\u76EE\u3001${s}\u7CFB\u5217\u306E${stacked ? "\u7A4D\u307F\u4E0A\u3052" : ""}\u68D2\u30B0\u30E9\u30D5`,
|
|
864
|
+
lineSummary: (c, s, stacked) => `${c}\u9805\u76EE\u3001${s}\u7CFB\u5217\u306E${stacked ? "\u7A4D\u307F\u4E0A\u3052" : ""}\u6298\u308C\u7DDA\u30B0\u30E9\u30D5`
|
|
865
|
+
},
|
|
866
|
+
chipFilter: {
|
|
867
|
+
periodDay: "\u65E5\u5225",
|
|
868
|
+
periodMonth: "\u6708\u5225",
|
|
869
|
+
periodQuarter: "\u56DB\u534A\u671F\u5225",
|
|
870
|
+
periodHalf: "\u534A\u671F\u5225",
|
|
871
|
+
periodYear: "\u5E74\u5225",
|
|
872
|
+
custom: "\u30E6\u30FC\u30B6\u30FC\u6307\u5B9A",
|
|
873
|
+
today: "\u4ECA\u65E5",
|
|
874
|
+
last7: "\u904E\u53BB7\u65E5",
|
|
875
|
+
last30: "\u904E\u53BB30\u65E5",
|
|
876
|
+
maxWord: "\u6700\u5927",
|
|
877
|
+
maxRangeHint: (days) => `\u6700\u5927${days}\u65E5`,
|
|
878
|
+
requireAll: "\u3059\u3079\u3066\u306E\u9805\u76EE\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
879
|
+
requireAnyDefault: "1\u3064\u4EE5\u4E0A\u306E\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
880
|
+
requireAnyNamed: (name) => `${name}\u30921\u3064\u4EE5\u4E0A\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
881
|
+
requireField: (label) => `${label}\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
882
|
+
fieldFallback: "\u9805\u76EE",
|
|
883
|
+
valueListMore: (first, rest) => `${first} \u4ED6${rest}\u4EF6`,
|
|
884
|
+
quarter: (n) => `\u7B2C${n}\u56DB\u534A\u671F`,
|
|
885
|
+
firstHalf: "\u4E0A\u534A\u671F",
|
|
886
|
+
secondHalf: "\u4E0B\u534A\u671F",
|
|
887
|
+
removeFilter: (label) => `${label}\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u524A\u9664`,
|
|
888
|
+
clearFilter: (label) => `${label}\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u30AF\u30EA\u30A2`,
|
|
889
|
+
resetSearch: "\u691C\u7D22\u3092\u30EA\u30BB\u30C3\u30C8",
|
|
890
|
+
addFilter: "\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u8FFD\u52A0",
|
|
891
|
+
noAddableFilter: "\u8FFD\u52A0\u3067\u304D\u308B\u30D5\u30A3\u30EB\u30BF\u30FC\u304C\u3042\u308A\u307E\u305B\u3093\u3002",
|
|
892
|
+
selectNone: "\u9078\u629E\u3092\u89E3\u9664",
|
|
893
|
+
selectAll: "\u3059\u3079\u3066\u9078\u629E",
|
|
894
|
+
removeItem: (label) => `${label}\u3092\u524A\u9664`,
|
|
895
|
+
keywordContains: "\u542B\u3080",
|
|
896
|
+
keywordExact: "\u4E00\u81F4",
|
|
897
|
+
keywordExcludes: "\u542B\u307E\u306A\u3044",
|
|
898
|
+
keywordHintCsv: "\u8907\u6570\u306E\u30AD\u30FC\u30EF\u30FC\u30C9\u306F\u30AB\u30F3\u30DE(,)\u3067\u533A\u5207\u308A\u307E\u3059",
|
|
899
|
+
keywordHintEnter: "\u5165\u529B\u5F8C Enter \u3067\u8FFD\u52A0",
|
|
900
|
+
keywordCondition: "\u691C\u7D22\u6761\u4EF6\uFF1A",
|
|
901
|
+
noSearchResults: "\u691C\u7D22\u7D50\u679C\u304C\u3042\u308A\u307E\u305B\u3093\u3002"
|
|
902
|
+
},
|
|
903
|
+
numberInput: {
|
|
904
|
+
rangeBetween: (min, max) => `${min}\u301C${max}\u306E\u7BC4\u56F2\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
905
|
+
atLeast: (min) => `${min}\u4EE5\u4E0A\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
906
|
+
atMost: (max) => `${max}\u4EE5\u4E0B\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,
|
|
907
|
+
increase: "\u5897\u3084\u3059",
|
|
908
|
+
decrease: "\u6E1B\u3089\u3059"
|
|
909
|
+
},
|
|
910
|
+
chipInput: {
|
|
911
|
+
placeholderWithComma: "\u30BF\u30B0\u3092\u5165\u529B\uFF08Enter\u307E\u305F\u306F\u30AB\u30F3\u30DE\u3067\u767B\u9332\uFF09",
|
|
912
|
+
placeholder: "\u30BF\u30B0\u3092\u5165\u529B\uFF08Enter\u3067\u767B\u9332\uFF09",
|
|
913
|
+
duplicateNamed: (label) => `\u3059\u3067\u306B\u5165\u529B\u3055\u308C\u305F${label}\u3067\u3059\u3002`,
|
|
914
|
+
duplicate: "\u91CD\u8907\u3057\u305F\u5024\u304C\u3042\u308A\u307E\u3059\u3002",
|
|
915
|
+
maxCount: (max) => `\u6700\u5927${max}\u4EF6`
|
|
916
|
+
},
|
|
917
|
+
slider: { minValue: "\u6700\u5C0F\u5024", maxValue: "\u6700\u5927\u5024" },
|
|
918
|
+
chat: {
|
|
919
|
+
removeAttachment: (name) => `${name}\u3092\u524A\u9664`,
|
|
920
|
+
placeholder: "\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044...",
|
|
921
|
+
attachFile: "\u30D5\u30A1\u30A4\u30EB\u3092\u6DFB\u4ED8",
|
|
922
|
+
stopResponse: "\u5FDC\u7B54\u3092\u505C\u6B62",
|
|
923
|
+
send: "\u9001\u4FE1",
|
|
924
|
+
read: "\u65E2\u8AAD",
|
|
925
|
+
unread: "\u672A\u8AAD"
|
|
926
|
+
},
|
|
927
|
+
loadingModal: {
|
|
928
|
+
loadingMessage: "\u51E6\u7406\u4E2D...",
|
|
929
|
+
errorMessage: "\u51E6\u7406\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",
|
|
930
|
+
errorButton: "\u518D\u8A66\u884C",
|
|
931
|
+
ariaTitle: "\u8AAD\u307F\u8FBC\u307F\u4E2D"
|
|
932
|
+
},
|
|
933
|
+
stepper: { errorTooltip: "\u78BA\u8A8D\u304C\u5FC5\u8981\u306A\u9805\u76EE\u304C\u3042\u308A\u307E\u3059\u3002", ariaLabel: "\u9032\u884C\u30B9\u30C6\u30C3\u30D7" },
|
|
934
|
+
timeline: { empty: "\u5C65\u6B74\u304C\u3042\u308A\u307E\u305B\u3093\u3002" },
|
|
935
|
+
callout: { dangerTitle: "\u6CE8\u610F\u4E8B\u9805" },
|
|
936
|
+
guide: { tip: "\u30D2\u30F3\u30C8", notion: "\u4F7F\u3044\u65B9\u30AC\u30A4\u30C9" },
|
|
937
|
+
loginCard: { login: "\u7D71\u5408\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u30ED\u30B0\u30A4\u30F3" },
|
|
938
|
+
modal: { defaultTitle: "\u30E2\u30FC\u30C0\u30EB" },
|
|
939
|
+
launcher: { opensInNewTab: "\u65B0\u3057\u3044\u30BF\u30D6\u3067\u958B\u304D\u307E\u3059" },
|
|
940
|
+
common: {
|
|
941
|
+
close: "\u9589\u3058\u308B",
|
|
942
|
+
clear: "\u30AF\u30EA\u30A2",
|
|
943
|
+
confirm: "\u78BA\u8A8D",
|
|
944
|
+
all: "\u3059\u3079\u3066",
|
|
945
|
+
back: "\u623B\u308B",
|
|
946
|
+
more: "\u3082\u3063\u3068\u898B\u308B",
|
|
947
|
+
moreActions: "\u305D\u306E\u4ED6\u306E\u6A5F\u80FD",
|
|
948
|
+
openMenu: "\u30E1\u30CB\u30E5\u30FC\u3092\u958B\u304F",
|
|
949
|
+
dragHandle: "\u30C9\u30E9\u30C3\u30B0\u30CF\u30F3\u30C9\u30EB",
|
|
950
|
+
resizeDrawer: "\u30C9\u30ED\u30EF\u30FC\u306E\u5E45\u3092\u8ABF\u6574",
|
|
951
|
+
search: "\u691C\u7D22",
|
|
952
|
+
count: (n) => `${n}\u4EF6`
|
|
953
|
+
},
|
|
954
|
+
input: {
|
|
955
|
+
placeholder: "\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
956
|
+
searchWithinResults: "\u7D50\u679C\u5185\u3092\u691C\u7D22",
|
|
957
|
+
clearInput: "\u5165\u529B\u3092\u30EA\u30BB\u30C3\u30C8",
|
|
958
|
+
showPassword: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8868\u793A"
|
|
959
|
+
},
|
|
319
960
|
pagination: {
|
|
320
961
|
firstPage: "\u6700\u521D\u306E\u30DA\u30FC\u30B8",
|
|
321
962
|
prevPage: "\u524D\u306E\u30DA\u30FC\u30B8",
|
|
@@ -332,9 +973,224 @@ var BUNDLES = {
|
|
|
332
973
|
searchPlaceholder: "\u691C\u7D22",
|
|
333
974
|
empty: "\u8868\u793A\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\u3002",
|
|
334
975
|
loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D..."
|
|
976
|
+
},
|
|
977
|
+
table: {
|
|
978
|
+
selectAll: "\u3059\u3079\u3066\u9078\u629E",
|
|
979
|
+
selectRow: "\u884C\u3092\u9078\u629E",
|
|
980
|
+
empty: "\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093\u3002",
|
|
981
|
+
rowsPerPage: (count) => `${count}\u4EF6\u305A\u3064\u8868\u793A`,
|
|
982
|
+
editable: "\u7DE8\u96C6\u53EF\u80FD",
|
|
983
|
+
opensInNewScreen: "\u65B0\u3057\u3044\u753B\u9762\u3067\u958B\u304F",
|
|
984
|
+
sortBy: (label) => `${label} \u3067\u4E26\u3079\u66FF\u3048`,
|
|
985
|
+
denseOff: "\u5E83\u304F\u8868\u793A",
|
|
986
|
+
denseOn: "\u72ED\u304F\u8868\u793A"
|
|
987
|
+
},
|
|
988
|
+
tableBar: {
|
|
989
|
+
totalBefore: "\u5408\u8A08 ",
|
|
990
|
+
totalAfter: "\u4EF6",
|
|
991
|
+
selectedBefore: "",
|
|
992
|
+
selectedAfter: "\u4EF6\u9078\u629E"
|
|
335
993
|
}
|
|
336
994
|
},
|
|
337
995
|
zh: {
|
|
996
|
+
accountListBox: { accountSetting: "\u8D26\u53F7\u8BBE\u7F6E", language: "\u66F4\u6539\u8BED\u8A00", logout: "\u9000\u51FA\u767B\u5F55" },
|
|
997
|
+
gnbSystem: { alert: "\u901A\u77E5", setting: "\u8BBE\u7F6E" },
|
|
998
|
+
editor: {
|
|
999
|
+
placeholder: "\u8BF7\u8F93\u5165\u5185\u5BB9\u3002",
|
|
1000
|
+
toolbarLabel: "\u683C\u5F0F\u5DE5\u5177",
|
|
1001
|
+
tableSize: "\u8868\u683C\u5927\u5C0F",
|
|
1002
|
+
linkUrl: "\u94FE\u63A5\u5730\u5740",
|
|
1003
|
+
apply: "\u5E94\u7528",
|
|
1004
|
+
remove: "\u79FB\u9664",
|
|
1005
|
+
headingLevel: "\u6807\u9898\u7EA7\u522B",
|
|
1006
|
+
headingBody: "\u6B63\u6587",
|
|
1007
|
+
fontSize: "\u5B57\u53F7",
|
|
1008
|
+
fontSizeDefaultLabel: "\u9ED8\u8BA4",
|
|
1009
|
+
bold: "\u52A0\u7C97",
|
|
1010
|
+
italic: "\u659C\u4F53",
|
|
1011
|
+
underline: "\u4E0B\u5212\u7EBF",
|
|
1012
|
+
strike: "\u5220\u9664\u7EBF",
|
|
1013
|
+
inlineCode: "\u884C\u5185\u4EE3\u7801",
|
|
1014
|
+
textColor: "\u6587\u5B57\u989C\u8272",
|
|
1015
|
+
clearColor: "\u6E05\u9664\u989C\u8272",
|
|
1016
|
+
alignLeft: "\u5DE6\u5BF9\u9F50",
|
|
1017
|
+
alignCenter: "\u5C45\u4E2D\u5BF9\u9F50",
|
|
1018
|
+
alignRight: "\u53F3\u5BF9\u9F50",
|
|
1019
|
+
alignJustify: "\u4E24\u7AEF\u5BF9\u9F50",
|
|
1020
|
+
bulletList: "\u9879\u76EE\u7B26\u53F7\u5217\u8868",
|
|
1021
|
+
orderedList: "\u7F16\u53F7\u5217\u8868",
|
|
1022
|
+
taskList: "\u5F85\u529E\u5217\u8868",
|
|
1023
|
+
list: "\u5217\u8868",
|
|
1024
|
+
blockquote: "\u5F15\u7528",
|
|
1025
|
+
codeBlock: "\u4EE3\u7801\u5757",
|
|
1026
|
+
divider: "\u5206\u9694\u7EBF",
|
|
1027
|
+
link: "\u94FE\u63A5",
|
|
1028
|
+
insertImage: "\u63D2\u5165\u56FE\u7247",
|
|
1029
|
+
image: "\u56FE\u7247",
|
|
1030
|
+
table: "\u8868\u683C",
|
|
1031
|
+
addRowAbove: "\u5728\u4E0A\u65B9\u63D2\u5165\u884C",
|
|
1032
|
+
addRowBelow: "\u5728\u4E0B\u65B9\u63D2\u5165\u884C",
|
|
1033
|
+
addColLeft: "\u5728\u5DE6\u4FA7\u63D2\u5165\u5217",
|
|
1034
|
+
addColRight: "\u5728\u53F3\u4FA7\u63D2\u5165\u5217",
|
|
1035
|
+
mergeCells: "\u5408\u5E76\u5355\u5143\u683C",
|
|
1036
|
+
splitCell: "\u53D6\u6D88\u5408\u5E76",
|
|
1037
|
+
toggleHeaderRow: "\u5207\u6362\u6807\u9898\u884C",
|
|
1038
|
+
toggleHeaderCol: "\u5207\u6362\u6807\u9898\u5217",
|
|
1039
|
+
deleteRow: "\u5220\u9664\u884C",
|
|
1040
|
+
deleteCol: "\u5220\u9664\u5217",
|
|
1041
|
+
deleteTable: "\u5220\u9664\u8868\u683C",
|
|
1042
|
+
undo: "\u64A4\u9500",
|
|
1043
|
+
redo: "\u91CD\u505A",
|
|
1044
|
+
colorDefault: "\u9ED8\u8BA4",
|
|
1045
|
+
colorSecondary: "\u6B21\u8981",
|
|
1046
|
+
colorMuted: "\u6DE1\u5316",
|
|
1047
|
+
colorAccent: "\u5F3A\u8C03",
|
|
1048
|
+
colorBrand: "\u54C1\u724C",
|
|
1049
|
+
colorSuccess: "\u6210\u529F",
|
|
1050
|
+
colorWarning: "\u8B66\u544A",
|
|
1051
|
+
colorDanger: "\u5371\u9669",
|
|
1052
|
+
tableCell: (r3, c) => `${r3}\u884C${c}\u5217`,
|
|
1053
|
+
tableSizeText: (rows, cols) => `${rows}\u884C \xD7 ${cols}\u5217`,
|
|
1054
|
+
heading: (level) => `\u6807\u9898 ${level}`,
|
|
1055
|
+
fontSizeDefault: (px) => `\u9ED8\u8BA4\uFF08\u6B63\u6587 ${px}px\uFF09`,
|
|
1056
|
+
closeEditing: (label) => `\u5173\u95ED${label}`
|
|
1057
|
+
},
|
|
1058
|
+
form: { invalid: "\u65E0\u6548\u7684\u503C\u3002" },
|
|
1059
|
+
date: {
|
|
1060
|
+
weekdays: ["\u65E5", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D"],
|
|
1061
|
+
weekdaysLong: ["\u661F\u671F\u65E5", "\u661F\u671F\u4E00", "\u661F\u671F\u4E8C", "\u661F\u671F\u4E09", "\u661F\u671F\u56DB", "\u661F\u671F\u4E94", "\u661F\u671F\u516D"],
|
|
1062
|
+
today: "\u4ECA\u5929",
|
|
1063
|
+
prevYear: "\u4E0A\u4E00\u5E74",
|
|
1064
|
+
nextYear: "\u4E0B\u4E00\u5E74",
|
|
1065
|
+
prevMonth: "\u4E0A\u4E2A\u6708",
|
|
1066
|
+
nextMonth: "\u4E0B\u4E2A\u6708",
|
|
1067
|
+
monthLabel: (month) => `${month}\u6708`,
|
|
1068
|
+
dayLabel: (day) => `${day}\u65E5`,
|
|
1069
|
+
unitYear: "\u5E74",
|
|
1070
|
+
unitMonth: "\u6708",
|
|
1071
|
+
unitDay: "\u65E5",
|
|
1072
|
+
hourItem: (hour) => `${hour}\u65F6`,
|
|
1073
|
+
minuteItem: (minute) => `${minute}\u5206`,
|
|
1074
|
+
hourAria: (prefix) => `${prefix}\u5C0F\u65F6`,
|
|
1075
|
+
minuteAria: (prefix) => `${prefix}\u5206\u949F`,
|
|
1076
|
+
meridiemAria: (prefix) => `${prefix}\u4E0A\u5348/\u4E0B\u5348`,
|
|
1077
|
+
am: "\u4E0A\u5348",
|
|
1078
|
+
pm: "\u4E0B\u5348",
|
|
1079
|
+
rangeFrom: "\u5F00\u59CB",
|
|
1080
|
+
rangeTo: "\u7ED3\u675F",
|
|
1081
|
+
clearDate: "\u6E05\u9664\u65E5\u671F",
|
|
1082
|
+
clearMonth: "\u6E05\u9664\u6708\u4EFD",
|
|
1083
|
+
clearYear: "\u6E05\u9664\u5E74\u4EFD",
|
|
1084
|
+
clearPeriod: "\u6E05\u9664\u65F6\u95F4\u6BB5",
|
|
1085
|
+
clearTime: "\u6E05\u9664\u65F6\u95F4",
|
|
1086
|
+
clearTimeRange: "\u6E05\u9664\u65F6\u95F4\u8303\u56F4",
|
|
1087
|
+
start: "\u5F00\u59CB",
|
|
1088
|
+
end: "\u7ED3\u675F",
|
|
1089
|
+
startTime: "\u5F00\u59CB\u65F6\u95F4",
|
|
1090
|
+
endTime: "\u7ED3\u675F\u65F6\u95F4"
|
|
1091
|
+
},
|
|
1092
|
+
chart: {
|
|
1093
|
+
unit: (unit) => `\u5355\u4F4D\uFF1A${unit}`,
|
|
1094
|
+
pie: "\u997C\u56FE",
|
|
1095
|
+
donut: "\u73AF\u5F62\u56FE",
|
|
1096
|
+
radialSummary: (count, kind) => `${kind}\uFF0C\u5171 ${count} \u9879`,
|
|
1097
|
+
barSummary: (c, s, stacked) => `${stacked ? "\u5806\u53E0" : ""}\u67F1\u72B6\u56FE\uFF0C${c} \u9879\uFF0C${s} \u4E2A\u7CFB\u5217`,
|
|
1098
|
+
lineSummary: (c, s, stacked) => `${stacked ? "\u5806\u53E0" : ""}\u6298\u7EBF\u56FE\uFF0C${c} \u9879\uFF0C${s} \u4E2A\u7CFB\u5217`
|
|
1099
|
+
},
|
|
1100
|
+
chipFilter: {
|
|
1101
|
+
periodDay: "\u6309\u65E5",
|
|
1102
|
+
periodMonth: "\u6309\u6708",
|
|
1103
|
+
periodQuarter: "\u6309\u5B63\u5EA6",
|
|
1104
|
+
periodHalf: "\u6309\u534A\u5E74",
|
|
1105
|
+
periodYear: "\u6309\u5E74",
|
|
1106
|
+
custom: "\u81EA\u5B9A\u4E49",
|
|
1107
|
+
today: "\u4ECA\u5929",
|
|
1108
|
+
last7: "\u6700\u8FD17\u5929",
|
|
1109
|
+
last30: "\u6700\u8FD130\u5929",
|
|
1110
|
+
maxWord: "\u6700\u591A",
|
|
1111
|
+
maxRangeHint: (days) => `\u6700\u591A${days}\u5929`,
|
|
1112
|
+
requireAll: "\u8BF7\u9009\u62E9\u6240\u6709\u9879\u76EE\u3002",
|
|
1113
|
+
requireAnyDefault: "\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u7B5B\u9009\u6761\u4EF6\u3002",
|
|
1114
|
+
requireAnyNamed: (name) => `\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A${name}\u3002`,
|
|
1115
|
+
requireField: (label) => `\u8BF7\u9009\u62E9${label}\u3002`,
|
|
1116
|
+
fieldFallback: "\u9879\u76EE",
|
|
1117
|
+
valueListMore: (first, rest) => `${first} \u7B49${rest + 1}\u9879`,
|
|
1118
|
+
quarter: (n) => `\u7B2C${n}\u5B63\u5EA6`,
|
|
1119
|
+
firstHalf: "\u4E0A\u534A\u5E74",
|
|
1120
|
+
secondHalf: "\u4E0B\u534A\u5E74",
|
|
1121
|
+
removeFilter: (label) => `\u79FB\u9664${label}\u7B5B\u9009`,
|
|
1122
|
+
clearFilter: (label) => `\u6E05\u9664${label}\u7B5B\u9009`,
|
|
1123
|
+
resetSearch: "\u91CD\u7F6E\u641C\u7D22",
|
|
1124
|
+
addFilter: "\u6DFB\u52A0\u7B5B\u9009",
|
|
1125
|
+
noAddableFilter: "\u6CA1\u6709\u53EF\u6DFB\u52A0\u7684\u7B5B\u9009\u6761\u4EF6\u3002",
|
|
1126
|
+
selectNone: "\u53D6\u6D88\u5168\u9009",
|
|
1127
|
+
selectAll: "\u5168\u9009",
|
|
1128
|
+
removeItem: (label) => `\u5220\u9664${label}`,
|
|
1129
|
+
keywordContains: "\u5305\u542B",
|
|
1130
|
+
keywordExact: "\u5B8C\u5168\u5339\u914D",
|
|
1131
|
+
keywordExcludes: "\u4E0D\u5305\u542B",
|
|
1132
|
+
keywordHintCsv: "\u591A\u4E2A\u5173\u952E\u8BCD\u7528\u9017\u53F7(,)\u5206\u9694",
|
|
1133
|
+
keywordHintEnter: "\u8F93\u5165\u540E\u6309 Enter \u6DFB\u52A0",
|
|
1134
|
+
keywordCondition: "\u641C\u7D22\u6761\u4EF6\uFF1A",
|
|
1135
|
+
noSearchResults: "\u6CA1\u6709\u641C\u7D22\u7ED3\u679C\u3002"
|
|
1136
|
+
},
|
|
1137
|
+
numberInput: {
|
|
1138
|
+
rangeBetween: (min, max) => `\u8BF7\u8F93\u5165 ${min}~${max} \u4E4B\u95F4\u7684\u503C\u3002`,
|
|
1139
|
+
atLeast: (min) => `\u8BF7\u8F93\u5165\u4E0D\u5C0F\u4E8E ${min} \u7684\u503C\u3002`,
|
|
1140
|
+
atMost: (max) => `\u8BF7\u8F93\u5165\u4E0D\u5927\u4E8E ${max} \u7684\u503C\u3002`,
|
|
1141
|
+
increase: "\u589E\u52A0",
|
|
1142
|
+
decrease: "\u51CF\u5C11"
|
|
1143
|
+
},
|
|
1144
|
+
chipInput: {
|
|
1145
|
+
placeholderWithComma: "\u8F93\u5165\u6807\u7B7E\uFF08\u6309 Enter \u6216\u9017\u53F7\u6DFB\u52A0\uFF09",
|
|
1146
|
+
placeholder: "\u8F93\u5165\u6807\u7B7E\uFF08\u6309 Enter \u6DFB\u52A0\uFF09",
|
|
1147
|
+
duplicateNamed: (label) => `${label}\u5DF2\u5B58\u5728\u3002`,
|
|
1148
|
+
duplicate: "\u5B58\u5728\u91CD\u590D\u7684\u503C\u3002",
|
|
1149
|
+
maxCount: (max) => `\u6700\u591A ${max} \u4E2A`
|
|
1150
|
+
},
|
|
1151
|
+
slider: { minValue: "\u6700\u5C0F\u503C", maxValue: "\u6700\u5927\u503C" },
|
|
1152
|
+
chat: {
|
|
1153
|
+
removeAttachment: (name) => `\u79FB\u9664${name}`,
|
|
1154
|
+
placeholder: "\u8BF7\u8F93\u5165\u6D88\u606F...",
|
|
1155
|
+
attachFile: "\u9644\u52A0\u6587\u4EF6",
|
|
1156
|
+
stopResponse: "\u505C\u6B62\u56DE\u590D",
|
|
1157
|
+
send: "\u53D1\u9001",
|
|
1158
|
+
read: "\u5DF2\u8BFB",
|
|
1159
|
+
unread: "\u672A\u8BFB"
|
|
1160
|
+
},
|
|
1161
|
+
loadingModal: {
|
|
1162
|
+
loadingMessage: "\u5904\u7406\u4E2D...",
|
|
1163
|
+
errorMessage: "\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002",
|
|
1164
|
+
errorButton: "\u91CD\u8BD5",
|
|
1165
|
+
ariaTitle: "\u52A0\u8F7D\u4E2D"
|
|
1166
|
+
},
|
|
1167
|
+
stepper: { errorTooltip: "\u6709\u9700\u8981\u786E\u8BA4\u7684\u9879\u76EE\u3002", ariaLabel: "\u8FDB\u5EA6\u6B65\u9AA4" },
|
|
1168
|
+
timeline: { empty: "\u6CA1\u6709\u8BB0\u5F55\u3002" },
|
|
1169
|
+
callout: { dangerTitle: "\u6CE8\u610F\u4E8B\u9879" },
|
|
1170
|
+
guide: { tip: "\u4F7F\u7528\u63D0\u793A", notion: "\u4F7F\u7528\u6307\u5357" },
|
|
1171
|
+
loginCard: { login: "\u4F7F\u7528\u7EDF\u4E00\u8D26\u53F7\u767B\u5F55" },
|
|
1172
|
+
modal: { defaultTitle: "\u6A21\u6001\u6846" },
|
|
1173
|
+
launcher: { opensInNewTab: "\u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6253\u5F00" },
|
|
1174
|
+
common: {
|
|
1175
|
+
close: "\u5173\u95ED",
|
|
1176
|
+
clear: "\u6E05\u9664",
|
|
1177
|
+
confirm: "\u786E\u5B9A",
|
|
1178
|
+
all: "\u5168\u90E8",
|
|
1179
|
+
back: "\u8FD4\u56DE",
|
|
1180
|
+
more: "\u66F4\u591A",
|
|
1181
|
+
moreActions: "\u66F4\u591A\u529F\u80FD",
|
|
1182
|
+
openMenu: "\u6253\u5F00\u83DC\u5355",
|
|
1183
|
+
dragHandle: "\u62D6\u52A8\u624B\u67C4",
|
|
1184
|
+
resizeDrawer: "\u8C03\u6574\u62BD\u5C49\u5BBD\u5EA6",
|
|
1185
|
+
search: "\u641C\u7D22",
|
|
1186
|
+
count: (n) => `${n}\u4E2A`
|
|
1187
|
+
},
|
|
1188
|
+
input: {
|
|
1189
|
+
placeholder: "\u8BF7\u8F93\u5165\u3002",
|
|
1190
|
+
searchWithinResults: "\u5728\u7ED3\u679C\u4E2D\u641C\u7D22",
|
|
1191
|
+
clearInput: "\u91CD\u7F6E\u8F93\u5165",
|
|
1192
|
+
showPassword: "\u663E\u793A\u5BC6\u7801"
|
|
1193
|
+
},
|
|
338
1194
|
pagination: {
|
|
339
1195
|
firstPage: "\u7B2C\u4E00\u9875",
|
|
340
1196
|
prevPage: "\u4E0A\u4E00\u9875",
|
|
@@ -351,6 +1207,23 @@ var BUNDLES = {
|
|
|
351
1207
|
searchPlaceholder: "\u641C\u7D22",
|
|
352
1208
|
empty: "\u6CA1\u6709\u53EF\u663E\u793A\u7684\u9879\u76EE\u3002",
|
|
353
1209
|
loading: "\u52A0\u8F7D\u4E2D..."
|
|
1210
|
+
},
|
|
1211
|
+
table: {
|
|
1212
|
+
selectAll: "\u5168\u9009",
|
|
1213
|
+
selectRow: "\u9009\u62E9\u884C",
|
|
1214
|
+
empty: "\u6CA1\u6709\u6570\u636E\u3002",
|
|
1215
|
+
rowsPerPage: (count) => `\u6BCF\u9875 ${count} \u6761`,
|
|
1216
|
+
editable: "\u53EF\u7F16\u8F91",
|
|
1217
|
+
opensInNewScreen: "\u5728\u65B0\u9875\u9762\u4E2D\u6253\u5F00",
|
|
1218
|
+
sortBy: (label) => `\u6309${label}\u6392\u5E8F`,
|
|
1219
|
+
denseOff: "\u5BBD\u677E\u663E\u793A",
|
|
1220
|
+
denseOn: "\u7D27\u51D1\u663E\u793A"
|
|
1221
|
+
},
|
|
1222
|
+
tableBar: {
|
|
1223
|
+
totalBefore: "\u5171 ",
|
|
1224
|
+
totalAfter: " \u6761",
|
|
1225
|
+
selectedBefore: "\u5DF2\u9009 ",
|
|
1226
|
+
selectedAfter: " \u6761"
|
|
354
1227
|
}
|
|
355
1228
|
}
|
|
356
1229
|
};
|
|
@@ -367,11 +1240,40 @@ function mergeDefined(base, override) {
|
|
|
367
1240
|
}
|
|
368
1241
|
return next;
|
|
369
1242
|
}
|
|
1243
|
+
function mergeDateDefined(base, override) {
|
|
1244
|
+
const merged = mergeDefined(base, override);
|
|
1245
|
+
if (merged.weekdays.length !== 7) merged.weekdays = base.weekdays;
|
|
1246
|
+
if (merged.weekdaysLong.length !== 7) merged.weekdaysLong = base.weekdaysLong;
|
|
1247
|
+
return merged;
|
|
1248
|
+
}
|
|
370
1249
|
function resolveMessages(locale, override) {
|
|
371
1250
|
const base = BUNDLES[normalizeLocale(locale)];
|
|
372
1251
|
return {
|
|
1252
|
+
common: mergeDefined(base.common, override?.common),
|
|
1253
|
+
input: mergeDefined(base.input, override?.input),
|
|
1254
|
+
chart: mergeDefined(base.chart, override?.chart),
|
|
1255
|
+
date: mergeDateDefined(base.date, override?.date),
|
|
1256
|
+
form: mergeDefined(base.form, override?.form),
|
|
1257
|
+
accountListBox: mergeDefined(base.accountListBox, override?.accountListBox),
|
|
1258
|
+
gnbSystem: mergeDefined(base.gnbSystem, override?.gnbSystem),
|
|
1259
|
+
editor: mergeDefined(base.editor, override?.editor),
|
|
1260
|
+
chipFilter: mergeDefined(base.chipFilter, override?.chipFilter),
|
|
1261
|
+
numberInput: mergeDefined(base.numberInput, override?.numberInput),
|
|
1262
|
+
chipInput: mergeDefined(base.chipInput, override?.chipInput),
|
|
1263
|
+
slider: mergeDefined(base.slider, override?.slider),
|
|
1264
|
+
chat: mergeDefined(base.chat, override?.chat),
|
|
1265
|
+
loadingModal: mergeDefined(base.loadingModal, override?.loadingModal),
|
|
1266
|
+
stepper: mergeDefined(base.stepper, override?.stepper),
|
|
1267
|
+
timeline: mergeDefined(base.timeline, override?.timeline),
|
|
1268
|
+
callout: mergeDefined(base.callout, override?.callout),
|
|
1269
|
+
guide: mergeDefined(base.guide, override?.guide),
|
|
1270
|
+
loginCard: mergeDefined(base.loginCard, override?.loginCard),
|
|
1271
|
+
modal: mergeDefined(base.modal, override?.modal),
|
|
1272
|
+
launcher: mergeDefined(base.launcher, override?.launcher),
|
|
373
1273
|
pagination: mergeDefined(base.pagination, override?.pagination),
|
|
374
|
-
select: mergeDefined(base.select, override?.select)
|
|
1274
|
+
select: mergeDefined(base.select, override?.select),
|
|
1275
|
+
table: mergeDefined(base.table, override?.table),
|
|
1276
|
+
tableBar: mergeDefined(base.tableBar, override?.tableBar)
|
|
375
1277
|
};
|
|
376
1278
|
}
|
|
377
1279
|
function createValue(locale, override) {
|
|
@@ -392,6 +1294,11 @@ function SLocaleProvider({ locale, messages, children }) {
|
|
|
392
1294
|
function useLocale() {
|
|
393
1295
|
return react.useContext(LocaleContext);
|
|
394
1296
|
}
|
|
1297
|
+
var strokeProps = (strokeWidth) => ({
|
|
1298
|
+
stroke: "currentColor",
|
|
1299
|
+
strokeWidth: strokeWidth ?? 1.5,
|
|
1300
|
+
vectorEffect: strokeWidth ? "non-scaling-stroke" : void 0
|
|
1301
|
+
});
|
|
395
1302
|
var Icon_account = (p) => {
|
|
396
1303
|
const { size = 24, ...rest } = p;
|
|
397
1304
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -2201,7 +3108,8 @@ var Icon_helpFill = (p) => {
|
|
|
2201
3108
|
);
|
|
2202
3109
|
};
|
|
2203
3110
|
var Icon_helpOutline = (p) => {
|
|
2204
|
-
const { size = 24, ...rest } = p;
|
|
3111
|
+
const { size = 24, strokeWidth, ...rest } = p;
|
|
3112
|
+
const stroke = strokeProps(strokeWidth);
|
|
2205
3113
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2206
3114
|
"svg",
|
|
2207
3115
|
{
|
|
@@ -2215,23 +3123,24 @@ var Icon_helpOutline = (p) => {
|
|
|
2215
3123
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2216
3124
|
"path",
|
|
2217
3125
|
{
|
|
2218
|
-
d: "
|
|
2219
|
-
|
|
3126
|
+
d: "M22.1998 11.9998C22.1998 6.3665 17.6331 1.7998 11.9998 1.7998C6.3665 1.7998 1.7998 6.3665 1.7998 11.9998C1.7998 17.6331 6.3665 22.1998 11.9998 22.1998C17.6331 22.1998 22.1998 17.6331 22.1998 11.9998Z",
|
|
3127
|
+
strokeLinecap: "round",
|
|
3128
|
+
...stroke
|
|
2220
3129
|
}
|
|
2221
3130
|
),
|
|
2222
3131
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2223
3132
|
"path",
|
|
2224
3133
|
{
|
|
2225
|
-
d: "
|
|
2226
|
-
|
|
3134
|
+
d: "M8.99982 9.10203C8.99982 8.19294 9.59982 6.37476 11.9998 6.37476C14.3998 6.37476 14.9998 8.19294 14.9998 9.10203C14.9998 9.87031 14.5713 11.2879 12.9899 11.7086C12.4562 11.8506 11.9998 12.277 11.9998 12.8293V13.8748",
|
|
3135
|
+
strokeLinecap: "round",
|
|
3136
|
+
strokeLinejoin: "round",
|
|
3137
|
+
...stroke
|
|
2227
3138
|
}
|
|
2228
3139
|
),
|
|
2229
3140
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2230
3141
|
"path",
|
|
2231
3142
|
{
|
|
2232
|
-
|
|
2233
|
-
clipRule: "evenodd",
|
|
2234
|
-
d: "M12 1.0498C18.0474 1.04991 22.9502 5.95255 22.9502 12C22.9501 18.0474 18.0474 22.9501 12 22.9502C5.95255 22.9502 1.04991 18.0474 1.0498 12C1.0498 5.95248 5.95248 1.0498 12 1.0498ZM12 2.5498C6.78091 2.5498 2.5498 6.78091 2.5498 12C2.54991 17.219 6.78097 21.4502 12 21.4502C17.2189 21.4501 21.4501 17.2189 21.4502 12C21.4502 6.78097 17.219 2.54991 12 2.5498Z",
|
|
3143
|
+
d: "M11.9998 15.7498C12.5521 15.7498 12.9998 16.1975 12.9998 16.7498C12.9998 17.302 12.5521 17.7498 11.9998 17.7498C11.4475 17.7498 10.9998 17.302 10.9998 16.7498C10.9998 16.1975 11.4475 15.7498 11.9998 15.7498Z",
|
|
2235
3144
|
fill: "currentColor"
|
|
2236
3145
|
}
|
|
2237
3146
|
)
|
|
@@ -2760,7 +3669,8 @@ var Icon_notificationFill = (p) => {
|
|
|
2760
3669
|
);
|
|
2761
3670
|
};
|
|
2762
3671
|
var Icon_notificationOutline = (p) => {
|
|
2763
|
-
const { size = 24, ...rest } = p;
|
|
3672
|
+
const { size = 24, strokeWidth, ...rest } = p;
|
|
3673
|
+
const stroke = strokeProps(strokeWidth);
|
|
2764
3674
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2765
3675
|
"svg",
|
|
2766
3676
|
{
|
|
@@ -2774,23 +3684,16 @@ var Icon_notificationOutline = (p) => {
|
|
|
2774
3684
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2775
3685
|
"path",
|
|
2776
3686
|
{
|
|
2777
|
-
d: "
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
),
|
|
2781
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2782
|
-
"path",
|
|
2783
|
-
{
|
|
2784
|
-
d: "M12 6.375C12.4142 6.375 12.75 6.71079 12.75 7.125V13.125C12.75 13.5392 12.4142 13.875 12 13.875C11.5858 13.875 11.25 13.5392 11.25 13.125V7.125C11.25 6.71079 11.5858 6.375 12 6.375Z",
|
|
2785
|
-
fill: "currentColor"
|
|
3687
|
+
d: "M22.2 12C22.2 6.36674 17.6333 1.80005 12 1.80005C6.36668 1.80005 1.79999 6.36674 1.79999 12C1.79999 17.6334 6.36668 22.2 12 22.2C17.6333 22.2 22.2 17.6334 22.2 12Z",
|
|
3688
|
+
strokeLinecap: "round",
|
|
3689
|
+
...stroke
|
|
2786
3690
|
}
|
|
2787
3691
|
),
|
|
3692
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 13.125L12 7.125", strokeLinecap: "round", strokeLinejoin: "round", ...stroke }),
|
|
2788
3693
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2789
3694
|
"path",
|
|
2790
3695
|
{
|
|
2791
|
-
|
|
2792
|
-
clipRule: "evenodd",
|
|
2793
|
-
d: "M12 1.0498C18.0474 1.04991 22.9501 5.95264 22.9502 12C22.9501 18.0474 18.0474 22.9501 12 22.9502C5.95263 22.9501 1.04991 18.0474 1.0498 12C1.04991 5.95263 5.95263 1.0499 12 1.0498ZM12 2.5498C6.78106 2.5499 2.54991 6.78106 2.5498 12C2.54991 17.2189 6.78106 21.4501 12 21.4502C17.2189 21.4501 21.4501 17.2189 21.4502 12C21.4501 6.78107 17.2189 2.54991 12 2.5498Z",
|
|
3696
|
+
d: "M12 15.5C12.5523 15.5 13 15.9477 13 16.5C13 17.0523 12.5523 17.5 12 17.5C11.4477 17.5 11 17.0523 11 16.5C11 15.9477 11.4477 15.5 12 15.5Z",
|
|
2794
3697
|
fill: "currentColor"
|
|
2795
3698
|
}
|
|
2796
3699
|
)
|
|
@@ -3253,7 +4156,8 @@ var Icon_setting = (p) => {
|
|
|
3253
4156
|
);
|
|
3254
4157
|
};
|
|
3255
4158
|
var Icon_settingOutline = (p) => {
|
|
3256
|
-
const { size = 24, ...rest } = p;
|
|
4159
|
+
const { size = 24, strokeWidth, ...rest } = p;
|
|
4160
|
+
const stroke = strokeProps(strokeWidth);
|
|
3257
4161
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3258
4162
|
"svg",
|
|
3259
4163
|
{
|
|
@@ -3264,22 +4168,12 @@ var Icon_settingOutline = (p) => {
|
|
|
3264
4168
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3265
4169
|
...rest,
|
|
3266
4170
|
children: [
|
|
4171
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "3", ...stroke }),
|
|
3267
4172
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3268
4173
|
"path",
|
|
3269
4174
|
{
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
d: "M11.9996 8C14.2087 8 15.9996 9.79086 15.9996 12C15.9996 14.2091 14.2087 16 11.9996 16C9.79065 15.9998 7.9996 14.209 7.9996 12C7.9996 9.791 9.79065 8.00022 11.9996 8ZM11.9996 9.5C10.6191 9.50022 9.4996 10.6194 9.4996 12C9.4996 13.3806 10.6191 14.4998 11.9996 14.5C13.3803 14.5 14.4996 13.3807 14.4996 12C14.4996 10.6193 13.3803 9.5 11.9996 9.5Z",
|
|
3273
|
-
fill: "currentColor"
|
|
3274
|
-
}
|
|
3275
|
-
),
|
|
3276
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3277
|
-
"path",
|
|
3278
|
-
{
|
|
3279
|
-
fillRule: "evenodd",
|
|
3280
|
-
clipRule: "evenodd",
|
|
3281
|
-
d: "M13.1851 1C13.5085 1 13.7979 1.20161 13.9068 1.50293L14.6832 3.65527C14.9613 3.72452 15.2006 3.79367 15.4029 3.86621C15.5134 3.90579 15.64 3.95628 15.7828 4.0166L16.2613 4.22949L18.0689 3.27246C18.2163 3.19438 18.3856 3.16661 18.5504 3.19238C18.7153 3.21835 18.8676 3.29735 18.984 3.41699L20.5748 5.06152C20.7859 5.28042 20.8459 5.60054 20.7271 5.87988L19.8785 7.86719C20.0192 8.12546 20.1316 8.34655 20.2174 8.53125C20.3097 8.73243 20.4239 9.01001 20.5601 9.36719L22.5377 10.2148L22.6432 10.2695C22.8771 10.4155 23.016 10.6779 22.9986 10.9561L22.8531 13.2383L22.8375 13.3486C22.8141 13.4565 22.7672 13.5589 22.6998 13.6475L22.6266 13.7305C22.5476 13.8076 22.4523 13.8674 22.3473 13.9043L20.4752 14.5693C20.4213 14.8278 20.3647 15.0493 20.3053 15.2363L20.1519 15.666C20.0973 15.8078 20.0394 15.9488 19.9781 16.0879L20.9185 18.166L20.9586 18.2793C20.9899 18.3941 20.9942 18.5153 20.9693 18.6328L20.9351 18.7471C20.8923 18.8584 20.823 18.959 20.733 19.0391L18.9449 20.6357L18.8512 20.707C18.753 20.7705 18.6411 20.812 18.524 20.8262L18.4059 20.8311C18.2889 20.8272 18.1732 20.7964 18.0689 20.7412L16.2262 19.7647C15.9378 19.9173 15.6394 20.0519 15.3346 20.168L14.5299 20.4697L13.815 22.4502L13.7672 22.5547C13.7121 22.6552 13.6346 22.7424 13.5406 22.8096L13.442 22.8701C13.3398 22.9219 13.2264 22.9498 13.1109 22.9522L11.0211 23C10.9023 23.0031 10.7841 22.9783 10.6773 22.9287L10.5748 22.8711C10.4431 22.7831 10.3415 22.6557 10.2848 22.5078L9.44198 20.2783C9.1547 20.1801 8.86973 20.0733 8.58847 19.959C8.35848 19.8594 8.13142 19.7518 7.90878 19.6367L5.81894 20.5303L5.71347 20.5664C5.64162 20.5854 5.56705 20.594 5.49276 20.5918L5.38241 20.5801C5.27208 20.5606 5.1671 20.5175 5.07577 20.4541L4.98886 20.3838L3.44198 18.9326C3.35574 18.8519 3.28988 18.7525 3.2496 18.6426L3.21737 18.5303C3.18685 18.376 3.20586 18.2154 3.27109 18.0723L4.1705 16.1143C4.05101 15.8824 3.93933 15.6454 3.83749 15.4053C3.71871 15.1116 3.60934 14.814 3.50839 14.5137L1.53866 13.9141C1.41879 13.8777 1.31002 13.8122 1.22226 13.7246L1.14218 13.6299C1.04481 13.4941 0.994151 13.3291 0.999601 13.1621L1.07675 11.0498C1.08222 10.9121 1.1259 10.7782 1.20175 10.6631C1.25874 10.5767 1.33262 10.5026 1.41855 10.4463L1.50839 10.3965L3.57382 9.4043C3.6695 9.05348 3.75306 8.78014 3.82675 8.58106C3.9305 8.31518 4.0461 8.05376 4.17245 7.79785L3.27694 5.90625C3.20906 5.76263 3.18873 5.6004 3.21835 5.44434C3.24057 5.3276 3.2899 5.21813 3.36191 5.125L3.44198 5.03711L4.98593 3.57813C5.09409 3.47611 5.23034 3.40784 5.37655 3.38086C5.52273 3.354 5.67376 3.37002 5.81112 3.42676L7.89901 4.28906C8.12988 4.13515 8.33881 4.01023 8.52792 3.91016C8.75326 3.79034 9.05504 3.66547 9.43417 3.53027L10.1607 1.50488C10.2143 1.35699 10.3122 1.22899 10.441 1.13867C10.57 1.04839 10.7249 0.999723 10.8824 1H13.1851ZM10.8463 4.03613C10.6946 4.45908 10.3613 4.79149 9.93808 4.94238C9.5875 5.06739 9.36381 5.16528 9.23202 5.23535L9.23007 5.23633C9.09075 5.31005 8.9247 5.40801 8.73105 5.53711C8.31531 5.81413 7.78855 5.86633 7.32675 5.67578L5.67343 4.99219L4.86484 5.75586L5.52792 7.15625C5.72387 7.57031 5.71997 8.05117 5.51718 8.46192C5.41394 8.67102 5.31944 8.88459 5.23398 9.10156L5.14218 9.37598C5.10686 9.491 5.06681 9.63118 5.02109 9.79883C4.90655 10.2184 4.6153 10.5675 4.22323 10.7559L2.55917 11.5547L2.51913 12.6436L3.94491 13.0781L4.11386 13.1416C4.49659 13.3106 4.79411 13.6335 4.92929 14.0352C5.01804 14.2992 5.11534 14.5609 5.21933 14.8193L5.35507 15.126C5.40249 15.2271 5.45233 15.3275 5.50351 15.4268C5.71457 15.8364 5.72588 16.3204 5.53378 16.7393L4.85898 18.2061L5.66659 18.9639L7.31894 18.2578L7.47616 18.2012C7.84698 18.0894 8.24932 18.125 8.59726 18.3047C8.78187 18.4001 8.97024 18.4892 9.16073 18.5723C9.28594 18.6231 9.41211 18.6724 9.53866 18.7197L9.92733 18.8594L10.0816 18.9219C10.4317 19.0869 10.7069 19.382 10.8453 19.748L11.5025 21.4883L12.5748 21.4639L13.1187 19.96L13.1832 19.8096C13.3508 19.4678 13.6433 19.2005 14.0035 19.0654L14.8004 18.7666L15.1676 18.6143C15.288 18.5597 15.4071 18.5013 15.524 18.4395L15.692 18.3623C16.0928 18.2097 16.5441 18.236 16.9283 18.4395L18.3238 19.1787L19.3248 18.2842L18.6109 16.7061C18.4355 16.318 18.4336 15.8732 18.6051 15.4834C18.7075 15.2508 18.7973 15.0126 18.8775 14.7715C18.9163 14.6479 18.9608 14.4825 19.0064 14.2637L19.0582 14.0762C19.2064 13.6503 19.5409 13.3098 19.9723 13.1563L21.3873 12.6523L21.4674 11.3877L19.9703 10.7461C19.5971 10.5861 19.3035 10.2817 19.1588 9.90234C19.0283 9.56034 18.9273 9.31663 18.8541 9.15723C18.7854 9.00988 18.689 8.81973 18.5611 8.58496C18.3418 8.18212 18.3187 7.70024 18.4986 7.27832L19.1519 5.74707L18.2867 4.85352L16.9625 5.55567C16.5475 5.77509 16.0531 5.78799 15.6275 5.58984C15.2974 5.43614 15.0582 5.33606 14.8971 5.27832C14.7581 5.22851 14.5701 5.17338 14.3209 5.11133C13.8356 4.99032 13.4418 4.63455 13.2721 4.16406L12.6715 2.5H11.3971L10.8463 4.03613Z",
|
|
3282
|
-
fill: "currentColor"
|
|
4175
|
+
d: "M13.078 2C13.372 2 13.635 2.183 13.734 2.457L14.4399 4.41397C14.6929 4.47697 14.9099 4.53997 15.0939 4.60597C15.2949 4.67797 15.5539 4.78697 15.8739 4.93597L17.5178 4.06598C17.652 3.99488 17.8056 3.96922 17.9556 3.99284C18.1057 4.01646 18.244 4.08809 18.3498 4.19698L19.7958 5.69196C19.9877 5.89095 20.0417 6.18195 19.9337 6.43595L19.1628 8.24293C19.2908 8.47792 19.3928 8.67892 19.4708 8.84692C19.5548 9.02992 19.6588 9.28191 19.7828 9.60691L21.5797 10.3769C21.8497 10.4919 22.0167 10.7619 21.9987 11.0509L21.8667 13.1259C21.8577 13.2607 21.8093 13.3899 21.7275 13.4974C21.6457 13.605 21.5342 13.6861 21.4067 13.7309L19.7048 14.3359C19.6558 14.5708 19.6048 14.7718 19.5508 14.9418C19.4637 15.2044 19.3642 15.4627 19.2528 15.7158L20.1077 17.6058C20.1681 17.7386 20.1843 17.8872 20.1541 18.0299C20.1239 18.1726 20.0488 18.3019 19.9397 18.3988L18.3138 19.8508C18.2067 19.946 18.0731 20.0062 17.9308 20.0234C17.7886 20.0405 17.6445 20.0138 17.5178 19.9468L15.8419 19.0588C15.5797 19.1976 15.3092 19.3202 15.0319 19.4258L14.2999 19.6998L13.65 21.4998C13.6018 21.6316 13.5149 21.7458 13.4007 21.8273C13.2865 21.9089 13.1503 21.954 13.01 21.9568L11.1101 21.9998C10.966 22.0035 10.8244 21.9626 10.7046 21.8825C10.5848 21.8025 10.4927 21.6873 10.4411 21.5528L9.6751 19.5258C9.41376 19.4365 9.155 19.3398 8.89913 19.2358C8.68985 19.1452 8.48374 19.0475 8.28115 18.9428L6.38122 19.7548C6.25603 19.8082 6.11801 19.8241 5.98397 19.8004C5.84993 19.7768 5.72564 19.7148 5.62624 19.6218L4.22029 18.3028C4.11562 18.205 4.04433 18.0768 4.01651 17.9363C3.9887 17.7958 4.00576 17.6501 4.0653 17.5198L4.88227 15.7398C4.77362 15.529 4.67288 15.3142 4.58028 15.0958C4.47218 14.8286 4.37214 14.5581 4.28029 14.2849L2.49035 13.7399C2.34486 13.6959 2.21795 13.6051 2.12935 13.4816C2.04075 13.3581 1.99541 13.2088 2.00037 13.0569L2.07037 11.1359C2.07535 11.0106 2.1145 10.889 2.18359 10.7843C2.25268 10.6796 2.34907 10.5958 2.46235 10.5419L4.34029 9.63991C4.42728 9.32091 4.50328 9.07292 4.57028 8.89192C4.66462 8.65017 4.76938 8.41261 4.88427 8.17993L4.0703 6.45995C4.00852 6.32933 3.98977 6.18249 4.01672 6.04054C4.04367 5.89859 4.11494 5.76884 4.22029 5.66996L5.62424 4.34397C5.72266 4.25115 5.8458 4.18874 5.97886 4.16426C6.11191 4.13977 6.2492 4.15426 6.37422 4.20598L8.27215 4.98997C8.48214 4.84997 8.67214 4.73697 8.84413 4.64597C9.04912 4.53697 9.32311 4.42297 9.6681 4.29997L10.3281 2.459C10.3769 2.32427 10.4661 2.20788 10.5835 2.12573C10.7009 2.04358 10.8408 1.99967 10.9841 2H13.078Z",
|
|
4176
|
+
...stroke
|
|
3283
4177
|
}
|
|
3284
4178
|
)
|
|
3285
4179
|
]
|
|
@@ -3926,6 +4820,19 @@ var ICONS = {
|
|
|
3926
4820
|
warningOutline: Icon_warningOutline,
|
|
3927
4821
|
youtube: Icon_youtube
|
|
3928
4822
|
};
|
|
4823
|
+
var STROKE_BY_SIZE = {
|
|
4824
|
+
8: 1,
|
|
4825
|
+
10: 1,
|
|
4826
|
+
12: 1,
|
|
4827
|
+
16: 1.25,
|
|
4828
|
+
20: 1.5,
|
|
4829
|
+
24: 1.5,
|
|
4830
|
+
32: 2
|
|
4831
|
+
};
|
|
4832
|
+
function toPx(size) {
|
|
4833
|
+
if (typeof size === "number") return size;
|
|
4834
|
+
return /^\d+(\.\d+)?(px)?$/.test(size) ? parseFloat(size) : void 0;
|
|
4835
|
+
}
|
|
3929
4836
|
var SIcon = /* @__PURE__ */ react.forwardRef(function SIcon2({ name, size = 24, color, rotate, label, className, style }, ref) {
|
|
3930
4837
|
const Svg = ICONS[name];
|
|
3931
4838
|
if (!Svg) return null;
|
|
@@ -3944,7 +4851,7 @@ var SIcon = /* @__PURE__ */ react.forwardRef(function SIcon2({ name, size = 24,
|
|
|
3944
4851
|
role: label ? "img" : void 0,
|
|
3945
4852
|
"aria-label": label,
|
|
3946
4853
|
"aria-hidden": label ? void 0 : true,
|
|
3947
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Svg, { size: cssSize ? "100%" : size })
|
|
4854
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Svg, { size: cssSize ? "100%" : size, strokeWidth: STROKE_BY_SIZE[toPx(size) ?? 0] })
|
|
3948
4855
|
}
|
|
3949
4856
|
);
|
|
3950
4857
|
});
|
|
@@ -4583,6 +5490,7 @@ function SFooter({
|
|
|
4583
5490
|
leftClassName,
|
|
4584
5491
|
style
|
|
4585
5492
|
}) {
|
|
5493
|
+
const tc = useLocale().messages.common;
|
|
4586
5494
|
const isGrey = bg === "grey";
|
|
4587
5495
|
const hasSlot = left != null || children != null;
|
|
4588
5496
|
const hasButton = button != null;
|
|
@@ -4614,7 +5522,7 @@ function SFooter({
|
|
|
4614
5522
|
...button,
|
|
4615
5523
|
size,
|
|
4616
5524
|
color: button.color ?? "primary",
|
|
4617
|
-
label: button.label ??
|
|
5525
|
+
label: button.label ?? tc.confirm
|
|
4618
5526
|
}
|
|
4619
5527
|
)
|
|
4620
5528
|
]
|
|
@@ -4995,6 +5903,7 @@ var STooltipImpl = /* @__PURE__ */ react.forwardRef(function STooltip({
|
|
|
4995
5903
|
style,
|
|
4996
5904
|
contentProps
|
|
4997
5905
|
}, ref) {
|
|
5906
|
+
const tc = useLocale().messages.common;
|
|
4998
5907
|
const portalContainer = usePortalContainer();
|
|
4999
5908
|
const [internalOpen, setInternalOpen] = react.useState(false);
|
|
5000
5909
|
const isControlled = openProp !== void 0;
|
|
@@ -5112,7 +6021,7 @@ var STooltipImpl = /* @__PURE__ */ react.forwardRef(function STooltip({
|
|
|
5112
6021
|
icon: "close",
|
|
5113
6022
|
size: "xs",
|
|
5114
6023
|
intent: tooltipType === "default" ? "inverse" : "default",
|
|
5115
|
-
ariaLabel:
|
|
6024
|
+
ariaLabel: tc.close,
|
|
5116
6025
|
className: "shrink-0",
|
|
5117
6026
|
onClick: () => {
|
|
5118
6027
|
cancelHide();
|
|
@@ -5128,14 +6037,21 @@ var STooltipImpl = /* @__PURE__ */ react.forwardRef(function STooltip({
|
|
|
5128
6037
|
] });
|
|
5129
6038
|
});
|
|
5130
6039
|
var STooltip2 = /* @__PURE__ */ withDisplayName(STooltipImpl, "STooltip");
|
|
5131
|
-
function runRules(value, rules) {
|
|
6040
|
+
function runRules(value, rules, invalidMessage = "\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uAC12\uC785\uB2C8\uB2E4.") {
|
|
5132
6041
|
if (!rules || rules.length === 0) return "";
|
|
5133
6042
|
for (const rule of rules) {
|
|
5134
6043
|
const result = rule(value ?? "");
|
|
5135
|
-
if (result !== true) return typeof result === "string" ? result :
|
|
6044
|
+
if (result !== true) return typeof result === "string" ? result : invalidMessage;
|
|
5136
6045
|
}
|
|
5137
6046
|
return "";
|
|
5138
6047
|
}
|
|
6048
|
+
function useRunRules() {
|
|
6049
|
+
const invalid = useLocale().messages.form.invalid;
|
|
6050
|
+
return react.useCallback(
|
|
6051
|
+
(value, rules) => runRules(value, rules, invalid),
|
|
6052
|
+
[invalid]
|
|
6053
|
+
);
|
|
6054
|
+
}
|
|
5139
6055
|
var FormContext = /* @__PURE__ */ react.createContext(null);
|
|
5140
6056
|
function useFormContext() {
|
|
5141
6057
|
return react.useContext(FormContext);
|
|
@@ -5467,12 +6383,15 @@ var STextarea = /* @__PURE__ */ react.forwardRef(function STextarea2({
|
|
|
5467
6383
|
width,
|
|
5468
6384
|
disabled = false,
|
|
5469
6385
|
readOnly = false,
|
|
5470
|
-
placeholder
|
|
6386
|
+
placeholder: placeholderProp,
|
|
5471
6387
|
onBlur,
|
|
5472
6388
|
className,
|
|
5473
6389
|
style,
|
|
5474
6390
|
...rest
|
|
5475
6391
|
}, ref) {
|
|
6392
|
+
const runRules2 = useRunRules();
|
|
6393
|
+
const ti = useLocale().messages.input;
|
|
6394
|
+
const placeholder = placeholderProp ?? ti.placeholder;
|
|
5476
6395
|
const p = TEXTAREA_SIZE[size];
|
|
5477
6396
|
const heightForRows = (n) => `calc(${p.lineHeight * n}px + ${p.paddingY} * 2)`;
|
|
5478
6397
|
const minHeight = heightForRows(MIN_ROWS);
|
|
@@ -5507,7 +6426,7 @@ var STextarea = /* @__PURE__ */ react.forwardRef(function STextarea2({
|
|
|
5507
6426
|
useFormField({
|
|
5508
6427
|
name: rest.name,
|
|
5509
6428
|
validate: () => {
|
|
5510
|
-
const msg =
|
|
6429
|
+
const msg = runRules2(value, rules);
|
|
5511
6430
|
setRuleError(msg);
|
|
5512
6431
|
return msg === "";
|
|
5513
6432
|
},
|
|
@@ -5556,11 +6475,11 @@ var STextarea = /* @__PURE__ */ react.forwardRef(function STextarea2({
|
|
|
5556
6475
|
onChange: (e) => {
|
|
5557
6476
|
onChange?.(e);
|
|
5558
6477
|
onValueChange?.(e.target.value);
|
|
5559
|
-
if (ruleError !== "") setRuleError(
|
|
6478
|
+
if (ruleError !== "") setRuleError(runRules2(e.target.value, rules));
|
|
5560
6479
|
},
|
|
5561
6480
|
onBlur: (e) => {
|
|
5562
6481
|
onBlur?.(e);
|
|
5563
|
-
if (rules && rules.length > 0) setRuleError(
|
|
6482
|
+
if (rules && rules.length > 0) setRuleError(runRules2(e.target.value, rules));
|
|
5564
6483
|
},
|
|
5565
6484
|
className: cn(
|
|
5566
6485
|
"w-full border-0 bg-transparent outline-none placeholder:text-[color:var(--sys-color-field-text-placeholder)] disabled:cursor-not-allowed",
|
|
@@ -5587,7 +6506,6 @@ var STextarea = /* @__PURE__ */ react.forwardRef(function STextarea2({
|
|
|
5587
6506
|
}
|
|
5588
6507
|
);
|
|
5589
6508
|
});
|
|
5590
|
-
var DEFAULT_PLACEHOLDER = "\uBA54\uC2DC\uC9C0\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694...";
|
|
5591
6509
|
var FIELD_BORDER = 1;
|
|
5592
6510
|
var TEXTAREA_MIN_HEIGHT = `calc(var(--cmp-chatInput-buttonFrame-height) - ${FIELD_BORDER * 2}px)`;
|
|
5593
6511
|
var BUTTON_BOTTOM_INSET = `calc((var(--cmp-chatInput-buttonFrame-height) - var(--cmp-ghostButton-md-size)) / 2)`;
|
|
@@ -5598,7 +6516,7 @@ function BarButton(props) {
|
|
|
5598
6516
|
var SChatInputImpl = /* @__PURE__ */ react.forwardRef(function SChatInput({
|
|
5599
6517
|
value = "",
|
|
5600
6518
|
onValueChange,
|
|
5601
|
-
placeholder
|
|
6519
|
+
placeholder: placeholderProp,
|
|
5602
6520
|
disabled = false,
|
|
5603
6521
|
onSend,
|
|
5604
6522
|
hasAttachments = false,
|
|
@@ -5619,6 +6537,8 @@ var SChatInputImpl = /* @__PURE__ */ react.forwardRef(function SChatInput({
|
|
|
5619
6537
|
textareaClassName,
|
|
5620
6538
|
...rest
|
|
5621
6539
|
}, ref) {
|
|
6540
|
+
const t = useLocale().messages.chat;
|
|
6541
|
+
const placeholder = placeholderProp ?? t.placeholder;
|
|
5622
6542
|
const hasText = value.trim() !== "";
|
|
5623
6543
|
const canSend = !disabled && !busy && !sendDisabled && (hasText || hasAttachments);
|
|
5624
6544
|
const send = () => {
|
|
@@ -5658,7 +6578,7 @@ var SChatInputImpl = /* @__PURE__ */ react.forwardRef(function SChatInput({
|
|
|
5658
6578
|
BarButton,
|
|
5659
6579
|
{
|
|
5660
6580
|
icon: "attachFile",
|
|
5661
|
-
ariaLabel:
|
|
6581
|
+
ariaLabel: t.attachFile,
|
|
5662
6582
|
tooltipText: attachTooltip,
|
|
5663
6583
|
disabled: attachLocked,
|
|
5664
6584
|
onClick: handleAttachClick
|
|
@@ -5704,7 +6624,7 @@ var SChatInputImpl = /* @__PURE__ */ react.forwardRef(function SChatInput({
|
|
|
5704
6624
|
{
|
|
5705
6625
|
icon: "stop",
|
|
5706
6626
|
intent: "danger",
|
|
5707
|
-
ariaLabel:
|
|
6627
|
+
ariaLabel: t.stopResponse,
|
|
5708
6628
|
disabled,
|
|
5709
6629
|
onClick: onStop
|
|
5710
6630
|
}
|
|
@@ -5714,7 +6634,7 @@ var SChatInputImpl = /* @__PURE__ */ react.forwardRef(function SChatInput({
|
|
|
5714
6634
|
{
|
|
5715
6635
|
icon: "send",
|
|
5716
6636
|
intent: "subAction",
|
|
5717
|
-
ariaLabel:
|
|
6637
|
+
ariaLabel: t.send,
|
|
5718
6638
|
disabled: !canSend,
|
|
5719
6639
|
onClick: send
|
|
5720
6640
|
}
|
|
@@ -5745,6 +6665,7 @@ var CHAT_ATTACHED_FILE_CONFIG = {
|
|
|
5745
6665
|
};
|
|
5746
6666
|
var SChatAttachedFileImpl = /* @__PURE__ */ react.forwardRef(
|
|
5747
6667
|
function SChatAttachedFile({ name, onRemove, className, ...rest }, ref) {
|
|
6668
|
+
const t = useLocale().messages.chat;
|
|
5748
6669
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5749
6670
|
"div",
|
|
5750
6671
|
{
|
|
@@ -5785,7 +6706,7 @@ var SChatAttachedFileImpl = /* @__PURE__ */ react.forwardRef(
|
|
|
5785
6706
|
{
|
|
5786
6707
|
icon: "close",
|
|
5787
6708
|
size: "xs",
|
|
5788
|
-
ariaLabel:
|
|
6709
|
+
ariaLabel: t.removeAttachment(name),
|
|
5789
6710
|
onClick: onRemove,
|
|
5790
6711
|
className: "shrink-0"
|
|
5791
6712
|
}
|
|
@@ -5912,10 +6833,6 @@ var OUTGOING_SURFACE = {
|
|
|
5912
6833
|
admin: "admin"
|
|
5913
6834
|
};
|
|
5914
6835
|
var CHAT_MESSAGE_READ_STATUSES = ["read", "unread"];
|
|
5915
|
-
var READ_STATUS_LABEL = {
|
|
5916
|
-
read: "\uC77D\uC74C",
|
|
5917
|
-
unread: "\uC548 \uC77D\uC74C"
|
|
5918
|
-
};
|
|
5919
6836
|
var READ_STATUS_COLOR = {
|
|
5920
6837
|
read: "text-(--cmp-chatTimeStamp-color)",
|
|
5921
6838
|
unread: "text-(--cmp-chatReadMark-color)"
|
|
@@ -5964,6 +6881,7 @@ var SChatMessageImpl = /* @__PURE__ */ react.forwardRef(function SChatMessage({
|
|
|
5964
6881
|
className,
|
|
5965
6882
|
...rest
|
|
5966
6883
|
}, ref) {
|
|
6884
|
+
const t = useLocale().messages.chat;
|
|
5967
6885
|
const outgoing = direction === "outgoing";
|
|
5968
6886
|
const surface = outgoing ? OUTGOING_SURFACE[variant] : "incoming";
|
|
5969
6887
|
const bubbles = messages ?? [];
|
|
@@ -6034,7 +6952,7 @@ var SChatMessageImpl = /* @__PURE__ */ react.forwardRef(function SChatMessage({
|
|
|
6034
6952
|
),
|
|
6035
6953
|
(readStatus != null || time != null) && // 읽음 표시와 시각은 한 줄에 선다 — 읽음이 먼저, 시각이 뒤다.
|
|
6036
6954
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-(--cmp-chatMessage-subData-gap) px-(--cmp-chatMessage-subData-paddingX)", children: [
|
|
6037
|
-
readStatus != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("typo-body-sm-bold", READ_STATUS_COLOR[readStatus]), children:
|
|
6955
|
+
readStatus != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("typo-body-sm-bold", READ_STATUS_COLOR[readStatus]), children: t[readStatus] }),
|
|
6038
6956
|
time != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-body-sm-medium text-(--cmp-chatTimeStamp-color)", children: time })
|
|
6039
6957
|
] }),
|
|
6040
6958
|
actions != null && // 버튼이 많아 한 줄에 안 들어가면 감싼다 — 넘쳐서 잘리는 것보다 낫다.
|
|
@@ -6132,6 +7050,7 @@ var SDraggableItemView = /* @__PURE__ */ react.forwardRef(
|
|
|
6132
7050
|
style,
|
|
6133
7051
|
...rest
|
|
6134
7052
|
}, ref) {
|
|
7053
|
+
const tc = useLocale().messages.common;
|
|
6135
7054
|
const renderState = { hovered, dragging, disabled };
|
|
6136
7055
|
const titleNode = renderSlot(title, renderState);
|
|
6137
7056
|
const supportingTextNode = renderSlot(supportingText, renderState);
|
|
@@ -6195,7 +7114,7 @@ var SDraggableItemView = /* @__PURE__ */ react.forwardRef(
|
|
|
6195
7114
|
...dragHandleProps,
|
|
6196
7115
|
role: dragHandleProps?.role ?? "button",
|
|
6197
7116
|
tabIndex: dragHandleProps?.tabIndex ?? (disabled ? -1 : 0),
|
|
6198
|
-
"aria-label": dragHandleProps?.["aria-label"] ??
|
|
7117
|
+
"aria-label": dragHandleProps?.["aria-label"] ?? tc.dragHandle,
|
|
6199
7118
|
"aria-disabled": disabled || void 0,
|
|
6200
7119
|
onMouseDown: onDragHandleMouseDown,
|
|
6201
7120
|
className: cn(
|
|
@@ -7800,7 +8719,6 @@ var SLogo = /* @__PURE__ */ react.forwardRef(function SLogo2({
|
|
|
7800
8719
|
}
|
|
7801
8720
|
);
|
|
7802
8721
|
});
|
|
7803
|
-
var BUTTON_LABEL = "\uD1B5\uD569 \uACC4\uC815\uC73C\uB85C \uB85C\uADF8\uC778";
|
|
7804
8722
|
var SERVICE_LABEL = {
|
|
7805
8723
|
sellmate: "Sellmate",
|
|
7806
8724
|
wms: "Sellmate WMS",
|
|
@@ -7816,6 +8734,7 @@ var SERVICE_LABEL = {
|
|
|
7816
8734
|
};
|
|
7817
8735
|
var LOGO_SIZE = 70;
|
|
7818
8736
|
var SLoginCardImpl = /* @__PURE__ */ react.forwardRef(function SLoginCard({ service, title, description, onLogin, footerNote, bottomAction, className, ...rest }, ref) {
|
|
8737
|
+
const t = useLocale().messages.loginCard;
|
|
7819
8738
|
const hasIntro = title != null || description != null;
|
|
7820
8739
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7821
8740
|
"div",
|
|
@@ -7863,7 +8782,7 @@ var SLoginCardImpl = /* @__PURE__ */ react.forwardRef(function SLoginCard({ serv
|
|
|
7863
8782
|
{
|
|
7864
8783
|
color: "secondary",
|
|
7865
8784
|
size: "lg",
|
|
7866
|
-
label:
|
|
8785
|
+
label: t.login,
|
|
7867
8786
|
onClick: onLogin,
|
|
7868
8787
|
className: "w-[320px]"
|
|
7869
8788
|
}
|
|
@@ -8118,7 +9037,7 @@ function TreeConnector({
|
|
|
8118
9037
|
] });
|
|
8119
9038
|
}
|
|
8120
9039
|
function TreeAllRow({
|
|
8121
|
-
label
|
|
9040
|
+
label: labelProp,
|
|
8122
9041
|
selected,
|
|
8123
9042
|
indeterminate = false,
|
|
8124
9043
|
size = "sm",
|
|
@@ -8130,6 +9049,8 @@ function TreeAllRow({
|
|
|
8130
9049
|
className,
|
|
8131
9050
|
...rest
|
|
8132
9051
|
}) {
|
|
9052
|
+
const tc = useLocale().messages.common;
|
|
9053
|
+
const label = labelProp ?? tc.all;
|
|
8133
9054
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8134
9055
|
"div",
|
|
8135
9056
|
{
|
|
@@ -8177,7 +9098,7 @@ function collectSelectableIds(node) {
|
|
|
8177
9098
|
function toSelectedSet(value) {
|
|
8178
9099
|
return new Set(value ?? []);
|
|
8179
9100
|
}
|
|
8180
|
-
var
|
|
9101
|
+
var TREE_ALL_ID = "__all__";
|
|
8181
9102
|
function getSelectionState(node, selectedSet) {
|
|
8182
9103
|
const selectableChildren = (node.children ?? []).filter(
|
|
8183
9104
|
(child) => collectSelectableIds(child).length > 0
|
|
@@ -8376,6 +9297,8 @@ var STreeImpl = /* @__PURE__ */ react.forwardRef(function STree({
|
|
|
8376
9297
|
className,
|
|
8377
9298
|
...rest
|
|
8378
9299
|
}, ref) {
|
|
9300
|
+
const tc = useLocale().messages.common;
|
|
9301
|
+
const allNode = react.useMemo(() => ({ id: TREE_ALL_ID, label: tc.all }), [tc.all]);
|
|
8379
9302
|
const [internalValue, setInternalValue] = react.useState(defaultValue ?? []);
|
|
8380
9303
|
const [internalExpandedIds, setInternalExpandedIds] = react.useState(
|
|
8381
9304
|
defaultExpandedIds ?? items.filter((item4) => item4.children?.length).map((item4) => item4.id)
|
|
@@ -8392,7 +9315,7 @@ var STreeImpl = /* @__PURE__ */ react.forwardRef(function STree({
|
|
|
8392
9315
|
const visibleRows = react.useMemo(() => {
|
|
8393
9316
|
const rows = [];
|
|
8394
9317
|
if (showAllItem) {
|
|
8395
|
-
rows.push({ id:
|
|
9318
|
+
rows.push({ id: TREE_ALL_ID, node: allNode, parentId: null, expanded: false });
|
|
8396
9319
|
}
|
|
8397
9320
|
const walk = (nodes, parentId) => {
|
|
8398
9321
|
nodes.forEach((node) => {
|
|
@@ -8403,7 +9326,7 @@ var STreeImpl = /* @__PURE__ */ react.forwardRef(function STree({
|
|
|
8403
9326
|
};
|
|
8404
9327
|
walk(items, null);
|
|
8405
9328
|
return rows;
|
|
8406
|
-
}, [items, expandedSet, showAllItem]);
|
|
9329
|
+
}, [items, expandedSet, showAllItem, allNode]);
|
|
8407
9330
|
const [focusedId, setFocusedId] = react.useState(null);
|
|
8408
9331
|
const activeRowId = focusedId != null && visibleRows.some((row) => row.id === focusedId) ? focusedId : visibleRows[0]?.id ?? null;
|
|
8409
9332
|
const treeRef = react.useRef(null);
|
|
@@ -8448,7 +9371,7 @@ var STreeImpl = /* @__PURE__ */ react.forwardRef(function STree({
|
|
|
8448
9371
|
});
|
|
8449
9372
|
const orderedIds = collectIds(items).filter((id) => next.has(id));
|
|
8450
9373
|
if (value === void 0) setInternalValue(orderedIds);
|
|
8451
|
-
onValueChange?.(orderedIds,
|
|
9374
|
+
onValueChange?.(orderedIds, allNode);
|
|
8452
9375
|
};
|
|
8453
9376
|
const handleTreeKeyDown = (event) => {
|
|
8454
9377
|
const target = event.target;
|
|
@@ -8492,7 +9415,7 @@ var STreeImpl = /* @__PURE__ */ react.forwardRef(function STree({
|
|
|
8492
9415
|
}
|
|
8493
9416
|
case "Enter":
|
|
8494
9417
|
case " ": {
|
|
8495
|
-
if (row.id ===
|
|
9418
|
+
if (row.id === TREE_ALL_ID) updateAllSelected();
|
|
8496
9419
|
else if (selectable) updateSelected(row.node);
|
|
8497
9420
|
else if (hasChildren) updateExpanded(row.node);
|
|
8498
9421
|
else return;
|
|
@@ -8553,8 +9476,8 @@ var STreeImpl = /* @__PURE__ */ react.forwardRef(function STree({
|
|
|
8553
9476
|
showAllItem && /* @__PURE__ */ jsxRuntime.jsx(
|
|
8554
9477
|
STreeAllItem,
|
|
8555
9478
|
{
|
|
8556
|
-
rowId:
|
|
8557
|
-
tabIndex: activeRowId ===
|
|
9479
|
+
rowId: TREE_ALL_ID,
|
|
9480
|
+
tabIndex: activeRowId === TREE_ALL_ID ? 0 : -1,
|
|
8558
9481
|
onKeyDown: handleTreeKeyDown,
|
|
8559
9482
|
selected: allSelected,
|
|
8560
9483
|
indeterminate: allIndeterminate,
|
|
@@ -9190,7 +10113,6 @@ var SURFACE = {
|
|
|
9190
10113
|
content: "var(--cmp-callout-default-content)"
|
|
9191
10114
|
}
|
|
9192
10115
|
};
|
|
9193
|
-
var DANGER_TITLE_LABEL = "\uC8FC\uC758\uC0AC\uD56D";
|
|
9194
10116
|
function renderItems(message, depth = 1) {
|
|
9195
10117
|
const out = [];
|
|
9196
10118
|
message.forEach((m, i) => {
|
|
@@ -9222,6 +10144,7 @@ function renderItems(message, depth = 1) {
|
|
|
9222
10144
|
return out;
|
|
9223
10145
|
}
|
|
9224
10146
|
var SCallout = /* @__PURE__ */ react.forwardRef(function SCallout2({ type = "default", showTitle = true, message = [], children, className, style }, ref) {
|
|
10147
|
+
const t = useLocale().messages.callout;
|
|
9225
10148
|
const hasDangerTitle = type === "danger" && showTitle;
|
|
9226
10149
|
const surface = SURFACE[type];
|
|
9227
10150
|
const vars = {
|
|
@@ -9258,7 +10181,7 @@ var SCallout = /* @__PURE__ */ react.forwardRef(function SCallout2({ type = "def
|
|
|
9258
10181
|
color: "var(--cmp-callout-danger-title-color)"
|
|
9259
10182
|
}
|
|
9260
10183
|
),
|
|
9261
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children:
|
|
10184
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: t.dangerTitle })
|
|
9262
10185
|
]
|
|
9263
10186
|
}
|
|
9264
10187
|
),
|
|
@@ -9806,6 +10729,7 @@ var SDropdownButtonImpl = /* @__PURE__ */ react.forwardRef(
|
|
|
9806
10729
|
className,
|
|
9807
10730
|
style
|
|
9808
10731
|
}, ref) {
|
|
10732
|
+
const tc = useLocale().messages.common;
|
|
9809
10733
|
const insideModal = useInsideModal();
|
|
9810
10734
|
const [open, setOpen] = react.useState(false);
|
|
9811
10735
|
const splitWrapRef = react.useRef(null);
|
|
@@ -9912,7 +10836,7 @@ var SDropdownButtonImpl = /* @__PURE__ */ react.forwardRef(
|
|
|
9912
10836
|
ref: splitToggleRef,
|
|
9913
10837
|
type: "button",
|
|
9914
10838
|
disabled,
|
|
9915
|
-
"aria-label":
|
|
10839
|
+
"aria-label": tc.openMenu,
|
|
9916
10840
|
className: cn(
|
|
9917
10841
|
triggerBase,
|
|
9918
10842
|
"justify-center border-l-[length:var(--cmp-button-border-width-default)]"
|
|
@@ -9959,14 +10883,12 @@ var SDropdownButtonImpl = /* @__PURE__ */ react.forwardRef(
|
|
|
9959
10883
|
}
|
|
9960
10884
|
);
|
|
9961
10885
|
var SDropdownButton2 = /* @__PURE__ */ withDisplayName(SDropdownButtonImpl, "SDropdownButton");
|
|
9962
|
-
var DEFAULT_LABEL = "\uAE30\uB2A5 \uB354 \uBCF4\uAE30";
|
|
9963
10886
|
var SMeatballButtonImpl = /* @__PURE__ */ react.forwardRef(
|
|
9964
10887
|
function SMeatballButton({
|
|
9965
10888
|
size = "sm",
|
|
9966
10889
|
intent = "default",
|
|
9967
10890
|
items = [],
|
|
9968
|
-
|
|
9969
|
-
tooltipText = "\uAE30\uB2A5 \uB354 \uBCF4\uAE30",
|
|
10891
|
+
tooltipText: tooltipTextProp,
|
|
9970
10892
|
ariaLabel,
|
|
9971
10893
|
disabled = false,
|
|
9972
10894
|
onItemClick,
|
|
@@ -9975,6 +10897,8 @@ var SMeatballButtonImpl = /* @__PURE__ */ react.forwardRef(
|
|
|
9975
10897
|
style
|
|
9976
10898
|
}, ref) {
|
|
9977
10899
|
const insideModal = useInsideModal();
|
|
10900
|
+
const tc = useLocale().messages.common;
|
|
10901
|
+
const tooltipText = tooltipTextProp ?? tc.moreActions;
|
|
9978
10902
|
const [open, setOpen] = react.useState(false);
|
|
9979
10903
|
const buttonRef = react.useRef(null);
|
|
9980
10904
|
const pointerRef = react.useRef(false);
|
|
@@ -9990,7 +10914,7 @@ var SMeatballButtonImpl = /* @__PURE__ */ react.forwardRef(
|
|
|
9990
10914
|
}),
|
|
9991
10915
|
[]
|
|
9992
10916
|
);
|
|
9993
|
-
const label = ariaLabel?.trim() || tooltipText.trim() ||
|
|
10917
|
+
const label = ariaLabel?.trim() || tooltipText.trim() || tc.moreActions;
|
|
9994
10918
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9995
10919
|
RDropdown5__namespace.Root,
|
|
9996
10920
|
{
|
|
@@ -10373,13 +11297,14 @@ function Row({
|
|
|
10373
11297
|
}
|
|
10374
11298
|
var SAccountListBox = /* @__PURE__ */ react.forwardRef(
|
|
10375
11299
|
function SAccountListBox2({ email, name, authority, accountSetting, language, logout, className, style, ...rest }, ref) {
|
|
11300
|
+
const tl = useLocale().messages.accountListBox;
|
|
10376
11301
|
const hasUserdata = email != null || name != null || authority != null;
|
|
10377
11302
|
const languageOptions = language?.options ?? [];
|
|
10378
11303
|
const hasLanguageMenu = languageOptions.length > 0;
|
|
10379
11304
|
const [languageMenuOpen, setLanguageMenuOpen] = react.useState(false);
|
|
10380
11305
|
const languageValueRef = react.useRef(null);
|
|
10381
11306
|
const languageRowRef = react.useRef(null);
|
|
10382
|
-
const languageLabel = language?.label ??
|
|
11307
|
+
const languageLabel = language?.label ?? tl.language;
|
|
10383
11308
|
const languageDoesNothing = Boolean(language) && !hasLanguageMenu && !language?.onClick;
|
|
10384
11309
|
react.useEffect(() => {
|
|
10385
11310
|
if (isDev() && languageDoesNothing) {
|
|
@@ -10432,7 +11357,7 @@ var SAccountListBox = /* @__PURE__ */ react.forwardRef(
|
|
|
10432
11357
|
Row,
|
|
10433
11358
|
{
|
|
10434
11359
|
icon: ACCOUNT_LIST_BOX_ICONS.accountSetting,
|
|
10435
|
-
label: accountSetting.label ??
|
|
11360
|
+
label: accountSetting.label ?? tl.accountSetting,
|
|
10436
11361
|
onClick: accountSetting.onClick
|
|
10437
11362
|
}
|
|
10438
11363
|
),
|
|
@@ -10476,7 +11401,7 @@ var SAccountListBox = /* @__PURE__ */ react.forwardRef(
|
|
|
10476
11401
|
{
|
|
10477
11402
|
tone: "negative",
|
|
10478
11403
|
icon: ACCOUNT_LIST_BOX_ICONS.logout,
|
|
10479
|
-
label: logout?.label ??
|
|
11404
|
+
label: logout?.label ?? tl.logout,
|
|
10480
11405
|
onClick: logout?.onClick
|
|
10481
11406
|
}
|
|
10482
11407
|
)
|
|
@@ -10889,6 +11814,7 @@ function SPopover({
|
|
|
10889
11814
|
menuClassName,
|
|
10890
11815
|
style
|
|
10891
11816
|
}) {
|
|
11817
|
+
const tc = useLocale().messages.common;
|
|
10892
11818
|
const portalContainer = usePortalContainer();
|
|
10893
11819
|
const [internalOpen, setInternalOpen] = react.useState(defaultOpen ?? false);
|
|
10894
11820
|
const isControlled = open !== void 0;
|
|
@@ -10927,7 +11853,7 @@ function SPopover({
|
|
|
10927
11853
|
{
|
|
10928
11854
|
icon: "close",
|
|
10929
11855
|
size: "xs",
|
|
10930
|
-
ariaLabel:
|
|
11856
|
+
ariaLabel: tc.close,
|
|
10931
11857
|
onClick: () => setOpen(false),
|
|
10932
11858
|
className: "absolute right-[12px] top-[12px]"
|
|
10933
11859
|
}
|
|
@@ -11044,7 +11970,6 @@ var SPopup = /* @__PURE__ */ react.forwardRef(function SPopup2({
|
|
|
11044
11970
|
}
|
|
11045
11971
|
);
|
|
11046
11972
|
});
|
|
11047
|
-
var DEFAULT_LABEL2 = { tip: "\uD65C\uC6A9 TIP", notion: "\uC0AC\uC6A9\uBC95 \uC548\uB0B4" };
|
|
11048
11973
|
var ICON = { tip: "helpOutline", notion: "notion" };
|
|
11049
11974
|
var VIEWPORT_GUTTER = 24;
|
|
11050
11975
|
var CLOSE_INSET = 12;
|
|
@@ -11062,11 +11987,12 @@ function SGuide({
|
|
|
11062
11987
|
className,
|
|
11063
11988
|
style
|
|
11064
11989
|
}) {
|
|
11990
|
+
const tg = useLocale().messages.guide;
|
|
11065
11991
|
const [open, setOpen] = react.useState(false);
|
|
11066
11992
|
const portalContainer = usePortalContainer();
|
|
11067
11993
|
const isNotion = type === "notion";
|
|
11068
11994
|
const isAutoWidth = popupWidth === "auto";
|
|
11069
|
-
const defaultLabel =
|
|
11995
|
+
const defaultLabel = type === "notion" ? tg.notion : tg.tip;
|
|
11070
11996
|
const iconName = ICON[type];
|
|
11071
11997
|
const messages = flattenMessages(message);
|
|
11072
11998
|
const active = open;
|
|
@@ -11211,7 +12137,7 @@ var CLOSE_ANIMATION_DURATION = 300;
|
|
|
11211
12137
|
function SModalContainer({
|
|
11212
12138
|
open,
|
|
11213
12139
|
onOpenChange,
|
|
11214
|
-
ariaTitle
|
|
12140
|
+
ariaTitle: ariaTitleProp,
|
|
11215
12141
|
showClose = false,
|
|
11216
12142
|
onClose,
|
|
11217
12143
|
persistent = true,
|
|
@@ -11221,6 +12147,8 @@ function SModalContainer({
|
|
|
11221
12147
|
className,
|
|
11222
12148
|
style
|
|
11223
12149
|
}) {
|
|
12150
|
+
const { common: tc, modal: tm } = useLocale().messages;
|
|
12151
|
+
const ariaTitle = ariaTitleProp ?? tm.defaultTitle;
|
|
11224
12152
|
const [shaking, setShaking] = react.useState(false);
|
|
11225
12153
|
const [rendered, setRendered] = react.useState(() => Boolean(open));
|
|
11226
12154
|
const contentRef = react.useRef(null);
|
|
@@ -11314,7 +12242,7 @@ function SModalContainer({
|
|
|
11314
12242
|
SGhostButton,
|
|
11315
12243
|
{
|
|
11316
12244
|
icon: "close",
|
|
11317
|
-
ariaLabel:
|
|
12245
|
+
ariaLabel: tc.close,
|
|
11318
12246
|
onClick: () => {
|
|
11319
12247
|
if (closeRequested.current) return;
|
|
11320
12248
|
closeRequested.current = true;
|
|
@@ -11380,7 +12308,7 @@ function SConfirmModal({
|
|
|
11380
12308
|
tagSlot,
|
|
11381
12309
|
optionSlot,
|
|
11382
12310
|
contentSlot,
|
|
11383
|
-
mainButtonLabel
|
|
12311
|
+
mainButtonLabel: mainButtonLabelProp,
|
|
11384
12312
|
mainButtonOutline,
|
|
11385
12313
|
mainButtonDisabled = false,
|
|
11386
12314
|
subButtonLabel,
|
|
@@ -11388,6 +12316,8 @@ function SConfirmModal({
|
|
|
11388
12316
|
onCancel,
|
|
11389
12317
|
onClose
|
|
11390
12318
|
}) {
|
|
12319
|
+
const tc = useLocale().messages.common;
|
|
12320
|
+
const mainButtonLabel = mainButtonLabelProp ?? tc.confirm;
|
|
11391
12321
|
const iconName = TYPE_ICON[type];
|
|
11392
12322
|
const mainColor = MAIN_BUTTON_COLOR[type];
|
|
11393
12323
|
const mainOutline = mainButtonOutline ?? MAIN_BUTTON_OUTLINE[type];
|
|
@@ -11502,6 +12432,7 @@ function SOverlayHeader({
|
|
|
11502
12432
|
descriptionClassName,
|
|
11503
12433
|
style
|
|
11504
12434
|
}) {
|
|
12435
|
+
const tc = useLocale().messages.common;
|
|
11505
12436
|
const hasDescription = description != null && description !== "";
|
|
11506
12437
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
11507
12438
|
"header",
|
|
@@ -11540,7 +12471,7 @@ function SOverlayHeader({
|
|
|
11540
12471
|
SGhostButton,
|
|
11541
12472
|
{
|
|
11542
12473
|
icon: "close",
|
|
11543
|
-
ariaLabel:
|
|
12474
|
+
ariaLabel: tc.close,
|
|
11544
12475
|
onClick: () => onClose?.(),
|
|
11545
12476
|
className: "absolute right-[12px] top-[12px]"
|
|
11546
12477
|
}
|
|
@@ -11595,14 +12526,6 @@ function SActionModal({
|
|
|
11595
12526
|
}
|
|
11596
12527
|
);
|
|
11597
12528
|
}
|
|
11598
|
-
var DEFAULT_MESSAGE = {
|
|
11599
|
-
loading: "\uC791\uC5C5 \uC9C4\uD589\uC911...",
|
|
11600
|
-
error: "\uC791\uC5C5\uC5D0 \uC2E4\uD328\uD558\uC600\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694."
|
|
11601
|
-
};
|
|
11602
|
-
var DEFAULT_BUTTON_LABEL = {
|
|
11603
|
-
loading: "\uD655\uC778",
|
|
11604
|
-
error: "\uB2E4\uC2DC \uC2DC\uB3C4"
|
|
11605
|
-
};
|
|
11606
12529
|
function SLoadingModal({
|
|
11607
12530
|
open,
|
|
11608
12531
|
onOpenChange,
|
|
@@ -11617,7 +12540,8 @@ function SLoadingModal({
|
|
|
11617
12540
|
width = "var(--cmp-modal-loading-width)",
|
|
11618
12541
|
height = "var(--cmp-modal-loading-height)"
|
|
11619
12542
|
}) {
|
|
11620
|
-
const
|
|
12543
|
+
const { loadingModal: t, common: tc } = useLocale().messages;
|
|
12544
|
+
const resolvedMessage = message ?? (state2 === "loading" ? t.loadingMessage : t.errorMessage);
|
|
11621
12545
|
const lines = Array.isArray(resolvedMessage) ? resolvedMessage : resolvedMessage ? [resolvedMessage] : [];
|
|
11622
12546
|
const buttonVisible = showButton || state2 === "error";
|
|
11623
12547
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -11628,7 +12552,7 @@ function SLoadingModal({
|
|
|
11628
12552
|
onClose,
|
|
11629
12553
|
showClose: state2 === "error",
|
|
11630
12554
|
persistent,
|
|
11631
|
-
ariaTitle: lines[0] ||
|
|
12555
|
+
ariaTitle: lines[0] || t.ariaTitle,
|
|
11632
12556
|
width,
|
|
11633
12557
|
height,
|
|
11634
12558
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-h-0 flex-auto flex-col overflow-y-auto px-[32px]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "m-auto flex flex-col items-center gap-(--cmp-modal-loading-gap)", children: [
|
|
@@ -11658,7 +12582,7 @@ function SLoadingModal({
|
|
|
11658
12582
|
onButtonClick?.();
|
|
11659
12583
|
onOpenChange?.(false);
|
|
11660
12584
|
},
|
|
11661
|
-
label: buttonLabel ??
|
|
12585
|
+
label: buttonLabel ?? (state2 === "loading" ? tc.confirm : t.errorButton)
|
|
11662
12586
|
}
|
|
11663
12587
|
)
|
|
11664
12588
|
] }) })
|
|
@@ -11668,7 +12592,7 @@ function SLoadingModal({
|
|
|
11668
12592
|
var CLOSE_ANIMATION_DURATION2 = 300;
|
|
11669
12593
|
var RESIZE_KEY_STEP = { normal: 10, large: 50 };
|
|
11670
12594
|
var RESIZE_HIT_WIDTH = "calc(var(--cmp-splitter-border-width) + var(--cmp-splitter-border-padding) * 2)";
|
|
11671
|
-
function
|
|
12595
|
+
function toPx2(value, percentBase) {
|
|
11672
12596
|
if (typeof value === "number") return value;
|
|
11673
12597
|
if (typeof value !== "string") return void 0;
|
|
11674
12598
|
const normalized = value.trim();
|
|
@@ -11712,6 +12636,7 @@ function SDrawer({
|
|
|
11712
12636
|
className,
|
|
11713
12637
|
style
|
|
11714
12638
|
}) {
|
|
12639
|
+
const tc = useLocale().messages.common;
|
|
11715
12640
|
const [shaking, setShaking] = react.useState(false);
|
|
11716
12641
|
const [rendered, setRendered] = react.useState(() => Boolean(open));
|
|
11717
12642
|
const [entered, setEntered] = react.useState(false);
|
|
@@ -11803,8 +12728,8 @@ function SDrawer({
|
|
|
11803
12728
|
const resizeBounds = () => {
|
|
11804
12729
|
const limit = viewportWidth;
|
|
11805
12730
|
if (limit === void 0) return { min: void 0, max: void 0 };
|
|
11806
|
-
const min =
|
|
11807
|
-
const max =
|
|
12731
|
+
const min = toPx2(minWidth, limit);
|
|
12732
|
+
const max = toPx2(maxWidth, limit);
|
|
11808
12733
|
return {
|
|
11809
12734
|
min: min === void 0 ? void 0 : Math.min(min, limit),
|
|
11810
12735
|
max: max === void 0 ? limit : Math.min(max, limit)
|
|
@@ -11938,7 +12863,7 @@ function SDrawer({
|
|
|
11938
12863
|
{
|
|
11939
12864
|
role: "separator",
|
|
11940
12865
|
"aria-orientation": "vertical",
|
|
11941
|
-
"aria-label":
|
|
12866
|
+
"aria-label": tc.resizeDrawer,
|
|
11942
12867
|
"aria-valuenow": resizeValueNow,
|
|
11943
12868
|
"aria-valuemin": resizeValueMin,
|
|
11944
12869
|
"aria-valuemax": resizeValueMax,
|
|
@@ -12504,6 +13429,7 @@ function resolveRows(items) {
|
|
|
12504
13429
|
}
|
|
12505
13430
|
var SLauncherListBox = /* @__PURE__ */ react.forwardRef(
|
|
12506
13431
|
function SLauncherListBox2({ items, onSelect, consoleHref, onConsoleClick, ariaLabel, className, style, ...rest }, ref) {
|
|
13432
|
+
const tl = useLocale().messages.launcher;
|
|
12507
13433
|
const rows = items ? resolveRows(items) : [];
|
|
12508
13434
|
if (rows.length === 0) return null;
|
|
12509
13435
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -12622,7 +13548,7 @@ var SLauncherListBox = /* @__PURE__ */ react.forwardRef(
|
|
|
12622
13548
|
onClick: () => onSelect?.(row.service),
|
|
12623
13549
|
children: [
|
|
12624
13550
|
content,
|
|
12625
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children:
|
|
13551
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: tl.opensInNewTab })
|
|
12626
13552
|
]
|
|
12627
13553
|
}
|
|
12628
13554
|
)
|
|
@@ -12649,7 +13575,7 @@ var SLauncherListBox = /* @__PURE__ */ react.forwardRef(
|
|
|
12649
13575
|
window.open(consoleHref, "_blank", "noopener,noreferrer");
|
|
12650
13576
|
onConsoleClick?.();
|
|
12651
13577
|
},
|
|
12652
|
-
"aria-label": `${LAUNCHER_LIST_BOX_CONSOLE_LABEL} (
|
|
13578
|
+
"aria-label": `${LAUNCHER_LIST_BOX_CONSOLE_LABEL} (${tl.opensInNewTab})`
|
|
12653
13579
|
}
|
|
12654
13580
|
)
|
|
12655
13581
|
}
|
|
@@ -13784,8 +14710,6 @@ var GNB_SYSTEM_LAYOUT = {
|
|
|
13784
14710
|
domainRadius: domain("radius")
|
|
13785
14711
|
};
|
|
13786
14712
|
var GNB_SYSTEM_ALERT_DOT_SIZE = 6;
|
|
13787
|
-
var GNB_SYSTEM_ALERT_LABEL = "\uC54C\uB9BC";
|
|
13788
|
-
var GNB_SYSTEM_SETTING_LABEL = "\uC124\uC815";
|
|
13789
14713
|
function TokenIcon3({ name, size }) {
|
|
13790
14714
|
return /* @__PURE__ */ jsxRuntime.jsx(SIcon, { name, size: "100%", style: { width: size, height: size } });
|
|
13791
14715
|
}
|
|
@@ -13893,6 +14817,7 @@ var SGnbSystem = /* @__PURE__ */ react.forwardRef(function SGnbSystem2({
|
|
|
13893
14817
|
style,
|
|
13894
14818
|
...rest
|
|
13895
14819
|
}, ref) {
|
|
14820
|
+
const tg = useLocale().messages.gnbSystem;
|
|
13896
14821
|
const gnb3 = react.useContext(SGnbSystemContext);
|
|
13897
14822
|
const color = colorProp ?? gnb3?.color ?? "light";
|
|
13898
14823
|
const placement = gnb3?.placement ?? "panel";
|
|
@@ -13951,8 +14876,8 @@ var SGnbSystem = /* @__PURE__ */ react.forwardRef(function SGnbSystem2({
|
|
|
13951
14876
|
setAlertTooltipDismissed(true);
|
|
13952
14877
|
alert2?.onTooltipDismiss?.();
|
|
13953
14878
|
};
|
|
13954
|
-
const alertLabel = alert2?.label ??
|
|
13955
|
-
const settingLabel = setting?.label ??
|
|
14879
|
+
const alertLabel = alert2?.label ?? tg.alert;
|
|
14880
|
+
const settingLabel = setting?.label ?? tg.setting;
|
|
13956
14881
|
const alertButton = alert2 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
13957
14882
|
SystemButton,
|
|
13958
14883
|
{
|
|
@@ -13988,7 +14913,7 @@ var SGnbSystem = /* @__PURE__ */ react.forwardRef(function SGnbSystem2({
|
|
|
13988
14913
|
align: "end",
|
|
13989
14914
|
offset: 8,
|
|
13990
14915
|
viewportPadding: 8,
|
|
13991
|
-
ariaLabel:
|
|
14916
|
+
ariaLabel: alertLabel,
|
|
13992
14917
|
onOpenAutoFocus: (event) => event.preventDefault(),
|
|
13993
14918
|
className: "rounded-(--radius-8)",
|
|
13994
14919
|
children: alert2.listBox
|
|
@@ -14316,6 +15241,7 @@ var PAGE_CONTENT_WIDTHS = ["full", "fixed", "fixedCenter"];
|
|
|
14316
15241
|
var PAGE_HEADER_VARIANTS = ["plain", "bar"];
|
|
14317
15242
|
var SPageHeader = /* @__PURE__ */ withDisplayName(
|
|
14318
15243
|
react.forwardRef(function SPageHeader2({ title, subText, titleSlot, variant, onBack, slot, scrolled, className, style, ...rest }, ref) {
|
|
15244
|
+
const tc = useLocale().messages.common;
|
|
14319
15245
|
const hasBack = onBack != null;
|
|
14320
15246
|
const hasTitleSlot = titleSlot != null && titleSlot !== false;
|
|
14321
15247
|
const titleEl = /* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-heading-lg min-w-0 truncate text-(--cmp-pageHeader-title-text)", children: title });
|
|
@@ -14354,7 +15280,7 @@ var SPageHeader = /* @__PURE__ */ withDisplayName(
|
|
|
14354
15280
|
{
|
|
14355
15281
|
icon: "chevronLeft",
|
|
14356
15282
|
size: "xs",
|
|
14357
|
-
ariaLabel:
|
|
15283
|
+
ariaLabel: tc.back,
|
|
14358
15284
|
onClick: onBack,
|
|
14359
15285
|
className: cn("shrink-0", bar ? "" : "mt-[3px]")
|
|
14360
15286
|
}
|
|
@@ -14931,7 +15857,6 @@ var STEPPER_VERTICAL_COLORS = {
|
|
|
14931
15857
|
sequenceIconCompleted: STEPPER_COLORS.sequenceText.completed,
|
|
14932
15858
|
errorBadge: "#FB4444"
|
|
14933
15859
|
};
|
|
14934
|
-
var ERROR_TOOLTIP_MESSAGE = "\uD655\uC778\uC774 \uD544\uC694\uD55C \uD56D\uBAA9\uC774 \uC788\uC2B5\uB2C8\uB2E4.";
|
|
14935
15860
|
function getItemValue(item4, index) {
|
|
14936
15861
|
return item4.value ?? String(index + 1);
|
|
14937
15862
|
}
|
|
@@ -14973,10 +15898,12 @@ var SStepper = /* @__PURE__ */ react.forwardRef(function SStepper2({
|
|
|
14973
15898
|
vertical = false,
|
|
14974
15899
|
clickable,
|
|
14975
15900
|
onValueChange,
|
|
14976
|
-
ariaLabel
|
|
15901
|
+
ariaLabel: ariaLabelProp,
|
|
14977
15902
|
className,
|
|
14978
15903
|
style
|
|
14979
15904
|
}, ref) {
|
|
15905
|
+
const t = useLocale().messages.stepper;
|
|
15906
|
+
const ariaLabel = ariaLabelProp ?? t.ariaLabel;
|
|
14980
15907
|
const config = STEPPER_SIZE_CONFIG[size];
|
|
14981
15908
|
const isClickable = clickable ?? vertical;
|
|
14982
15909
|
const [hoveredIndex, setHoveredIndex] = react.useState(null);
|
|
@@ -15258,7 +16185,7 @@ var SStepper = /* @__PURE__ */ react.forwardRef(function SStepper2({
|
|
|
15258
16185
|
{
|
|
15259
16186
|
trigger: "none",
|
|
15260
16187
|
open: showTooltip,
|
|
15261
|
-
content:
|
|
16188
|
+
content: t.errorTooltip,
|
|
15262
16189
|
tooltipType: "danger",
|
|
15263
16190
|
placement: "right",
|
|
15264
16191
|
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -15436,16 +16363,20 @@ function monthCells(year, month) {
|
|
|
15436
16363
|
}
|
|
15437
16364
|
return cells;
|
|
15438
16365
|
}
|
|
15439
|
-
var
|
|
15440
|
-
var
|
|
15441
|
-
|
|
15442
|
-
|
|
16366
|
+
var glyphEm = (char) => /[\u1100-\u11ff\u3040-\u30ff\u3130-\u318f\u3400-\u9fff\uac00-\ud7a3]/.test(char) ? 1 : 0.58;
|
|
16367
|
+
var weekdaySuffixWidth = (fontSize, t) => {
|
|
16368
|
+
const longest = Math.max(
|
|
16369
|
+
...t.weekdaysLong.map((name) => Array.from(name).reduce((sum, char) => sum + glyphEm(char), 0))
|
|
16370
|
+
);
|
|
16371
|
+
return Math.ceil(fontSize * (0.25 + longest));
|
|
16372
|
+
};
|
|
16373
|
+
function withWeekday(value, t) {
|
|
15443
16374
|
const [date = "", ...rest] = value.split(" ");
|
|
15444
16375
|
const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(date);
|
|
15445
16376
|
if (!match) return value;
|
|
15446
16377
|
const day = new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3])).getDay();
|
|
15447
16378
|
if (Number.isNaN(day)) return value;
|
|
15448
|
-
return [date,
|
|
16379
|
+
return [date, t.weekdaysLong[day], ...rest].join(" ");
|
|
15449
16380
|
}
|
|
15450
16381
|
|
|
15451
16382
|
// src/components/SCalendarBoard/calendar-board-layout.ts
|
|
@@ -15680,7 +16611,9 @@ function CalendarEventButton({
|
|
|
15680
16611
|
}
|
|
15681
16612
|
);
|
|
15682
16613
|
}
|
|
15683
|
-
var CalendarMoreButton = /* @__PURE__ */ react.forwardRef(function CalendarMoreButton2({ count, label
|
|
16614
|
+
var CalendarMoreButton = /* @__PURE__ */ react.forwardRef(function CalendarMoreButton2({ count, label: labelProp, dimmed = false, onClick, className, style }, ref) {
|
|
16615
|
+
const tc = useLocale().messages.common;
|
|
16616
|
+
const label = labelProp ?? tc.more;
|
|
15684
16617
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15685
16618
|
"button",
|
|
15686
16619
|
{
|
|
@@ -15703,10 +16636,7 @@ var CalendarMoreButton = /* @__PURE__ */ react.forwardRef(function CalendarMoreB
|
|
|
15703
16636
|
className: "pointer-events-none absolute inset-0 rounded-(--cmp-calendarBoard-item-radius) bg-(--cmp-calendarBoard-moreButton-hover-overlay-color) opacity-0 transition-opacity group-hover:opacity-(--cmp-calendarBoard-moreButton-hover-overlay-opacity)"
|
|
15704
16637
|
}
|
|
15705
16638
|
),
|
|
15706
|
-
/* @__PURE__ */ jsxRuntime.
|
|
15707
|
-
count,
|
|
15708
|
-
"\uAC1C"
|
|
15709
|
-
] }),
|
|
16639
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-body-sm-semibold shrink-0 text-(--cmp-calendarBoard-moreButton-count-color)", children: tc.count(count) }),
|
|
15710
16640
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-body-sm-default min-w-0 truncate text-(--cmp-calendarBoard-moreButton-label-color)", children: label })
|
|
15711
16641
|
]
|
|
15712
16642
|
}
|
|
@@ -15844,10 +16774,12 @@ function CalendarDayEventListBox({
|
|
|
15844
16774
|
minWidth,
|
|
15845
16775
|
minHeight,
|
|
15846
16776
|
onClose,
|
|
15847
|
-
closeLabel
|
|
16777
|
+
closeLabel: closeLabelProp
|
|
15848
16778
|
}) {
|
|
16779
|
+
const { common: tc, date: t } = useLocale().messages;
|
|
16780
|
+
const closeLabel = closeLabelProp ?? tc.close;
|
|
15849
16781
|
const [y, m, d] = date.split("-").map(Number);
|
|
15850
|
-
const weekday =
|
|
16782
|
+
const weekday = t.weekdays[new Date(y, m - 1, d).getDay()];
|
|
15851
16783
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15852
16784
|
"div",
|
|
15853
16785
|
{
|
|
@@ -15855,10 +16787,7 @@ function CalendarDayEventListBox({
|
|
|
15855
16787
|
style: { minWidth, maxWidth: MAX_WIDTH, minHeight, maxHeight: MAX_HEIGHT },
|
|
15856
16788
|
children: [
|
|
15857
16789
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-(--cmp-calendarBoard-dayEvent-header-gap) px-(--cmp-calendarBoard-dayEvent-header-paddingX) py-(--cmp-calendarBoard-dayEvent-header-paddingY)", children: [
|
|
15858
|
-
/* @__PURE__ */ jsxRuntime.
|
|
15859
|
-
d,
|
|
15860
|
-
"\uC77C"
|
|
15861
|
-
] }),
|
|
16790
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-heading-md text-(--cmp-calendarBoard-header-content-color)", children: t.dayLabel(d) }),
|
|
15862
16791
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "typo-body-lg-default flex-1 text-(--cmp-calendarBoard-header-content-color)", children: [
|
|
15863
16792
|
"(",
|
|
15864
16793
|
weekday,
|
|
@@ -15919,12 +16848,14 @@ function SCalendarBoard({
|
|
|
15919
16848
|
focusedEventId,
|
|
15920
16849
|
onEventClick,
|
|
15921
16850
|
onMoreClick,
|
|
15922
|
-
todayLabel
|
|
16851
|
+
todayLabel: todayLabelProp,
|
|
15923
16852
|
moreLabel,
|
|
15924
16853
|
headerRight,
|
|
15925
16854
|
className,
|
|
15926
16855
|
style
|
|
15927
16856
|
}) {
|
|
16857
|
+
const t = useLocale().messages.date;
|
|
16858
|
+
const todayLabel = todayLabelProp ?? t.today;
|
|
15928
16859
|
const today = todayStr();
|
|
15929
16860
|
const [ty, tm] = [Number(today.slice(0, 4)), Number(today.slice(5, 7))];
|
|
15930
16861
|
const [innerView, setInnerView] = react.useState(() => ({
|
|
@@ -16030,7 +16961,7 @@ function SCalendarBoard({
|
|
|
16030
16961
|
{
|
|
16031
16962
|
icon: "chevronLeft",
|
|
16032
16963
|
size: "xxs",
|
|
16033
|
-
ariaLabel:
|
|
16964
|
+
ariaLabel: t.prevYear,
|
|
16034
16965
|
onClick: () => setView({ year: view.year - 1, month: view.month })
|
|
16035
16966
|
}
|
|
16036
16967
|
),
|
|
@@ -16040,7 +16971,7 @@ function SCalendarBoard({
|
|
|
16040
16971
|
{
|
|
16041
16972
|
icon: "chevronRight",
|
|
16042
16973
|
size: "xxs",
|
|
16043
|
-
ariaLabel:
|
|
16974
|
+
ariaLabel: t.nextYear,
|
|
16044
16975
|
onClick: () => setView({ year: view.year + 1, month: view.month })
|
|
16045
16976
|
}
|
|
16046
16977
|
)
|
|
@@ -16052,20 +16983,17 @@ function SCalendarBoard({
|
|
|
16052
16983
|
{
|
|
16053
16984
|
icon: "chevronLeft",
|
|
16054
16985
|
size: "xxs",
|
|
16055
|
-
ariaLabel:
|
|
16986
|
+
ariaLabel: t.prevMonth,
|
|
16056
16987
|
onClick: () => setView(calcYearMonth(view.year, view.month, "prev"))
|
|
16057
16988
|
}
|
|
16058
16989
|
),
|
|
16059
|
-
/* @__PURE__ */ jsxRuntime.
|
|
16060
|
-
view.month,
|
|
16061
|
-
"\uC6D4"
|
|
16062
|
-
] }),
|
|
16990
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-heading-lg inline-flex min-w-[48px] justify-center text-(--cmp-calendarBoard-header-content-color)", children: t.monthLabel(view.month) }),
|
|
16063
16991
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16064
16992
|
SGhostButton,
|
|
16065
16993
|
{
|
|
16066
16994
|
icon: "chevronRight",
|
|
16067
16995
|
size: "xxs",
|
|
16068
|
-
ariaLabel:
|
|
16996
|
+
ariaLabel: t.nextMonth,
|
|
16069
16997
|
onClick: () => setView(calcYearMonth(view.year, view.month, "next"))
|
|
16070
16998
|
}
|
|
16071
16999
|
)
|
|
@@ -16088,7 +17016,7 @@ function SCalendarBoard({
|
|
|
16088
17016
|
{
|
|
16089
17017
|
className: "grid shrink-0 bg-(--cmp-calendarBoard-grid-bg) pt-(--cmp-calendarBoard-grid-paddingTop) pb-(--cmp-calendarBoard-grid-gap)",
|
|
16090
17018
|
style: { gridTemplateColumns: columns },
|
|
16091
|
-
children:
|
|
17019
|
+
children: t.weekdays.map((label) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
16092
17020
|
"div",
|
|
16093
17021
|
{
|
|
16094
17022
|
className: "typo-body-md-default flex justify-center text-(--cmp-calendarBoard-grid-weekRow-color)",
|
|
@@ -16443,7 +17371,7 @@ var SSearchInput = /* @__PURE__ */ react.forwardRef(function SSearchInput2({
|
|
|
16443
17371
|
onChange,
|
|
16444
17372
|
onSearch,
|
|
16445
17373
|
size = "sm",
|
|
16446
|
-
placeholder
|
|
17374
|
+
placeholder: placeholderProp,
|
|
16447
17375
|
clearable = false,
|
|
16448
17376
|
disabled = false,
|
|
16449
17377
|
width,
|
|
@@ -16456,6 +17384,8 @@ var SSearchInput = /* @__PURE__ */ react.forwardRef(function SSearchInput2({
|
|
|
16456
17384
|
onKeyDown,
|
|
16457
17385
|
...rest
|
|
16458
17386
|
}, ref) {
|
|
17387
|
+
const { common: tc, input: ti } = useLocale().messages;
|
|
17388
|
+
const placeholder = placeholderProp ?? ti.searchWithinResults;
|
|
16459
17389
|
const f = FONT[size];
|
|
16460
17390
|
const hasValue = value !== void 0 && value !== null && String(value) !== "";
|
|
16461
17391
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -16523,7 +17453,7 @@ var SSearchInput = /* @__PURE__ */ react.forwardRef(function SSearchInput2({
|
|
|
16523
17453
|
{
|
|
16524
17454
|
icon: "close",
|
|
16525
17455
|
size: "xxs",
|
|
16526
|
-
ariaLabel:
|
|
17456
|
+
ariaLabel: tc.clear,
|
|
16527
17457
|
className: "flex-shrink-0",
|
|
16528
17458
|
onClick: () => onValueChange?.("")
|
|
16529
17459
|
}
|
|
@@ -16708,6 +17638,7 @@ var SSelectImpl = /* @__PURE__ */ react.forwardRef(function SSelect({
|
|
|
16708
17638
|
className,
|
|
16709
17639
|
style
|
|
16710
17640
|
}, ref) {
|
|
17641
|
+
const runRules2 = useRunRules();
|
|
16711
17642
|
const multi = type === "multi" || type === "multi_depth" || type === "multi_tree";
|
|
16712
17643
|
const isDepth = type === "default_depth" || type === "multi_depth";
|
|
16713
17644
|
const isTree = type === "tree" || type === "multi_tree";
|
|
@@ -16820,7 +17751,7 @@ var SSelectImpl = /* @__PURE__ */ react.forwardRef(function SSelect({
|
|
|
16820
17751
|
setSearch("");
|
|
16821
17752
|
if (rules && rules.length > 0) {
|
|
16822
17753
|
const current = valueForRules ?? selectedRef.current;
|
|
16823
|
-
setRuleError(
|
|
17754
|
+
setRuleError(runRules2(multi ? current : current[0] ?? "", rules));
|
|
16824
17755
|
}
|
|
16825
17756
|
}
|
|
16826
17757
|
};
|
|
@@ -16859,7 +17790,7 @@ var SSelectImpl = /* @__PURE__ */ react.forwardRef(function SSelect({
|
|
|
16859
17790
|
useFormField({
|
|
16860
17791
|
name,
|
|
16861
17792
|
validate: () => {
|
|
16862
|
-
const msg =
|
|
17793
|
+
const msg = runRules2(multi ? selected : selected[0] ?? "", rules);
|
|
16863
17794
|
setRuleError(msg);
|
|
16864
17795
|
return msg === "";
|
|
16865
17796
|
},
|
|
@@ -17132,14 +18063,14 @@ var SSelectImpl = /* @__PURE__ */ react.forwardRef(function SSelect({
|
|
|
17132
18063
|
const showClear = clearable && !effectiveDisabled && !isPlaceholder;
|
|
17133
18064
|
const handleClear = () => {
|
|
17134
18065
|
emit3([]);
|
|
17135
|
-
if (rules && rules.length > 0) setRuleError(
|
|
18066
|
+
if (rules && rules.length > 0) setRuleError(runRules2(multi ? [] : "", rules));
|
|
17136
18067
|
triggerRef.current?.focus();
|
|
17137
18068
|
};
|
|
17138
18069
|
const handleRemoveChip = (targets) => {
|
|
17139
18070
|
const remove = new Set(targets);
|
|
17140
18071
|
const next = selected.filter((v) => !remove.has(v));
|
|
17141
18072
|
emit3(next);
|
|
17142
|
-
if (rules && rules.length > 0) setRuleError(
|
|
18073
|
+
if (rules && rules.length > 0) setRuleError(runRules2(next, rules));
|
|
17143
18074
|
triggerRef.current?.focus();
|
|
17144
18075
|
};
|
|
17145
18076
|
const handleSelect = (nextValue, index, extend = false) => {
|
|
@@ -18021,12 +18952,7 @@ var NO_KEYS = /* @__PURE__ */ new Set();
|
|
|
18021
18952
|
var DEFAULT_ROW_HEIGHT = 44;
|
|
18022
18953
|
var DENSE_ROW_HEIGHT = 32;
|
|
18023
18954
|
var SELECTABLE_COLUMN_WIDTH = 48;
|
|
18024
|
-
var
|
|
18025
|
-
{ label: "10\uAC1C\uC529 \uBCF4\uAE30", value: 10 },
|
|
18026
|
-
{ label: "25\uAC1C\uC529 \uBCF4\uAE30", value: 25 },
|
|
18027
|
-
{ label: "50\uAC1C\uC529 \uBCF4\uAE30", value: 50 },
|
|
18028
|
-
{ label: "100\uAC1C\uC529 \uBCF4\uAE30", value: 100 }
|
|
18029
|
-
];
|
|
18955
|
+
var DEFAULT_ROWS_PER_PAGE_COUNTS = [10, 25, 50, 100];
|
|
18030
18956
|
var cellValue = (col, row) => {
|
|
18031
18957
|
const raw = col.field == null ? void 0 : typeof col.field === "function" ? col.field(row) : row[col.field];
|
|
18032
18958
|
return col.format ? col.format(raw, row) : raw;
|
|
@@ -18066,7 +18992,7 @@ var STableImpl = /* @__PURE__ */ react.forwardRef(function STable({
|
|
|
18066
18992
|
rowKey = "id",
|
|
18067
18993
|
selectable = false,
|
|
18068
18994
|
rowSelectLabel,
|
|
18069
|
-
selectAllLabel
|
|
18995
|
+
selectAllLabel: selectAllLabelProp,
|
|
18070
18996
|
dragSelectable = false,
|
|
18071
18997
|
contextMenuItems,
|
|
18072
18998
|
onContextMenuItemClick,
|
|
@@ -18083,7 +19009,7 @@ var STableImpl = /* @__PURE__ */ react.forwardRef(function STable({
|
|
|
18083
19009
|
stickyColumn,
|
|
18084
19010
|
radius = "default",
|
|
18085
19011
|
bordered = true,
|
|
18086
|
-
emptyLabel
|
|
19012
|
+
emptyLabel: emptyLabelProp,
|
|
18087
19013
|
emptySlot,
|
|
18088
19014
|
loading: loading2 = false,
|
|
18089
19015
|
dense = false,
|
|
@@ -18093,7 +19019,7 @@ var STableImpl = /* @__PURE__ */ react.forwardRef(function STable({
|
|
|
18093
19019
|
onPageChange,
|
|
18094
19020
|
internalPagination = false,
|
|
18095
19021
|
showRowsPerPageSelect = false,
|
|
18096
|
-
rowsPerPageOption
|
|
19022
|
+
rowsPerPageOption: rowsPerPageOptionProp,
|
|
18097
19023
|
onRowsPerPageChange,
|
|
18098
19024
|
virtualScroll = false,
|
|
18099
19025
|
rowHeight,
|
|
@@ -18115,6 +19041,13 @@ var STableImpl = /* @__PURE__ */ react.forwardRef(function STable({
|
|
|
18115
19041
|
}, ref) {
|
|
18116
19042
|
const autoId = react.useId();
|
|
18117
19043
|
const resolvedTableId = tableId ?? autoId;
|
|
19044
|
+
const t = useLocale().messages.table;
|
|
19045
|
+
const selectAllLabel = selectAllLabelProp ?? t.selectAll;
|
|
19046
|
+
const emptyLabel = emptyLabelProp ?? t.empty;
|
|
19047
|
+
const rowsPerPageOption = react.useMemo(
|
|
19048
|
+
() => rowsPerPageOptionProp ?? DEFAULT_ROWS_PER_PAGE_COUNTS.map((count) => ({ label: t.rowsPerPage(count), value: count })),
|
|
19049
|
+
[rowsPerPageOptionProp, t]
|
|
19050
|
+
);
|
|
18118
19051
|
const [innerDense, setInnerDense] = react.useState(dense);
|
|
18119
19052
|
react.useEffect(() => {
|
|
18120
19053
|
setInnerDense(dense);
|
|
@@ -18926,7 +19859,7 @@ var STableImpl = /* @__PURE__ */ react.forwardRef(function STable({
|
|
|
18926
19859
|
name: "pageEdit",
|
|
18927
19860
|
size: 12,
|
|
18928
19861
|
color: "var(--sys-color-link-accent)",
|
|
18929
|
-
label:
|
|
19862
|
+
label: t.editable,
|
|
18930
19863
|
className: "shrink-0"
|
|
18931
19864
|
}
|
|
18932
19865
|
),
|
|
@@ -18936,7 +19869,7 @@ var STableImpl = /* @__PURE__ */ react.forwardRef(function STable({
|
|
|
18936
19869
|
name: "pageMove",
|
|
18937
19870
|
size: 12,
|
|
18938
19871
|
color: "var(--sys-color-link-accent)",
|
|
18939
|
-
label:
|
|
19872
|
+
label: t.opensInNewScreen,
|
|
18940
19873
|
className: "shrink-0"
|
|
18941
19874
|
}
|
|
18942
19875
|
),
|
|
@@ -18960,7 +19893,7 @@ var STableImpl = /* @__PURE__ */ react.forwardRef(function STable({
|
|
|
18960
19893
|
size: "xxs",
|
|
18961
19894
|
intent: sortDir ? "action" : "default",
|
|
18962
19895
|
icon: sortDir === "asc" ? "arrowUp" : sortDir === "desc" ? "arrowDown" : "updown",
|
|
18963
|
-
ariaLabel:
|
|
19896
|
+
ariaLabel: t.sortBy(col.label),
|
|
18964
19897
|
onClick: () => toggleSort(col)
|
|
18965
19898
|
}
|
|
18966
19899
|
) })
|
|
@@ -19110,7 +20043,7 @@ var STableImpl = /* @__PURE__ */ react.forwardRef(function STable({
|
|
|
19110
20043
|
value: isSel || !isRowIndeterminate?.(row) ? isSel : null,
|
|
19111
20044
|
disabled: !canSelectRow(row),
|
|
19112
20045
|
onValueChange: () => toggleRow(row, rowOffset + ri),
|
|
19113
|
-
ariaLabel: rowSelectLabel?.(row) ??
|
|
20046
|
+
ariaLabel: rowSelectLabel?.(row) ?? t.selectRow
|
|
19114
20047
|
}
|
|
19115
20048
|
) })
|
|
19116
20049
|
}
|
|
@@ -19263,7 +20196,7 @@ var STableImpl = /* @__PURE__ */ react.forwardRef(function STable({
|
|
|
19263
20196
|
icon: innerDense ? "row" : "rowDense",
|
|
19264
20197
|
iconRotate: 90,
|
|
19265
20198
|
iconColor: "var(--sys-color-fg-quaternary)",
|
|
19266
|
-
label: innerDense ?
|
|
20199
|
+
label: innerDense ? t.denseOff : t.denseOn,
|
|
19267
20200
|
onClick: () => changeDense(!innerDense)
|
|
19268
20201
|
}
|
|
19269
20202
|
),
|
|
@@ -19370,6 +20303,8 @@ var STableBar = /* @__PURE__ */ react.forwardRef(function STableBar2({ title, to
|
|
|
19370
20303
|
const hasTitle = title != null;
|
|
19371
20304
|
const hasLeading = hasTitle || hasCount;
|
|
19372
20305
|
const titleId = react.useId();
|
|
20306
|
+
const { messages, formatNumber } = useLocale();
|
|
20307
|
+
const t = messages.tableBar;
|
|
19373
20308
|
const isToolbar = Boolean(actions || rightActions);
|
|
19374
20309
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
19375
20310
|
"div",
|
|
@@ -19395,9 +20330,9 @@ var STableBar = /* @__PURE__ */ react.forwardRef(function STableBar2({ title, to
|
|
|
19395
20330
|
),
|
|
19396
20331
|
hasCount && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-[var(--cmp-table-content-gap)]", children: [
|
|
19397
20332
|
hasTotal && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "typo-table-accent whitespace-nowrap text-[var(--sys-color-fg-primary)]", children: [
|
|
19398
|
-
|
|
19399
|
-
/* @__PURE__ */ jsxRuntime.jsx("b", { style: { color: totalColor(total) }, children: total
|
|
19400
|
-
|
|
20333
|
+
t.totalBefore,
|
|
20334
|
+
/* @__PURE__ */ jsxRuntime.jsx("b", { style: { color: totalColor(total) }, children: formatNumber(total) }),
|
|
20335
|
+
t.totalAfter
|
|
19401
20336
|
] }),
|
|
19402
20337
|
hasTotal && hasSelected && /* @__PURE__ */ jsxRuntime.jsx(
|
|
19403
20338
|
"span",
|
|
@@ -19408,8 +20343,9 @@ var STableBar = /* @__PURE__ */ react.forwardRef(function STableBar2({ title, to
|
|
|
19408
20343
|
}
|
|
19409
20344
|
),
|
|
19410
20345
|
hasSelected && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "typo-table-body whitespace-nowrap text-[var(--sys-color-fg-primary)]", children: [
|
|
19411
|
-
|
|
19412
|
-
"
|
|
20346
|
+
t.selectedBefore,
|
|
20347
|
+
/* @__PURE__ */ jsxRuntime.jsx("b", { style: { color: selectedColor(selected) }, children: formatNumber(selected) }),
|
|
20348
|
+
t.selectedAfter
|
|
19413
20349
|
] })
|
|
19414
20350
|
] }),
|
|
19415
20351
|
actions && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-[var(--cmp-table-bar-section-gap)] has-[>div:empty]:hidden", children: [
|
|
@@ -19822,12 +20758,15 @@ var SInput = /* @__PURE__ */ react.forwardRef(function SInput2({
|
|
|
19822
20758
|
width,
|
|
19823
20759
|
disabled = false,
|
|
19824
20760
|
readOnly = false,
|
|
19825
|
-
placeholder
|
|
20761
|
+
placeholder: placeholderProp,
|
|
19826
20762
|
onBlur,
|
|
19827
20763
|
className,
|
|
19828
20764
|
style,
|
|
19829
20765
|
...rest
|
|
19830
20766
|
}, ref) {
|
|
20767
|
+
const runRules2 = useRunRules();
|
|
20768
|
+
const { common: tc, input: ti } = useLocale().messages;
|
|
20769
|
+
const placeholder = placeholderProp ?? ti.placeholder;
|
|
19831
20770
|
const [visible, setVisible] = react.useState(false);
|
|
19832
20771
|
const [ruleError, setRuleError] = react.useState("");
|
|
19833
20772
|
const controlId = useFieldControlId(rest.id);
|
|
@@ -19838,7 +20777,7 @@ var SInput = /* @__PURE__ */ react.forwardRef(function SInput2({
|
|
|
19838
20777
|
useFormField({
|
|
19839
20778
|
name: rest.name,
|
|
19840
20779
|
validate: () => {
|
|
19841
|
-
const msg =
|
|
20780
|
+
const msg = runRules2(value, rules);
|
|
19842
20781
|
setRuleError(msg);
|
|
19843
20782
|
return msg === "";
|
|
19844
20783
|
},
|
|
@@ -19903,11 +20842,11 @@ var SInput = /* @__PURE__ */ react.forwardRef(function SInput2({
|
|
|
19903
20842
|
onChange: (e) => {
|
|
19904
20843
|
onChange?.(e);
|
|
19905
20844
|
onValueChange?.(e.target.value);
|
|
19906
|
-
if (ruleError !== "") setRuleError(
|
|
20845
|
+
if (ruleError !== "") setRuleError(runRules2(e.target.value, rules));
|
|
19907
20846
|
},
|
|
19908
20847
|
onBlur: (e) => {
|
|
19909
20848
|
onBlur?.(e);
|
|
19910
|
-
if (rules && rules.length > 0) setRuleError(
|
|
20849
|
+
if (rules && rules.length > 0) setRuleError(runRules2(e.target.value, rules));
|
|
19911
20850
|
},
|
|
19912
20851
|
className: cn(
|
|
19913
20852
|
"h-full min-w-0 flex-1 border-0 bg-transparent p-0 outline-none placeholder:text-[color:var(--sys-color-field-text-placeholder)] disabled:cursor-not-allowed",
|
|
@@ -19937,7 +20876,7 @@ var SInput = /* @__PURE__ */ react.forwardRef(function SInput2({
|
|
|
19937
20876
|
{
|
|
19938
20877
|
icon: "close",
|
|
19939
20878
|
size: "xxs",
|
|
19940
|
-
ariaLabel:
|
|
20879
|
+
ariaLabel: tc.clear,
|
|
19941
20880
|
className: "flex-shrink-0",
|
|
19942
20881
|
onClick: () => onValueChange?.("")
|
|
19943
20882
|
}
|
|
@@ -19947,7 +20886,7 @@ var SInput = /* @__PURE__ */ react.forwardRef(function SInput2({
|
|
|
19947
20886
|
{
|
|
19948
20887
|
icon: visible ? "visibilityOn" : "visibilityOff",
|
|
19949
20888
|
size: "xxs",
|
|
19950
|
-
ariaLabel:
|
|
20889
|
+
ariaLabel: ti.showPassword,
|
|
19951
20890
|
disabled: disabled || readOnly,
|
|
19952
20891
|
className: "flex-shrink-0",
|
|
19953
20892
|
onClick: () => setVisible((v) => !v)
|
|
@@ -19988,15 +20927,15 @@ var formatInputWithCommas = (value) => {
|
|
|
19988
20927
|
const formattedInt = addCommas(intPart === "" ? "0" : intPart);
|
|
19989
20928
|
return `${isNeg ? "-" : ""}${formattedInt}${hasDecimal ? `.${decPart}` : ""}`;
|
|
19990
20929
|
};
|
|
19991
|
-
var getRangeError = (value, min, max) => {
|
|
20930
|
+
var getRangeError = (value, min, max, t) => {
|
|
19992
20931
|
if (value === null) return "";
|
|
19993
20932
|
const belowMin = value < min;
|
|
19994
20933
|
const aboveMax = value > max;
|
|
19995
20934
|
if (!belowMin && !aboveMax) return "";
|
|
19996
20935
|
if (Number.isFinite(min) && Number.isFinite(max)) {
|
|
19997
|
-
return
|
|
20936
|
+
return t.rangeBetween(formatWithCommas(min), formatWithCommas(max));
|
|
19998
20937
|
}
|
|
19999
|
-
return belowMin ?
|
|
20938
|
+
return belowMin ? t.atLeast(formatWithCommas(min)) : t.atMost(formatWithCommas(max));
|
|
20000
20939
|
};
|
|
20001
20940
|
var getDecimalLimit = (allowDecimal, maxDecimalLength) => {
|
|
20002
20941
|
if (!allowDecimal || maxDecimalLength === void 0 || !Number.isFinite(maxDecimalLength)) {
|
|
@@ -20040,7 +20979,7 @@ var SNumberInput = /* @__PURE__ */ react.forwardRef(function SNumberInput2({
|
|
|
20040
20979
|
onFocus,
|
|
20041
20980
|
onBlur,
|
|
20042
20981
|
name,
|
|
20043
|
-
placeholder
|
|
20982
|
+
placeholder: placeholderProp,
|
|
20044
20983
|
disabled = false,
|
|
20045
20984
|
readOnly = false,
|
|
20046
20985
|
rules,
|
|
@@ -20064,6 +21003,9 @@ var SNumberInput = /* @__PURE__ */ react.forwardRef(function SNumberInput2({
|
|
|
20064
21003
|
className,
|
|
20065
21004
|
style
|
|
20066
21005
|
}, ref) {
|
|
21006
|
+
const runRules2 = useRunRules();
|
|
21007
|
+
const { input: ti, numberInput: t } = useLocale().messages;
|
|
21008
|
+
const placeholder = placeholderProp ?? ti.placeholder;
|
|
20067
21009
|
const p = PAD2[size];
|
|
20068
21010
|
const padX = `var(--cmp-numberInput-${size}-paddingX)`;
|
|
20069
21011
|
const decimalLimit = getDecimalLimit(allowDecimal, maxDecimalLength);
|
|
@@ -20087,9 +21029,9 @@ var SNumberInput = /* @__PURE__ */ react.forwardRef(function SNumberInput2({
|
|
|
20087
21029
|
useFormField({
|
|
20088
21030
|
name,
|
|
20089
21031
|
validate: () => {
|
|
20090
|
-
const msg =
|
|
21032
|
+
const msg = runRules2(numValue, rules);
|
|
20091
21033
|
setRuleError(msg);
|
|
20092
|
-
const range = clampOnBlur ? "" : getRangeError(numValue, min, max);
|
|
21034
|
+
const range = clampOnBlur ? "" : getRangeError(numValue, min, max, t);
|
|
20093
21035
|
setRangeError(range);
|
|
20094
21036
|
return msg === "" && range === "";
|
|
20095
21037
|
},
|
|
@@ -20192,7 +21134,7 @@ var SNumberInput = /* @__PURE__ */ react.forwardRef(function SNumberInput2({
|
|
|
20192
21134
|
type: "button",
|
|
20193
21135
|
tabIndex: -1,
|
|
20194
21136
|
disabled: off,
|
|
20195
|
-
"aria-label": dir === "inc" ?
|
|
21137
|
+
"aria-label": dir === "inc" ? t.increase : t.decrease,
|
|
20196
21138
|
onClick: dir === "inc" ? increment : decrement,
|
|
20197
21139
|
className: cn(
|
|
20198
21140
|
"flex flex-shrink-0 items-center justify-center border border-solid border-transparent transition-colors",
|
|
@@ -20284,8 +21226,8 @@ var SNumberInput = /* @__PURE__ */ react.forwardRef(function SNumberInput2({
|
|
|
20284
21226
|
const clamped = !clampOnBlur || n === null ? n : Math.min(Math.max(n, min), max);
|
|
20285
21227
|
if (clamped !== n) emit3(clamped);
|
|
20286
21228
|
else setDisplay(n === null ? "" : formatInputWithCommas(cleaned));
|
|
20287
|
-
if (rules && rules.length > 0) setRuleError(
|
|
20288
|
-
setRangeError(clampOnBlur ? "" : getRangeError(clamped, min, max));
|
|
21229
|
+
if (rules && rules.length > 0) setRuleError(runRules2(clamped, rules));
|
|
21230
|
+
setRangeError(clampOnBlur ? "" : getRangeError(clamped, min, max, t));
|
|
20289
21231
|
onBlur?.(e);
|
|
20290
21232
|
},
|
|
20291
21233
|
className: cn(
|
|
@@ -20463,6 +21405,7 @@ function SCalendar({
|
|
|
20463
21405
|
className,
|
|
20464
21406
|
style
|
|
20465
21407
|
}) {
|
|
21408
|
+
const t = useLocale().messages.date;
|
|
20466
21409
|
const today = todayStr();
|
|
20467
21410
|
const base = value || today;
|
|
20468
21411
|
const [y, setY] = react.useState(() => Number(base.split("-")[0]));
|
|
@@ -20531,7 +21474,7 @@ function SCalendar({
|
|
|
20531
21474
|
{
|
|
20532
21475
|
icon: "chevronLeft",
|
|
20533
21476
|
size: "xxs",
|
|
20534
|
-
ariaLabel:
|
|
21477
|
+
ariaLabel: t.prevYear,
|
|
20535
21478
|
onClick: () => view(y - 1, m)
|
|
20536
21479
|
}
|
|
20537
21480
|
),
|
|
@@ -20541,7 +21484,7 @@ function SCalendar({
|
|
|
20541
21484
|
{
|
|
20542
21485
|
icon: "chevronRight",
|
|
20543
21486
|
size: "xxs",
|
|
20544
|
-
ariaLabel:
|
|
21487
|
+
ariaLabel: t.nextYear,
|
|
20545
21488
|
onClick: () => view(y + 1, m)
|
|
20546
21489
|
}
|
|
20547
21490
|
)
|
|
@@ -20553,23 +21496,20 @@ function SCalendar({
|
|
|
20553
21496
|
{
|
|
20554
21497
|
icon: "chevronLeft",
|
|
20555
21498
|
size: "xxs",
|
|
20556
|
-
ariaLabel:
|
|
21499
|
+
ariaLabel: t.prevMonth,
|
|
20557
21500
|
onClick: () => {
|
|
20558
21501
|
const n = calcYearMonth(y, m, "prev");
|
|
20559
21502
|
view(n.year, n.month);
|
|
20560
21503
|
}
|
|
20561
21504
|
}
|
|
20562
21505
|
),
|
|
20563
|
-
/* @__PURE__ */ jsxRuntime.
|
|
20564
|
-
m,
|
|
20565
|
-
"\uC6D4"
|
|
20566
|
-
] }),
|
|
21506
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex w-full min-w-[40px] items-center justify-center text-center typo-field-md-medium", children: t.monthLabel(m) }),
|
|
20567
21507
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20568
21508
|
SGhostButton,
|
|
20569
21509
|
{
|
|
20570
21510
|
icon: "chevronRight",
|
|
20571
21511
|
size: "xxs",
|
|
20572
|
-
ariaLabel:
|
|
21512
|
+
ariaLabel: t.nextMonth,
|
|
20573
21513
|
onClick: () => {
|
|
20574
21514
|
const n = calcYearMonth(y, m, "next");
|
|
20575
21515
|
view(n.year, n.month);
|
|
@@ -20578,7 +21518,7 @@ function SCalendar({
|
|
|
20578
21518
|
)
|
|
20579
21519
|
] })
|
|
20580
21520
|
] }),
|
|
20581
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-7", children:
|
|
21521
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-7", children: t.weekdays.map((label) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
20582
21522
|
"span",
|
|
20583
21523
|
{
|
|
20584
21524
|
className: "flex h-[20px] items-center justify-center text-[12px] font-normal text-[color:var(--cmp-datepicker-calendar-week-color)]",
|
|
@@ -20670,11 +21610,6 @@ var modeListItemClass = (selected, disabled) => cn(
|
|
|
20670
21610
|
!disabled && !selected && "typo-field-sm-medium cursor-pointer bg-[var(--cmp-datepicker-mode-item-bg-default)] text-[color:var(--cmp-datepicker-mode-item-content-default)] hover:bg-[var(--cmp-datepicker-mode-item-bg-hover)] hover:text-[color:var(--cmp-datepicker-mode-item-content-hover)]",
|
|
20671
21611
|
!disabled && selected && "typo-field-sm-bold cursor-pointer bg-[var(--cmp-datepicker-mode-item-bg-default)] text-[color:var(--cmp-datepicker-mode-item-content-selected)]"
|
|
20672
21612
|
);
|
|
20673
|
-
var MODE_NOUN = {
|
|
20674
|
-
date: "\uB0A0\uC9DC",
|
|
20675
|
-
month: "\uC6D4",
|
|
20676
|
-
year: "\uC5F0\uB3C4"
|
|
20677
|
-
};
|
|
20678
21613
|
var YEAR_LIST_EDGE_BUFFER = 24;
|
|
20679
21614
|
var YEAR_LIST_EXPAND_SIZE = 80;
|
|
20680
21615
|
var MONTHS = Array.from({ length: 12 }, (_, i) => i + 1);
|
|
@@ -20828,6 +21763,7 @@ function SDatePickerYearListbox({
|
|
|
20828
21763
|
);
|
|
20829
21764
|
}
|
|
20830
21765
|
function MonthWheel({ year, value, selectable, onCommit }) {
|
|
21766
|
+
const t = useLocale().messages.date;
|
|
20831
21767
|
const listRef = react.useRef(null);
|
|
20832
21768
|
const initialValueRef = react.useRef(value);
|
|
20833
21769
|
react.useLayoutEffect(() => {
|
|
@@ -20848,7 +21784,7 @@ function MonthWheel({ year, value, selectable, onCommit }) {
|
|
|
20848
21784
|
children: MONTHS.map((month) => {
|
|
20849
21785
|
const selected = month === value;
|
|
20850
21786
|
const disabled = isMonthDisabled(year, month, selectable);
|
|
20851
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
21787
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
20852
21788
|
"button",
|
|
20853
21789
|
{
|
|
20854
21790
|
type: "button",
|
|
@@ -20857,10 +21793,7 @@ function MonthWheel({ year, value, selectable, onCommit }) {
|
|
|
20857
21793
|
disabled,
|
|
20858
21794
|
className: modeListItemClass(selected, disabled),
|
|
20859
21795
|
onClick: () => !disabled && onCommit(month),
|
|
20860
|
-
children:
|
|
20861
|
-
month,
|
|
20862
|
-
"\uC6D4"
|
|
20863
|
-
]
|
|
21796
|
+
children: t.monthLabel(month)
|
|
20864
21797
|
},
|
|
20865
21798
|
month
|
|
20866
21799
|
);
|
|
@@ -20957,6 +21890,8 @@ function SDatePicker({
|
|
|
20957
21890
|
className,
|
|
20958
21891
|
style
|
|
20959
21892
|
}) {
|
|
21893
|
+
const runRules2 = useRunRules();
|
|
21894
|
+
const t = useLocale().messages.date;
|
|
20960
21895
|
const portalContainer = usePortalContainer();
|
|
20961
21896
|
const [open, setOpen] = react.useState(false);
|
|
20962
21897
|
const triggerId = useFieldControlId();
|
|
@@ -20965,11 +21900,16 @@ function SDatePicker({
|
|
|
20965
21900
|
const [ruleError, setRuleError] = react.useState("");
|
|
20966
21901
|
const hasValue = value != null && value !== "";
|
|
20967
21902
|
const weekday = showWeekday && mode === "date";
|
|
21903
|
+
const clearLabel = {
|
|
21904
|
+
date: t.clearDate,
|
|
21905
|
+
month: t.clearMonth,
|
|
21906
|
+
year: t.clearYear
|
|
21907
|
+
};
|
|
20968
21908
|
const resolvedPlaceholder = placeholder ?? (mode === "year" ? "YYYY" : mode === "month" ? "YYYY-MM" : "YYYY-MM-DD");
|
|
20969
21909
|
useFormField({
|
|
20970
21910
|
name,
|
|
20971
21911
|
validate: () => {
|
|
20972
|
-
const msg =
|
|
21912
|
+
const msg = runRules2(value, rules);
|
|
20973
21913
|
setRuleError(msg);
|
|
20974
21914
|
return msg === "";
|
|
20975
21915
|
},
|
|
@@ -21003,7 +21943,7 @@ function SDatePicker({
|
|
|
21003
21943
|
typo: "typo-field-sm-default",
|
|
21004
21944
|
radius: "var(--cmp-datepicker-sm-radius)"
|
|
21005
21945
|
};
|
|
21006
|
-
const weekdayW = weekday ? weekdaySuffixWidth(baseDims.fontSize) : 0;
|
|
21946
|
+
const weekdayW = weekday ? weekdaySuffixWidth(baseDims.fontSize, t) : 0;
|
|
21007
21947
|
const dims = {
|
|
21008
21948
|
...baseDims,
|
|
21009
21949
|
minW: baseDims.minW + weekdayW,
|
|
@@ -21012,16 +21952,16 @@ function SDatePicker({
|
|
|
21012
21952
|
};
|
|
21013
21953
|
const select = (date) => {
|
|
21014
21954
|
onValueChange?.(date);
|
|
21015
|
-
if (rules && rules.length > 0) setRuleError(
|
|
21955
|
+
if (rules && rules.length > 0) setRuleError(runRules2(date, rules));
|
|
21016
21956
|
setOpen(false);
|
|
21017
21957
|
};
|
|
21018
21958
|
const clear = () => {
|
|
21019
21959
|
onValueChange?.(null);
|
|
21020
|
-
if (rules && rules.length > 0) setRuleError(
|
|
21960
|
+
if (rules && rules.length > 0) setRuleError(runRules2(null, rules));
|
|
21021
21961
|
};
|
|
21022
21962
|
const selectListboxValue = (nextValue) => {
|
|
21023
21963
|
onValueChange?.(nextValue);
|
|
21024
|
-
if (rules && rules.length > 0) setRuleError(
|
|
21964
|
+
if (rules && rules.length > 0) setRuleError(runRules2(nextValue, rules));
|
|
21025
21965
|
};
|
|
21026
21966
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21027
21967
|
SField,
|
|
@@ -21092,7 +22032,7 @@ function SDatePicker({
|
|
|
21092
22032
|
minWidth: dims.minW,
|
|
21093
22033
|
color: disabled ? "var(--cmp-datepicker-text-disabled)" : hasValue ? "var(--cmp-datepicker-text-default)" : "var(--cmp-field-hint-color)"
|
|
21094
22034
|
},
|
|
21095
|
-
children: hasValue ? weekday ? withWeekday(value) : value : resolvedPlaceholder
|
|
22035
|
+
children: hasValue ? weekday ? withWeekday(value, t) : value : resolvedPlaceholder
|
|
21096
22036
|
}
|
|
21097
22037
|
),
|
|
21098
22038
|
clearable && hasValue && !disabled && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -21100,7 +22040,7 @@ function SDatePicker({
|
|
|
21100
22040
|
{
|
|
21101
22041
|
icon: "close",
|
|
21102
22042
|
size: "xxs",
|
|
21103
|
-
ariaLabel:
|
|
22043
|
+
ariaLabel: clearLabel[mode],
|
|
21104
22044
|
onClick: (event) => {
|
|
21105
22045
|
event.stopPropagation();
|
|
21106
22046
|
clear();
|
|
@@ -21169,6 +22109,7 @@ function RangeCalendar({
|
|
|
21169
22109
|
onPendingStartChange,
|
|
21170
22110
|
onViewChange
|
|
21171
22111
|
}) {
|
|
22112
|
+
const t = useLocale().messages.date;
|
|
21172
22113
|
const today = todayStr();
|
|
21173
22114
|
const initial = splitDateTime(value?.[0]);
|
|
21174
22115
|
const base = initial.date || today;
|
|
@@ -21239,8 +22180,8 @@ function RangeCalendar({
|
|
|
21239
22180
|
const RANGE_BG = "var(--cmp-datepicker-calendar-range-bg)";
|
|
21240
22181
|
const pad = (v) => String(Number(v) || 0).padStart(2, "0");
|
|
21241
22182
|
const emit3 = (dateStart, dateEnd, time) => {
|
|
21242
|
-
const
|
|
21243
|
-
const range = showTimePicker ? [`${dateStart} ${pad(
|
|
22183
|
+
const t2 = time ?? { sH, sM, eH, eM };
|
|
22184
|
+
const range = showTimePicker ? [`${dateStart} ${pad(t2.sH)}:${pad(t2.sM)}`, `${dateEnd} ${pad(t2.eH)}:${pad(t2.eM)}`] : [dateStart, dateEnd];
|
|
21244
22185
|
lastEmitted.current = JSON.stringify(range);
|
|
21245
22186
|
onSelect(range);
|
|
21246
22187
|
};
|
|
@@ -21295,7 +22236,7 @@ function RangeCalendar({
|
|
|
21295
22236
|
{
|
|
21296
22237
|
icon: "chevronLeft",
|
|
21297
22238
|
size: "xxs",
|
|
21298
|
-
ariaLabel:
|
|
22239
|
+
ariaLabel: t.prevMonth,
|
|
21299
22240
|
onClick: goPrevMonth,
|
|
21300
22241
|
className: cn(!isLeft && "invisible pointer-events-none")
|
|
21301
22242
|
}
|
|
@@ -21310,13 +22251,13 @@ function RangeCalendar({
|
|
|
21310
22251
|
{
|
|
21311
22252
|
icon: "chevronRight",
|
|
21312
22253
|
size: "xxs",
|
|
21313
|
-
ariaLabel:
|
|
22254
|
+
ariaLabel: t.nextMonth,
|
|
21314
22255
|
onClick: goNextMonth,
|
|
21315
22256
|
className: cn(isLeft && "invisible pointer-events-none")
|
|
21316
22257
|
}
|
|
21317
22258
|
)
|
|
21318
22259
|
] }),
|
|
21319
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: GRID_COLS, children:
|
|
22260
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: GRID_COLS, children: t.weekdays.map((l) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
21320
22261
|
"span",
|
|
21321
22262
|
{
|
|
21322
22263
|
className: "flex h-[20px] items-center justify-center text-[12px] font-normal text-[color:var(--cmp-datepicker-calendar-week-color)]",
|
|
@@ -21381,11 +22322,11 @@ function RangeCalendar({
|
|
|
21381
22322
|
children: [
|
|
21382
22323
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "inline-flex items-center gap-[var(--cmp-datepicker-calendar-time-date-gap)]", children: [
|
|
21383
22324
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: LABEL, children: num(yy, false) }),
|
|
21384
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: UNIT, children:
|
|
22325
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: UNIT, children: t.unitYear }),
|
|
21385
22326
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: LABEL, children: num(mm, true) }),
|
|
21386
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: UNIT, children:
|
|
22327
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: UNIT, children: t.unitMonth }),
|
|
21387
22328
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: LABEL, children: num(dd, true) }),
|
|
21388
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: UNIT, children:
|
|
22329
|
+
t.unitDay && /* @__PURE__ */ jsxRuntime.jsx("span", { className: UNIT, children: t.unitDay })
|
|
21389
22330
|
] }),
|
|
21390
22331
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "inline-flex items-center gap-[var(--cmp-datepicker-calendar-time-unit-gap)]", children: [
|
|
21391
22332
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -21394,7 +22335,7 @@ function RangeCalendar({
|
|
|
21394
22335
|
type: "text",
|
|
21395
22336
|
inputMode: "numeric",
|
|
21396
22337
|
maxLength: 2,
|
|
21397
|
-
"aria-label":
|
|
22338
|
+
"aria-label": t.hourAria(suffix),
|
|
21398
22339
|
disabled: !active,
|
|
21399
22340
|
value: active ? hour : "",
|
|
21400
22341
|
placeholder: "--",
|
|
@@ -21410,7 +22351,7 @@ function RangeCalendar({
|
|
|
21410
22351
|
type: "text",
|
|
21411
22352
|
inputMode: "numeric",
|
|
21412
22353
|
maxLength: 2,
|
|
21413
|
-
"aria-label":
|
|
22354
|
+
"aria-label": t.minuteAria(suffix),
|
|
21414
22355
|
disabled: !active,
|
|
21415
22356
|
value: active ? minute : "",
|
|
21416
22357
|
placeholder: "--",
|
|
@@ -21438,9 +22379,17 @@ function RangeCalendar({
|
|
|
21438
22379
|
children: [
|
|
21439
22380
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex items-center justify-center", children: [
|
|
21440
22381
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center gap-[var(--cmp-datepicker-calendar-gap)] typo-field-md-medium", children: [
|
|
21441
|
-
/* @__PURE__ */ jsxRuntime.jsx(SGhostButton, { icon: "chevronLeft", size: "xxs", ariaLabel:
|
|
22382
|
+
/* @__PURE__ */ jsxRuntime.jsx(SGhostButton, { icon: "chevronLeft", size: "xxs", ariaLabel: t.prevYear, onClick: goPrevYear }),
|
|
21442
22383
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex min-w-[40px] items-center justify-center text-center", children: y }),
|
|
21443
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
22384
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
22385
|
+
SGhostButton,
|
|
22386
|
+
{
|
|
22387
|
+
icon: "chevronRight",
|
|
22388
|
+
size: "xxs",
|
|
22389
|
+
ariaLabel: t.nextYear,
|
|
22390
|
+
onClick: goNextYear
|
|
22391
|
+
}
|
|
22392
|
+
)
|
|
21444
22393
|
] }),
|
|
21445
22394
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21446
22395
|
"button",
|
|
@@ -21448,7 +22397,7 @@ function RangeCalendar({
|
|
|
21448
22397
|
type: "button",
|
|
21449
22398
|
onClick: goToday,
|
|
21450
22399
|
className: "absolute right-0 h-[24px] min-w-[37px] cursor-pointer bg-transparent text-center text-[12px] font-medium leading-[24px] text-[color:var(--cmp-datepicker-calendar-day-default-text)] hover:underline",
|
|
21451
|
-
children:
|
|
22400
|
+
children: t.today
|
|
21452
22401
|
}
|
|
21453
22402
|
)
|
|
21454
22403
|
] }),
|
|
@@ -21469,8 +22418,8 @@ function RangeCalendar({
|
|
|
21469
22418
|
showTimePicker && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
21470
22419
|
/* @__PURE__ */ jsxRuntime.jsx(SDivider, {}),
|
|
21471
22420
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-[var(--cmp-datepicker-calendar-time-gap)]", children: [
|
|
21472
|
-
renderTimeSection("start", start,
|
|
21473
|
-
renderTimeSection("end", end,
|
|
22421
|
+
renderTimeSection("start", start, t.rangeFrom),
|
|
22422
|
+
renderTimeSection("end", end, t.rangeTo)
|
|
21474
22423
|
] })
|
|
21475
22424
|
] })
|
|
21476
22425
|
]
|
|
@@ -21510,6 +22459,8 @@ function SDateRangePicker({
|
|
|
21510
22459
|
className,
|
|
21511
22460
|
style
|
|
21512
22461
|
}) {
|
|
22462
|
+
const runRules2 = useRunRules();
|
|
22463
|
+
const t = useLocale().messages.date;
|
|
21513
22464
|
const portalContainer = usePortalContainer();
|
|
21514
22465
|
const [open, setOpen] = react.useState(false);
|
|
21515
22466
|
const triggerId = useFieldControlId();
|
|
@@ -21520,12 +22471,12 @@ function SDateRangePicker({
|
|
|
21520
22471
|
const hasDisplay = pendingStart != null || hasValue;
|
|
21521
22472
|
const rawStart = pendingStart ?? (hasValue ? value[0] : "");
|
|
21522
22473
|
const rawEnd = pendingStart ? "" : hasValue ? value[1] : "";
|
|
21523
|
-
const startText = showWeekday && rawStart ? withWeekday(rawStart) : rawStart;
|
|
21524
|
-
const endText = showWeekday && rawEnd ? withWeekday(rawEnd) : rawEnd;
|
|
22474
|
+
const startText = showWeekday && rawStart ? withWeekday(rawStart, t) : rawStart;
|
|
22475
|
+
const endText = showWeekday && rawEnd ? withWeekday(rawEnd, t) : rawEnd;
|
|
21525
22476
|
useFormField({
|
|
21526
22477
|
name,
|
|
21527
22478
|
validate: () => {
|
|
21528
|
-
const msg =
|
|
22479
|
+
const msg = runRules2(value, rules);
|
|
21529
22480
|
setRuleError(msg);
|
|
21530
22481
|
return msg === "";
|
|
21531
22482
|
},
|
|
@@ -21558,7 +22509,7 @@ function SDateRangePicker({
|
|
|
21558
22509
|
typo: "typo-field-sm-default",
|
|
21559
22510
|
radius: "var(--cmp-datepicker-sm-radius)"
|
|
21560
22511
|
};
|
|
21561
|
-
const weekdayW = showWeekday ? weekdaySuffixWidth(baseDims.fontSize) * 2 : 0;
|
|
22512
|
+
const weekdayW = showWeekday ? weekdaySuffixWidth(baseDims.fontSize, t) * 2 : 0;
|
|
21562
22513
|
const dims = {
|
|
21563
22514
|
...baseDims,
|
|
21564
22515
|
minW: baseDims.minW + weekdayW,
|
|
@@ -21568,13 +22519,13 @@ function SDateRangePicker({
|
|
|
21568
22519
|
const select = (r3) => {
|
|
21569
22520
|
setPendingStart(null);
|
|
21570
22521
|
onValueChange?.(r3);
|
|
21571
|
-
if (rules && rules.length > 0) setRuleError(
|
|
22522
|
+
if (rules && rules.length > 0) setRuleError(runRules2(r3, rules));
|
|
21572
22523
|
if (!showTimePicker) setOpen(false);
|
|
21573
22524
|
};
|
|
21574
22525
|
const clear = () => {
|
|
21575
22526
|
setPendingStart(null);
|
|
21576
22527
|
onValueChange?.(null);
|
|
21577
|
-
if (rules && rules.length > 0) setRuleError(
|
|
22528
|
+
if (rules && rules.length > 0) setRuleError(runRules2(null, rules));
|
|
21578
22529
|
};
|
|
21579
22530
|
const resolvedPlaceholder = showTimePicker && placeholder === "YYYY-MM-DD ~ YYYY-MM-DD" ? "YYYY-MM-DD HH:mm ~ YYYY-MM-DD HH:mm" : placeholder;
|
|
21580
22531
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -21669,7 +22620,7 @@ function SDateRangePicker({
|
|
|
21669
22620
|
{
|
|
21670
22621
|
icon: "close",
|
|
21671
22622
|
size: "xxs",
|
|
21672
|
-
ariaLabel:
|
|
22623
|
+
ariaLabel: t.clearPeriod,
|
|
21673
22624
|
onClick: (event) => {
|
|
21674
22625
|
event.stopPropagation();
|
|
21675
22626
|
clear();
|
|
@@ -21737,6 +22688,7 @@ var SChipImpl = /* @__PURE__ */ react.forwardRef(function SChip({
|
|
|
21737
22688
|
className,
|
|
21738
22689
|
style
|
|
21739
22690
|
}, ref) {
|
|
22691
|
+
const runRules2 = useRunRules();
|
|
21740
22692
|
const [editing, setEditing] = react.useState(false);
|
|
21741
22693
|
const [error, setError] = react.useState(errorProp);
|
|
21742
22694
|
const inputRef = react.useRef(null);
|
|
@@ -21777,7 +22729,7 @@ var SChipImpl = /* @__PURE__ */ react.forwardRef(function SChip({
|
|
|
21777
22729
|
const changed = next !== draftRef.current;
|
|
21778
22730
|
setEditing(false);
|
|
21779
22731
|
if (changed) onValueChange?.(next);
|
|
21780
|
-
if (rules && rules.length > 0) setError(
|
|
22732
|
+
if (rules && rules.length > 0) setError(runRules2(next, rules) !== "");
|
|
21781
22733
|
onBlur?.();
|
|
21782
22734
|
};
|
|
21783
22735
|
const cancel = () => {
|
|
@@ -21908,6 +22860,7 @@ function SFilePicker({
|
|
|
21908
22860
|
className,
|
|
21909
22861
|
style
|
|
21910
22862
|
}) {
|
|
22863
|
+
const runRules2 = useRunRules();
|
|
21911
22864
|
const autoId = react.useId();
|
|
21912
22865
|
const resolvedName = name ?? autoId;
|
|
21913
22866
|
const triggerId = `${autoId}-trigger`;
|
|
@@ -21923,7 +22876,7 @@ function SFilePicker({
|
|
|
21923
22876
|
useFormField({
|
|
21924
22877
|
name,
|
|
21925
22878
|
validate: () => {
|
|
21926
|
-
const msg =
|
|
22879
|
+
const msg = runRules2(files, rules);
|
|
21927
22880
|
setRuleError(msg);
|
|
21928
22881
|
return msg === "";
|
|
21929
22882
|
},
|
|
@@ -21955,7 +22908,7 @@ function SFilePicker({
|
|
|
21955
22908
|
}
|
|
21956
22909
|
const merged = [...existing, ...accepted];
|
|
21957
22910
|
onValueChange?.(merged);
|
|
21958
|
-
if (rules?.length) setRuleError(
|
|
22911
|
+
if (rules?.length) setRuleError(runRules2(merged, rules));
|
|
21959
22912
|
} else {
|
|
21960
22913
|
const { accepted, rejected, reason } = validate(arr);
|
|
21961
22914
|
if (reason) {
|
|
@@ -21963,7 +22916,7 @@ function SFilePicker({
|
|
|
21963
22916
|
return;
|
|
21964
22917
|
}
|
|
21965
22918
|
onValueChange?.(accepted[0]);
|
|
21966
|
-
if (rules?.length) setRuleError(
|
|
22919
|
+
if (rules?.length) setRuleError(runRules2(accepted[0], rules));
|
|
21967
22920
|
}
|
|
21968
22921
|
};
|
|
21969
22922
|
const clear = (e) => {
|
|
@@ -22123,6 +23076,7 @@ function SKeyValueTable({
|
|
|
22123
23076
|
className,
|
|
22124
23077
|
style
|
|
22125
23078
|
}) {
|
|
23079
|
+
const tc = useLocale().messages.common;
|
|
22126
23080
|
if (fields.length === 0) return null;
|
|
22127
23081
|
const emit3 = (name, value) => onChange?.({
|
|
22128
23082
|
name,
|
|
@@ -22300,7 +23254,7 @@ function SKeyValueTable({
|
|
|
22300
23254
|
{
|
|
22301
23255
|
className: "flex flex-shrink-0 items-center justify-center border-l border-solid border-[color:var(--cmp-table-border-color)] px-[var(--cmp-table-keyValue-search-paddingX)]",
|
|
22302
23256
|
style: { background: "var(--cmp-table-keyValue-search-bg)" },
|
|
22303
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(SButton, { color: "neutral", outline: true, size: "md", label:
|
|
23257
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(SButton, { color: "neutral", outline: true, size: "md", label: tc.search, onClick: () => onSearch?.() })
|
|
22304
23258
|
}
|
|
22305
23259
|
)
|
|
22306
23260
|
] });
|
|
@@ -22594,6 +23548,7 @@ function ChartRotatedCategoryLabels({
|
|
|
22594
23548
|
);
|
|
22595
23549
|
}
|
|
22596
23550
|
var ChartFrame = /* @__PURE__ */ react.forwardRef(function ChartFrame2({ title, unit, legend, legendPosition = "top", children, className, style, ...props }, ref) {
|
|
23551
|
+
const t = useLocale().messages.chart;
|
|
22597
23552
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
22598
23553
|
"div",
|
|
22599
23554
|
{
|
|
@@ -22609,10 +23564,7 @@ var ChartFrame = /* @__PURE__ */ react.forwardRef(function ChartFrame2({ title,
|
|
|
22609
23564
|
(title || unit) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-(--cmp-chart-gap)", children: [
|
|
22610
23565
|
title && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-body-md-medium text-(--cmp-chart-title-color)", children: title }),
|
|
22611
23566
|
unit && // ml-auto — title 유무와 관계없이 항상 오른쪽 끝에 붙는다.
|
|
22612
|
-
/* @__PURE__ */ jsxRuntime.
|
|
22613
|
-
"\uB2E8\uC704 : ",
|
|
22614
|
-
unit
|
|
22615
|
-
] })
|
|
23567
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto whitespace-nowrap typo-body-sm-default text-(--cmp-chart-unit-color)", children: t.unit(unit) })
|
|
22616
23568
|
] }),
|
|
22617
23569
|
legend && legendPosition === "top" && legend,
|
|
22618
23570
|
children,
|
|
@@ -22956,6 +23908,7 @@ var SBarChart = /* @__PURE__ */ react.forwardRef(function SBarChart2({
|
|
|
22956
23908
|
className,
|
|
22957
23909
|
style
|
|
22958
23910
|
}, ref) {
|
|
23911
|
+
const t = useLocale().messages.chart;
|
|
22959
23912
|
const vertical = direction === "vertical";
|
|
22960
23913
|
const rotateLabels = rotateCategoryLabels && vertical;
|
|
22961
23914
|
const { ref: plotRef, size } = useElementSize();
|
|
@@ -23333,7 +24286,7 @@ var SBarChart = /* @__PURE__ */ react.forwardRef(function SBarChart2({
|
|
|
23333
24286
|
width: size.width,
|
|
23334
24287
|
height: size.height,
|
|
23335
24288
|
role: "img",
|
|
23336
|
-
"aria-label":
|
|
24289
|
+
"aria-label": t.barSummary(categories.length, series.length, !!stacked),
|
|
23337
24290
|
children: [
|
|
23338
24291
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
23339
24292
|
"text",
|
|
@@ -23583,6 +24536,7 @@ var SLineChart = /* @__PURE__ */ react.forwardRef(function SLineChart2({
|
|
|
23583
24536
|
className,
|
|
23584
24537
|
style
|
|
23585
24538
|
}, ref) {
|
|
24539
|
+
const t = useLocale().messages.chart;
|
|
23586
24540
|
const smooth = curve === "smooth";
|
|
23587
24541
|
const { ref: plotRef, size } = useElementSize();
|
|
23588
24542
|
const { ref: axisTextRef, size: axisText } = useElementSize(rotateCategoryLabels);
|
|
@@ -23909,7 +24863,7 @@ var SLineChart = /* @__PURE__ */ react.forwardRef(function SLineChart2({
|
|
|
23909
24863
|
height: size.height,
|
|
23910
24864
|
overflow: "visible",
|
|
23911
24865
|
role: "img",
|
|
23912
|
-
"aria-label":
|
|
24866
|
+
"aria-label": t.lineSummary(categories.length, series.length, !!stacked),
|
|
23913
24867
|
children: [
|
|
23914
24868
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
23915
24869
|
"text",
|
|
@@ -24093,6 +25047,7 @@ var RadialChart = /* @__PURE__ */ react.forwardRef(function RadialChart2({
|
|
|
24093
25047
|
innerRatio,
|
|
24094
25048
|
kind
|
|
24095
25049
|
}, ref) {
|
|
25050
|
+
const t = useLocale().messages.chart;
|
|
24096
25051
|
const { ref: plotRef, size } = useElementSize();
|
|
24097
25052
|
const [hovered, setHovered] = react.useState(null);
|
|
24098
25053
|
const arcs = react.useMemo(() => {
|
|
@@ -24171,7 +25126,7 @@ var RadialChart = /* @__PURE__ */ react.forwardRef(function RadialChart2({
|
|
|
24171
25126
|
height: diameter,
|
|
24172
25127
|
overflow: "visible",
|
|
24173
25128
|
role: "img",
|
|
24174
|
-
"aria-label":
|
|
25129
|
+
"aria-label": t.radialSummary(arcs.length, t[kind]),
|
|
24175
25130
|
onMouseLeave: () => setHovered(null),
|
|
24176
25131
|
children: [
|
|
24177
25132
|
arcs.length === 0 ? (
|
|
@@ -24285,7 +25240,7 @@ var SPieChart = /* @__PURE__ */ react.forwardRef(function SPieChart2({
|
|
|
24285
25240
|
legendPosition,
|
|
24286
25241
|
showTooltip,
|
|
24287
25242
|
innerRatio: 0,
|
|
24288
|
-
kind: "
|
|
25243
|
+
kind: "pie"
|
|
24289
25244
|
}
|
|
24290
25245
|
);
|
|
24291
25246
|
});
|
|
@@ -24310,7 +25265,7 @@ var SDonutChart = /* @__PURE__ */ react.forwardRef(function SDonutChart2({
|
|
|
24310
25265
|
legendVariant,
|
|
24311
25266
|
showTooltip,
|
|
24312
25267
|
innerRatio: DONUT_INNER_RATIO,
|
|
24313
|
-
kind: "
|
|
25268
|
+
kind: "donut"
|
|
24314
25269
|
}
|
|
24315
25270
|
);
|
|
24316
25271
|
});
|
|
@@ -24770,7 +25725,9 @@ var SSkeleton = /* @__PURE__ */ react.forwardRef(function SSkeleton2({
|
|
|
24770
25725
|
}
|
|
24771
25726
|
);
|
|
24772
25727
|
});
|
|
24773
|
-
var STimelineImpl = /* @__PURE__ */ react.forwardRef(function STimeline({ groups, emptyText
|
|
25728
|
+
var STimelineImpl = /* @__PURE__ */ react.forwardRef(function STimeline({ groups, emptyText: emptyTextProp, className, ...rest }, ref) {
|
|
25729
|
+
const t = useLocale().messages.timeline;
|
|
25730
|
+
const emptyText = emptyTextProp === void 0 ? t.empty : emptyTextProp;
|
|
24774
25731
|
const filled = groups.filter((group) => group.entries.length > 0);
|
|
24775
25732
|
if (filled.length === 0) {
|
|
24776
25733
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -25655,14 +26612,14 @@ var SEDITOR_HEADING_LABELS = {
|
|
|
25655
26612
|
var SEDITOR_FONT_SIZES = [8, 9, 10, 11, 12, 14, 16, 18, 24, 30, 36, 48, 60, 72];
|
|
25656
26613
|
var SEDITOR_DEFAULT_FONT_SIZE = 12;
|
|
25657
26614
|
var SEDITOR_DEFAULT_COLORS = [
|
|
25658
|
-
{ label: "\uAE30\uBCF8", color: "var(--color-fg-primary)" },
|
|
25659
|
-
{ label: "\uBCF4\uC870", color: "var(--color-fg-secondary)" },
|
|
25660
|
-
{ label: "\uD750\uB9BC", color: "var(--color-fg-tertiary)" },
|
|
25661
|
-
{ label: "\uAC15\uC870", color: "var(--color-fg-accent)" },
|
|
25662
|
-
{ label: "\uBE0C\uB79C\uB4DC", color: "var(--color-fg-brand)" },
|
|
25663
|
-
{ label: "\uC131\uACF5", color: "var(--color-fg-success)" },
|
|
25664
|
-
{ label: "\uC8FC\uC758", color: "var(--color-fg-warning)" },
|
|
25665
|
-
{ label: "\uC704\uD5D8", color: "var(--color-fg-danger)" }
|
|
26615
|
+
{ key: "colorDefault", label: "\uAE30\uBCF8", color: "var(--color-fg-primary)" },
|
|
26616
|
+
{ key: "colorSecondary", label: "\uBCF4\uC870", color: "var(--color-fg-secondary)" },
|
|
26617
|
+
{ key: "colorMuted", label: "\uD750\uB9BC", color: "var(--color-fg-tertiary)" },
|
|
26618
|
+
{ key: "colorAccent", label: "\uAC15\uC870", color: "var(--color-fg-accent)" },
|
|
26619
|
+
{ key: "colorBrand", label: "\uBE0C\uB79C\uB4DC", color: "var(--color-fg-brand)" },
|
|
26620
|
+
{ key: "colorSuccess", label: "\uC131\uACF5", color: "var(--color-fg-success)" },
|
|
26621
|
+
{ key: "colorWarning", label: "\uC8FC\uC758", color: "var(--color-fg-warning)" },
|
|
26622
|
+
{ key: "colorDanger", label: "\uC704\uD5D8", color: "var(--color-fg-danger)" }
|
|
25666
26623
|
];
|
|
25667
26624
|
var TASK_LIST_CLASS = "sd-editor-task-list";
|
|
25668
26625
|
var TASK_ITEM_CLASS = "sd-editor-task-item";
|
|
@@ -25803,7 +26760,6 @@ var scrollMenuClass = cn(
|
|
|
25803
26760
|
FLOATING_SLIDE_ANIM,
|
|
25804
26761
|
SCROLLBAR_CLASS
|
|
25805
26762
|
);
|
|
25806
|
-
var FONT_SIZE_DEFAULT_LABEL = "\uAE30\uBCF8";
|
|
25807
26763
|
var FONT_SIZE_MENU_MAX_HEIGHT = "min(280px, var(--radix-dropdown-menu-content-available-height))";
|
|
25808
26764
|
var swatchClass = cn(
|
|
25809
26765
|
"flex h-[24px] w-[24px] cursor-pointer items-center justify-center rounded-[4px] outline-none",
|
|
@@ -25871,6 +26827,7 @@ var TableSizePicker = ({
|
|
|
25871
26827
|
disabled,
|
|
25872
26828
|
onPick
|
|
25873
26829
|
}) => {
|
|
26830
|
+
const t = useLocale().messages.editor;
|
|
25874
26831
|
const [size, setSize] = react.useState({ rows: 1, cols: 1 });
|
|
25875
26832
|
const gridRef = react.useRef(null);
|
|
25876
26833
|
react.useEffect(() => {
|
|
@@ -25889,7 +26846,7 @@ var TableSizePicker = ({
|
|
|
25889
26846
|
{
|
|
25890
26847
|
ref: gridRef,
|
|
25891
26848
|
role: "grid",
|
|
25892
|
-
"aria-label":
|
|
26849
|
+
"aria-label": t.tableSize,
|
|
25893
26850
|
"aria-disabled": disabled || void 0,
|
|
25894
26851
|
tabIndex: disabled ? -1 : 0,
|
|
25895
26852
|
className: cn("flex flex-col outline-none", disabled && "pointer-events-none opacity-40"),
|
|
@@ -25921,7 +26878,7 @@ var TableSizePicker = ({
|
|
|
25921
26878
|
{
|
|
25922
26879
|
type: "button",
|
|
25923
26880
|
role: "gridcell",
|
|
25924
|
-
"aria-label":
|
|
26881
|
+
"aria-label": t.tableCell(r3 + 1, c + 1),
|
|
25925
26882
|
"aria-selected": on,
|
|
25926
26883
|
tabIndex: -1,
|
|
25927
26884
|
className: "box-border cursor-pointer rounded-[3px] border border-solid p-0 outline-none",
|
|
@@ -25940,17 +26897,12 @@ var TableSizePicker = ({
|
|
|
25940
26897
|
}) }, r3))
|
|
25941
26898
|
}
|
|
25942
26899
|
),
|
|
25943
|
-
/* @__PURE__ */ jsxRuntime.
|
|
26900
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25944
26901
|
"div",
|
|
25945
26902
|
{
|
|
25946
26903
|
"aria-live": "polite",
|
|
25947
26904
|
className: "mt-[6px] text-center text-[12px] leading-[20px] text-[color:var(--sys-color-fg-secondary)]",
|
|
25948
|
-
children:
|
|
25949
|
-
size.rows,
|
|
25950
|
-
"\uD589 \xD7 ",
|
|
25951
|
-
size.cols,
|
|
25952
|
-
"\uC5F4"
|
|
25953
|
-
]
|
|
26905
|
+
children: t.tableSizeText(size.rows, size.cols)
|
|
25954
26906
|
}
|
|
25955
26907
|
)
|
|
25956
26908
|
] });
|
|
@@ -25974,27 +26926,30 @@ var LinkEditor = ({
|
|
|
25974
26926
|
onApply,
|
|
25975
26927
|
onRemove,
|
|
25976
26928
|
hasLink
|
|
25977
|
-
}) =>
|
|
25978
|
-
|
|
25979
|
-
|
|
25980
|
-
|
|
25981
|
-
|
|
25982
|
-
|
|
25983
|
-
|
|
25984
|
-
|
|
25985
|
-
|
|
25986
|
-
|
|
25987
|
-
|
|
25988
|
-
|
|
25989
|
-
|
|
25990
|
-
|
|
26929
|
+
}) => {
|
|
26930
|
+
const t = useLocale().messages.editor;
|
|
26931
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-[8px]", children: [
|
|
26932
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26933
|
+
SInput,
|
|
26934
|
+
{
|
|
26935
|
+
value: href,
|
|
26936
|
+
onValueChange: onHrefChange,
|
|
26937
|
+
type: "url",
|
|
26938
|
+
placeholder: "https://",
|
|
26939
|
+
width: "md",
|
|
26940
|
+
"aria-label": t.linkUrl,
|
|
26941
|
+
onKeyDown: (e) => {
|
|
26942
|
+
if (e.key === "Enter") {
|
|
26943
|
+
e.preventDefault();
|
|
26944
|
+
onApply();
|
|
26945
|
+
}
|
|
25991
26946
|
}
|
|
25992
26947
|
}
|
|
25993
|
-
|
|
25994
|
-
|
|
25995
|
-
|
|
25996
|
-
|
|
25997
|
-
|
|
26948
|
+
),
|
|
26949
|
+
/* @__PURE__ */ jsxRuntime.jsx(SButton, { size: "sm", label: t.apply, onClick: onApply }),
|
|
26950
|
+
hasLink && /* @__PURE__ */ jsxRuntime.jsx(SButton, { size: "sm", color: "neutral", outline: true, label: t.remove, onClick: onRemove })
|
|
26951
|
+
] });
|
|
26952
|
+
};
|
|
25998
26953
|
var TOOLBAR_BAR_CLASS = "sticky top-0 z-[1] flex flex-wrap items-center gap-[2px] border-b border-solid bg-inherit px-[8px] py-[4px]";
|
|
25999
26954
|
var TOOLBAR_BAR_STYLE = { borderBottomColor: "var(--sys-color-border-default)" };
|
|
26000
26955
|
var BUBBLE_BAR_CLASS = cn(
|
|
@@ -26061,6 +27016,11 @@ function EditorToolbarBar({
|
|
|
26061
27016
|
disabled,
|
|
26062
27017
|
variant = "bar"
|
|
26063
27018
|
}) {
|
|
27019
|
+
const t = useLocale().messages.editor;
|
|
27020
|
+
const colorOptions = react.useMemo(
|
|
27021
|
+
() => SEDITOR_DEFAULT_COLORS.map((option) => ({ color: option.color, label: t[option.key] })),
|
|
27022
|
+
[t]
|
|
27023
|
+
);
|
|
26064
27024
|
const portalContainer = usePortalContainer();
|
|
26065
27025
|
const insideModal = useInsideModal();
|
|
26066
27026
|
const isMobile = useIsMobile();
|
|
@@ -26131,7 +27091,7 @@ function EditorToolbarBar({
|
|
|
26131
27091
|
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26132
27092
|
ToolbarButton,
|
|
26133
27093
|
{
|
|
26134
|
-
label:
|
|
27094
|
+
label: t.headingLevel,
|
|
26135
27095
|
active: state2.heading !== 0,
|
|
26136
27096
|
disabled: off,
|
|
26137
27097
|
className: "px-[4px]",
|
|
@@ -26147,7 +27107,7 @@ function EditorToolbarBar({
|
|
|
26147
27107
|
{
|
|
26148
27108
|
className: menuItemClass,
|
|
26149
27109
|
onSelect: () => chain()?.setParagraph().run(),
|
|
26150
|
-
children:
|
|
27110
|
+
children: t.headingBody
|
|
26151
27111
|
}
|
|
26152
27112
|
),
|
|
26153
27113
|
SEDITOR_HEADING_LEVELS.map((level) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -26155,7 +27115,7 @@ function EditorToolbarBar({
|
|
|
26155
27115
|
{
|
|
26156
27116
|
className: menuItemClass,
|
|
26157
27117
|
onSelect: () => chain()?.setHeading({ level }).run(),
|
|
26158
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: HEADING_ITEM_CLASS[level], children:
|
|
27118
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: HEADING_ITEM_CLASS[level], children: t.heading(level) })
|
|
26159
27119
|
},
|
|
26160
27120
|
level
|
|
26161
27121
|
))
|
|
@@ -26163,8 +27123,8 @@ function EditorToolbarBar({
|
|
|
26163
27123
|
] }, item4);
|
|
26164
27124
|
case "fontSize":
|
|
26165
27125
|
return /* @__PURE__ */ jsxRuntime.jsxs(RDropdown5__namespace.Root, { modal: !insideModal, children: [
|
|
26166
|
-
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsxs(ToolbarButton, { label:
|
|
26167
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12px] leading-[20px]", children: activeFontSize ??
|
|
27126
|
+
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsxs(ToolbarButton, { label: t.fontSize, disabled: off, className: "px-[6px]", children: [
|
|
27127
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12px] leading-[20px]", children: activeFontSize ?? t.fontSizeDefaultLabel }),
|
|
26168
27128
|
/* @__PURE__ */ jsxRuntime.jsx(SIcon, { name: "caretDown", size: 12 })
|
|
26169
27129
|
] }) }),
|
|
26170
27130
|
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -26179,9 +27139,9 @@ function EditorToolbarBar({
|
|
|
26179
27139
|
RDropdown5__namespace.Item,
|
|
26180
27140
|
{
|
|
26181
27141
|
className: cn(menuItemClass, activeFontSize === null && menuItemSelectedClass),
|
|
26182
|
-
title:
|
|
27142
|
+
title: t.fontSizeDefault(SEDITOR_DEFAULT_FONT_SIZE),
|
|
26183
27143
|
onSelect: () => chain()?.unsetFontSize().run(),
|
|
26184
|
-
children:
|
|
27144
|
+
children: t.fontSizeDefaultLabel
|
|
26185
27145
|
}
|
|
26186
27146
|
),
|
|
26187
27147
|
SEDITOR_FONT_SIZES.map((size) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -26204,7 +27164,7 @@ function EditorToolbarBar({
|
|
|
26204
27164
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26205
27165
|
ToolbarButton,
|
|
26206
27166
|
{
|
|
26207
|
-
label:
|
|
27167
|
+
label: t.bold,
|
|
26208
27168
|
active: state2.bold,
|
|
26209
27169
|
"aria-pressed": state2.bold,
|
|
26210
27170
|
disabled: off,
|
|
@@ -26217,7 +27177,7 @@ function EditorToolbarBar({
|
|
|
26217
27177
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26218
27178
|
ToolbarButton,
|
|
26219
27179
|
{
|
|
26220
|
-
label:
|
|
27180
|
+
label: t.italic,
|
|
26221
27181
|
active: state2.italic,
|
|
26222
27182
|
"aria-pressed": state2.italic,
|
|
26223
27183
|
disabled: off,
|
|
@@ -26230,7 +27190,7 @@ function EditorToolbarBar({
|
|
|
26230
27190
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26231
27191
|
ToolbarButton,
|
|
26232
27192
|
{
|
|
26233
|
-
label:
|
|
27193
|
+
label: t.underline,
|
|
26234
27194
|
active: state2.underline,
|
|
26235
27195
|
"aria-pressed": state2.underline,
|
|
26236
27196
|
disabled: off,
|
|
@@ -26243,7 +27203,7 @@ function EditorToolbarBar({
|
|
|
26243
27203
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26244
27204
|
ToolbarButton,
|
|
26245
27205
|
{
|
|
26246
|
-
label:
|
|
27206
|
+
label: t.strike,
|
|
26247
27207
|
active: state2.strike,
|
|
26248
27208
|
"aria-pressed": state2.strike,
|
|
26249
27209
|
disabled: off,
|
|
@@ -26256,7 +27216,7 @@ function EditorToolbarBar({
|
|
|
26256
27216
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26257
27217
|
ToolbarButton,
|
|
26258
27218
|
{
|
|
26259
|
-
label:
|
|
27219
|
+
label: t.inlineCode,
|
|
26260
27220
|
active: state2.code,
|
|
26261
27221
|
"aria-pressed": state2.code,
|
|
26262
27222
|
disabled: off,
|
|
@@ -26270,7 +27230,7 @@ function EditorToolbarBar({
|
|
|
26270
27230
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26271
27231
|
ToolbarButton,
|
|
26272
27232
|
{
|
|
26273
|
-
label:
|
|
27233
|
+
label: t.textColor,
|
|
26274
27234
|
disabled: off,
|
|
26275
27235
|
onClick: () => setMobileView("color"),
|
|
26276
27236
|
children: /* @__PURE__ */ jsxRuntime.jsx(ColorIndicator, { color: off ? "currentColor" : activeColor, children: /* @__PURE__ */ jsxRuntime.jsx(IconTextColor, { size: ICON_SIZE }) })
|
|
@@ -26278,14 +27238,14 @@ function EditorToolbarBar({
|
|
|
26278
27238
|
item4
|
|
26279
27239
|
);
|
|
26280
27240
|
return /* @__PURE__ */ jsxRuntime.jsxs(RDropdown5__namespace.Root, { modal: !insideModal, children: [
|
|
26281
|
-
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsx(ToolbarButton, { label:
|
|
27241
|
+
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsx(ToolbarButton, { label: t.textColor, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsx(ColorIndicator, { color: off ? "currentColor" : activeColor, children: /* @__PURE__ */ jsxRuntime.jsx(IconTextColor, { size: ICON_SIZE }) }) }) }),
|
|
26282
27242
|
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Content, { sideOffset: 4, align: "start", className: menuClass, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
26283
27243
|
ColorPalette,
|
|
26284
27244
|
{
|
|
26285
27245
|
asMenu: true,
|
|
26286
|
-
colors:
|
|
27246
|
+
colors: colorOptions,
|
|
26287
27247
|
columns: 4,
|
|
26288
|
-
clearLabel:
|
|
27248
|
+
clearLabel: t.clearColor,
|
|
26289
27249
|
onPick: applyColor,
|
|
26290
27250
|
onClear: clearColor
|
|
26291
27251
|
}
|
|
@@ -26295,7 +27255,7 @@ function EditorToolbarBar({
|
|
|
26295
27255
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26296
27256
|
ToolbarButton,
|
|
26297
27257
|
{
|
|
26298
|
-
label:
|
|
27258
|
+
label: t.alignLeft,
|
|
26299
27259
|
active: state2.alignLeft,
|
|
26300
27260
|
"aria-pressed": state2.alignLeft,
|
|
26301
27261
|
disabled: off,
|
|
@@ -26308,7 +27268,7 @@ function EditorToolbarBar({
|
|
|
26308
27268
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26309
27269
|
ToolbarButton,
|
|
26310
27270
|
{
|
|
26311
|
-
label:
|
|
27271
|
+
label: t.alignCenter,
|
|
26312
27272
|
active: state2.alignCenter,
|
|
26313
27273
|
"aria-pressed": state2.alignCenter,
|
|
26314
27274
|
disabled: off,
|
|
@@ -26321,7 +27281,7 @@ function EditorToolbarBar({
|
|
|
26321
27281
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26322
27282
|
ToolbarButton,
|
|
26323
27283
|
{
|
|
26324
|
-
label:
|
|
27284
|
+
label: t.alignRight,
|
|
26325
27285
|
active: state2.alignRight,
|
|
26326
27286
|
"aria-pressed": state2.alignRight,
|
|
26327
27287
|
disabled: off,
|
|
@@ -26334,7 +27294,7 @@ function EditorToolbarBar({
|
|
|
26334
27294
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26335
27295
|
ToolbarButton,
|
|
26336
27296
|
{
|
|
26337
|
-
label:
|
|
27297
|
+
label: t.alignJustify,
|
|
26338
27298
|
active: state2.alignJustify,
|
|
26339
27299
|
"aria-pressed": state2.alignJustify,
|
|
26340
27300
|
disabled: off,
|
|
@@ -26347,7 +27307,7 @@ function EditorToolbarBar({
|
|
|
26347
27307
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26348
27308
|
ToolbarButton,
|
|
26349
27309
|
{
|
|
26350
|
-
label:
|
|
27310
|
+
label: t.bulletList,
|
|
26351
27311
|
active: state2.bulletList,
|
|
26352
27312
|
"aria-pressed": state2.bulletList,
|
|
26353
27313
|
disabled: off,
|
|
@@ -26360,7 +27320,7 @@ function EditorToolbarBar({
|
|
|
26360
27320
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26361
27321
|
ToolbarButton,
|
|
26362
27322
|
{
|
|
26363
|
-
label:
|
|
27323
|
+
label: t.orderedList,
|
|
26364
27324
|
active: state2.orderedList,
|
|
26365
27325
|
"aria-pressed": state2.orderedList,
|
|
26366
27326
|
disabled: off,
|
|
@@ -26373,7 +27333,7 @@ function EditorToolbarBar({
|
|
|
26373
27333
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26374
27334
|
ToolbarButton,
|
|
26375
27335
|
{
|
|
26376
|
-
label:
|
|
27336
|
+
label: t.taskList,
|
|
26377
27337
|
active: state2.taskList,
|
|
26378
27338
|
"aria-pressed": state2.taskList,
|
|
26379
27339
|
disabled: off,
|
|
@@ -26386,7 +27346,7 @@ function EditorToolbarBar({
|
|
|
26386
27346
|
const ListIcon = state2.orderedList ? IconOrderedList : state2.taskList ? IconTaskList : IconBulletList;
|
|
26387
27347
|
const listActive = state2.bulletList || state2.orderedList || state2.taskList;
|
|
26388
27348
|
return /* @__PURE__ */ jsxRuntime.jsxs(RDropdown5__namespace.Root, { modal: !insideModal, children: [
|
|
26389
|
-
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsxs(ToolbarButton, { label:
|
|
27349
|
+
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsxs(ToolbarButton, { label: t.list, active: listActive, disabled: off, className: "px-[4px]", children: [
|
|
26390
27350
|
/* @__PURE__ */ jsxRuntime.jsx(ListIcon, { size: ICON_SIZE }),
|
|
26391
27351
|
/* @__PURE__ */ jsxRuntime.jsx(SIcon, { name: "caretDown", size: CARET_SIZE })
|
|
26392
27352
|
] }) }),
|
|
@@ -26398,7 +27358,7 @@ function EditorToolbarBar({
|
|
|
26398
27358
|
onSelect: () => chain()?.toggleBulletList().run(),
|
|
26399
27359
|
children: [
|
|
26400
27360
|
/* @__PURE__ */ jsxRuntime.jsx(IconBulletList, { size: 16, className: "mr-[6px]" }),
|
|
26401
|
-
|
|
27361
|
+
t.bulletList
|
|
26402
27362
|
]
|
|
26403
27363
|
}
|
|
26404
27364
|
),
|
|
@@ -26409,7 +27369,7 @@ function EditorToolbarBar({
|
|
|
26409
27369
|
onSelect: () => chain()?.toggleOrderedList().run(),
|
|
26410
27370
|
children: [
|
|
26411
27371
|
/* @__PURE__ */ jsxRuntime.jsx(IconOrderedList, { size: 16, className: "mr-[6px]" }),
|
|
26412
|
-
|
|
27372
|
+
t.orderedList
|
|
26413
27373
|
]
|
|
26414
27374
|
}
|
|
26415
27375
|
),
|
|
@@ -26420,7 +27380,7 @@ function EditorToolbarBar({
|
|
|
26420
27380
|
onSelect: () => chain()?.toggleTaskList().run(),
|
|
26421
27381
|
children: [
|
|
26422
27382
|
/* @__PURE__ */ jsxRuntime.jsx(IconTaskList, { size: 16, className: "mr-[6px]" }),
|
|
26423
|
-
|
|
27383
|
+
t.taskList
|
|
26424
27384
|
]
|
|
26425
27385
|
}
|
|
26426
27386
|
)
|
|
@@ -26431,7 +27391,7 @@ function EditorToolbarBar({
|
|
|
26431
27391
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26432
27392
|
ToolbarButton,
|
|
26433
27393
|
{
|
|
26434
|
-
label:
|
|
27394
|
+
label: t.blockquote,
|
|
26435
27395
|
active: state2.blockquote,
|
|
26436
27396
|
"aria-pressed": state2.blockquote,
|
|
26437
27397
|
disabled: off,
|
|
@@ -26444,7 +27404,7 @@ function EditorToolbarBar({
|
|
|
26444
27404
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26445
27405
|
ToolbarButton,
|
|
26446
27406
|
{
|
|
26447
|
-
label:
|
|
27407
|
+
label: t.codeBlock,
|
|
26448
27408
|
active: state2.codeBlock,
|
|
26449
27409
|
"aria-pressed": state2.codeBlock,
|
|
26450
27410
|
disabled: off,
|
|
@@ -26457,7 +27417,7 @@ function EditorToolbarBar({
|
|
|
26457
27417
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26458
27418
|
ToolbarButton,
|
|
26459
27419
|
{
|
|
26460
|
-
label:
|
|
27420
|
+
label: t.divider,
|
|
26461
27421
|
disabled: off,
|
|
26462
27422
|
onClick: () => chain()?.setHorizontalRule().run(),
|
|
26463
27423
|
children: /* @__PURE__ */ jsxRuntime.jsx(IconHorizontalRule, { size: ICON_SIZE })
|
|
@@ -26469,7 +27429,7 @@ function EditorToolbarBar({
|
|
|
26469
27429
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26470
27430
|
ToolbarButton,
|
|
26471
27431
|
{
|
|
26472
|
-
label:
|
|
27432
|
+
label: t.link,
|
|
26473
27433
|
active: state2.link,
|
|
26474
27434
|
disabled: off,
|
|
26475
27435
|
onClick: () => setMobileView("link"),
|
|
@@ -26478,7 +27438,7 @@ function EditorToolbarBar({
|
|
|
26478
27438
|
item4
|
|
26479
27439
|
);
|
|
26480
27440
|
return /* @__PURE__ */ jsxRuntime.jsxs(RPopover13__namespace.Root, { open: linkOpen, onOpenChange: setLinkOpen, children: [
|
|
26481
|
-
/* @__PURE__ */ jsxRuntime.jsx(RPopover13__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsx(ToolbarButton, { label:
|
|
27441
|
+
/* @__PURE__ */ jsxRuntime.jsx(RPopover13__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsx(ToolbarButton, { label: t.link, active: state2.link, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsx(IconLink, { size: ICON_SIZE }) }) }),
|
|
26482
27442
|
/* @__PURE__ */ jsxRuntime.jsx(RPopover13__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
26483
27443
|
RPopover13__namespace.Content,
|
|
26484
27444
|
{
|
|
@@ -26505,13 +27465,13 @@ function EditorToolbarBar({
|
|
|
26505
27465
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26506
27466
|
ToolbarButton,
|
|
26507
27467
|
{
|
|
26508
|
-
label:
|
|
27468
|
+
label: t.insertImage,
|
|
26509
27469
|
disabled: off || uploading,
|
|
26510
27470
|
className: "px-[6px]",
|
|
26511
27471
|
onClick: () => fileInputRef.current?.click(),
|
|
26512
27472
|
children: [
|
|
26513
27473
|
/* @__PURE__ */ jsxRuntime.jsx(SIcon, { name: "image", size: ICON_SIZE }),
|
|
26514
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12px] leading-[20px]", children:
|
|
27474
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12px] leading-[20px]", children: t.image })
|
|
26515
27475
|
]
|
|
26516
27476
|
},
|
|
26517
27477
|
item4
|
|
@@ -26524,10 +27484,19 @@ function EditorToolbarBar({
|
|
|
26524
27484
|
onOpenChange: setTableOpen,
|
|
26525
27485
|
modal: !insideModal,
|
|
26526
27486
|
children: [
|
|
26527
|
-
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26528
|
-
|
|
26529
|
-
|
|
26530
|
-
|
|
27487
|
+
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Trigger, { asChild: true, disabled: off, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27488
|
+
ToolbarButton,
|
|
27489
|
+
{
|
|
27490
|
+
label: t.table,
|
|
27491
|
+
active: state2.inTable,
|
|
27492
|
+
disabled: off,
|
|
27493
|
+
className: "px-[6px]",
|
|
27494
|
+
children: [
|
|
27495
|
+
/* @__PURE__ */ jsxRuntime.jsx(IconTable, { size: ICON_SIZE }),
|
|
27496
|
+
/* @__PURE__ */ jsxRuntime.jsx(SIcon, { name: "caretDown", size: CARET_SIZE })
|
|
27497
|
+
]
|
|
27498
|
+
}
|
|
27499
|
+
) }),
|
|
26531
27500
|
/* @__PURE__ */ jsxRuntime.jsx(RDropdown5__namespace.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxRuntime.jsxs(RDropdown5__namespace.Content, { sideOffset: 4, align: "start", className: menuClass, children: [
|
|
26532
27501
|
!state2.inTable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
26533
27502
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -26545,7 +27514,7 @@ function EditorToolbarBar({
|
|
|
26545
27514
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26546
27515
|
TableMenuItem,
|
|
26547
27516
|
{
|
|
26548
|
-
label:
|
|
27517
|
+
label: t.addRowAbove,
|
|
26549
27518
|
disabled: !state2.inTable,
|
|
26550
27519
|
onSelect: () => chain()?.addRowBefore().run()
|
|
26551
27520
|
}
|
|
@@ -26553,7 +27522,7 @@ function EditorToolbarBar({
|
|
|
26553
27522
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26554
27523
|
TableMenuItem,
|
|
26555
27524
|
{
|
|
26556
|
-
label:
|
|
27525
|
+
label: t.addRowBelow,
|
|
26557
27526
|
disabled: !state2.inTable,
|
|
26558
27527
|
onSelect: () => chain()?.addRowAfter().run()
|
|
26559
27528
|
}
|
|
@@ -26561,7 +27530,7 @@ function EditorToolbarBar({
|
|
|
26561
27530
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26562
27531
|
TableMenuItem,
|
|
26563
27532
|
{
|
|
26564
|
-
label:
|
|
27533
|
+
label: t.addColLeft,
|
|
26565
27534
|
disabled: !state2.inTable,
|
|
26566
27535
|
onSelect: () => chain()?.addColumnBefore().run()
|
|
26567
27536
|
}
|
|
@@ -26569,7 +27538,7 @@ function EditorToolbarBar({
|
|
|
26569
27538
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26570
27539
|
TableMenuItem,
|
|
26571
27540
|
{
|
|
26572
|
-
label:
|
|
27541
|
+
label: t.addColRight,
|
|
26573
27542
|
disabled: !state2.inTable,
|
|
26574
27543
|
onSelect: () => chain()?.addColumnAfter().run()
|
|
26575
27544
|
}
|
|
@@ -26578,7 +27547,7 @@ function EditorToolbarBar({
|
|
|
26578
27547
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26579
27548
|
TableMenuItem,
|
|
26580
27549
|
{
|
|
26581
|
-
label:
|
|
27550
|
+
label: t.mergeCells,
|
|
26582
27551
|
disabled: !state2.canMergeCells,
|
|
26583
27552
|
onSelect: () => chain()?.mergeCells().run()
|
|
26584
27553
|
}
|
|
@@ -26586,7 +27555,7 @@ function EditorToolbarBar({
|
|
|
26586
27555
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26587
27556
|
TableMenuItem,
|
|
26588
27557
|
{
|
|
26589
|
-
label:
|
|
27558
|
+
label: t.splitCell,
|
|
26590
27559
|
disabled: !state2.canSplitCell,
|
|
26591
27560
|
onSelect: () => chain()?.splitCell().run()
|
|
26592
27561
|
}
|
|
@@ -26594,7 +27563,7 @@ function EditorToolbarBar({
|
|
|
26594
27563
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26595
27564
|
TableMenuItem,
|
|
26596
27565
|
{
|
|
26597
|
-
label:
|
|
27566
|
+
label: t.toggleHeaderRow,
|
|
26598
27567
|
disabled: !state2.inTable,
|
|
26599
27568
|
onSelect: () => chain()?.toggleHeaderRow().run()
|
|
26600
27569
|
}
|
|
@@ -26602,7 +27571,7 @@ function EditorToolbarBar({
|
|
|
26602
27571
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26603
27572
|
TableMenuItem,
|
|
26604
27573
|
{
|
|
26605
|
-
label:
|
|
27574
|
+
label: t.toggleHeaderCol,
|
|
26606
27575
|
disabled: !state2.inTable,
|
|
26607
27576
|
onSelect: () => chain()?.toggleHeaderColumn().run()
|
|
26608
27577
|
}
|
|
@@ -26611,7 +27580,7 @@ function EditorToolbarBar({
|
|
|
26611
27580
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26612
27581
|
TableMenuItem,
|
|
26613
27582
|
{
|
|
26614
|
-
label:
|
|
27583
|
+
label: t.deleteRow,
|
|
26615
27584
|
disabled: !state2.inTable,
|
|
26616
27585
|
onSelect: () => chain()?.deleteRow().run()
|
|
26617
27586
|
}
|
|
@@ -26619,7 +27588,7 @@ function EditorToolbarBar({
|
|
|
26619
27588
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26620
27589
|
TableMenuItem,
|
|
26621
27590
|
{
|
|
26622
|
-
label:
|
|
27591
|
+
label: t.deleteCol,
|
|
26623
27592
|
disabled: !state2.inTable,
|
|
26624
27593
|
onSelect: () => chain()?.deleteColumn().run()
|
|
26625
27594
|
}
|
|
@@ -26627,7 +27596,7 @@ function EditorToolbarBar({
|
|
|
26627
27596
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26628
27597
|
TableMenuItem,
|
|
26629
27598
|
{
|
|
26630
|
-
label:
|
|
27599
|
+
label: t.deleteTable,
|
|
26631
27600
|
disabled: !state2.inTable,
|
|
26632
27601
|
onSelect: () => chain()?.deleteTable().run()
|
|
26633
27602
|
}
|
|
@@ -26641,7 +27610,7 @@ function EditorToolbarBar({
|
|
|
26641
27610
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26642
27611
|
ToolbarButton,
|
|
26643
27612
|
{
|
|
26644
|
-
label:
|
|
27613
|
+
label: t.undo,
|
|
26645
27614
|
disabled: off || !state2.canUndo,
|
|
26646
27615
|
onClick: () => chain()?.undo().run(),
|
|
26647
27616
|
children: /* @__PURE__ */ jsxRuntime.jsx(IconUndo, { size: ICON_SIZE })
|
|
@@ -26652,7 +27621,7 @@ function EditorToolbarBar({
|
|
|
26652
27621
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26653
27622
|
ToolbarButton,
|
|
26654
27623
|
{
|
|
26655
|
-
label:
|
|
27624
|
+
label: t.redo,
|
|
26656
27625
|
disabled: off || !state2.canRedo,
|
|
26657
27626
|
onClick: () => chain()?.redo().run(),
|
|
26658
27627
|
children: /* @__PURE__ */ jsxRuntime.jsx(IconRedo, { size: ICON_SIZE })
|
|
@@ -26665,21 +27634,21 @@ function EditorToolbarBar({
|
|
|
26665
27634
|
};
|
|
26666
27635
|
const shell = {
|
|
26667
27636
|
"role": "toolbar",
|
|
26668
|
-
"aria-label":
|
|
27637
|
+
"aria-label": t.toolbarLabel,
|
|
26669
27638
|
"aria-disabled": disabled || void 0,
|
|
26670
27639
|
"className": variant === "bubble" ? BUBBLE_BAR_CLASS : TOOLBAR_BAR_CLASS,
|
|
26671
27640
|
"style": variant === "bubble" ? void 0 : TOOLBAR_BAR_STYLE
|
|
26672
27641
|
};
|
|
26673
27642
|
if (mobileView !== "main") {
|
|
26674
27643
|
const editing = {
|
|
26675
|
-
color: { icon: /* @__PURE__ */ jsxRuntime.jsx(IconTextColor, { size: ICON_SIZE }), label:
|
|
26676
|
-
link: { icon: /* @__PURE__ */ jsxRuntime.jsx(IconLink, { size: ICON_SIZE }), label:
|
|
27644
|
+
color: { icon: /* @__PURE__ */ jsxRuntime.jsx(IconTextColor, { size: ICON_SIZE }), label: t.textColor },
|
|
27645
|
+
link: { icon: /* @__PURE__ */ jsxRuntime.jsx(IconLink, { size: ICON_SIZE }), label: t.link }
|
|
26677
27646
|
}[mobileView];
|
|
26678
27647
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...shell, children: [
|
|
26679
27648
|
/* @__PURE__ */ jsxRuntime.jsx("div", { role: "group", className: "flex items-center gap-[2px]", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26680
27649
|
ToolbarButton,
|
|
26681
27650
|
{
|
|
26682
|
-
label:
|
|
27651
|
+
label: t.closeEditing(editing.label),
|
|
26683
27652
|
className: "px-[4px]",
|
|
26684
27653
|
onClick: () => setMobileView("main"),
|
|
26685
27654
|
children: [
|
|
@@ -26701,9 +27670,9 @@ function EditorToolbarBar({
|
|
|
26701
27670
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
26702
27671
|
ColorPalette,
|
|
26703
27672
|
{
|
|
26704
|
-
colors:
|
|
27673
|
+
colors: colorOptions,
|
|
26705
27674
|
columns: 4,
|
|
26706
|
-
clearLabel:
|
|
27675
|
+
clearLabel: t.clearColor,
|
|
26707
27676
|
onPick: applyColor,
|
|
26708
27677
|
onClear: clearColor
|
|
26709
27678
|
}
|
|
@@ -27000,7 +27969,7 @@ var SEditor = /* @__PURE__ */ react.forwardRef(function SEditor2({
|
|
|
27000
27969
|
value,
|
|
27001
27970
|
defaultValue,
|
|
27002
27971
|
onValueChange,
|
|
27003
|
-
placeholder
|
|
27972
|
+
placeholder: placeholderProp,
|
|
27004
27973
|
minHeight = 200,
|
|
27005
27974
|
maxHeight,
|
|
27006
27975
|
simple = false,
|
|
@@ -27033,6 +28002,9 @@ var SEditor = /* @__PURE__ */ react.forwardRef(function SEditor2({
|
|
|
27033
28002
|
className,
|
|
27034
28003
|
style
|
|
27035
28004
|
}, ref) {
|
|
28005
|
+
const runRules2 = useRunRules();
|
|
28006
|
+
const t = useLocale().messages.editor;
|
|
28007
|
+
const placeholder = placeholderProp ?? t.placeholder;
|
|
27036
28008
|
const [ruleError, setRuleError] = react.useState("");
|
|
27037
28009
|
const [selfFocused, setSelfFocused] = react.useState(false);
|
|
27038
28010
|
const controlId = useFieldControlId();
|
|
@@ -27043,7 +28015,7 @@ var SEditor = /* @__PURE__ */ react.forwardRef(function SEditor2({
|
|
|
27043
28015
|
const editable = !disabled && !readOnly;
|
|
27044
28016
|
const handleInput = (html) => {
|
|
27045
28017
|
onValueChange?.(html);
|
|
27046
|
-
if (ruleError !== "") setRuleError(
|
|
28018
|
+
if (ruleError !== "") setRuleError(runRules2(html, rules));
|
|
27047
28019
|
};
|
|
27048
28020
|
const handleFocusChange = (next) => {
|
|
27049
28021
|
setSelfFocused(next);
|
|
@@ -27052,7 +28024,7 @@ var SEditor = /* @__PURE__ */ react.forwardRef(function SEditor2({
|
|
|
27052
28024
|
return;
|
|
27053
28025
|
}
|
|
27054
28026
|
onBlur?.();
|
|
27055
|
-
if (rules && rules.length > 0) setRuleError(
|
|
28027
|
+
if (rules && rules.length > 0) setRuleError(runRules2(htmlRef.current, rules));
|
|
27056
28028
|
};
|
|
27057
28029
|
const handleReady = () => {
|
|
27058
28030
|
if (!pendingFocusRef.current) return;
|
|
@@ -27062,7 +28034,7 @@ var SEditor = /* @__PURE__ */ react.forwardRef(function SEditor2({
|
|
|
27062
28034
|
useFormField({
|
|
27063
28035
|
name,
|
|
27064
28036
|
validate: () => {
|
|
27065
|
-
const msg =
|
|
28037
|
+
const msg = runRules2(htmlRef.current, rules);
|
|
27066
28038
|
setRuleError(msg);
|
|
27067
28039
|
return msg === "";
|
|
27068
28040
|
},
|
|
@@ -27236,6 +28208,8 @@ var SSlider = /* @__PURE__ */ react.forwardRef(function SSlider2({
|
|
|
27236
28208
|
className,
|
|
27237
28209
|
style
|
|
27238
28210
|
}, ref) {
|
|
28211
|
+
const runRules2 = useRunRules();
|
|
28212
|
+
const t = useLocale().messages.slider;
|
|
27239
28213
|
const isRange = Array.isArray(value);
|
|
27240
28214
|
const values = isRange ? value : [value ?? min];
|
|
27241
28215
|
const toOut = (v) => isRange ? [v[0], v[1]] : v[0];
|
|
@@ -27243,7 +28217,7 @@ var SSlider = /* @__PURE__ */ react.forwardRef(function SSlider2({
|
|
|
27243
28217
|
useFormField({
|
|
27244
28218
|
name,
|
|
27245
28219
|
validate: () => {
|
|
27246
|
-
const msg =
|
|
28220
|
+
const msg = runRules2(value, rules);
|
|
27247
28221
|
setRuleError(msg);
|
|
27248
28222
|
return msg === "";
|
|
27249
28223
|
},
|
|
@@ -27339,13 +28313,13 @@ var SSlider = /* @__PURE__ */ react.forwardRef(function SSlider2({
|
|
|
27339
28313
|
if (!interactive) return;
|
|
27340
28314
|
const next = toOut(v);
|
|
27341
28315
|
onValueChange?.(next);
|
|
27342
|
-
if (ruleError !== "") setRuleError(
|
|
28316
|
+
if (ruleError !== "") setRuleError(runRules2(next, rules));
|
|
27343
28317
|
},
|
|
27344
28318
|
onValueCommit: (v) => {
|
|
27345
28319
|
if (!interactive) return;
|
|
27346
28320
|
const next = toOut(v);
|
|
27347
28321
|
onValueCommit?.(next);
|
|
27348
|
-
if (rules && rules.length > 0) setRuleError(
|
|
28322
|
+
if (rules && rules.length > 0) setRuleError(runRules2(next, rules));
|
|
27349
28323
|
},
|
|
27350
28324
|
onPointerDown: () => interactive && setDragging(true),
|
|
27351
28325
|
onPointerUp: () => setDragging(false),
|
|
@@ -27394,7 +28368,7 @@ var SSlider = /* @__PURE__ */ react.forwardRef(function SSlider2({
|
|
|
27394
28368
|
RSlider__namespace.Thumb,
|
|
27395
28369
|
{
|
|
27396
28370
|
id: i === 0 ? thumbId : void 0,
|
|
27397
|
-
"aria-label": isRange ? `${label ?? ""} ${i === 0 ?
|
|
28371
|
+
"aria-label": isRange ? `${label ?? ""} ${i === 0 ? t.minValue : t.maxValue}`.trim() : label,
|
|
27398
28372
|
"aria-valuetext": formatValue(v),
|
|
27399
28373
|
"aria-readonly": readOnly || void 0,
|
|
27400
28374
|
onFocus: () => setFocusIndex(i),
|
|
@@ -27520,28 +28494,41 @@ var CHIPFILTER = {
|
|
|
27520
28494
|
itemTextSelected: "var(--cmp-chipFilter-item-text-selected)"
|
|
27521
28495
|
};
|
|
27522
28496
|
var DEFAULT_CUSTOM_MAX_RANGE = 90;
|
|
27523
|
-
var
|
|
27524
|
-
|
|
27525
|
-
|
|
27526
|
-
|
|
27527
|
-
|
|
27528
|
-
|
|
27529
|
-
|
|
27530
|
-
|
|
27531
|
-
|
|
27532
|
-
|
|
27533
|
-
|
|
27534
|
-
|
|
27535
|
-
|
|
27536
|
-
|
|
27537
|
-
|
|
27538
|
-
|
|
27539
|
-
|
|
27540
|
-
|
|
27541
|
-
|
|
27542
|
-
|
|
27543
|
-
|
|
27544
|
-
|
|
28497
|
+
var defaultPresetCache = /* @__PURE__ */ new WeakMap();
|
|
28498
|
+
var STRUCTURE_MESSAGES = resolveMessages(DEFAULT_LOCALE);
|
|
28499
|
+
var getDefaultPresets = (m) => {
|
|
28500
|
+
const cached = defaultPresetCache.get(m.chipFilter);
|
|
28501
|
+
if (cached) return cached;
|
|
28502
|
+
const t = m.chipFilter;
|
|
28503
|
+
const created = {
|
|
28504
|
+
period: [
|
|
28505
|
+
{ value: "day", label: t.periodDay },
|
|
28506
|
+
{ value: "month", label: t.periodMonth },
|
|
28507
|
+
{ value: "quarter", label: t.periodQuarter },
|
|
28508
|
+
{ value: "half", label: t.periodHalf },
|
|
28509
|
+
{ value: "year", label: t.periodYear },
|
|
28510
|
+
{ value: "custom", label: t.custom, custom: true }
|
|
28511
|
+
],
|
|
28512
|
+
/** presets 를 지정하지 않은 datepicker-range 필드가 쓰는 기본 프리셋 목록.
|
|
28513
|
+
* 프리셋 라디오 자체를 없애고 캘린더 하나만 두려면 presets: [] 를 명시한다 */
|
|
28514
|
+
range: [
|
|
28515
|
+
{ value: "today", label: t.today, resolve: () => todayIso() },
|
|
28516
|
+
{
|
|
28517
|
+
value: "last7",
|
|
28518
|
+
label: t.last7,
|
|
28519
|
+
resolve: () => [rangeStartIso(todayIso(), 7), todayIso()]
|
|
28520
|
+
},
|
|
28521
|
+
{
|
|
28522
|
+
value: "last30",
|
|
28523
|
+
label: t.last30,
|
|
28524
|
+
resolve: () => [rangeStartIso(todayIso(), 30), todayIso()]
|
|
28525
|
+
},
|
|
28526
|
+
{ value: "custom", label: t.custom, custom: true }
|
|
28527
|
+
]
|
|
28528
|
+
};
|
|
28529
|
+
defaultPresetCache.set(m.chipFilter, created);
|
|
28530
|
+
return created;
|
|
28531
|
+
};
|
|
27545
28532
|
var isKeywordValue = (value) => typeof value === "object" && value != null && !Array.isArray(value) && "keywords" in value;
|
|
27546
28533
|
var isPeriodValue = (value) => typeof value === "object" && value != null && !Array.isArray(value) && "unit" in value;
|
|
27547
28534
|
var keywordEntries = (value) => {
|
|
@@ -27633,18 +28620,20 @@ var addDaysIso = (iso, n) => {
|
|
|
27633
28620
|
};
|
|
27634
28621
|
var rangeStartIso = (today, days) => addDaysIso(today, -(days - 1));
|
|
27635
28622
|
var isInlineDateField = (field) => field.type === "datepicker-range" && field.radioButton === true && (field.presets?.length ?? 0) > 0;
|
|
27636
|
-
var getFieldPresets = (field) => {
|
|
27637
|
-
if (field.type === "datepicker-statistics") return field.presets ??
|
|
27638
|
-
return field.presets ??
|
|
28623
|
+
var getFieldPresets = (field, m) => {
|
|
28624
|
+
if (field.type === "datepicker-statistics") return field.presets ?? getDefaultPresets(m).period;
|
|
28625
|
+
return field.presets ?? getDefaultPresets(m).range;
|
|
27639
28626
|
};
|
|
27640
|
-
var getEffectiveMaxRange = (field) => {
|
|
28627
|
+
var getEffectiveMaxRange = (field, m) => {
|
|
27641
28628
|
if (field.maxRange !== void 0) return field.maxRange;
|
|
27642
|
-
const hasCustomPreset = getFieldPresets(field).some((preset) => preset.custom);
|
|
28629
|
+
const hasCustomPreset = getFieldPresets(field, m).some((preset) => preset.custom);
|
|
27643
28630
|
return hasCustomPreset ? DEFAULT_CUSTOM_MAX_RANGE : void 0;
|
|
27644
28631
|
};
|
|
27645
|
-
var getPresetLabel = (preset, maxRange) => {
|
|
27646
|
-
|
|
27647
|
-
|
|
28632
|
+
var getPresetLabel = (preset, maxRange, m) => {
|
|
28633
|
+
const t = m.chipFilter;
|
|
28634
|
+
if (!preset.custom || !maxRange || preset.label.toLowerCase().includes(t.maxWord.toLowerCase()))
|
|
28635
|
+
return preset.label;
|
|
28636
|
+
return `${preset.label} (${t.maxRangeHint(maxRange)})`;
|
|
27648
28637
|
};
|
|
27649
28638
|
var getDefaultPeriodInputValue = (unit, maxRange) => {
|
|
27650
28639
|
const today = todayIso();
|
|
@@ -27681,7 +28670,7 @@ var resolveFieldDefault = (field) => {
|
|
|
27681
28670
|
if (field.type === "datepicker-day") return todayIso();
|
|
27682
28671
|
if (field.type === "select" || field.type === "select-depth") return leafOptions(field)[0]?.value;
|
|
27683
28672
|
if (field.type === "datepicker-statistics") {
|
|
27684
|
-
const presets = getFieldPresets(field).filter((preset) => !preset.custom);
|
|
28673
|
+
const presets = getFieldPresets(field, STRUCTURE_MESSAGES).filter((preset) => !preset.custom);
|
|
27685
28674
|
const unit = presets.some((preset) => preset.value === "day") ? "day" : presets[0]?.value;
|
|
27686
28675
|
return unit ? createPeriodValue(unit) : void 0;
|
|
27687
28676
|
}
|
|
@@ -27729,20 +28718,16 @@ var isGroupSatisfied = (group, values) => {
|
|
|
27729
28718
|
if (group.rule.type === "requireAny") return keys.some((k) => !isEmptyValue(values[k]));
|
|
27730
28719
|
return true;
|
|
27731
28720
|
};
|
|
27732
|
-
var
|
|
27733
|
-
const
|
|
27734
|
-
if (
|
|
27735
|
-
return (code - 44032) % 28 === 0 ? vowel : consonant;
|
|
27736
|
-
};
|
|
27737
|
-
var defaultGroupTooltipMessage = (rule, fields) => {
|
|
27738
|
-
if (rule.type === "requireAll") return "\uD56D\uBAA9\uC744 \uBAA8\uB450 \uC120\uD0DD\uD574 \uC8FC\uC138\uC694.";
|
|
28721
|
+
var defaultGroupTooltipMessage = (rule, fields, m) => {
|
|
28722
|
+
const t = m.chipFilter;
|
|
28723
|
+
if (rule.type === "requireAll") return t.requireAll;
|
|
27739
28724
|
if (rule.type === "requireAny") {
|
|
27740
28725
|
const name = rule.dataGroupName;
|
|
27741
|
-
if (!name) return
|
|
27742
|
-
return
|
|
28726
|
+
if (!name) return t.requireAnyDefault;
|
|
28727
|
+
return t.requireAnyNamed(name);
|
|
27743
28728
|
}
|
|
27744
|
-
const label = fields.find((f) => f.key === rule.key)?.label ??
|
|
27745
|
-
return
|
|
28729
|
+
const label = fields.find((f) => f.key === rule.key)?.label ?? t.fieldFallback;
|
|
28730
|
+
return t.requireField(label);
|
|
27746
28731
|
};
|
|
27747
28732
|
var toDateRange = (value) => Array.isArray(value) ? [value[0], value[1]] : [value, value];
|
|
27748
28733
|
var sameDateValue = (a, b) => {
|
|
@@ -27761,20 +28746,24 @@ var matchPresetId = (presets, value) => {
|
|
|
27761
28746
|
return presets.find((preset) => preset.custom)?.value ?? null;
|
|
27762
28747
|
};
|
|
27763
28748
|
var optionLabel = (field, value) => leafOptions(field).find((option) => option.value === value)?.label ?? String(value);
|
|
27764
|
-
var formatValueList = (labels) => {
|
|
28749
|
+
var formatValueList = (labels, m) => {
|
|
27765
28750
|
if (labels.length <= 1) return labels[0] ?? "";
|
|
27766
|
-
return
|
|
28751
|
+
return m.chipFilter.valueListMore(labels[0], labels.length - 1);
|
|
27767
28752
|
};
|
|
27768
|
-
var displayValue = (field, value) => {
|
|
28753
|
+
var displayValue = (field, value, m) => {
|
|
28754
|
+
const t = m.chipFilter;
|
|
27769
28755
|
if (isEmptyValue(value)) return "";
|
|
27770
28756
|
if (isMultiSelectType(field.type)) {
|
|
27771
28757
|
const optionsField = field;
|
|
27772
28758
|
const values = toArrayValue(value);
|
|
27773
28759
|
const selectableValues = selectableLeafValues(optionsField);
|
|
27774
28760
|
if (selectableValues.length > 1 && selectableValues.every((selectableValue) => values.includes(selectableValue))) {
|
|
27775
|
-
return
|
|
28761
|
+
return m.common.all;
|
|
27776
28762
|
}
|
|
27777
|
-
return formatValueList(
|
|
28763
|
+
return formatValueList(
|
|
28764
|
+
values.map((v) => optionLabel(optionsField, v)),
|
|
28765
|
+
m
|
|
28766
|
+
);
|
|
27778
28767
|
}
|
|
27779
28768
|
if (field.type === "select" || field.type === "select-depth") {
|
|
27780
28769
|
return optionLabel(field, value);
|
|
@@ -27785,23 +28774,24 @@ var displayValue = (field, value) => {
|
|
|
27785
28774
|
}
|
|
27786
28775
|
if (field.type === "datepicker-statistics") {
|
|
27787
28776
|
if (!isPeriodValue(value)) {
|
|
27788
|
-
const preset2 = getFieldPresets(field).find((p) => p.value === value);
|
|
28777
|
+
const preset2 = getFieldPresets(field, m).find((p) => p.value === value);
|
|
27789
28778
|
return preset2?.label ?? String(value);
|
|
27790
28779
|
}
|
|
27791
|
-
const preset = getFieldPresets(field).find((p) => p.value === value.unit);
|
|
28780
|
+
const preset = getFieldPresets(field, m).find((p) => p.value === value.unit);
|
|
27792
28781
|
const label = preset?.label ?? value.unit;
|
|
27793
|
-
if (value.unit === "quarter") return `${label}(${value.value ?? 1}
|
|
27794
|
-
if (value.unit === "half")
|
|
28782
|
+
if (value.unit === "quarter") return `${label}(${t.quarter(Number(value.value ?? 1))})`;
|
|
28783
|
+
if (value.unit === "half")
|
|
28784
|
+
return `${label}(${value.value === "second" ? t.secondHalf : t.firstHalf})`;
|
|
27795
28785
|
if (Array.isArray(value.value)) return `${value.value[0]} ~ ${value.value[1]}`;
|
|
27796
28786
|
return value.value != null && value.value !== "" ? String(value.value) : label;
|
|
27797
28787
|
}
|
|
27798
|
-
if (field.type === "keyword") return formatValueList(keywordEntries(value));
|
|
28788
|
+
if (field.type === "keyword") return formatValueList(keywordEntries(value), m);
|
|
27799
28789
|
return String(value);
|
|
27800
28790
|
};
|
|
27801
|
-
var chipDisplayValue = (field, value) => {
|
|
27802
|
-
const text = displayValue(field, value);
|
|
28791
|
+
var chipDisplayValue = (field, value, m) => {
|
|
28792
|
+
const text = displayValue(field, value, m);
|
|
27803
28793
|
if (field.type !== "datepicker-range" || isEmptyValue(value)) return text;
|
|
27804
|
-
const presets = getFieldPresets(field);
|
|
28794
|
+
const presets = getFieldPresets(field, m);
|
|
27805
28795
|
if (presets.length === 0) return text;
|
|
27806
28796
|
const preset = presets.find((p) => p.value === matchPresetId(presets, value));
|
|
27807
28797
|
return preset && !preset.custom ? `${preset.label}(${text})` : text;
|
|
@@ -27820,6 +28810,8 @@ var SChipFilter = /* @__PURE__ */ react.forwardRef(function SChipFilter2({
|
|
|
27820
28810
|
className,
|
|
27821
28811
|
style
|
|
27822
28812
|
}, ref) {
|
|
28813
|
+
const messages = useLocale().messages;
|
|
28814
|
+
const t = messages.chipFilter;
|
|
27823
28815
|
const fields = react.useMemo(() => groups.flatMap((group) => group.fields), [groups]);
|
|
27824
28816
|
const values = normalizeValues(value);
|
|
27825
28817
|
const portalContainer = usePortalContainer();
|
|
@@ -27966,7 +28958,7 @@ var SChipFilter = /* @__PURE__ */ react.forwardRef(function SChipFilter2({
|
|
|
27966
28958
|
if (currentOpenField?.type === "keyword") {
|
|
27967
28959
|
return { width: CHIPFILTER_LISTBOX_WIDTH };
|
|
27968
28960
|
}
|
|
27969
|
-
if ((currentOpenField?.type === "datepicker-range" || currentOpenField?.type === "datepicker-statistics") && getFieldPresets(currentOpenField).length > 0) {
|
|
28961
|
+
if ((currentOpenField?.type === "datepicker-range" || currentOpenField?.type === "datepicker-statistics") && getFieldPresets(currentOpenField, STRUCTURE_MESSAGES).length > 0) {
|
|
27970
28962
|
return { width: CHIPFILTER_DATE_PRESET_LISTBOX_WIDTH };
|
|
27971
28963
|
}
|
|
27972
28964
|
return { width: CHIPFILTER_LISTBOX_WIDTH };
|
|
@@ -28073,7 +29065,7 @@ var SChipFilter = /* @__PURE__ */ react.forwardRef(function SChipFilter2({
|
|
|
28073
29065
|
const flushRun = () => {
|
|
28074
29066
|
if (runBuffer.length === 0) return;
|
|
28075
29067
|
const group = runGroupIndex != null ? groups[runGroupIndex] : void 0;
|
|
28076
|
-
const message = group?.rule ? group.tooltipMessage ?? defaultGroupTooltipMessage(group.rule, group.fields) : void 0;
|
|
29068
|
+
const message = group?.rule ? group.tooltipMessage ?? defaultGroupTooltipMessage(group.rule, group.fields, messages) : void 0;
|
|
28077
29069
|
if (message) {
|
|
28078
29070
|
nodes.push(
|
|
28079
29071
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -28138,7 +29130,7 @@ var SChipFilter = /* @__PURE__ */ react.forwardRef(function SChipFilter2({
|
|
|
28138
29130
|
{
|
|
28139
29131
|
icon: "close",
|
|
28140
29132
|
size: "xxs",
|
|
28141
|
-
ariaLabel:
|
|
29133
|
+
ariaLabel: t.removeFilter(field.label),
|
|
28142
29134
|
className: "shrink-0",
|
|
28143
29135
|
onClick: handleClear
|
|
28144
29136
|
}
|
|
@@ -28147,7 +29139,7 @@ var SChipFilter = /* @__PURE__ */ react.forwardRef(function SChipFilter2({
|
|
|
28147
29139
|
FilterChip,
|
|
28148
29140
|
{
|
|
28149
29141
|
field,
|
|
28150
|
-
valueText: chipDisplayValue(field, values[field.key]),
|
|
29142
|
+
valueText: chipDisplayValue(field, values[field.key], messages),
|
|
28151
29143
|
active: openKey === field.key,
|
|
28152
29144
|
applied: !isEmptyValue(values[field.key]),
|
|
28153
29145
|
disabled: disabled || field.disabled,
|
|
@@ -28199,7 +29191,7 @@ var SChipFilter = /* @__PURE__ */ react.forwardRef(function SChipFilter2({
|
|
|
28199
29191
|
color: disabled || inactiveFields.length === 0 ? CHIPFILTER.addTextDisabled : CHIPFILTER.addText
|
|
28200
29192
|
}
|
|
28201
29193
|
),
|
|
28202
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children:
|
|
29194
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: t.addFilter })
|
|
28203
29195
|
]
|
|
28204
29196
|
}
|
|
28205
29197
|
) }),
|
|
@@ -28215,7 +29207,7 @@ var SChipFilter = /* @__PURE__ */ react.forwardRef(function SChipFilter2({
|
|
|
28215
29207
|
event.preventDefault();
|
|
28216
29208
|
},
|
|
28217
29209
|
className: cn("z-50 min-w-[180px]", FLOATING_SLIDE_ANIM),
|
|
28218
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(ListBox, { children: inactiveFields.length > 0 ? inactiveFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onClick: () => addField(field.key), children: field.label }, field.key)) : /* @__PURE__ */ jsxRuntime.jsx(EmptyItem, { children:
|
|
29210
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ListBox, { children: inactiveFields.length > 0 ? inactiveFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx(MenuItem, { onClick: () => addField(field.key), children: field.label }, field.key)) : /* @__PURE__ */ jsxRuntime.jsx(EmptyItem, { children: t.noAddableFilter }) })
|
|
28219
29211
|
}
|
|
28220
29212
|
) })
|
|
28221
29213
|
] }),
|
|
@@ -28225,7 +29217,7 @@ var SChipFilter = /* @__PURE__ */ react.forwardRef(function SChipFilter2({
|
|
|
28225
29217
|
size: "sm",
|
|
28226
29218
|
icon: "reset",
|
|
28227
29219
|
iconColor: "grey_80",
|
|
28228
|
-
label:
|
|
29220
|
+
label: t.resetSearch,
|
|
28229
29221
|
labelClassName: "text-grey-80",
|
|
28230
29222
|
disabled: disabled || !canReset,
|
|
28231
29223
|
onClick: reset,
|
|
@@ -28324,6 +29316,7 @@ function FilterChip({
|
|
|
28324
29316
|
onOpen,
|
|
28325
29317
|
onClear
|
|
28326
29318
|
}) {
|
|
29319
|
+
const t = useLocale().messages.chipFilter;
|
|
28327
29320
|
const border = disabled ? CHIPFILTER.chipDisabledBorder : warning ? CHIPFILTER.chipWarningBorder : applied ? active ? "var(--color-blue-strong)" : CHIPFILTER.chipAppliedBorder : active ? CHIPFILTER.chipActiveBorder : CHIPFILTER.chipDefaultBorder;
|
|
28328
29321
|
const background = disabled ? CHIPFILTER.chipDisabledBg : applied ? CHIPFILTER.chipAppliedBg : CHIPFILTER.chipDefaultBg;
|
|
28329
29322
|
const textColor = disabled ? CHIPFILTER.chipDisabledText : CHIPFILTER.chipDefaultText;
|
|
@@ -28415,7 +29408,7 @@ function FilterChip({
|
|
|
28415
29408
|
{
|
|
28416
29409
|
icon: "close",
|
|
28417
29410
|
size: "xxs",
|
|
28418
|
-
ariaLabel:
|
|
29411
|
+
ariaLabel: t.clearFilter(field.label),
|
|
28419
29412
|
className: "shrink-0 self-center",
|
|
28420
29413
|
onClick: onClear
|
|
28421
29414
|
}
|
|
@@ -28433,6 +29426,8 @@ function EditorPanel({
|
|
|
28433
29426
|
onDraftChange,
|
|
28434
29427
|
onClose
|
|
28435
29428
|
}) {
|
|
29429
|
+
const messages = useLocale().messages;
|
|
29430
|
+
const t = messages.chipFilter;
|
|
28436
29431
|
const wrapsInPaddedTop = field.type === "datepicker-day" || field.type === "datepicker-range" || field.type === "datepicker-statistics";
|
|
28437
29432
|
const isScrollableListField = isSelectType(field.type) || field.type === "keyword";
|
|
28438
29433
|
const isMulti = isMultiSelectType(field.type);
|
|
@@ -28477,7 +29472,7 @@ function EditorPanel({
|
|
|
28477
29472
|
STextLink,
|
|
28478
29473
|
{
|
|
28479
29474
|
size: "sm",
|
|
28480
|
-
label: allSelected ?
|
|
29475
|
+
label: allSelected ? t.selectNone : t.selectAll,
|
|
28481
29476
|
labelClassName: "font-bold",
|
|
28482
29477
|
disabled,
|
|
28483
29478
|
onClick: toggleSelectAll,
|
|
@@ -28500,7 +29495,7 @@ function EditorPanel({
|
|
|
28500
29495
|
STextLink,
|
|
28501
29496
|
{
|
|
28502
29497
|
size: "sm",
|
|
28503
|
-
label:
|
|
29498
|
+
label: messages.common.search,
|
|
28504
29499
|
labelClassName: "font-bold",
|
|
28505
29500
|
onClick: onClose,
|
|
28506
29501
|
style: { color: CHIPFILTER.chipAppliedValue }
|
|
@@ -28586,8 +29581,9 @@ function DatePresetEditor({
|
|
|
28586
29581
|
disabled,
|
|
28587
29582
|
onValueChange
|
|
28588
29583
|
}) {
|
|
28589
|
-
const
|
|
28590
|
-
const
|
|
29584
|
+
const messages = useLocale().messages;
|
|
29585
|
+
const presets = getFieldPresets(field, messages);
|
|
29586
|
+
const maxRange = getEffectiveMaxRange(field, messages);
|
|
28591
29587
|
const [selectedId, setSelectedId] = react.useState(() => matchPresetId(presets, value));
|
|
28592
29588
|
const syncedInitialValueRef = react.useRef(!isEmptyValue(value));
|
|
28593
29589
|
react.useEffect(() => {
|
|
@@ -28625,7 +29621,7 @@ function DatePresetEditor({
|
|
|
28625
29621
|
{
|
|
28626
29622
|
val: preset.value,
|
|
28627
29623
|
value: selectedId,
|
|
28628
|
-
label: getPresetLabel(preset, maxRange),
|
|
29624
|
+
label: getPresetLabel(preset, maxRange, messages),
|
|
28629
29625
|
disabled,
|
|
28630
29626
|
onValueChange: () => selectPreset(preset)
|
|
28631
29627
|
},
|
|
@@ -28649,8 +29645,10 @@ function PeriodPresetEditor({
|
|
|
28649
29645
|
disabled,
|
|
28650
29646
|
onValueChange
|
|
28651
29647
|
}) {
|
|
28652
|
-
const
|
|
28653
|
-
const
|
|
29648
|
+
const messages = useLocale().messages;
|
|
29649
|
+
const t = messages.chipFilter;
|
|
29650
|
+
const presets = getFieldPresets(field, messages);
|
|
29651
|
+
const maxRange = getEffectiveMaxRange(field, messages);
|
|
28654
29652
|
const firstUnit = presets.find((preset) => !preset.custom)?.value ?? "day";
|
|
28655
29653
|
const [selectedId, setSelectedId] = react.useState(() => matchPresetId(presets, value) ?? firstUnit);
|
|
28656
29654
|
const periodValue = isPeriodValue(value) ? value : createPeriodValue(selectedId ?? firstUnit, maxRange);
|
|
@@ -28703,10 +29701,10 @@ function PeriodPresetEditor({
|
|
|
28703
29701
|
onValueChange: updateInputValue,
|
|
28704
29702
|
disabled,
|
|
28705
29703
|
options: [
|
|
28706
|
-
{ value: 1, label:
|
|
28707
|
-
{ value: 2, label:
|
|
28708
|
-
{ value: 3, label:
|
|
28709
|
-
{ value: 4, label:
|
|
29704
|
+
{ value: 1, label: t.quarter(1) },
|
|
29705
|
+
{ value: 2, label: t.quarter(2) },
|
|
29706
|
+
{ value: 3, label: t.quarter(3) },
|
|
29707
|
+
{ value: 4, label: t.quarter(4) }
|
|
28710
29708
|
]
|
|
28711
29709
|
}
|
|
28712
29710
|
);
|
|
@@ -28719,8 +29717,8 @@ function PeriodPresetEditor({
|
|
|
28719
29717
|
onValueChange: updateInputValue,
|
|
28720
29718
|
disabled,
|
|
28721
29719
|
options: [
|
|
28722
|
-
{ value: "first", label:
|
|
28723
|
-
{ value: "second", label:
|
|
29720
|
+
{ value: "first", label: t.firstHalf },
|
|
29721
|
+
{ value: "second", label: t.secondHalf }
|
|
28724
29722
|
]
|
|
28725
29723
|
}
|
|
28726
29724
|
);
|
|
@@ -28757,7 +29755,7 @@ function PeriodPresetEditor({
|
|
|
28757
29755
|
{
|
|
28758
29756
|
val: preset.value,
|
|
28759
29757
|
value: selectedId,
|
|
28760
|
-
label: getPresetLabel(preset, maxRange),
|
|
29758
|
+
label: getPresetLabel(preset, maxRange, messages),
|
|
28761
29759
|
disabled,
|
|
28762
29760
|
onValueChange: () => selectPreset(preset)
|
|
28763
29761
|
},
|
|
@@ -28775,6 +29773,8 @@ function InlineDatePresetFilter({
|
|
|
28775
29773
|
onValueChange,
|
|
28776
29774
|
onClear
|
|
28777
29775
|
}) {
|
|
29776
|
+
const messages = useLocale().messages;
|
|
29777
|
+
const t = messages.chipFilter;
|
|
28778
29778
|
const presets = (field.presets ?? []).filter((preset) => !preset.custom);
|
|
28779
29779
|
const [selectedId, setSelectedId] = react.useState(() => matchPresetId(presets, value));
|
|
28780
29780
|
const syncedInitialValueRef = react.useRef(!isEmptyValue(value));
|
|
@@ -28807,7 +29807,7 @@ function InlineDatePresetFilter({
|
|
|
28807
29807
|
field.label,
|
|
28808
29808
|
":"
|
|
28809
29809
|
] }),
|
|
28810
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-body-sm-bold", style: { color: badgeValueColor }, children: displayValue(field, value) })
|
|
29810
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "typo-body-sm-bold", style: { color: badgeValueColor }, children: displayValue(field, value, messages) })
|
|
28811
29811
|
] });
|
|
28812
29812
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-[8px]", children: [
|
|
28813
29813
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -28877,7 +29877,7 @@ function InlineDatePresetFilter({
|
|
|
28877
29877
|
{
|
|
28878
29878
|
icon: "close",
|
|
28879
29879
|
size: "xxs",
|
|
28880
|
-
ariaLabel:
|
|
29880
|
+
ariaLabel: t.clearFilter(field.label),
|
|
28881
29881
|
className: "shrink-0 self-center",
|
|
28882
29882
|
onClick: onClear
|
|
28883
29883
|
}
|
|
@@ -28887,14 +29887,14 @@ function InlineDatePresetFilter({
|
|
|
28887
29887
|
)
|
|
28888
29888
|
] });
|
|
28889
29889
|
}
|
|
28890
|
-
var
|
|
28891
|
-
{ value: "contains", label:
|
|
28892
|
-
{ value: "exact", label:
|
|
29890
|
+
var matchModeOptions = (t) => [
|
|
29891
|
+
{ value: "contains", label: t.keywordContains },
|
|
29892
|
+
{ value: "exact", label: t.keywordExact }
|
|
28893
29893
|
];
|
|
28894
|
-
var
|
|
29894
|
+
var excludeMatchModeOption = (t) => ({
|
|
28895
29895
|
value: "excludes",
|
|
28896
|
-
label:
|
|
28897
|
-
};
|
|
29896
|
+
label: t.keywordExcludes
|
|
29897
|
+
});
|
|
28898
29898
|
function KeywordEditor({
|
|
28899
29899
|
field,
|
|
28900
29900
|
value,
|
|
@@ -28903,6 +29903,7 @@ function KeywordEditor({
|
|
|
28903
29903
|
onValueCommit,
|
|
28904
29904
|
onDraftChange
|
|
28905
29905
|
}) {
|
|
29906
|
+
const t = useLocale().messages.chipFilter;
|
|
28906
29907
|
const entries4 = keywordEntries(value);
|
|
28907
29908
|
const [draftText, setDraftText] = react.useState("");
|
|
28908
29909
|
const [mode, setMode] = react.useState(
|
|
@@ -28975,7 +29976,7 @@ function KeywordEditor({
|
|
|
28975
29976
|
{
|
|
28976
29977
|
className: "shrink-0 whitespace-nowrap typo-body-sm-medium",
|
|
28977
29978
|
style: { color: CHIPFILTER.listboxLabel },
|
|
28978
|
-
children:
|
|
29979
|
+
children: t.keywordCondition
|
|
28979
29980
|
}
|
|
28980
29981
|
),
|
|
28981
29982
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -28983,7 +29984,7 @@ function KeywordEditor({
|
|
|
28983
29984
|
{
|
|
28984
29985
|
size: "xs",
|
|
28985
29986
|
style: { width: 150 },
|
|
28986
|
-
options: field.excludeMode ? [...
|
|
29987
|
+
options: field.excludeMode ? [...matchModeOptions(t), excludeMatchModeOption(t)] : matchModeOptions(t),
|
|
28987
29988
|
value: mode,
|
|
28988
29989
|
disabled,
|
|
28989
29990
|
onValueChange: (next) => changeMode(next)
|
|
@@ -28998,7 +29999,7 @@ function KeywordEditor({
|
|
|
28998
29999
|
ref: inputRef,
|
|
28999
30000
|
value: draftText,
|
|
29000
30001
|
disabled,
|
|
29001
|
-
placeholder: field.placeholder ?? (field.input === "csv" ?
|
|
30002
|
+
placeholder: field.placeholder ?? (field.input === "csv" ? t.keywordHintCsv : t.keywordHintEnter),
|
|
29002
30003
|
onChange: (event) => changeDraft(event.target.value),
|
|
29003
30004
|
onPaste,
|
|
29004
30005
|
onKeyDown,
|
|
@@ -29030,6 +30031,7 @@ function KeywordEntryRow({
|
|
|
29030
30031
|
disabled,
|
|
29031
30032
|
onRemove
|
|
29032
30033
|
}) {
|
|
30034
|
+
const t = useLocale().messages.chipFilter;
|
|
29033
30035
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
29034
30036
|
"div",
|
|
29035
30037
|
{
|
|
@@ -29048,7 +30050,7 @@ function KeywordEntryRow({
|
|
|
29048
30050
|
{
|
|
29049
30051
|
icon: "close",
|
|
29050
30052
|
size: "xxs",
|
|
29051
|
-
ariaLabel:
|
|
30053
|
+
ariaLabel: t.removeItem(label),
|
|
29052
30054
|
className: "invisible shrink-0 group-hover:visible",
|
|
29053
30055
|
onClick: onRemove
|
|
29054
30056
|
}
|
|
@@ -29067,6 +30069,7 @@ function OptionList({
|
|
|
29067
30069
|
disabled,
|
|
29068
30070
|
onValueChange
|
|
29069
30071
|
}) {
|
|
30072
|
+
const messages = useLocale().messages;
|
|
29070
30073
|
const selected = multiple ? toArrayValue(value) : [];
|
|
29071
30074
|
const singleValue = !multiple && (typeof value === "string" || typeof value === "number") ? value : null;
|
|
29072
30075
|
const [search, setSearch] = react.useState("");
|
|
@@ -29098,7 +30101,7 @@ function OptionList({
|
|
|
29098
30101
|
allSelected ? selected.filter((v) => !leafValues.includes(v)) : [...selected, ...leafValues.filter((v) => !selected.includes(v))]
|
|
29099
30102
|
);
|
|
29100
30103
|
};
|
|
29101
|
-
if (flat.length === 0) return /* @__PURE__ */ jsxRuntime.jsx(EmptyItem, { children:
|
|
30104
|
+
if (flat.length === 0) return /* @__PURE__ */ jsxRuntime.jsx(EmptyItem, { children: messages.select.empty });
|
|
29102
30105
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [
|
|
29103
30106
|
showSearch && /* @__PURE__ */ jsxRuntime.jsx(
|
|
29104
30107
|
"div",
|
|
@@ -29113,7 +30116,7 @@ function OptionList({
|
|
|
29113
30116
|
value: search,
|
|
29114
30117
|
onValueChange: setSearch,
|
|
29115
30118
|
disabled,
|
|
29116
|
-
placeholder:
|
|
30119
|
+
placeholder: messages.common.search,
|
|
29117
30120
|
clearable: true,
|
|
29118
30121
|
width: "100%"
|
|
29119
30122
|
}
|
|
@@ -29131,7 +30134,7 @@ function OptionList({
|
|
|
29131
30134
|
"pb-[var(--cmp-chipFilter-listbox-list-paddingY)]"
|
|
29132
30135
|
),
|
|
29133
30136
|
children: [
|
|
29134
|
-
showSearch && filteredOptions.length === 0 && /* @__PURE__ */ jsxRuntime.jsx(EmptyItem, { children:
|
|
30137
|
+
showSearch && filteredOptions.length === 0 && /* @__PURE__ */ jsxRuntime.jsx(EmptyItem, { children: messages.chipFilter.noSearchResults }),
|
|
29135
30138
|
filteredOptions.map((option, index) => {
|
|
29136
30139
|
const rowKey = `${option.value}-${index}`;
|
|
29137
30140
|
if (option.isGroup) {
|
|
@@ -29417,7 +30420,9 @@ var SChipInput = /* @__PURE__ */ react.forwardRef(function SChipInput2({
|
|
|
29417
30420
|
className,
|
|
29418
30421
|
style
|
|
29419
30422
|
}, ref) {
|
|
29420
|
-
const
|
|
30423
|
+
const runRules2 = useRunRules();
|
|
30424
|
+
const { input: ti, chipInput: t, select: selectT } = useLocale().messages;
|
|
30425
|
+
const placeholder = placeholderProp ?? (separators?.includes(",") ? t.placeholderWithComma : t.placeholder);
|
|
29421
30426
|
const autoId = react.useId();
|
|
29422
30427
|
const controlId = `${autoId}-input`;
|
|
29423
30428
|
const resolvedName = name ?? autoId;
|
|
@@ -29447,19 +30452,18 @@ var SChipInput = /* @__PURE__ */ react.forwardRef(function SChipInput2({
|
|
|
29447
30452
|
const duplicateMessage = react.useMemo(() => {
|
|
29448
30453
|
const seen = /* @__PURE__ */ new Set();
|
|
29449
30454
|
for (const v of values) {
|
|
29450
|
-
if (seen.has(v))
|
|
29451
|
-
return duplicateLabel ? `\uC774\uBBF8 \uC785\uB825\uB41C ${duplicateLabel}\uC785\uB2C8\uB2E4.` : "\uC911\uBCF5\uB41C \uAC12\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4.";
|
|
30455
|
+
if (seen.has(v)) return duplicateLabel ? t.duplicateNamed(duplicateLabel) : t.duplicate;
|
|
29452
30456
|
seen.add(v);
|
|
29453
30457
|
}
|
|
29454
30458
|
return "";
|
|
29455
|
-
}, [values, duplicateLabel]);
|
|
29456
|
-
const ruleMessage = react.useMemo(() =>
|
|
30459
|
+
}, [values, duplicateLabel, t]);
|
|
30460
|
+
const ruleMessage = react.useMemo(() => runRules2(values, rules), [runRules2, values, rules]);
|
|
29457
30461
|
const resolvedErrorMessage = duplicateMessage || ruleMessage || errorMessage;
|
|
29458
30462
|
const resolvedError = error || duplicateMessage !== "" || ruleMessage !== "";
|
|
29459
30463
|
const resolvedStatus = status ?? (resolvedError ? "error" : void 0);
|
|
29460
30464
|
useFormField({
|
|
29461
30465
|
name,
|
|
29462
|
-
validate: () =>
|
|
30466
|
+
validate: () => runRules2(values, rules) === "" && duplicateMessage === "",
|
|
29463
30467
|
resetValidation: () => {
|
|
29464
30468
|
}
|
|
29465
30469
|
});
|
|
@@ -29759,18 +30763,14 @@ var SChipInput = /* @__PURE__ */ react.forwardRef(function SChipInput2({
|
|
|
29759
30763
|
style: { width: 1, height: 12, backgroundColor: "var(--color-divider-default)" }
|
|
29760
30764
|
}
|
|
29761
30765
|
),
|
|
29762
|
-
showMaxCount && /* @__PURE__ */ jsxRuntime.
|
|
30766
|
+
showMaxCount && /* @__PURE__ */ jsxRuntime.jsx(
|
|
29763
30767
|
"span",
|
|
29764
30768
|
{
|
|
29765
30769
|
className: cn(
|
|
29766
30770
|
"s-chip-input__max-count text-12",
|
|
29767
30771
|
isMax ? "text-(--sys-color-fg-warning)" : "text-(--cmp-chipInput-text-placeholder)"
|
|
29768
30772
|
),
|
|
29769
|
-
children:
|
|
29770
|
-
"\uCD5C\uB300 ",
|
|
29771
|
-
maxCount,
|
|
29772
|
-
"\uAC1C"
|
|
29773
|
-
]
|
|
30773
|
+
children: t.maxCount(maxCount)
|
|
29774
30774
|
}
|
|
29775
30775
|
),
|
|
29776
30776
|
showResetLink && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -29779,7 +30779,7 @@ var SChipInput = /* @__PURE__ */ react.forwardRef(function SChipInput2({
|
|
|
29779
30779
|
className: "s-chip-input__reset",
|
|
29780
30780
|
icon: "reset",
|
|
29781
30781
|
iconColor: "var(--color-grey-65)",
|
|
29782
|
-
label:
|
|
30782
|
+
label: ti.clearInput,
|
|
29783
30783
|
underline: true,
|
|
29784
30784
|
disabled,
|
|
29785
30785
|
onClick: reset,
|
|
@@ -29810,7 +30810,7 @@ var SChipInput = /* @__PURE__ */ react.forwardRef(function SChipInput2({
|
|
|
29810
30810
|
className: "s-chip-input__suggestions flex w-full flex-col outline-none",
|
|
29811
30811
|
onMouseDown: (e) => e.preventDefault(),
|
|
29812
30812
|
children: [
|
|
29813
|
-
loading2 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "s-chip-input__suggestions-empty p-sd-12 text-center text-12 leading-sd-20 text-(--color-grey-65)", children:
|
|
30813
|
+
loading2 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "s-chip-input__suggestions-empty p-sd-12 text-center text-12 leading-sd-20 text-(--color-grey-65)", children: selectT.loading }),
|
|
29814
30814
|
!effectiveAutocomplete ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-sd-8 px-sd-12 py-sd-6", children: items.map((item4, i) => {
|
|
29815
30815
|
const selected = values.includes(item4);
|
|
29816
30816
|
const active = i === activeIndex && !selected;
|
|
@@ -29897,7 +30897,7 @@ var SBarcodeInput = /* @__PURE__ */ react.forwardRef(
|
|
|
29897
30897
|
clearable = false,
|
|
29898
30898
|
autoFocus,
|
|
29899
30899
|
name,
|
|
29900
|
-
placeholder
|
|
30900
|
+
placeholder: placeholderProp,
|
|
29901
30901
|
disabled = false,
|
|
29902
30902
|
readOnly = false,
|
|
29903
30903
|
rules,
|
|
@@ -29925,6 +30925,9 @@ var SBarcodeInput = /* @__PURE__ */ react.forwardRef(
|
|
|
29925
30925
|
className,
|
|
29926
30926
|
style
|
|
29927
30927
|
}, ref) {
|
|
30928
|
+
const runRules2 = useRunRules();
|
|
30929
|
+
const { common: tc, input: ti } = useLocale().messages;
|
|
30930
|
+
const placeholder = placeholderProp ?? ti.placeholder;
|
|
29928
30931
|
const f = FONT3[size];
|
|
29929
30932
|
const [ruleError, setRuleError] = react.useState("");
|
|
29930
30933
|
const controlId = useFieldControlId();
|
|
@@ -29932,7 +30935,7 @@ var SBarcodeInput = /* @__PURE__ */ react.forwardRef(
|
|
|
29932
30935
|
useFormField({
|
|
29933
30936
|
name,
|
|
29934
30937
|
validate: () => {
|
|
29935
|
-
const msg =
|
|
30938
|
+
const msg = runRules2(value, rules);
|
|
29936
30939
|
setRuleError(msg);
|
|
29937
30940
|
return msg === "";
|
|
29938
30941
|
},
|
|
@@ -29998,11 +31001,11 @@ var SBarcodeInput = /* @__PURE__ */ react.forwardRef(
|
|
|
29998
31001
|
autoFocus,
|
|
29999
31002
|
onChange: (e) => {
|
|
30000
31003
|
onValueChange?.(e.target.value);
|
|
30001
|
-
if (ruleError !== "") setRuleError(
|
|
31004
|
+
if (ruleError !== "") setRuleError(runRules2(e.target.value, rules));
|
|
30002
31005
|
},
|
|
30003
31006
|
onFocus: () => onFocus?.(),
|
|
30004
31007
|
onBlur: (e) => {
|
|
30005
|
-
if (rules && rules.length > 0) setRuleError(
|
|
31008
|
+
if (rules && rules.length > 0) setRuleError(runRules2(e.target.value, rules));
|
|
30006
31009
|
onBlur?.();
|
|
30007
31010
|
},
|
|
30008
31011
|
className: cn(
|
|
@@ -30026,10 +31029,10 @@ var SBarcodeInput = /* @__PURE__ */ react.forwardRef(
|
|
|
30026
31029
|
{
|
|
30027
31030
|
icon: "close",
|
|
30028
31031
|
size: "xxs",
|
|
30029
|
-
ariaLabel:
|
|
31032
|
+
ariaLabel: tc.clear,
|
|
30030
31033
|
onClick: () => {
|
|
30031
31034
|
onValueChange?.("");
|
|
30032
|
-
setRuleError(
|
|
31035
|
+
setRuleError(runRules2("", rules));
|
|
30033
31036
|
}
|
|
30034
31037
|
}
|
|
30035
31038
|
)
|
|
@@ -30090,11 +31093,11 @@ function parseTimeValue(value) {
|
|
|
30090
31093
|
function formatTimeValue(hour, minute) {
|
|
30091
31094
|
return `${padTimePart(clampTimePart(hour, 0, 23))}:${padTimePart(clampTimePart(minute, 0, 59))}`;
|
|
30092
31095
|
}
|
|
30093
|
-
function formatTimeDisplay(value, type) {
|
|
31096
|
+
function formatTimeDisplay(value, type, t) {
|
|
30094
31097
|
if (value == null || value === "") return "";
|
|
30095
31098
|
const { hour, minute } = parseTimeValue(value);
|
|
30096
31099
|
if (type === "default") return formatTimeValue(hour, minute);
|
|
30097
|
-
const meridiem = hour >= 12 ?
|
|
31100
|
+
const meridiem = hour >= 12 ? t.pm : t.am;
|
|
30098
31101
|
const displayHour = hour % 12 === 0 ? 12 : hour % 12;
|
|
30099
31102
|
return `${meridiem} ${padTimePart(displayHour)}:${padTimePart(minute)}`;
|
|
30100
31103
|
}
|
|
@@ -30177,6 +31180,7 @@ function TimeListbox({
|
|
|
30177
31180
|
labelPrefix,
|
|
30178
31181
|
elevated = true
|
|
30179
31182
|
}) {
|
|
31183
|
+
const t = useLocale().messages.date;
|
|
30180
31184
|
const toState = (v) => v ? parseTimeValue(v) : null;
|
|
30181
31185
|
const [time, setTime] = react.useState(() => toState(value));
|
|
30182
31186
|
react.useEffect(() => {
|
|
@@ -30200,13 +31204,13 @@ function TimeListbox({
|
|
|
30200
31204
|
const hour = time?.hour;
|
|
30201
31205
|
const minute = time?.minute ?? 0;
|
|
30202
31206
|
const meridiem = hour === void 0 ? void 0 : hour >= 12 ? "PM" : "AM";
|
|
30203
|
-
const prefix = labelPrefix
|
|
31207
|
+
const prefix = labelPrefix ?? "";
|
|
30204
31208
|
const meridiemItems = ["AM", "PM"].map((item4) => {
|
|
30205
31209
|
const base = item4 === "AM" ? 0 : 12;
|
|
30206
31210
|
const range = HOURS_24.slice(base, base + 12);
|
|
30207
31211
|
return {
|
|
30208
31212
|
key: item4,
|
|
30209
|
-
label: item4 === "AM" ?
|
|
31213
|
+
label: item4 === "AM" ? t.am : t.pm,
|
|
30210
31214
|
selected: meridiem === item4,
|
|
30211
31215
|
disabled: range.every(hourBlocked),
|
|
30212
31216
|
onSelect: () => {
|
|
@@ -30220,14 +31224,14 @@ function TimeListbox({
|
|
|
30220
31224
|
const h = display % 12 + (meridiem === "PM" ? 12 : 0);
|
|
30221
31225
|
return {
|
|
30222
31226
|
key: String(display),
|
|
30223
|
-
label:
|
|
31227
|
+
label: t.hourItem(padTimePart(display)),
|
|
30224
31228
|
selected: hour === h,
|
|
30225
31229
|
disabled: hourBlocked(h),
|
|
30226
31230
|
onSelect: () => commit([h], { hour: h, minute }, "hour")
|
|
30227
31231
|
};
|
|
30228
31232
|
}) : HOURS_24.map((h) => ({
|
|
30229
31233
|
key: String(h),
|
|
30230
|
-
label:
|
|
31234
|
+
label: t.hourItem(padTimePart(h)),
|
|
30231
31235
|
selected: hour === h,
|
|
30232
31236
|
disabled: hourBlocked(h),
|
|
30233
31237
|
onSelect: () => commit([h], { hour: h, minute }, "hour")
|
|
@@ -30235,7 +31239,7 @@ function TimeListbox({
|
|
|
30235
31239
|
const minuteHour = hour ?? (meridiem === "PM" ? 12 : 0);
|
|
30236
31240
|
const minuteItems = minutes.map((m) => ({
|
|
30237
31241
|
key: String(m),
|
|
30238
|
-
label:
|
|
31242
|
+
label: t.minuteItem(padTimePart(m)),
|
|
30239
31243
|
selected: time != null && minute === m,
|
|
30240
31244
|
disabled: blocked(minuteHour, m),
|
|
30241
31245
|
onSelect: () => commit([minuteHour], { hour: minuteHour, minute: m }, "minute")
|
|
@@ -30257,12 +31261,12 @@ function TimeListbox({
|
|
|
30257
31261
|
style: { height: MODE_LIST_HEIGHT },
|
|
30258
31262
|
children: [
|
|
30259
31263
|
showMeridiem && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
30260
|
-
/* @__PURE__ */ jsxRuntime.jsx(ListColumn, { ariaLabel:
|
|
31264
|
+
/* @__PURE__ */ jsxRuntime.jsx(ListColumn, { ariaLabel: t.meridiemAria(prefix), items: meridiemItems }),
|
|
30261
31265
|
divider
|
|
30262
31266
|
] }),
|
|
30263
|
-
/* @__PURE__ */ jsxRuntime.jsx(ListColumn, { ariaLabel:
|
|
31267
|
+
/* @__PURE__ */ jsxRuntime.jsx(ListColumn, { ariaLabel: t.hourAria(prefix), items: hourItems }),
|
|
30264
31268
|
divider,
|
|
30265
|
-
/* @__PURE__ */ jsxRuntime.jsx(ListColumn, { ariaLabel:
|
|
31269
|
+
/* @__PURE__ */ jsxRuntime.jsx(ListColumn, { ariaLabel: t.minuteAria(prefix), items: minuteItems })
|
|
30266
31270
|
]
|
|
30267
31271
|
}
|
|
30268
31272
|
);
|
|
@@ -30299,6 +31303,8 @@ function STimePicker({
|
|
|
30299
31303
|
className,
|
|
30300
31304
|
style
|
|
30301
31305
|
}) {
|
|
31306
|
+
const runRules2 = useRunRules();
|
|
31307
|
+
const t = useLocale().messages.date;
|
|
30302
31308
|
const portalContainer = usePortalContainer();
|
|
30303
31309
|
const [open, setOpen] = react.useState(false);
|
|
30304
31310
|
const triggerId = useFieldControlId();
|
|
@@ -30308,12 +31314,16 @@ function STimePicker({
|
|
|
30308
31314
|
const dims = TIMEPICKER_SIZE_CONFIG[size] ?? TIMEPICKER_SIZE_CONFIG.sm;
|
|
30309
31315
|
const normalized = value ? formatTimeValue(parseTimeValue(value).hour, parseTimeValue(value).minute) : null;
|
|
30310
31316
|
const effectiveShowMeridiem = showMeridiem ?? type === "midday";
|
|
30311
|
-
const displayText = formatTimeDisplay(
|
|
31317
|
+
const displayText = formatTimeDisplay(
|
|
31318
|
+
normalized,
|
|
31319
|
+
effectiveShowMeridiem ? "midday" : "default",
|
|
31320
|
+
t
|
|
31321
|
+
);
|
|
30312
31322
|
const hasValue = normalized != null && normalized !== "";
|
|
30313
31323
|
useFormField({
|
|
30314
31324
|
name,
|
|
30315
31325
|
validate: () => {
|
|
30316
|
-
const msg =
|
|
31326
|
+
const msg = runRules2(value, rules);
|
|
30317
31327
|
setRuleError(msg);
|
|
30318
31328
|
return msg === "";
|
|
30319
31329
|
},
|
|
@@ -30325,11 +31335,11 @@ function STimePicker({
|
|
|
30325
31335
|
if (disabled) return;
|
|
30326
31336
|
setOpen(next);
|
|
30327
31337
|
onOpenChange?.(next);
|
|
30328
|
-
if (!next && rules && rules.length > 0) setRuleError(
|
|
31338
|
+
if (!next && rules && rules.length > 0) setRuleError(runRules2(value, rules));
|
|
30329
31339
|
};
|
|
30330
31340
|
const commitValue = (next) => {
|
|
30331
31341
|
onValueChange?.(next);
|
|
30332
|
-
if (rules && rules.length > 0) setRuleError(
|
|
31342
|
+
if (rules && rules.length > 0) setRuleError(runRules2(next, rules));
|
|
30333
31343
|
};
|
|
30334
31344
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30335
31345
|
SField,
|
|
@@ -30408,7 +31418,7 @@ function STimePicker({
|
|
|
30408
31418
|
{
|
|
30409
31419
|
icon: "close",
|
|
30410
31420
|
size: "xs",
|
|
30411
|
-
ariaLabel:
|
|
31421
|
+
ariaLabel: t.clearTime,
|
|
30412
31422
|
onClick: (event) => {
|
|
30413
31423
|
event.stopPropagation();
|
|
30414
31424
|
commitValue(null);
|
|
@@ -30463,9 +31473,9 @@ function normalizeTimeRangeValue(value, rangeOrder = "strict") {
|
|
|
30463
31473
|
}
|
|
30464
31474
|
return normalized;
|
|
30465
31475
|
}
|
|
30466
|
-
function formatTimeRangeDisplay(value, type) {
|
|
31476
|
+
function formatTimeRangeDisplay(value, type, t) {
|
|
30467
31477
|
if (value == null || value[0] === "" || value[1] === "") return "";
|
|
30468
|
-
return `${formatTimeDisplay(value[0], type)} ~ ${formatTimeDisplay(value[1], type)}`;
|
|
31478
|
+
return `${formatTimeDisplay(value[0], type, t)} ~ ${formatTimeDisplay(value[1], type, t)}`;
|
|
30469
31479
|
}
|
|
30470
31480
|
var MIDDAY_FIELD_MIN_WIDTH = {
|
|
30471
31481
|
sm: 178,
|
|
@@ -30486,6 +31496,7 @@ function RangeTimeSelector({
|
|
|
30486
31496
|
rangeOrder,
|
|
30487
31497
|
onChange
|
|
30488
31498
|
}) {
|
|
31499
|
+
const t = useLocale().messages.date;
|
|
30489
31500
|
const range = value ?? ["00:00", "23:59"];
|
|
30490
31501
|
const strict = rangeOrder !== "allow-cross-day";
|
|
30491
31502
|
const change = (side, time) => {
|
|
@@ -30508,7 +31519,7 @@ function RangeTimeSelector({
|
|
|
30508
31519
|
value: side === "start" ? range[0] : range[1],
|
|
30509
31520
|
showMeridiem,
|
|
30510
31521
|
minuteStep,
|
|
30511
|
-
labelPrefix: side === "start" ?
|
|
31522
|
+
labelPrefix: side === "start" ? t.start : t.end,
|
|
30512
31523
|
elevated: false,
|
|
30513
31524
|
isDisabled: strict && side === "end" ? (minutes) => minutes < toMinutes(range[0]) : void 0,
|
|
30514
31525
|
onChange: (time) => change(side, time)
|
|
@@ -30529,9 +31540,9 @@ function RangeTimeSelector({
|
|
|
30529
31540
|
boxShadow: "var(--shadow-spread-sm), var(--shadow-spread-md)"
|
|
30530
31541
|
},
|
|
30531
31542
|
children: [
|
|
30532
|
-
renderPanel("start",
|
|
31543
|
+
renderPanel("start", t.startTime),
|
|
30533
31544
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "self-stretch w-px bg-[var(--sys-color-divider-default)]" }),
|
|
30534
|
-
renderPanel("end",
|
|
31545
|
+
renderPanel("end", t.endTime)
|
|
30535
31546
|
]
|
|
30536
31547
|
}
|
|
30537
31548
|
);
|
|
@@ -30569,6 +31580,8 @@ function STimeRangePicker({
|
|
|
30569
31580
|
className,
|
|
30570
31581
|
style
|
|
30571
31582
|
}) {
|
|
31583
|
+
const runRules2 = useRunRules();
|
|
31584
|
+
const t = useLocale().messages.date;
|
|
30572
31585
|
const portalContainer = usePortalContainer();
|
|
30573
31586
|
const [open, setOpen] = react.useState(false);
|
|
30574
31587
|
const triggerId = useFieldControlId();
|
|
@@ -30580,13 +31593,14 @@ function STimeRangePicker({
|
|
|
30580
31593
|
const effectiveShowMeridiem = showMeridiem ?? type === "midday";
|
|
30581
31594
|
const displayText = formatTimeRangeDisplay(
|
|
30582
31595
|
normalized,
|
|
30583
|
-
effectiveShowMeridiem ? "midday" : "default"
|
|
31596
|
+
effectiveShowMeridiem ? "midday" : "default",
|
|
31597
|
+
t
|
|
30584
31598
|
);
|
|
30585
31599
|
const hasValue = normalized != null && normalized[0] !== "" && normalized[1] !== "";
|
|
30586
31600
|
useFormField({
|
|
30587
31601
|
name,
|
|
30588
31602
|
validate: () => {
|
|
30589
|
-
const msg =
|
|
31603
|
+
const msg = runRules2(value, rules);
|
|
30590
31604
|
setRuleError(msg);
|
|
30591
31605
|
return msg === "";
|
|
30592
31606
|
},
|
|
@@ -30598,11 +31612,11 @@ function STimeRangePicker({
|
|
|
30598
31612
|
if (disabled) return;
|
|
30599
31613
|
setOpen(next);
|
|
30600
31614
|
onOpenChange?.(next);
|
|
30601
|
-
if (!next && rules && rules.length > 0) setRuleError(
|
|
31615
|
+
if (!next && rules && rules.length > 0) setRuleError(runRules2(value, rules));
|
|
30602
31616
|
};
|
|
30603
31617
|
const commitValue = (next) => {
|
|
30604
31618
|
onValueChange?.(next);
|
|
30605
|
-
if (rules && rules.length > 0) setRuleError(
|
|
31619
|
+
if (rules && rules.length > 0) setRuleError(runRules2(next, rules));
|
|
30606
31620
|
};
|
|
30607
31621
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30608
31622
|
SField,
|
|
@@ -30681,7 +31695,7 @@ function STimeRangePicker({
|
|
|
30681
31695
|
{
|
|
30682
31696
|
icon: "close",
|
|
30683
31697
|
size: "xs",
|
|
30684
|
-
ariaLabel:
|
|
31698
|
+
ariaLabel: t.clearTimeRange,
|
|
30685
31699
|
onClick: (event) => {
|
|
30686
31700
|
event.stopPropagation();
|
|
30687
31701
|
commitValue(null);
|