@vjdesigns/vjdesigns-ui 1.5.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/dist/ai/llms-full.txt +457 -448
- package/dist/ai/llms.txt +1 -1
- package/dist/ai/registry.json +126 -116
- package/dist/components/data-display/DataGrid/DataGrid.module.css.cjs.js +1 -1
- package/dist/components/data-display/DataGrid/DataGrid.module.css.mjs +1 -1
- package/dist/components/data-display/VirtualList/VirtualList.module.css.cjs.js +1 -1
- package/dist/components/data-display/VirtualList/VirtualList.module.css.mjs +1 -1
- package/dist/components/feedback/ErrorSummary/ErrorSummary.module.css.cjs.js +1 -1
- package/dist/components/feedback/ErrorSummary/ErrorSummary.module.css.mjs +1 -1
- package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.cjs.js +1 -1
- package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.mjs +1 -1
- package/dist/components/forms/Rating/Rating.module.css.cjs.js +1 -1
- package/dist/components/forms/Rating/Rating.module.css.mjs +1 -1
- package/dist/components/forms/TimePicker/TimePicker.module.css.cjs.js +1 -1
- package/dist/components/forms/TimePicker/TimePicker.module.css.mjs +1 -1
- package/dist/components/layout/ResizablePanels/ResizablePanels.cjs.js +1 -1
- package/dist/components/layout/ResizablePanels/ResizablePanels.mjs +1 -0
- package/dist/components/layout/ResizablePanels/ResizablePanels.module.css.cjs.js +1 -1
- package/dist/components/layout/ResizablePanels/ResizablePanels.module.css.mjs +1 -1
- package/dist/components/layout/ScrollArea/ScrollArea.module.css.cjs.js +1 -1
- package/dist/components/layout/ScrollArea/ScrollArea.module.css.mjs +1 -1
- package/dist/components/navigation/ContextMenu/ContextMenu.module.css.cjs.js +1 -1
- package/dist/components/navigation/ContextMenu/ContextMenu.module.css.mjs +1 -1
- package/dist/components/overlays/HoverCard/HoverCard.module.css.cjs.js +1 -1
- package/dist/components/overlays/HoverCard/HoverCard.module.css.mjs +2 -2
- package/dist/components/primitives/Button/Button.cjs.js +1 -1
- package/dist/components/primitives/Button/Button.mjs +37 -37
- package/dist/components/utilities/LocaleProvider/LocaleProvider.module.css.cjs.js +1 -1
- package/dist/components/utilities/LocaleProvider/LocaleProvider.module.css.mjs +1 -1
- package/dist/components/utilities/Theme/Theme.cjs.js +1 -1
- package/dist/components/utilities/Theme/Theme.d.ts +6 -6
- package/dist/components/utilities/Theme/Theme.mjs +49 -45
- package/dist/hooks/useFormValidation.cjs.js +1 -1
- package/dist/hooks/useFormValidation.mjs +1 -1
- package/dist/i18n/en.cjs.js +1 -1
- package/dist/i18n/en.mjs +50 -0
- package/dist/i18n/types.d.ts +56 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +106 -106
- package/dist/locales/ar.cjs.js +1 -1
- package/dist/locales/ar.mjs +50 -0
- package/dist/locales/bn.cjs.js +1 -1
- package/dist/locales/bn.mjs +50 -0
- package/dist/locales/cs.cjs.js +1 -1
- package/dist/locales/cs.mjs +50 -0
- package/dist/locales/da.cjs.js +1 -1
- package/dist/locales/da.mjs +50 -0
- package/dist/locales/de.cjs.js +1 -1
- package/dist/locales/de.mjs +50 -0
- package/dist/locales/el.cjs.js +1 -1
- package/dist/locales/el.mjs +50 -0
- package/dist/locales/es.cjs.js +1 -1
- package/dist/locales/es.mjs +50 -0
- package/dist/locales/fa.cjs.js +1 -1
- package/dist/locales/fa.mjs +50 -0
- package/dist/locales/fi.cjs.js +1 -1
- package/dist/locales/fi.mjs +50 -0
- package/dist/locales/fr.cjs.js +1 -1
- package/dist/locales/fr.mjs +50 -0
- package/dist/locales/he.cjs.js +1 -1
- package/dist/locales/he.mjs +50 -0
- package/dist/locales/hi.cjs.js +1 -1
- package/dist/locales/hi.mjs +50 -0
- package/dist/locales/hu.cjs.js +1 -1
- package/dist/locales/hu.mjs +50 -0
- package/dist/locales/id.cjs.js +1 -1
- package/dist/locales/id.mjs +50 -0
- package/dist/locales/it.cjs.js +1 -1
- package/dist/locales/it.mjs +50 -0
- package/dist/locales/ja.cjs.js +1 -1
- package/dist/locales/ja.mjs +50 -0
- package/dist/locales/ko.cjs.js +1 -1
- package/dist/locales/ko.mjs +50 -0
- package/dist/locales/nb.cjs.js +1 -1
- package/dist/locales/nb.mjs +50 -0
- package/dist/locales/nl.cjs.js +1 -1
- package/dist/locales/nl.mjs +50 -0
- package/dist/locales/pl.cjs.js +1 -1
- package/dist/locales/pl.mjs +50 -0
- package/dist/locales/pt-BR.cjs.js +1 -1
- package/dist/locales/pt-BR.mjs +50 -0
- package/dist/locales/ro.cjs.js +1 -1
- package/dist/locales/ro.mjs +50 -0
- package/dist/locales/ru.cjs.js +1 -1
- package/dist/locales/ru.mjs +50 -0
- package/dist/locales/sv.cjs.js +1 -1
- package/dist/locales/sv.mjs +50 -0
- package/dist/locales/th.cjs.js +1 -1
- package/dist/locales/th.mjs +50 -0
- package/dist/locales/tr.cjs.js +1 -1
- package/dist/locales/tr.mjs +50 -0
- package/dist/locales/uk.cjs.js +1 -1
- package/dist/locales/uk.mjs +50 -0
- package/dist/locales/ur.cjs.js +1 -1
- package/dist/locales/ur.mjs +50 -0
- package/dist/locales/vi.cjs.js +1 -1
- package/dist/locales/vi.mjs +50 -0
- package/dist/locales/zh-Hans.cjs.js +1 -1
- package/dist/locales/zh-Hans.mjs +50 -0
- package/dist/locales/zh-Hant.cjs.js +1 -1
- package/dist/locales/zh-Hant.mjs +50 -0
- package/dist/utils/brandPalette.cjs.js +3 -3
- package/dist/utils/brandPalette.d.ts +4 -2
- package/dist/utils/brandPalette.mjs +20 -20
- package/dist/vjdesigns-ui.css +1 -1
- package/package.json +1 -1
package/dist/locales/zh-Hans.mjs
CHANGED
|
@@ -432,6 +432,56 @@ var t = e("zh-Hans"), n = {
|
|
|
432
432
|
close: "关闭"
|
|
433
433
|
}
|
|
434
434
|
},
|
|
435
|
+
auth: {
|
|
436
|
+
or: "或",
|
|
437
|
+
unexpected: "出了点问题,请重试。",
|
|
438
|
+
email: "邮箱",
|
|
439
|
+
username: "用户名",
|
|
440
|
+
password: "密码",
|
|
441
|
+
signIn: {
|
|
442
|
+
title: "登录",
|
|
443
|
+
submit: "登录",
|
|
444
|
+
remember: "记住我",
|
|
445
|
+
forgot: "忘记密码?",
|
|
446
|
+
noAccount: "还没有账户?",
|
|
447
|
+
signUp: "创建账户"
|
|
448
|
+
},
|
|
449
|
+
signUp: {
|
|
450
|
+
title: "创建账户",
|
|
451
|
+
submit: "创建账户",
|
|
452
|
+
name: "姓名",
|
|
453
|
+
confirmPassword: "确认密码",
|
|
454
|
+
mismatch: "两次输入的密码不一致。",
|
|
455
|
+
termsRequired: "请同意条款以继续。",
|
|
456
|
+
haveAccount: "已有账户?",
|
|
457
|
+
signIn: "登录"
|
|
458
|
+
},
|
|
459
|
+
forgot: {
|
|
460
|
+
title: "重置密码",
|
|
461
|
+
description: "输入你的邮箱,我们会发送一个重置密码的链接。",
|
|
462
|
+
submit: "发送链接",
|
|
463
|
+
sent: (e) => `如果 ${e} 存在账户,我们已向其发送重置密码的链接。`,
|
|
464
|
+
resend: "再次发送",
|
|
465
|
+
back: "返回登录"
|
|
466
|
+
},
|
|
467
|
+
reset: {
|
|
468
|
+
title: "设置新密码",
|
|
469
|
+
password: "新密码",
|
|
470
|
+
submit: "保存密码",
|
|
471
|
+
done: "你的密码已更改。"
|
|
472
|
+
},
|
|
473
|
+
verify: {
|
|
474
|
+
title: "输入验证码",
|
|
475
|
+
description: (e) => `请输入我们发送到 ${e} 的验证码。`,
|
|
476
|
+
descriptionGeneric: "请输入我们发送给你的验证码。",
|
|
477
|
+
code: "验证码",
|
|
478
|
+
submit: "验证",
|
|
479
|
+
resend: "重新发送验证码",
|
|
480
|
+
resendIn: (e) => `${e} 后重新发送验证码`,
|
|
481
|
+
resent: "我们已发送新的验证码。",
|
|
482
|
+
incomplete: "请输入完整的验证码。"
|
|
483
|
+
}
|
|
484
|
+
},
|
|
435
485
|
validation: {
|
|
436
486
|
required: "此字段为必填项。",
|
|
437
487
|
email: "请输入电子邮件地址,例如 name@example.com。",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e=require("../i18n/plural.cjs.js").num(`zh-Hant`),t={avatar:{status:{online:`線上`,away:`離開`,busy:`忙碌`,offline:`離線`},fallbackName:`使用者`,surplus:t=>`以及另外 ${e(t)} 人`},carousel:{previous:`上一張投影片`,next:`下一張投影片`,start:`開始自動播放投影片`,stop:`停止自動播放投影片`,slides:`投影片`,indicators:`選擇投影片`,goTo:e=>`前往第 ${e} 張投影片`,slide:(e,t)=>`第 ${e} 張,共 ${t} 張`,status:(e,t,n)=>e===t?`第 ${e} 張投影片,共 ${n} 張`:`第 ${e} 至 ${t} 張投影片,共 ${n} 張`},chip:{remove:`移除`,removeNamed:e=>`移除 ${e}`},codeBlock:{copy:`複製程式碼`,copied:`已複製`,copyError:`無法複製。請選取程式碼後手動複製。`,region:e=>`程式碼:${e}`,snippet:`程式碼片段`},emptyState:{noData:{title:`這裡還沒有內容`,description:`有內容可顯示時,會出現在這裡。`},noResults:{title:e=>e?`找不到與「${e}」相關的結果`:`找不到結果`,description:`請嘗試其他搜尋字詞或清除篩選條件。`},error:{title:`發生問題`,description:`無法載入此內容。請再試一次。`},offline:{title:`你目前離線`,description:`請檢查網路連線,然後再試一次。`},noAccess:{title:`你沒有存取權`,description:`請向管理員申請檢視權限。`},firstRun:{title:`開始吧`,description:`建立第一個項目,就可以開始了。`},retry:`重試`},stat:{loading:`載入中`,increased:e=>`增加了 ${e}`,decreased:e=>`減少了 ${e}`,changed:e=>`變化了 ${e}`,noChange:`無變化`,progress:`進度`,progressNamed:e=>`${e}進度`},table:{loading:`載入中`,scrollRegion:`可捲動的表格`,selectAll:`選取所有列`,selectRow:`選取列`,selectRowNamed:e=>`選取列 ${e}`,selectColumn:`選取`},dataGrid:{ascending:`遞增`,descending:`遞減`,sorted:(e,t)=>`依${e}排序,${t}`,sortCleared:`已清除排序`,selectedCount:t=>`已選取 ${e(t)} 列`,rowCount:t=>`${e(t)} 列`,range:(t,n,r)=>`第 ${e(t)}–${e(n)} 列,共 ${e(r)} 列`,empty:`沒有資料列`,noResults:`沒有符合的資料列`,resizeColumn:e=>`調整「${e}」欄寬`},chart:{showTable:`顯示資料表`,hideTable:`隱藏資料表`},timeline:{status:{complete:`已完成`,current:`目前步驟`,upcoming:`即將進行`,error:`錯誤`},region:`時間軸`},treeView:{loading:`載入中…`,error:`無法載入項目。請收合後再展開以重試。`},alert:{dismiss:`關閉`,prefix:{info:`提示:`,success:`成功:`,warning:`警告:`,danger:`錯誤:`,neutral:`注意:`}},banner:{dismiss:`關閉橫幅`,region:`公告`},button:{loading:`載入中`},skeleton:{loading:`載入中…`},spinner:{loading:`載入中`},toast:{region:`通知`,dismiss:`關閉通知`,queued:t=>`還有 ${e(t)} 則通知`,tone:{info:`提示`,success:`成功`,warning:`警告`,danger:`錯誤`,loading:`載入中`}},kbd:{then:`然後`,keys:{command:`Command`,control:`Control`,windows:`Windows`,super:`Super`,option:`Option`,alt:`Alt`,shift:`Shift`,return:`Return`,enter:`Enter`,escape:`Esc`,tab:`Tab`,space:`空白鍵`,delete:`Delete`,forwardDelete:`向後刪除`,backspace:`退格鍵`,capsLock:`大寫鎖定`,up:`向上鍵`,down:`向下鍵`,left:`向左鍵`,right:`向右鍵`,pageUp:`Page Up`,pageDown:`Page Down`,home:`Home`,end:`End`}},colorPicker:{area:`飽和度與亮度`,areaRoleDescription:`二維滑桿`,saturation:`飽和度`,brightness:`亮度`,hue:`色相`,degrees:`度`,alpha:`不透明度`,input:`顏色值`,invalidInput:`請輸入顏色,例如 #1d4ed8、rgb(29, 78, 216) 或 hsl(224, 76%, 48%)。已保留上一個有效顏色。`,swatches:`預設顏色`,eyeDropper:`從螢幕擷取顏色`,eyeDropperPicked:e=>`已擷取${e}`,dialog:`選擇顏色`,colors:{hues:{red:`紅色`,orange:`橙色`,gold:`金色`,yellow:`黃色`,yellowGreen:`黃綠色`,green:`綠色`,teal:`藍綠色`,cyan:`青色`,blue:`藍色`,purple:`紫色`,magenta:`洋紅色`,pink:`粉紅色`},black:`黑色`,white:`白色`,gray:`灰色`,brown:`棕色`,olive:`橄欖色`,dark:e=>`深${e}`,light:e=>`淺${e}`,muted:e=>`暗淡的${e}`,vivid:e=>`鮮豔的${e}`,withOpacity:(e,t)=>`${e},不透明度 ${t}%`}},combobox:{loading:`載入中…`,empty:`沒有結果`,results:t=>`有 ${e(t)} 個結果`,create:e=>`建立「${e}」`,clear:`清除選取`,required:`請選擇一個選項。`,showSuggestions:`顯示建議`,hideSuggestions:`隱藏建議`,selected:`已選取`,optionSelected:e=>`已選取${e}`,optionRemoved:e=>`已移除${e}`,cleared:`已清除選取`},datePicker:{chooseDate:`選擇日期`,changeDate:e=>`變更日期,${e}`,dialog:`選擇日期`,format:e=>`格式:${e}`,pattern:{day:`DD`,month:`MM`,year:`YYYY`},previousMonth:`上個月`,nextMonth:`下個月`,startDate:`開始日期`,endDate:`結束日期`,chooseDates:`選擇日期範圍`,changeDates:e=>`變更日期範圍,${e}`,datesDialog:`選擇日期範圍`,invalid:{unparseable:e=>`請依 ${e} 格式輸入日期。`,between:(e,t)=>`請選擇 ${e} 至 ${t} 之間的日期。`,onOrAfter:e=>`請選擇 ${e} 或之後的日期。`,onOrBefore:e=>`請選擇 ${e} 或之前的日期。`,unavailable:e=>`${e} 無法使用。請選擇其他日期。`,rangeBetween:(e,t)=>`請選擇 ${e} 至 ${t} 之間的日期範圍。`,rangeOnOrAfter:e=>`請選擇 ${e} 或之後的日期範圍。`,rangeOnOrBefore:e=>`請選擇 ${e} 或之前的日期範圍。`,endBeforeStart:`結束日期必須等於或晚於開始日期。`,startAfterEnd:`開始日期必須等於或早於結束日期。`}},timePicker:{format:e=>`範例:${e}`,showTimes:`顯示時間`,hideTimes:`隱藏時間`,date:`日期`,time:`時間`,invalid:{unparseable:e=>`請輸入時間,例如 ${e}。`,between:(e,t)=>`請選擇 ${e} 至 ${t} 之間的時間。`,onOrAfter:e=>`請選擇 ${e} 或之後的時間。`,onOrBefore:e=>`請選擇 ${e} 或之前的時間。`}},fileUpload:{list:`已選取的檔案`,remove:e=>`移除 ${e}`,uploaded:`已上傳`,uploadFailed:`上傳失敗`,uploading:`上傳中`,uploadingPercent:e=>`上傳中 ${e}%`,progressFor:e=>`${e} 的上傳進度`,announceUploaded:e=>`已上傳:${e}。`,announceFailed:e=>`上傳失敗:${e}。`,announceAdded:(t,n)=>{let r=[];return t&&r.push(`已新增 ${e(t)} 個檔案`),n&&r.push(`${e(n)} 個遭拒`),`${r.join(`,`)}。`},typeNotAccepted:`不支援此檔案類型。`,typeNotAcceptedUse:e=>`不支援此檔案類型。請使用 ${e}。`,tooLarge:e=>`檔案超過 ${e}。`,tooSmall:e=>`檔案小於 ${e}。`,duplicate:`此檔案已新增。`,tooMany:t=>`檔案過多。最多可新增 ${e(t)} 個檔案。`,onlyOne:`只能新增一個檔案。`,upTo:e=>`最大 ${e}`,upToEach:e=>`每個最大 ${e}`,maxFiles:t=>`最多 ${e(t)} 個檔案`,uploadFiles:`上傳檔案`,browseFiles:`瀏覽檔案`,dropFiles:`將檔案拖放到這裡,或瀏覽`,dropFile:`將檔案拖放到這裡,或瀏覽`,required:`必填`,rejected:t=>`有 ${e(t)} 個檔案無法新增`,dismissErrors:`關閉檔案錯誤`,typeGroups:{image:`圖片`,video:`影片`,audio:`音訊`,text:`文字檔`},typeGroup:e=>`${e} 檔案`,units:{B:`B`,KB:`KB`,MB:`MB`,GB:`GB`,TB:`TB`}},input:{clear:`清除`},numberInput:{decrement:`減少`,increment:`增加`},passwordInput:{show:`顯示密碼`,capsLock:`大寫鎖定已開啟`,strength:[`太弱`,`弱`,`普通`,`良好`,`強`],strengthPrefix:`強度:`,requirements:`密碼必須包含:`,met:`已符合`,notMet:`未符合`,announceStrength:e=>`密碼強度:${e}。`,allMet:`已符合所有條件。`,someMet:(e,t)=>`已符合 ${t} 項條件中的 ${e} 項。`},rating:{option:(e,t)=>`${e} 分(滿分 ${t} 分)`,display:(e,t)=>`評分 ${e} 分(滿分 ${t} 分)`,count:t=>`(${e(t)} 則評論)`,clearHint:`在已選評分上按空白鍵或 Delete 鍵即可清除評分。`,unrated:`未評分`},searchInput:{clear:`清除搜尋`,results:t=>t===0?`沒有結果`:`${e(t)} 個結果`,search:`搜尋`},switch:{on:`開`,off:`關`,saving:`儲存中`},tagInput:{added:e=>e.length===1?`已新增${e[0]}`:`已新增 ${e.length} 個標籤:${e.join(`、`)}`,removed:e=>`已移除${e}`,duplicate:e=>`${e}已新增`,invalid:e=>`「${e}」無效`,maxReached:e=>`已達最多 ${e} 個標籤的上限`,required:`請至少新增一個標籤。`,empty:`無`,remove:e=>`移除 ${e}`,list:`標籤`,instructions:e=>`按${e}新增標籤。按退格鍵或向左鍵可移至已新增的標籤。`,keys:{enter:`Enter`,tab:`Tab`,comma:`逗號`,semicolon:`分號`,space:`空白`,pipe:`直線`,other:e=>`「${e}」`}},textarea:{limitReached:`已達字數上限`,remaining:t=>`還可輸入 ${e(t)} 個字元`},resizablePanels:{handle:`調整面板大小`,resizePanel:e=>`調整「${e}」大小`},breadcrumbs:{nav:`導覽路徑`,expand:t=>`再顯示 ${e(t)} 項`},contextMenu:{label:`內容選單`},navbar:{openMenu:`開啟選單`,menu:`選單`,nav:`主選單`},pagination:{nav:`分頁`,previous:`上一頁`,next:`下一頁`,first:`第一頁`,last:`最後一頁`,currentPage:e=>`第 ${e} 頁`,goToPage:e=>`前往第 ${e} 頁`,status:`第 {page} 頁,共 {total} 頁`},sidebar:{nav:`主導覽`,collapse:`收合側邊欄`,expand:`展開側邊欄`},skipLink:{label:`跳至主要內容`},stepper:{status:{complete:`已完成`,current:`目前`,upcoming:`尚未開始`,error:`錯誤`},nav:`進度`,allComplete:e=>`全部 ${e} 個步驟已完成`,stepTitled:(e,t,n)=>`第 ${e} 步,共 ${t} 步:${n}`,step:(e,t)=>`第 ${e} 步,共 ${t} 步`,count:(e,t)=>`${e}/${t}`,prefix:e=>`第 ${e} 步:`},commandPalette:{label:`命令面板`,placeholder:`輸入命令或搜尋…`,list:`命令`,loading:`正在載入結果…`,results:t=>t===0?`沒有結果`:`${e(t)} 個結果`,instructions:`使用上下方向鍵瀏覽結果,按 Enter 執行命令,按 Esc 關閉。`,back:`返回`,hints:{navigate:`瀏覽`,select:`選取`,back:`返回`,close:`關閉`}},validation:{required:`此欄位為必填。`,email:`請輸入電子郵件地址,例如 name@example.com。`,url:`請輸入網址,例如 https://example.com。`,ip:`請輸入 IP 位址,例如 192.168.0.1 或 2001:db8::1。`,ipv4:`請輸入 IPv4 位址,例如 192.168.0.1。`,ipv6:`請輸入 IPv6 位址,例如 2001:db8::1。`,number:`請輸入數字。`,pattern:`請使用要求的格式。`,tooShort:t=>`請至少輸入 ${e(t)} 個字元。`,tooLong:t=>`最多輸入 ${e(t)} 個字元。`,min:e=>`請輸入 ${e} 或更大的值。`,max:e=>`請輸入 ${e} 或更小的值。`,step:`請輸入有效的值。`,invalid:`請輸入有效的值。`,matches:`兩次輸入的值不一致。`,summaryTitle:t=>`有 ${e(t)} 個問題`},drawer:{close:`關閉`},modal:{close:`關閉`,confirm:`確認`,cancel:`取消`},popover:{close:`關閉`}};exports.default=t,exports.messages=t;
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e=require("../i18n/plural.cjs.js").num(`zh-Hant`),t={avatar:{status:{online:`線上`,away:`離開`,busy:`忙碌`,offline:`離線`},fallbackName:`使用者`,surplus:t=>`以及另外 ${e(t)} 人`},carousel:{previous:`上一張投影片`,next:`下一張投影片`,start:`開始自動播放投影片`,stop:`停止自動播放投影片`,slides:`投影片`,indicators:`選擇投影片`,goTo:e=>`前往第 ${e} 張投影片`,slide:(e,t)=>`第 ${e} 張,共 ${t} 張`,status:(e,t,n)=>e===t?`第 ${e} 張投影片,共 ${n} 張`:`第 ${e} 至 ${t} 張投影片,共 ${n} 張`},chip:{remove:`移除`,removeNamed:e=>`移除 ${e}`},codeBlock:{copy:`複製程式碼`,copied:`已複製`,copyError:`無法複製。請選取程式碼後手動複製。`,region:e=>`程式碼:${e}`,snippet:`程式碼片段`},emptyState:{noData:{title:`這裡還沒有內容`,description:`有內容可顯示時,會出現在這裡。`},noResults:{title:e=>e?`找不到與「${e}」相關的結果`:`找不到結果`,description:`請嘗試其他搜尋字詞或清除篩選條件。`},error:{title:`發生問題`,description:`無法載入此內容。請再試一次。`},offline:{title:`你目前離線`,description:`請檢查網路連線,然後再試一次。`},noAccess:{title:`你沒有存取權`,description:`請向管理員申請檢視權限。`},firstRun:{title:`開始吧`,description:`建立第一個項目,就可以開始了。`},retry:`重試`},stat:{loading:`載入中`,increased:e=>`增加了 ${e}`,decreased:e=>`減少了 ${e}`,changed:e=>`變化了 ${e}`,noChange:`無變化`,progress:`進度`,progressNamed:e=>`${e}進度`},table:{loading:`載入中`,scrollRegion:`可捲動的表格`,selectAll:`選取所有列`,selectRow:`選取列`,selectRowNamed:e=>`選取列 ${e}`,selectColumn:`選取`},dataGrid:{ascending:`遞增`,descending:`遞減`,sorted:(e,t)=>`依${e}排序,${t}`,sortCleared:`已清除排序`,selectedCount:t=>`已選取 ${e(t)} 列`,rowCount:t=>`${e(t)} 列`,range:(t,n,r)=>`第 ${e(t)}–${e(n)} 列,共 ${e(r)} 列`,empty:`沒有資料列`,noResults:`沒有符合的資料列`,resizeColumn:e=>`調整「${e}」欄寬`},chart:{showTable:`顯示資料表`,hideTable:`隱藏資料表`},timeline:{status:{complete:`已完成`,current:`目前步驟`,upcoming:`即將進行`,error:`錯誤`},region:`時間軸`},treeView:{loading:`載入中…`,error:`無法載入項目。請收合後再展開以重試。`},alert:{dismiss:`關閉`,prefix:{info:`提示:`,success:`成功:`,warning:`警告:`,danger:`錯誤:`,neutral:`注意:`}},banner:{dismiss:`關閉橫幅`,region:`公告`},button:{loading:`載入中`},skeleton:{loading:`載入中…`},spinner:{loading:`載入中`},toast:{region:`通知`,dismiss:`關閉通知`,queued:t=>`還有 ${e(t)} 則通知`,tone:{info:`提示`,success:`成功`,warning:`警告`,danger:`錯誤`,loading:`載入中`}},kbd:{then:`然後`,keys:{command:`Command`,control:`Control`,windows:`Windows`,super:`Super`,option:`Option`,alt:`Alt`,shift:`Shift`,return:`Return`,enter:`Enter`,escape:`Esc`,tab:`Tab`,space:`空白鍵`,delete:`Delete`,forwardDelete:`向後刪除`,backspace:`退格鍵`,capsLock:`大寫鎖定`,up:`向上鍵`,down:`向下鍵`,left:`向左鍵`,right:`向右鍵`,pageUp:`Page Up`,pageDown:`Page Down`,home:`Home`,end:`End`}},colorPicker:{area:`飽和度與亮度`,areaRoleDescription:`二維滑桿`,saturation:`飽和度`,brightness:`亮度`,hue:`色相`,degrees:`度`,alpha:`不透明度`,input:`顏色值`,invalidInput:`請輸入顏色,例如 #1d4ed8、rgb(29, 78, 216) 或 hsl(224, 76%, 48%)。已保留上一個有效顏色。`,swatches:`預設顏色`,eyeDropper:`從螢幕擷取顏色`,eyeDropperPicked:e=>`已擷取${e}`,dialog:`選擇顏色`,colors:{hues:{red:`紅色`,orange:`橙色`,gold:`金色`,yellow:`黃色`,yellowGreen:`黃綠色`,green:`綠色`,teal:`藍綠色`,cyan:`青色`,blue:`藍色`,purple:`紫色`,magenta:`洋紅色`,pink:`粉紅色`},black:`黑色`,white:`白色`,gray:`灰色`,brown:`棕色`,olive:`橄欖色`,dark:e=>`深${e}`,light:e=>`淺${e}`,muted:e=>`暗淡的${e}`,vivid:e=>`鮮豔的${e}`,withOpacity:(e,t)=>`${e},不透明度 ${t}%`}},combobox:{loading:`載入中…`,empty:`沒有結果`,results:t=>`有 ${e(t)} 個結果`,create:e=>`建立「${e}」`,clear:`清除選取`,required:`請選擇一個選項。`,showSuggestions:`顯示建議`,hideSuggestions:`隱藏建議`,selected:`已選取`,optionSelected:e=>`已選取${e}`,optionRemoved:e=>`已移除${e}`,cleared:`已清除選取`},datePicker:{chooseDate:`選擇日期`,changeDate:e=>`變更日期,${e}`,dialog:`選擇日期`,format:e=>`格式:${e}`,pattern:{day:`DD`,month:`MM`,year:`YYYY`},previousMonth:`上個月`,nextMonth:`下個月`,startDate:`開始日期`,endDate:`結束日期`,chooseDates:`選擇日期範圍`,changeDates:e=>`變更日期範圍,${e}`,datesDialog:`選擇日期範圍`,invalid:{unparseable:e=>`請依 ${e} 格式輸入日期。`,between:(e,t)=>`請選擇 ${e} 至 ${t} 之間的日期。`,onOrAfter:e=>`請選擇 ${e} 或之後的日期。`,onOrBefore:e=>`請選擇 ${e} 或之前的日期。`,unavailable:e=>`${e} 無法使用。請選擇其他日期。`,rangeBetween:(e,t)=>`請選擇 ${e} 至 ${t} 之間的日期範圍。`,rangeOnOrAfter:e=>`請選擇 ${e} 或之後的日期範圍。`,rangeOnOrBefore:e=>`請選擇 ${e} 或之前的日期範圍。`,endBeforeStart:`結束日期必須等於或晚於開始日期。`,startAfterEnd:`開始日期必須等於或早於結束日期。`}},timePicker:{format:e=>`範例:${e}`,showTimes:`顯示時間`,hideTimes:`隱藏時間`,date:`日期`,time:`時間`,invalid:{unparseable:e=>`請輸入時間,例如 ${e}。`,between:(e,t)=>`請選擇 ${e} 至 ${t} 之間的時間。`,onOrAfter:e=>`請選擇 ${e} 或之後的時間。`,onOrBefore:e=>`請選擇 ${e} 或之前的時間。`}},fileUpload:{list:`已選取的檔案`,remove:e=>`移除 ${e}`,uploaded:`已上傳`,uploadFailed:`上傳失敗`,uploading:`上傳中`,uploadingPercent:e=>`上傳中 ${e}%`,progressFor:e=>`${e} 的上傳進度`,announceUploaded:e=>`已上傳:${e}。`,announceFailed:e=>`上傳失敗:${e}。`,announceAdded:(t,n)=>{let r=[];return t&&r.push(`已新增 ${e(t)} 個檔案`),n&&r.push(`${e(n)} 個遭拒`),`${r.join(`,`)}。`},typeNotAccepted:`不支援此檔案類型。`,typeNotAcceptedUse:e=>`不支援此檔案類型。請使用 ${e}。`,tooLarge:e=>`檔案超過 ${e}。`,tooSmall:e=>`檔案小於 ${e}。`,duplicate:`此檔案已新增。`,tooMany:t=>`檔案過多。最多可新增 ${e(t)} 個檔案。`,onlyOne:`只能新增一個檔案。`,upTo:e=>`最大 ${e}`,upToEach:e=>`每個最大 ${e}`,maxFiles:t=>`最多 ${e(t)} 個檔案`,uploadFiles:`上傳檔案`,browseFiles:`瀏覽檔案`,dropFiles:`將檔案拖放到這裡,或瀏覽`,dropFile:`將檔案拖放到這裡,或瀏覽`,required:`必填`,rejected:t=>`有 ${e(t)} 個檔案無法新增`,dismissErrors:`關閉檔案錯誤`,typeGroups:{image:`圖片`,video:`影片`,audio:`音訊`,text:`文字檔`},typeGroup:e=>`${e} 檔案`,units:{B:`B`,KB:`KB`,MB:`MB`,GB:`GB`,TB:`TB`}},input:{clear:`清除`},numberInput:{decrement:`減少`,increment:`增加`},passwordInput:{show:`顯示密碼`,capsLock:`大寫鎖定已開啟`,strength:[`太弱`,`弱`,`普通`,`良好`,`強`],strengthPrefix:`強度:`,requirements:`密碼必須包含:`,met:`已符合`,notMet:`未符合`,announceStrength:e=>`密碼強度:${e}。`,allMet:`已符合所有條件。`,someMet:(e,t)=>`已符合 ${t} 項條件中的 ${e} 項。`},rating:{option:(e,t)=>`${e} 分(滿分 ${t} 分)`,display:(e,t)=>`評分 ${e} 分(滿分 ${t} 分)`,count:t=>`(${e(t)} 則評論)`,clearHint:`在已選評分上按空白鍵或 Delete 鍵即可清除評分。`,unrated:`未評分`},searchInput:{clear:`清除搜尋`,results:t=>t===0?`沒有結果`:`${e(t)} 個結果`,search:`搜尋`},switch:{on:`開`,off:`關`,saving:`儲存中`},tagInput:{added:e=>e.length===1?`已新增${e[0]}`:`已新增 ${e.length} 個標籤:${e.join(`、`)}`,removed:e=>`已移除${e}`,duplicate:e=>`${e}已新增`,invalid:e=>`「${e}」無效`,maxReached:e=>`已達最多 ${e} 個標籤的上限`,required:`請至少新增一個標籤。`,empty:`無`,remove:e=>`移除 ${e}`,list:`標籤`,instructions:e=>`按${e}新增標籤。按退格鍵或向左鍵可移至已新增的標籤。`,keys:{enter:`Enter`,tab:`Tab`,comma:`逗號`,semicolon:`分號`,space:`空白`,pipe:`直線`,other:e=>`「${e}」`}},textarea:{limitReached:`已達字數上限`,remaining:t=>`還可輸入 ${e(t)} 個字元`},resizablePanels:{handle:`調整面板大小`,resizePanel:e=>`調整「${e}」大小`},breadcrumbs:{nav:`導覽路徑`,expand:t=>`再顯示 ${e(t)} 項`},contextMenu:{label:`內容選單`},navbar:{openMenu:`開啟選單`,menu:`選單`,nav:`主選單`},pagination:{nav:`分頁`,previous:`上一頁`,next:`下一頁`,first:`第一頁`,last:`最後一頁`,currentPage:e=>`第 ${e} 頁`,goToPage:e=>`前往第 ${e} 頁`,status:`第 {page} 頁,共 {total} 頁`},sidebar:{nav:`主導覽`,collapse:`收合側邊欄`,expand:`展開側邊欄`},skipLink:{label:`跳至主要內容`},stepper:{status:{complete:`已完成`,current:`目前`,upcoming:`尚未開始`,error:`錯誤`},nav:`進度`,allComplete:e=>`全部 ${e} 個步驟已完成`,stepTitled:(e,t,n)=>`第 ${e} 步,共 ${t} 步:${n}`,step:(e,t)=>`第 ${e} 步,共 ${t} 步`,count:(e,t)=>`${e}/${t}`,prefix:e=>`第 ${e} 步:`},commandPalette:{label:`命令面板`,placeholder:`輸入命令或搜尋…`,list:`命令`,loading:`正在載入結果…`,results:t=>t===0?`沒有結果`:`${e(t)} 個結果`,instructions:`使用上下方向鍵瀏覽結果,按 Enter 執行命令,按 Esc 關閉。`,back:`返回`,hints:{navigate:`瀏覽`,select:`選取`,back:`返回`,close:`關閉`}},auth:{or:`或`,unexpected:`發生問題,請再試一次。`,email:`電子郵件`,username:`使用者名稱`,password:`密碼`,signIn:{title:`登入`,submit:`登入`,remember:`記住我`,forgot:`忘記密碼?`,noAccount:`還沒有帳戶?`,signUp:`建立帳戶`},signUp:{title:`建立帳戶`,submit:`建立帳戶`,name:`姓名`,confirmPassword:`確認密碼`,mismatch:`兩次輸入的密碼不一致。`,termsRequired:`請同意條款以繼續。`,haveAccount:`已經有帳戶?`,signIn:`登入`},forgot:{title:`重設密碼`,description:`輸入你的電子郵件,我們會寄送重設密碼的連結。`,submit:`寄送連結`,sent:e=>`如果 ${e} 有帳戶,我們已寄送重設密碼的連結。`,resend:`再次寄送`,back:`返回登入`},reset:{title:`設定新密碼`,password:`新密碼`,submit:`儲存密碼`,done:`你的密碼已變更。`},verify:{title:`輸入驗證碼`,description:e=>`請輸入我們寄到 ${e} 的驗證碼。`,descriptionGeneric:`請輸入我們寄給你的驗證碼。`,code:`驗證碼`,submit:`驗證`,resend:`重新寄送驗證碼`,resendIn:e=>`${e} 後重新寄送驗證碼`,resent:`我們已寄送新的驗證碼。`,incomplete:`請輸入完整的驗證碼。`}},validation:{required:`此欄位為必填。`,email:`請輸入電子郵件地址,例如 name@example.com。`,url:`請輸入網址,例如 https://example.com。`,ip:`請輸入 IP 位址,例如 192.168.0.1 或 2001:db8::1。`,ipv4:`請輸入 IPv4 位址,例如 192.168.0.1。`,ipv6:`請輸入 IPv6 位址,例如 2001:db8::1。`,number:`請輸入數字。`,pattern:`請使用要求的格式。`,tooShort:t=>`請至少輸入 ${e(t)} 個字元。`,tooLong:t=>`最多輸入 ${e(t)} 個字元。`,min:e=>`請輸入 ${e} 或更大的值。`,max:e=>`請輸入 ${e} 或更小的值。`,step:`請輸入有效的值。`,invalid:`請輸入有效的值。`,matches:`兩次輸入的值不一致。`,summaryTitle:t=>`有 ${e(t)} 個問題`},drawer:{close:`關閉`},modal:{close:`關閉`,confirm:`確認`,cancel:`取消`},popover:{close:`關閉`}};exports.default=t,exports.messages=t;
|
package/dist/locales/zh-Hant.mjs
CHANGED
|
@@ -432,6 +432,56 @@ var t = e("zh-Hant"), n = {
|
|
|
432
432
|
close: "關閉"
|
|
433
433
|
}
|
|
434
434
|
},
|
|
435
|
+
auth: {
|
|
436
|
+
or: "或",
|
|
437
|
+
unexpected: "發生問題,請再試一次。",
|
|
438
|
+
email: "電子郵件",
|
|
439
|
+
username: "使用者名稱",
|
|
440
|
+
password: "密碼",
|
|
441
|
+
signIn: {
|
|
442
|
+
title: "登入",
|
|
443
|
+
submit: "登入",
|
|
444
|
+
remember: "記住我",
|
|
445
|
+
forgot: "忘記密碼?",
|
|
446
|
+
noAccount: "還沒有帳戶?",
|
|
447
|
+
signUp: "建立帳戶"
|
|
448
|
+
},
|
|
449
|
+
signUp: {
|
|
450
|
+
title: "建立帳戶",
|
|
451
|
+
submit: "建立帳戶",
|
|
452
|
+
name: "姓名",
|
|
453
|
+
confirmPassword: "確認密碼",
|
|
454
|
+
mismatch: "兩次輸入的密碼不一致。",
|
|
455
|
+
termsRequired: "請同意條款以繼續。",
|
|
456
|
+
haveAccount: "已經有帳戶?",
|
|
457
|
+
signIn: "登入"
|
|
458
|
+
},
|
|
459
|
+
forgot: {
|
|
460
|
+
title: "重設密碼",
|
|
461
|
+
description: "輸入你的電子郵件,我們會寄送重設密碼的連結。",
|
|
462
|
+
submit: "寄送連結",
|
|
463
|
+
sent: (e) => `如果 ${e} 有帳戶,我們已寄送重設密碼的連結。`,
|
|
464
|
+
resend: "再次寄送",
|
|
465
|
+
back: "返回登入"
|
|
466
|
+
},
|
|
467
|
+
reset: {
|
|
468
|
+
title: "設定新密碼",
|
|
469
|
+
password: "新密碼",
|
|
470
|
+
submit: "儲存密碼",
|
|
471
|
+
done: "你的密碼已變更。"
|
|
472
|
+
},
|
|
473
|
+
verify: {
|
|
474
|
+
title: "輸入驗證碼",
|
|
475
|
+
description: (e) => `請輸入我們寄到 ${e} 的驗證碼。`,
|
|
476
|
+
descriptionGeneric: "請輸入我們寄給你的驗證碼。",
|
|
477
|
+
code: "驗證碼",
|
|
478
|
+
submit: "驗證",
|
|
479
|
+
resend: "重新寄送驗證碼",
|
|
480
|
+
resendIn: (e) => `${e} 後重新寄送驗證碼`,
|
|
481
|
+
resent: "我們已寄送新的驗證碼。",
|
|
482
|
+
incomplete: "請輸入完整的驗證碼。"
|
|
483
|
+
}
|
|
484
|
+
},
|
|
435
485
|
validation: {
|
|
436
486
|
required: "此欄位為必填。",
|
|
437
487
|
email: "請輸入電子郵件地址,例如 name@example.com。",
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var e={light:{bg:`#ffffff`,surface:`#ffffff`,surfaceRaised:`#ffffff`,surfaceSunken:`#f5f7fa`,surfaceHover:`#eaeef3`,neutralSubtle:`#eaeef3`,text:`#141c25`,textMuted:`#4a5868`},dark:{bg:`#0b1118`,surface:`#141c25`,surfaceRaised:`#1b2531`,surfaceSunken:`#070b10`,surfaceHover:`#1f2a36`,neutralSubtle:`#1f2a36`,text:`#e8edf2`,textMuted:`#a9b5c2`}},t=4.5,n=3,r={purple:{light:`#6b3fa0`,dark:`#c9a6f2`},blue:{light:`#005a8c`,dark:`#8fd0f0`}},i=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;function a(e){return typeof e==`string`&&i.test(e.trim())}function o(e){let t=e.trim().match(i);if(!t)throw TypeError(`Invalid brand color "${e}": use a hex color like "#e11d48".`);return`#${(t[1].length===3?t[1].replace(/./g,`$&$&`):t[1]).toLowerCase()}`}function s(e){return[1,3,5].map(t=>parseInt(e.slice(t,t+2),16)/255)}var c=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,l=e=>e<=.0031308?e*12.92:1.055*e**(1/2.4)-.055;function u(e){let[t,n,r]=s(e).map(c),i=Math.cbrt(.4122214708*t+.5363325363*n+.0514459929*r),a=Math.cbrt(.2119034982*t+.6806995451*n+.1073969566*r),o=Math.cbrt(.0883024619*t+.2817188376*n+.6299787005*r),l=.2104542553*i+.793617785*a-.0040720468*o,u=1.9779984951*i-2.428592205*a+.4505937099*o,d=.0259040371*i+.7827717662*a-.808675766*o,f=Math.hypot(u,d);return{l,c:f,h:f<1e-4?0:(Math.atan2(d,u)*180/Math.PI+360)%360}}function d({l:e,c:t,h:n}){let r=t*Math.cos(n*Math.PI/180),i=t*Math.sin(n*Math.PI/180),a=(e+.3963377774*r+.2158037573*i)**3,o=(e-.1055613458*r-.0638541728*i)**3,s=(e-.0894841775*r-1.291485548*i)**3;return[4.0767416621*a-3.3077115913*o+.2309699292*s,-1.2684380046*a+2.6097574011*o-.3413193965*s,-.0041960863*a-.7034186147*o+1.707614701*s]}var f=e=>e.every(e=>e>=-1e-4&&e<=1.0001);function p(e){let t=Math.min(1,Math.max(0,e.l)),n=d({...e,l:t});if(!f(n)){let r=0,i=e.c;for(let n=0;n<20;n++){let n=(r+i)/2;f(d({l:t,c:n,h:e.h}))?r=n:i=n}n=d({l:t,c:r,h:e.h})}return`#${n.map(e=>Math.round(l(Math.min(1,Math.max(0,e)))*255).toString(16).padStart(2,`0`)).join(``)}`}function m(e){let[t,n,r]=s(e).map(e=>e<=.03928?e/12.92:((e+.055)/1.055)**2.4);return .2126*t+.7152*n+.0722*r}function h(e,t){let[n,r]=[m(e),m(t)].sort((e,t)=>t-e);return(n+.05)/(r+.05)}var g=(e,t,n)=>t.every(t=>h(e,t)>=n);function _(e,t,n){for(let r=e.l;r>=0&&r<=1;r+=n*.005){let n=p({...e,l:r});if(t(n))return n}return n<0?`#000000`:`#ffffff`}var v={light:-1,dark:1};function y(e,n,r){let i=e=>g(r.text,[e],t)&&g(r.textMuted,[e],t),a=-v[n],[o,s,c,l]=n===`light`?[.965,.935,.035,.05]:[.26,.3,.06,.07];return{subtle:_({l:o,c:Math.min(e.c,c),h:e.h},i,a),subtleHover:_({l:s,c:Math.min(e.c,l),h:e.h},i,a)}}function b(e,r,i){return a=>g(a,[e.bg,e.surface,e.surfaceRaised],t)&&g(a,[e.surfaceSunken,e.surfaceHover,e.neutralSubtle,r,i],n)}function x(n,i,a,o){let s=e[i],c=u(n),l;if(i===`light`)l=`#ffffff`;else{let e=p({l:.17,c:Math.min(c.c,.04),h:c.h});l=h(e,n)>=t?e:`#000000`}let d=v[i]*.055,f=(i===`light`?c.l+2*d<.2:c.l+2*d>.95)?-d:d,m=e=>h(l,e)>=t,y=_({...c,l:c.l+f},m,v[i]),b=_({...c,l:c.l+2*f},m,v[i]),x=[a,o,s.bg,s.surface,s.surfaceRaised,s.surfaceSunken],S=_(i===`light`?{l:Math.min(c.l-.08,.45),c:c.c,h:c.h}:{l:Math.max(c.l+.1,.85),c:Math.min(c.c,.12),h:c.h},e=>g(e,x,t),v[i]),C=(c.c>.04&&Math.abs(c.h-300)<35?r.blue:r.purple)[i];return{primary:n,primaryHover:y,primaryActive:b,onPrimary:l,primarySubtle:a,primarySubtleHover:o,primarySubtleText:S,primaryBorder:n,linkVisited:C}}function S(t){let n=typeof t==`string`,r=typeof t==`string`?{light:o(t),dark:o(t)}:{light:o(t.light),dark:o(t.dark)},i=[],a={},s;if(n){let t=r.light,n=u(t),i=r=>{let{subtle:i,subtleHover:a}=y(n,r,e[r]),o=b(e[r],i,a);return o(t)?0:Math.abs(u(_(n,o,v[r])).l-n.l)};s=i(`light`)<=i(`dark`)?`light`:`dark`}for(let t of[`light`,`dark`]){let n=e[t],o=r[t],c=u(o),{subtle:l,subtleHover:d}=y(c,t,n),f=b(n,l,d),p=s===void 0||s===t,m=p?c:{...c,l:t===`light`?Math.min(c.l,.55):Math.max(c.l,.72)},h=p&&f(o)?o:_(m,f,v[t]);p&&h!==o&&i.push({mode:t,requested:o,used:h}),a[t]=x(h,t,l,d)}return{light:a.light,dark:a.dark,adjustments:i,accent:
|
|
2
|
-
`)}\n}\n`}var
|
|
3
|
-
`)}\n}\n`}exports.BRAND_SURFACES=e,exports.
|
|
1
|
+
var e={light:{bg:`#ffffff`,surface:`#ffffff`,surfaceRaised:`#ffffff`,surfaceSunken:`#f5f7fa`,surfaceHover:`#eaeef3`,neutralSubtle:`#eaeef3`,text:`#141c25`,textMuted:`#4a5868`},dark:{bg:`#0b1118`,surface:`#141c25`,surfaceRaised:`#1b2531`,surfaceSunken:`#070b10`,surfaceHover:`#1f2a36`,neutralSubtle:`#1f2a36`,text:`#e8edf2`,textMuted:`#a9b5c2`}},t=4.5,n=3,r={purple:{light:`#6b3fa0`,dark:`#c9a6f2`},blue:{light:`#005a8c`,dark:`#8fd0f0`}},i=/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;function a(e){return typeof e==`string`&&i.test(e.trim())}function o(e){let t=e.trim().match(i);if(!t)throw TypeError(`Invalid brand color "${e}": use a hex color like "#e11d48".`);return`#${(t[1].length===3?t[1].replace(/./g,`$&$&`):t[1]).toLowerCase()}`}function s(e){return[1,3,5].map(t=>parseInt(e.slice(t,t+2),16)/255)}var c=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,l=e=>e<=.0031308?e*12.92:1.055*e**(1/2.4)-.055;function u(e){let[t,n,r]=s(e).map(c),i=Math.cbrt(.4122214708*t+.5363325363*n+.0514459929*r),a=Math.cbrt(.2119034982*t+.6806995451*n+.1073969566*r),o=Math.cbrt(.0883024619*t+.2817188376*n+.6299787005*r),l=.2104542553*i+.793617785*a-.0040720468*o,u=1.9779984951*i-2.428592205*a+.4505937099*o,d=.0259040371*i+.7827717662*a-.808675766*o,f=Math.hypot(u,d);return{l,c:f,h:f<1e-4?0:(Math.atan2(d,u)*180/Math.PI+360)%360}}function d({l:e,c:t,h:n}){let r=t*Math.cos(n*Math.PI/180),i=t*Math.sin(n*Math.PI/180),a=(e+.3963377774*r+.2158037573*i)**3,o=(e-.1055613458*r-.0638541728*i)**3,s=(e-.0894841775*r-1.291485548*i)**3;return[4.0767416621*a-3.3077115913*o+.2309699292*s,-1.2684380046*a+2.6097574011*o-.3413193965*s,-.0041960863*a-.7034186147*o+1.707614701*s]}var f=e=>e.every(e=>e>=-1e-4&&e<=1.0001);function p(e){let t=Math.min(1,Math.max(0,e.l)),n=d({...e,l:t});if(!f(n)){let r=0,i=e.c;for(let n=0;n<20;n++){let n=(r+i)/2;f(d({l:t,c:n,h:e.h}))?r=n:i=n}n=d({l:t,c:r,h:e.h})}return`#${n.map(e=>Math.round(l(Math.min(1,Math.max(0,e)))*255).toString(16).padStart(2,`0`)).join(``)}`}function m(e){let[t,n,r]=s(e).map(e=>e<=.03928?e/12.92:((e+.055)/1.055)**2.4);return .2126*t+.7152*n+.0722*r}function h(e,t){let[n,r]=[m(e),m(t)].sort((e,t)=>t-e);return(n+.05)/(r+.05)}var g=(e,t,n)=>t.every(t=>h(e,t)>=n);function _(e,t,n){for(let r=e.l;r>=0&&r<=1;r+=n*.005){let n=p({...e,l:r});if(t(n))return n}return n<0?`#000000`:`#ffffff`}var v={light:-1,dark:1};function y(e,n,r){let i=e=>g(r.text,[e],t)&&g(r.textMuted,[e],t),a=-v[n],[o,s,c,l]=n===`light`?[.965,.935,.035,.05]:[.26,.3,.06,.07];return{subtle:_({l:o,c:Math.min(e.c,c),h:e.h},i,a),subtleHover:_({l:s,c:Math.min(e.c,l),h:e.h},i,a)}}function b(e,r,i){return a=>g(a,[e.bg,e.surface,e.surfaceRaised],t)&&g(a,[e.surfaceSunken,e.surfaceHover,e.neutralSubtle,r,i],n)}function x(n,i,a,o){let s=e[i],c=u(n),l;if(i===`light`)l=`#ffffff`;else{let e=p({l:.17,c:Math.min(c.c,.04),h:c.h});l=h(e,n)>=t?e:`#000000`}let d=v[i]*.055,f=(i===`light`?c.l+2*d<.2:c.l+2*d>.95)?-d:d,m=e=>h(l,e)>=t,y=_({...c,l:c.l+f},m,v[i]),b=_({...c,l:c.l+2*f},m,v[i]),x=[a,o,s.bg,s.surface,s.surfaceRaised,s.surfaceSunken],S=_(i===`light`?{l:Math.min(c.l-.08,.45),c:c.c,h:c.h}:{l:Math.max(c.l+.1,.85),c:Math.min(c.c,.12),h:c.h},e=>g(e,x,t),v[i]),C=(c.c>.04&&Math.abs(c.h-300)<35?r.blue:r.purple)[i];return{primary:n,primaryHover:y,primaryActive:b,onPrimary:l,primarySubtle:a,primarySubtleHover:o,primarySubtleText:S,primaryBorder:n,linkVisited:C}}function S(t){let n=typeof t==`string`,r=typeof t==`string`?{light:o(t),dark:o(t)}:{light:o(t.light),dark:o(t.dark)},i=[],a={},s;if(n){let t=r.light,n=u(t),i=r=>{let{subtle:i,subtleHover:a}=y(n,r,e[r]),o=b(e[r],i,a);return o(t)?0:Math.abs(u(_(n,o,v[r])).l-n.l)};s=i(`light`)<=i(`dark`)?`light`:`dark`}for(let t of[`light`,`dark`]){let n=e[t],o=r[t],c=u(o),{subtle:l,subtleHover:d}=y(c,t,n),f=b(n,l,d),p=s===void 0||s===t,m=p?c:{...c,l:t===`light`?Math.min(c.l,.55):Math.max(c.l,.72)},h=p&&f(o)?o:_(m,f,v[t]);p&&h!==o&&i.push({mode:t,requested:o,used:h}),a[t]=x(h,t,l,d)}return{light:a.light,dark:a.dark,adjustments:i,accent:D(a.light.primary)}}var C={light:{accent:`#c8f031`,accentHover:`#b5dc1f`,accentActive:`#a3c812`,onAccent:`#141c25`,accentSubtle:`#f3fcd6`,accentSubtleHover:`#e9f8b8`,accentSubtleText:`#3d4f00`,accentBorder:`#5f7a00`},dark:{accent:`#c8f031`,accentHover:`#d6f65c`,accentActive:`#e0f97f`,onAccent:`#141c25`,accentSubtle:`#1f2a06`,accentSubtleHover:`#283608`,accentSubtleText:`#d6f65c`,accentBorder:`#c8f031`},adjustments:[]},w=C;function T(r,i,a){let o=e[a],s=p({l:.2,c:Math.min(r.c,.04),h:r.h}),c=e=>h(s,e)>=t,l=i&&c(i)?i:_(r,c,1),d=u(l),f=a===`light`?-.04:.04;(e=>e>.97||!c(p({...d,l:e})))(d.l+2*f)&&(f=-f);let m=_({...d,l:d.l+f},c,1),v=_({...d,l:d.l+2*f},c,1),{subtle:b,subtleHover:x}=y(r,a,o),S=[b,x,o.bg,o.surface,o.surfaceRaised,o.surfaceSunken],C=a===`light`?_({l:.42,c:Math.min(d.c,.12),h:d.h},e=>g(e,S,t),-1):_({l:Math.max(d.l,.86),c:Math.min(d.c,.14),h:d.h},e=>g(e,S,t),1),w=[o.bg,o.surface,o.surfaceRaised,o.surfaceSunken,o.surfaceHover,o.neutralSubtle,b,x],T=e=>g(e,w,n);return{accent:l,accentHover:m,accentActive:v,onAccent:s,accentSubtle:b,accentSubtleHover:x,accentSubtleText:C,accentBorder:a===`light`?_({l:Math.min(d.l,.55),c:d.c,h:d.h},T,-1):T(l)?l:_(d,T,1)}}function E(e){let t=typeof e==`string`?{light:o(e),dark:o(e)}:{light:o(e.light),dark:o(e.dark)},n=[],r={};for(let e of[`light`,`dark`]){let i=T(u(t[e]),t[e],e);i.accent!==t[e]&&n.push({mode:e,requested:t[e],used:i.accent}),r[e]=i}return{light:r.light,dark:r.dark,adjustments:n}}function D(e){let t=u(o(e));if(t.c<.03)return C;let n={l:.8,c:Math.min(Math.max(t.c*1.05,.09),.17),h:t.h};return{light:T(n,void 0,`light`),dark:T(n,void 0,`dark`),adjustments:[]}}var O={accent:`accent`,accentHover:`accent-hover`,accentActive:`accent-active`,onAccent:`on-accent`,accentSubtle:`accent-subtle`,accentSubtleHover:`accent-subtle-hover`,accentSubtleText:`accent-subtle-text`,accentBorder:`accent-border`};function k(e,t=`accent`){let n={};for(let r of[`light`,`dark`])for(let i of Object.keys(O))n[`--${t}-${r}-${O[i]}`]=e[r][i];return n}function A(e,t){if(!/^[a-z0-9-]+$/i.test(e))throw TypeError(`Invalid accent name "${e}": use letters, digits, and dashes.`);return`[data-accent="${e}"] {\n${Object.entries(k(E(t))).map(([e,t])=>` ${e}: ${t};`).join(`
|
|
2
|
+
`)}\n}\n`}var j={primary:`primary`,primaryHover:`primary-hover`,primaryActive:`primary-active`,onPrimary:`on-primary`,primarySubtle:`primary-subtle`,primarySubtleHover:`primary-subtle-hover`,primarySubtleText:`primary-subtle-text`,primaryBorder:`primary-border`,linkVisited:`link-visited`};function M(e){let t={};for(let n of[`light`,`dark`])for(let r of Object.keys(j))t[`--brand-${n}-${j[r]}`]=e[n][r];return{...t,...k(e.accent,`brand`)}}function N(e,t){if(!/^[a-z0-9-]+$/i.test(e))throw TypeError(`Invalid brand name "${e}": use letters, digits, and dashes.`);let n=M(S(t));return`[data-brand="${e}"] {\n${Object.entries(n).map(([e,t])=>` ${e}: ${t};`).join(`
|
|
3
|
+
`)}\n}\n`}exports.BRAND_SURFACES=e,exports.LIME_ACCENT=C,exports.VOLT_ACCENT=w,exports.accentCss=A,exports.accentPaletteVars=k,exports.brandAccent=D,exports.brandCss=N,exports.brandPaletteVars=M,exports.contrastRatio=h,exports.createAccentPalette=E,exports.createBrandPalette=S,exports.isHexColor=a;
|
|
@@ -99,7 +99,9 @@ export interface AccentPalette {
|
|
|
99
99
|
/** Requested colors that were too dark for dark text and were lightened. */
|
|
100
100
|
adjustments: BrandColorAdjustment[];
|
|
101
101
|
}
|
|
102
|
-
/** The
|
|
102
|
+
/** The lime accent (`accent="lime"`, and the black brand's accent): the original bright yellow-green. */
|
|
103
|
+
export declare const LIME_ACCENT: AccentPalette;
|
|
104
|
+
/** @deprecated Renamed to `LIME_ACCENT`. */
|
|
103
105
|
export declare const VOLT_ACCENT: AccentPalette;
|
|
104
106
|
/**
|
|
105
107
|
* Builds an accessible accent palette, for both modes, from any hex color.
|
|
@@ -111,7 +113,7 @@ export declare function createAccentPalette(color: BrandColor): AccentPalette;
|
|
|
111
113
|
/**
|
|
112
114
|
* The default accent of a brand: a bright, lighter shade of its primary
|
|
113
115
|
* hue (blue gets a sky blue, purple a lavender, gold an amber, green a
|
|
114
|
-
* mint). Colorless brands (black) keep the
|
|
116
|
+
* mint). Colorless brands (black) keep the lime.
|
|
115
117
|
*/
|
|
116
118
|
export declare function brandAccent(primary: string): AccentPalette;
|
|
117
119
|
/**
|
|
@@ -222,7 +222,7 @@ function S(t) {
|
|
|
222
222
|
light: a.light,
|
|
223
223
|
dark: a.dark,
|
|
224
224
|
adjustments: i,
|
|
225
|
-
accent:
|
|
225
|
+
accent: D(a.light.primary)
|
|
226
226
|
};
|
|
227
227
|
}
|
|
228
228
|
var C = {
|
|
@@ -247,8 +247,8 @@ var C = {
|
|
|
247
247
|
accentBorder: "#c8f031"
|
|
248
248
|
},
|
|
249
249
|
adjustments: []
|
|
250
|
-
};
|
|
251
|
-
function
|
|
250
|
+
}, w = C;
|
|
251
|
+
function T(r, i, a) {
|
|
252
252
|
let o = e[a], s = p({
|
|
253
253
|
l: .2,
|
|
254
254
|
c: Math.min(r.c, .04),
|
|
@@ -304,7 +304,7 @@ function w(r, i, a) {
|
|
|
304
304
|
}, T, -1) : T(l) ? l : _(d, T, 1)
|
|
305
305
|
};
|
|
306
306
|
}
|
|
307
|
-
function
|
|
307
|
+
function E(e) {
|
|
308
308
|
let t = typeof e == "string" ? {
|
|
309
309
|
light: o(e),
|
|
310
310
|
dark: o(e)
|
|
@@ -313,7 +313,7 @@ function T(e) {
|
|
|
313
313
|
dark: o(e.dark)
|
|
314
314
|
}, n = [], r = {};
|
|
315
315
|
for (let e of ["light", "dark"]) {
|
|
316
|
-
let i =
|
|
316
|
+
let i = T(u(t[e]), t[e], e);
|
|
317
317
|
i.accent !== t[e] && n.push({
|
|
318
318
|
mode: e,
|
|
319
319
|
requested: t[e],
|
|
@@ -326,7 +326,7 @@ function T(e) {
|
|
|
326
326
|
adjustments: n
|
|
327
327
|
};
|
|
328
328
|
}
|
|
329
|
-
function
|
|
329
|
+
function D(e) {
|
|
330
330
|
let t = u(o(e));
|
|
331
331
|
if (t.c < .03) return C;
|
|
332
332
|
let n = {
|
|
@@ -335,12 +335,12 @@ function E(e) {
|
|
|
335
335
|
h: t.h
|
|
336
336
|
};
|
|
337
337
|
return {
|
|
338
|
-
light:
|
|
339
|
-
dark:
|
|
338
|
+
light: T(n, void 0, "light"),
|
|
339
|
+
dark: T(n, void 0, "dark"),
|
|
340
340
|
adjustments: []
|
|
341
341
|
};
|
|
342
342
|
}
|
|
343
|
-
var
|
|
343
|
+
var O = {
|
|
344
344
|
accent: "accent",
|
|
345
345
|
accentHover: "accent-hover",
|
|
346
346
|
accentActive: "accent-active",
|
|
@@ -350,16 +350,16 @@ var D = {
|
|
|
350
350
|
accentSubtleText: "accent-subtle-text",
|
|
351
351
|
accentBorder: "accent-border"
|
|
352
352
|
};
|
|
353
|
-
function
|
|
353
|
+
function k(e, t = "accent") {
|
|
354
354
|
let n = {};
|
|
355
|
-
for (let r of ["light", "dark"]) for (let i of Object.keys(
|
|
355
|
+
for (let r of ["light", "dark"]) for (let i of Object.keys(O)) n[`--${t}-${r}-${O[i]}`] = e[r][i];
|
|
356
356
|
return n;
|
|
357
357
|
}
|
|
358
|
-
function
|
|
358
|
+
function A(e, t) {
|
|
359
359
|
if (!/^[a-z0-9-]+$/i.test(e)) throw TypeError(`Invalid accent name "${e}": use letters, digits, and dashes.`);
|
|
360
|
-
return `[data-accent="${e}"] {\n${Object.entries(
|
|
360
|
+
return `[data-accent="${e}"] {\n${Object.entries(k(E(t))).map(([e, t]) => ` ${e}: ${t};`).join("\n")}\n}\n`;
|
|
361
361
|
}
|
|
362
|
-
var
|
|
362
|
+
var j = {
|
|
363
363
|
primary: "primary",
|
|
364
364
|
primaryHover: "primary-hover",
|
|
365
365
|
primaryActive: "primary-active",
|
|
@@ -370,18 +370,18 @@ var A = {
|
|
|
370
370
|
primaryBorder: "primary-border",
|
|
371
371
|
linkVisited: "link-visited"
|
|
372
372
|
};
|
|
373
|
-
function
|
|
373
|
+
function M(e) {
|
|
374
374
|
let t = {};
|
|
375
|
-
for (let n of ["light", "dark"]) for (let r of Object.keys(
|
|
375
|
+
for (let n of ["light", "dark"]) for (let r of Object.keys(j)) t[`--brand-${n}-${j[r]}`] = e[n][r];
|
|
376
376
|
return {
|
|
377
377
|
...t,
|
|
378
|
-
...
|
|
378
|
+
...k(e.accent, "brand")
|
|
379
379
|
};
|
|
380
380
|
}
|
|
381
|
-
function
|
|
381
|
+
function N(e, t) {
|
|
382
382
|
if (!/^[a-z0-9-]+$/i.test(e)) throw TypeError(`Invalid brand name "${e}": use letters, digits, and dashes.`);
|
|
383
|
-
let n =
|
|
383
|
+
let n = M(S(t));
|
|
384
384
|
return `[data-brand="${e}"] {\n${Object.entries(n).map(([e, t]) => ` ${e}: ${t};`).join("\n")}\n}\n`;
|
|
385
385
|
}
|
|
386
386
|
//#endregion
|
|
387
|
-
export { e as BRAND_SURFACES, C as VOLT_ACCENT,
|
|
387
|
+
export { e as BRAND_SURFACES, C as LIME_ACCENT, w as VOLT_ACCENT, A as accentCss, k as accentPaletteVars, D as brandAccent, N as brandCss, M as brandPaletteVars, h as contrastRatio, E as createAccentPalette, S as createBrandPalette, a as isHexColor };
|