@tempots/beatui 0.20.0 → 0.22.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 +37 -6
- package/dist/{2019-B4Mw3glM.js → 2019-BD_R8GCb.js} +2 -2
- package/dist/{2019-u0Cs1ZdE.cjs → 2019-DsAbc1I5.cjs} +1 -1
- package/dist/{2020-BvFyb4Gy.js → 2020-DZOE7XZH.js} +2 -2
- package/dist/{2020-BcwEHv2O.cjs → 2020-j6NLRYni.cjs} +1 -1
- package/dist/{ar-DyhaQaJU.cjs → ar-CYAprS9_.cjs} +1 -1
- package/dist/{ar-RkpJ2n6w.js → ar-DuYtkwHz.js} +1 -1
- package/dist/auth/index.cjs.js +1 -1
- package/dist/auth/index.es.js +232 -232
- package/dist/beatui.css +6840 -1
- package/dist/beatui.tailwind.css +6507 -0
- package/dist/colors-5Nwx_gSj.js +528 -0
- package/dist/colors-B8HoRLA_.cjs +1 -0
- package/dist/{de-BdSVR4Zm.js → de-BSxDfb1B.js} +1 -1
- package/dist/{de-CnZ4Ik2a.cjs → de-rQvC-Ydh.cjs} +1 -1
- package/dist/{es-ZKraCneL.cjs → es-BvmzhRc0.cjs} +1 -1
- package/dist/{es-B_Qn5EUy.js → es-CAIPTBfa.js} +1 -1
- package/dist/{fa-D2p_ch4Q.cjs → fa-B3IJgHCh.cjs} +1 -1
- package/dist/{fa-jBaLjqfG.js → fa-COTldXuh.js} +1 -1
- package/dist/{fr-CBeo42lQ.cjs → fr-C9hsLGOb.cjs} +1 -1
- package/dist/{fr-B0KaMM2j.js → fr-Djxzcm-x.js} +1 -1
- package/dist/{he-BmqEF3o-.cjs → he-CHrcixO3.cjs} +1 -1
- package/dist/{he-DjeYjcW7.js → he-C_CvtpO2.js} +1 -1
- package/dist/{hi-DxBQV0uz.js → hi-C47vc5OG.js} +1 -1
- package/dist/{hi-BAfIFl1n.cjs → hi-CpbCblie.cjs} +1 -1
- package/dist/{index-c-O5R5i2.js → index--c2sxg96.js} +2 -2
- package/dist/{index-NysVuvZA.js → index-2J0cohRF.js} +2 -2
- package/dist/{index-uR3OZ_8K.cjs → index-B8EM1O9d.cjs} +1 -1
- package/dist/{index-CpKAa22o.cjs → index-BHOzetMx.cjs} +1 -1
- package/dist/{index-C4xio93t.js → index-BIBYSE0O.js} +3 -3
- package/dist/{index-BInDdLXi.cjs → index-BIbSEVsf.cjs} +1 -1
- package/dist/{index-Jt6D3QJ7.cjs → index-BJZGXsLQ.cjs} +1 -1
- package/dist/{index-DdlxwtnE.cjs → index-BK8EFVAw.cjs} +1 -1
- package/dist/index-BLjWV-YV.cjs +8 -0
- package/dist/{index-CpMCZBAl.js → index-BNQL8moK.js} +2 -2
- package/dist/{index-cjtIcxwt.cjs → index-BUE3WeDh.cjs} +1 -1
- package/dist/{index-BX_AooS9.js → index-BXHmDsV_.js} +2 -2
- package/dist/{index-CdvplJG6.js → index-BiHxJSI9.js} +3 -3
- package/dist/index-Br70wXYb.cjs +1 -0
- package/dist/{index-MyVoESdk.js → index-BtAze4TI.js} +3 -3
- package/dist/{index-D7o5LhMm.cjs → index-C-UADaTN.cjs} +1 -1
- package/dist/{index-DOyppfix.cjs → index-C0yFCSoy.cjs} +1 -1
- package/dist/{index-C4jYy0NW.js → index-C4wKda5M.js} +2 -2
- package/dist/{index-CaOzAsWD.cjs → index-CBlls5Ux.cjs} +1 -1
- package/dist/{index-BnbEC2zq.js → index-CQcRWw-d.js} +2 -2
- package/dist/{index-CvRJPSEv.cjs → index-CSK499Fw.cjs} +1 -1
- package/dist/{index-DiV6JJiS.js → index-CW3QYddJ.js} +2 -2
- package/dist/{index-C5l1mFuD.js → index-C_T9Gzw8.js} +2 -2
- package/dist/{index-DlaVE6S2.cjs → index-CcB11LV-.cjs} +1 -1
- package/dist/{index-KcBlGDqr.cjs → index-CeyxEbJL.cjs} +1 -1
- package/dist/{index-Cs_PxtnZ.js → index-CjQ-nqcq.js} +1 -1
- package/dist/{index-DXUQTPON.cjs → index-CngY8bhO.cjs} +1 -1
- package/dist/{index-BnaafQ9o.js → index-CsPpB1Kw.js} +1 -1
- package/dist/{index-Dl-wY6fc.cjs → index-CtlfDEiP.cjs} +1 -1
- package/dist/{index-CaNnYmEs.js → index-D3y-KMW-.js} +4 -4
- package/dist/{index-DOlgncMG.js → index-D7a7hidA.js} +1230 -1216
- package/dist/{index-CJM_lW9n.cjs → index-DPHERztz.cjs} +1 -1
- package/dist/{index-9UO7Pd64.cjs → index-DS0bdfOa.cjs} +1 -1
- package/dist/index-DVdM4Oz7.js +420 -0
- package/dist/{index-D5nWhHZv.js → index-DtpMK8Ak.js} +2 -2
- package/dist/{index-DhJIuRg9.js → index-Du_-zpYu.js} +4 -4
- package/dist/{index-fnMeddEM.js → index-KlPMACee.js} +2 -2
- package/dist/{index-DC5Cn-TM.js → index-OUX19p46.js} +2 -2
- package/dist/{index-CDYYXcsk.cjs → index-SP-G4Erl.cjs} +1 -1
- package/dist/{index-CpB78PPQ.cjs → index-YbpU8b-b.cjs} +1 -1
- package/dist/{index-DCpnqWRN.js → index-_0aF8UPX.js} +2 -2
- package/dist/{index-BWiQR9j3.cjs → index-c5HMVa4V.cjs} +1 -1
- package/dist/{index-BIUeLQJ1.js → index-h82qauh2.js} +4 -4
- package/dist/{index-ClvbjqJL.js → index-jLIz3LSI.js} +2 -2
- package/dist/{index-Blq-MoAk.cjs → index-jr-7RW3y.cjs} +1 -1
- package/dist/{index-B001qopB.js → index-m-1yJOxv.js} +3 -3
- package/dist/{index-4NoQLiJo.cjs → index-o4bA2Ymm.cjs} +1 -1
- package/dist/{index-RGCDszX8.cjs → index-zcRhAq4N.cjs} +1 -1
- package/dist/index.cjs.js +4 -143
- package/dist/index.es.js +2489 -3357
- package/dist/{it-CzKrFTFY.cjs → it-iA1CUA-2.cjs} +1 -1
- package/dist/{it-B4qZsicu.js → it-l8u4xqsP.js} +1 -1
- package/dist/{ja-i_9MZ1j0.cjs → ja-CRKtLvpo.cjs} +1 -1
- package/dist/{ja-BnCSmhkg.js → ja-Dr2Azv8X.js} +1 -1
- package/dist/json-schema/index.cjs.js +1 -1
- package/dist/json-schema/index.es.js +1 -1
- package/dist/{ko-D_gGkjrC.js → ko-C97MbNN9.js} +1 -1
- package/dist/{ko-CF9il-Az.cjs → ko-DAqjjbor.cjs} +1 -1
- package/dist/markdown/index.cjs.js +2 -2
- package/dist/markdown/index.es.js +34 -34
- package/dist/markdown.css +162 -0
- package/dist/milkdown/index.cjs.js +1 -1
- package/dist/milkdown/index.es.js +1 -1
- package/dist/{milkdown-input-CYme9OBn.js → milkdown-input-Dp-upGqQ.js} +26 -26
- package/dist/{milkdown-input-KjtVqDzi.cjs → milkdown-input-EMBZNdma.cjs} +2 -2
- package/dist/milkdown-url-DgMTahqt.js +4 -0
- package/dist/milkdown-url-DjKYrEOH.cjs +1 -0
- package/dist/milkdown.css +21 -10
- package/dist/{modal-BItfEmu0.js → modal-at2TcO_O.js} +85 -85
- package/dist/{modal-B-f3LBKr.cjs → modal-hr4K3edu.cjs} +1 -1
- package/dist/{nl-CsLCWUFF.js → nl-BnDPAHZz.js} +1 -1
- package/dist/{nl-DfWlqR6T.cjs → nl-CCa2fPh7.cjs} +1 -1
- package/dist/notice-CplKL-zm.cjs +1 -0
- package/dist/notice-DhynzVip.js +2467 -0
- package/dist/{pl-wK2sgv7l.cjs → pl-BVuQd0i3.cjs} +1 -1
- package/dist/{pl-Bsmj1KbZ.js → pl-DYEVmpx5.js} +1 -1
- package/dist/{pt-DAQIuOPW.cjs → pt-BFGThC8F.cjs} +1 -1
- package/dist/{pt-BR_NuRJS.js → pt-C-cIHGoh.js} +1 -1
- package/dist/{ru-BnoiCxrw.cjs → ru-M4WO0h1a.cjs} +1 -1
- package/dist/{ru-CiQ_qKD_.js → ru-n2tT3Gv-.js} +1 -1
- package/dist/styles-url-CIhMtnm4.js +4 -0
- package/dist/styles-url-SkuBc_7K.cjs +1 -0
- package/dist/tailwind/index.cjs.js +1 -0
- package/dist/tailwind/index.es.js +5 -0
- package/dist/tailwind/preset.cjs.js +1 -0
- package/dist/tailwind/preset.es.js +6 -0
- package/dist/tailwind/vite-plugin.cjs.js +26 -0
- package/dist/tailwind/vite-plugin.es.js +297 -0
- package/dist/{tr-Q9xP1nE4.js → tr-CFUAqbmS.js} +1 -1
- package/dist/{tr-Bme5PfaE.cjs → tr-KxY4CbD3.cjs} +1 -1
- package/dist/{translations-ClgoCEFC.js → translations-924E7r4Q.js} +756 -582
- package/dist/translations-BtAHDMLA.cjs +2 -0
- package/dist/{translations-D4hFMU4P.js → translations-DGCYRUSw.js} +1 -1
- package/dist/{translations-lnK_6RdU.cjs → translations-Do79R-x4.cjs} +1 -1
- package/dist/types/components/button/button.d.ts +3 -1
- package/dist/types/components/data/icon.d.ts +3 -1
- package/dist/types/components/form/input/input-wrapper.d.ts +2 -1
- package/dist/types/components/form/use-form.d.ts +3 -3
- package/dist/types/components/navigation/flyout.d.ts +2 -0
- package/dist/types/components/navigation/link/button-link.d.ts +7 -3
- package/dist/types/components/navigation/link/link.d.ts +7 -2
- package/dist/types/components/navigation/link/navigation-link.d.ts +5 -5
- package/dist/types/components/navigation/link/navigation-options.d.ts +5 -0
- package/dist/types/components/navigation/sidebar/sidebar-link.d.ts +5 -0
- package/dist/types/components/navigation/tabs/tabs.d.ts +7 -7
- package/dist/types/components/theme/style-utils.d.ts +16 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/markdown/index.d.ts +1 -1
- package/dist/types/styles/base.d.ts +2 -0
- package/dist/types/tailwind/index.d.ts +2 -0
- package/dist/types/tailwind/preset.d.ts +37 -0
- package/dist/types/tailwind/vite-plugin.d.ts +16 -0
- package/dist/types/temporal/with-temporal.d.ts +5 -1
- package/dist/types/tokens/colors.d.ts +13 -3
- package/dist/types/tokens/index.d.ts +3 -0
- package/dist/{ur-CGTjSoJt.js → ur-B7kT0PwV.js} +1 -1
- package/dist/{ur-B4b39hNV.cjs → ur-GeXcd9eA.cjs} +1 -1
- package/dist/{vi-BF3HTFU9.js → vi-CA85io1z.js} +1 -1
- package/dist/{vi-CSpW181L.cjs → vi-DYvrvqim.cjs} +1 -1
- package/dist/{zh-PeL8FN2c.cjs → zh-EIWIyzbZ.cjs} +1 -1
- package/dist/{zh-BreM8U2w.js → zh-cLh5uTFh.js} +1 -1
- package/package.json +27 -3
- package/dist/index-JHbFZFZF.cjs +0 -8
- package/dist/milkdown-url-BKbqhNCO.js +0 -4
- package/dist/milkdown-url-BLgXPmZR.cjs +0 -1
- package/dist/notice-B7JqE59s.cjs +0 -1
- package/dist/notice-CmmpobJd.js +0 -2415
- package/dist/styles-url-B-d6aezR.cjs +0 -1
- package/dist/styles-url-B4WGMvfi.js +0 -4
- package/dist/translations-DRBh70w8.cjs +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const r=require("@tempots/dom"),$=require("@tempots/ui"),Q=require("./colors-B8HoRLA_.cjs");function F(e,{units:t=["B","KB","MB","GB","TB"],decimalPlaces:n=0,locale:s}={}){if(e===0||e===0n)return new Intl.NumberFormat(s,{style:"unit",unit:"byte",unitDisplay:"short",maximumFractionDigits:0}).format(0).replace("byte",t[0]);let a,o;if(typeof e=="bigint"){let c=e<0n?-e:e;for(a=0;c>=1024n&&a<t.length-1;)c=c/1024n,a++;o=Number(e)/Math.pow(1024,a)}else a=Math.floor(Math.log(Math.abs(e))/Math.log(1024)),a=Math.min(a,t.length-1),o=e/Math.pow(1024,a);return new Intl.NumberFormat(s,{style:"unit",unit:"byte",unitDisplay:"short",minimumFractionDigits:a===0?0:n,maximumFractionDigits:a===0?0:n}).format(o).replace("byte",t[a])}const K=new Map;function N(e){const t=K.get(e)??0;return K.set(e,t+1),`${e}-${t}`}const v={notAsked:{type:"NotAsked"},loading(e=void 0){return{type:"Loading",previousValue:e}},success(e){return{type:"AsyncSuccess",value:e}},failure(e){return{type:"AsyncFailure",error:e}},isSuccess(e){return e.type==="AsyncSuccess"},isFailure(e){return e.type==="AsyncFailure"},isNotAsked(e){return e.type==="NotAsked"},isLoading(e){return e.type==="Loading"},getOrElse(e,t){return v.isSuccess(e)?e.value:t},getOrElseLazy(e,t){return v.isSuccess(e)?e.value:t()},getOrNull(e){return v.isSuccess(e)?e.value:null},getOrUndefined(e){return v.isSuccess(e)?e.value:void 0},getUnsafe:e=>{if(v.isSuccess(e))return e.value;throw v.isFailure(e)?e.error:new Error("Cannot get value from a not-asked or loading result")},match:(e,{success:t,failure:n,loading:s,notAsked:a=s})=>v.isSuccess(e)?t(e.value):v.isFailure(e)?n(e.error):v.isNotAsked(e)?a():s(e.previousValue),whenSuccess:(e,t)=>(v.isSuccess(e)&&t(e.value),e),whenFailure:(e,t)=>(v.isFailure(e)&&t(e.error),e),equals:(e,t,n={valueEquals:(s,a)=>s===a,errorEquals:(s,a)=>s===a})=>e.type==="AsyncSuccess"&&t.type==="AsyncSuccess"?n.valueEquals(e.value,t.value):e.type==="AsyncFailure"&&t.type==="AsyncFailure"?n.errorEquals(e.error,t.error):e.type==="Loading"&&t.type==="Loading"?n.valueEquals(e.previousValue,t.previousValue):e.type==="NotAsked"&&t.type==="NotAsked",all:e=>{const t=[];for(const n of e)if(v.isSuccess(n))t.push(n.value);else return n;return v.success(t)},ofPromise:async e=>{try{const t=await e;return v.success(t)}catch(t){return v.failure(t instanceof Error?t:new Error(String(t)))}}},P=(e,t)=>e===t||e!==e&&t!==t,y={valid:{type:"valid"},invalid(e){return{type:"invalid",error:e}},isValid(e){return e.type==="valid"},isInvalid(e){return e.type==="invalid"},match:(e,t,n)=>y.isValid(e)?t():n(e.error),toResult:(e,t)=>y.match(e,()=>f.success(t),n=>f.failure(n)),whenValid:(e,t)=>(y.isValid(e)&&t(),e),whenInvalid:(e,t)=>(y.isInvalid(e)&&t(e.error),e)},f={success(e){return{type:"Success",value:e}},failure(e){return{type:"Failure",error:e}},map:(e,t)=>e.type==="Success"?f.success(t(e.value)):e,flatMap:(e,t)=>e.type==="Success"?t(e.value):e,toAsync(e){return f.match(e,t=>v.success(t),t=>v.failure(t))},toValidation(e){return f.match(e,()=>y.valid,t=>y.invalid(t))},isSuccess(e){return e.type==="Success"},isFailure(e){return e.type==="Failure"},getOrElse(e,t){return f.isSuccess(e)?e.value:t},getOrElseLazy(e,t){return f.isSuccess(e)?e.value:t()},getOrNull(e){return f.isSuccess(e)?e.value:null},getOrUndefined(e){return f.isSuccess(e)?e.value:void 0},getUnsafe:e=>{if(f.isSuccess(e))return e.value;throw e.error},match:(e,t,n)=>f.isSuccess(e)?t(e.value):n(e.error),whenSuccess:(e,t)=>(f.isSuccess(e)&&t(e.value),e),whenFailure:(e,t)=>(f.isFailure(e)&&t(e.error),e),combine:(e,t,n,s)=>f.match(e,a=>f.match(t,o=>f.success(n(a,o)),o=>f.failure(o)),a=>f.match(t,o=>f.failure(a),o=>f.failure(s(a,o)))),equals:(e,t,n={valueEquals:(s,a)=>s===a,errorEquals:(s,a)=>s===a})=>e.type==="Success"&&t.type==="Success"?n.valueEquals(e.value,t.value):e.type==="Failure"&&t.type==="Failure"?n.errorEquals(e.error,t.error):!1,all:e=>{const t=[];for(const n of e)if(f.isSuccess(n))t.push(n.value);else return n;return f.success(t)}},Z={loadingExtended:"Loading, please wait",loadingShort:"Loading...",locale:"Locale",iconDescription:"Icon",loadingIcon:"Loading icon",failedToLoadIcon:"Failed to load icon",editLabel:"Edit",selectOne:"Select one",selectMany:"Select many",noResults:"No results",passwordPlaceholderText:"Secret Password",togglePasswordVisibility:"Toggle password visibility",toggleMenu:"Toggle menu",toggleAside:"Toggle aside",mainNavigation:"Main navigation",sidebar:"Sidebar",closeDrawer:"Close drawer",closeModal:"Close modal",confirm:"Confirm",cancel:"Cancel",addLabel:"Add",removeItem:"Remove item",currentLocale:"English",ar:"Arabic",de:"German",en:"English",es:"Spanish",fr:"French",hi:"Hindi",it:"Italian",ja:"Japanese",ko:"Korean",nl:"Dutch",pl:"Polish",pt:"Portuguese",ru:"Russian",tr:"Turkish",vi:"Vietnamese",zh:"Chinese",he:"Hebrew",fa:"Persian",ur:"Urdu",emailPlaceholderText:"Enter your email",incrementValue:"Increment value",decrementValue:"Decrement value",dropZoneInstructions:e=>e?"Click to choose or drag files here, or press Enter or Space to open file selector":"Drag files here",fileSizeUnits:["Bytes","KB","MB","GB","TB"],removeFile:"Remove file",clearAllFiles:"Clear all files",clearValue:"Reset",unknownType:"Unknown type",filesInputInstructions:(e,t,n)=>{let s=e==null||e>1?"Click to choose or drag files here":"Click to choose or drag a file here";if(e||t){const a=[];if(e!=null&&e>1&&a.push(`up to ${e} files`),t&&n){const o=F(t,{units:n});a.push(`max ${o} each`)}a.length>0&&(s+=` (${a.join(", ")})`)}else if(t&&n){const a=F(t,{units:n});s+=` (max ${a})`}return s}},Pe=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),X=Z,ee="en",te=(e,t,n)=>{const s=e[t];return s?typeof s=="function"?s():Promise.resolve(s):new Promise((a,o)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(o.bind(null,new Error("Unknown variable dynamic import: "+t+(t.split("/").length!==n?". Note that variables only represent file names one level deep.":""))))})},Ve=new Set(["ar","he","fa","ur","ps","sd","ku","dv","yi","ji","iw","in"]);function R(e){if(!e)return"ltr";const t=e.split(/[-_]/)[0].toLowerCase();return Ve.has(t)?"rtl":"ltr"}function re(e,t){return e==="auto"?R(t):e}function Oe(e){return`b-${e}`}function _e(e){return R(e)==="rtl"}function Le(e){return e==="ltr"?"rtl":"ltr"}const ne={ltr:{"inline-start":"left","inline-end":"right","block-start":"top","block-end":"bottom"},rtl:{"inline-start":"right","inline-end":"left","block-start":"top","block-end":"bottom"}};function Te(e,t){return ne[t][e]}const se={mark:r.makeProviderMark("Locale"),create:e=>{const t=r.localStorageProp({defaultValue:navigator.language??"en-US",key:"beatui-locale"}),n=r.localStorageProp({defaultValue:"auto",key:"beatui-direction-preference"}),s=r.computedOf(t,n)((o,i)=>re(i,o));return{value:{locale:t,setLocale:o=>t.set(o),direction:s,directionPreference:n,setDirectionPreference:o=>n.set(o)},dispose:()=>{t.dispose(),n.dispose(),s.dispose()}}}},{variants:Me,special:Ae,overrides:W}=Q.backgroundConfig;function V(e,t){switch(e){case"white":return"var(--color-white)";case"black":return"var(--color-black)";case"transparent":return"transparent";default:return Q.getColorVar(e,t)}}function ae(e,t){const n=Ae[e];if(!n)return;if(t==="light")return n;const s=W[e];return s?s[t]:n}function D(e,t,n){const s=W[e];if(s){const o=s[n];if(o)return{backgroundColor:o.backgroundColor,textColor:o.color}}if(t==="solid"){const o=ae(e,n);if(o)return{backgroundColor:o.backgroundColor,textColor:o.color}}const a=Me[t][n];return{backgroundColor:V(e,a.bgShade),textColor:a.textColor}}const Be={light:{shade:600,textColor:"var(--color-white)"},dark:{shade:600,textColor:"var(--text-inverted-dark)"}},qe={light:{shade:300,textColor:"var(--text-normal-light)"},dark:{shade:700,textColor:"var(--text-normal-dark)"}},$e={light:{shade:400,textColor:"var(--text-normal-light)"},dark:{shade:600,textColor:"var(--text-normal-dark)"}};function S(e,t,n){const s=W[e];if(s){const o=s[n];if(o)return{backgroundColor:o.backgroundColor,textColor:o.color}}if(t==="solid"){const o=ae(e,n);if(o)return{backgroundColor:o.backgroundColor,textColor:o.color};const i=Be[n];return{backgroundColor:V(e,i.shade),textColor:i.textColor}}const a=t==="light"?qe[n]:$e[n];return{backgroundColor:V(e,a.shade),textColor:a.textColor}}function Y(e,t){const n=t==="light"?500:600;switch(e){case"white":return t==="light"?"var(--text-inverse-light)":"var(--text-inverted-dark)";case"black":return"var(--color-black)";case"transparent":return"transparent";default:return V(e,n)}}function E(e,t){return e==="white"?"var(--color-white)":e==="black"?"var(--color-black)":e==="transparent"?"inherit":V(e,t==="light"?800:200)}function J(e,t,n){return t==="soft"?V(e,n==="light"?300:700):V(e,n==="light"?500:600)}const Fe="bui-icons",M=new Map,H=(()=>{try{return typeof indexedDB<"u"&&indexedDB!==null}catch{return!1}})();function je(){return H?new Promise((e,t)=>{const n=indexedDB.open(Fe,1);n.onupgradeneeded=function(s){const a=s.target.result;a.objectStoreNames.contains("icons")||a.createObjectStore("icons")},n.onsuccess=function(){e(n.result)},n.onerror=function(){t(n.error)}}):Promise.reject(new Error("IndexedDB not available"))}const A=H?je():null;function oe(e,t){return new Promise(async(n,s)=>{try{if(A){const o=(await A).transaction("icons","readwrite");o.objectStore("icons").put(t,e),o.oncomplete=n,o.onerror=s}else M.set(e,t),n(void 0)}catch{M.set(e,t),n(void 0)}})}function ie(e){return new Promise(async(t,n)=>{try{if(A){const i=(await A).transaction("icons","readonly").objectStore("icons").get(e);i.onsuccess=function(){t(i.result)},i.onerror=n}else t(M.get(e)||null)}catch{t(M.get(e)||null)}})}async function Ne(e){const t=`https://api.iconify.design/${e}.svg`;return fetch(t).then(n=>{if(n.status===200)return n.text();throw new Error(`Failed to load icon: ${e}`)})}async function Re(e){const t=e.replace(":","/"),n=await ie(t);if(n)return n;const s=await Ne(t);return await oe(t,s),s}function We(e){return["bc-icon",`bc-icon--${e}`].join(" ")}function He(e,t="solid"){if(!e)return"";const n=J(e,t,"light"),s=J(e,t,"dark");return`--icon-color: ${n}; --icon-color-dark: ${s}`}function O({icon:e,size:t="md",color:n,title:s,accessibility:a="auto",tone:o="solid"},...i){const l=r.computedOf(a,s)((c,h)=>c==="decorative"?!1:c==="informative"?!0:h!=null&&h!=="");return r.Use(_,c=>r.html.span(r.attr.class(r.computedOf(t,n)(h=>We(h??"md"))),r.attr.style(r.computedOf(n,o)((h,u)=>He(h??void 0,u??"solid"))),r.When(l,()=>r.Fragment(r.attr.role("img"),r.aria.label(r.coalesce(s,c.$.iconDescription))),()=>r.aria.hidden(!0)),$.WhenInViewport({once:!0},()=>$.Query({request:e,load:({request:h})=>Re(h),convertError:String,success:({value:h})=>r.html.span(r.style.width("100%"),r.style.height("100%"),r.attr.innerHTML(h)),pending:()=>r.html.span(r.attr.class("animate-spin"),r.When(l,()=>r.Fragment(r.attr.role("img"),r.aria.label(c.$.loadingIcon)),()=>r.aria.hidden(!0)),"↻"),failure:({error:h})=>r.html.span(r.attr.title(h),r.attr.class("text-red-500"),r.When(l,()=>r.Fragment(r.attr.role("img"),r.aria.label(c.$.failedToLoadIcon)),()=>r.aria.hidden(!0)),"🚫")})),...i))}function le(e,t,n,s,a,o){const i=["bc-button",`bc-button--size-${t}`,`bc-control--padding-${t}`,`bc-control--rounded-${s}`];return o&&i.push("bc-button--loading"),i.join(" ")}function ce(e,t,n){const s=new Map,a=(o,i,l,c)=>{n||(s.set("--button-bg-hover",o),s.set("--button-text-hover",l),s.set("--button-bg-hover-dark",i),s.set("--button-text-hover-dark",c))};switch(e){case"filled":{const o=D(t,"solid","light"),i=D(t,"solid","dark");s.set("--button-bg",o.backgroundColor),s.set("--button-text",o.textColor),s.set("--button-bg-dark",i.backgroundColor),s.set("--button-text-dark",i.textColor);const l=S(t,"solid","light"),c=S(t,"solid","dark");a(l.backgroundColor,c.backgroundColor,l.textColor,c.textColor);break}case"light":{const o=D(t,"light","light"),i=D(t,"light","dark");s.set("--button-bg",o.backgroundColor),s.set("--button-text",o.textColor),s.set("--button-bg-dark",i.backgroundColor),s.set("--button-text-dark",i.textColor);const l=S(t,"light","light"),c=S(t,"light","dark");a(l.backgroundColor,c.backgroundColor,l.textColor,c.textColor);break}case"outline":{s.set("--button-bg","transparent"),s.set("--button-bg-dark","transparent"),s.set("--button-border",Y(t,"light")),s.set("--button-border-dark",Y(t,"dark")),s.set("--button-text",E(t,"light")),s.set("--button-text-dark",E(t,"dark"));const o=S(t,"light","light"),i=S(t,"light","dark");a(o.backgroundColor,i.backgroundColor,o.textColor,i.textColor);break}case"default":{const o=D("neutral","light","light"),i=D("neutral","light","dark");s.set("--button-bg",o.backgroundColor),s.set("--button-text",E(t,"light")),s.set("--button-bg-dark",i.backgroundColor),s.set("--button-text-dark",E(t,"dark"));const l=S("base","light","light"),c=S("base","light","dark");a(l.backgroundColor,c.backgroundColor,s.get("--button-text")??o.textColor,s.get("--button-text-dark")??i.textColor);break}case"text":{s.set("--button-bg","transparent"),s.set("--button-bg-dark","transparent"),s.set("--button-text",E(t,"light")),s.set("--button-text-dark",E(t,"dark")),n||s.set("--button-hover-decoration","underline");break}}return Array.from(s.entries()).map(([o,i])=>`${o}: ${i}`).join("; ")}function ue({type:e="button",disabled:t,loading:n,variant:s="filled",size:a="md",color:o="base",roundedness:i="sm",onClick:l=()=>{}},...c){const h=r.prop(null);return r.Use(_,u=>r.html.button(r.attr.type(e),r.attr.disabled(r.computedOf(t,n)((d,p)=>d||p)),r.aria.busy(n??!1),r.When(n??!1,()=>r.aria.label(u.$.loadingExtended)),r.attr.class(r.computedOf(s,a,o,i,t,n)((d,p,b,g,m,k)=>le(d??"filled",p??"md",b??"base",g??"sm",m,k))),r.attr.style(r.computedOf(s,o,t)((d,p,b)=>ce(d??"filled",p??"base",b))),r.When(n??!1,()=>r.Fragment(r.style.width(h.map(d=>d==null?"":`${d.width}px`)),r.style.height(h.map(d=>d==null?"":`${d.height}px`)),O({icon:"line-md:loading-twotone-loop",size:a??"md"}),r.html.span(r.attr.class("sr-only"),r.aria.live("polite"),u.$.loadingExtended)),()=>r.Fragment(r.on.click(l),...c)),r.When(n!=null,()=>$.ElementRect(d=>r.OnDispose(d.on(p=>{r.Value.get(n??!1)||h.set(p)}))))))}function Ue({size:e="sm",icon:t="line-md:close",disabled:n,roundedness:s="full",color:a="base",onClick:o,label:i},...l){return r.Use(_,c=>{const h=r.coalesce(i,c.$.closeModal);return ue({variant:"text",size:e,roundedness:s,disabled:n,color:a,onClick:o},r.attr.title(h),r.aria.label(h),...l,O({icon:t,size:e??"sm"}))})}function ze(e,t,n){const s=[e?"bc-base-input-container":"bc-input-container"];return t?s.push(e?"bc-base-input-container--disabled":"bc-input-container--disabled"):s.push(e?"bc-base-input-container--default":"bc-input-container--default"),n&&s.push("bc-input-container--error"),s.join(" ")}const T=({baseContainer:e,disabled:t,input:n,before:s,after:a,hasError:o,focusableSelector:i="input, select, textarea",growInput:l=!0},...c)=>{const h=r.Value.map(t??!1,u=>u);return r.html.div(r.WithElement(u=>{const d=()=>{u.querySelector(i)?.focus()};return u.addEventListener("click",d),r.OnDispose(()=>u.removeEventListener("click",d))}),r.attr.class(r.computedOf(e,h,o??!1)((u,d,p)=>ze(u??!1,d??!1,p??!1))),s!=null?r.html.span(r.attr.class("bc-input-container__before"),s):null,r.html.div(r.attr.class("bc-input-container__input"),r.attr.class(r.Value.map(l,u=>u?"bc-input-container__input--grow":"")),n),a!=null?r.html.span(r.attr.class("bc-input-container__after"),a):null,...c)};function B(e){return`bc-label bc-label--${e}`}const Ge=(...e)=>r.html.span(r.attr.class(B("emphasis")),...e),de=(...e)=>r.html.span(r.attr.class(B("default")),...e),he=(...e)=>r.html.span(r.attr.class(B("muted")),...e),Ke=(...e)=>r.html.span(r.attr.class(B("error")),...e),Ye=e=>{const{value:t,onBlur:n,onChange:s,placeholder:a,disabled:o,id:i}=e,l=i??N("checkbox"),c=`${l}-label`,h=()=>{if(r.Value.get(o??!1))return;const d=r.Value.get(t);s?.(!d)},u=d=>{r.Value.get(o??!1)||(d.key===" "||d.key==="Enter")&&(d.preventDefault(),h())};return T({baseContainer:!0,growInput:!1,...e,input:r.html.span(r.attr.class("bc-checkbox-input"),r.html.span(r.attr.class("bc-checkbox-input__checkbox"),r.attr.class(r.Value.map(t,d=>d?"bc-checkbox-input__checkbox--checked":"")),r.attr.class(r.Value.map(o??!1,d=>d?"bc-checkbox-input__checkbox--disabled":"")),r.attr.id(l),r.attr.role("checkbox"),r.attr.tabindex(r.Value.map(o??!1,d=>d?-1:0)),r.aria.checked(t),r.aria.disabled(o),a!=null?r.aria.labelledby(c):r.Empty,r.on.keydown(u),n!=null?r.on.blur(n):r.Empty),a!=null?r.html.label(r.attr.class("bc-checkbox-input__label"),r.attr.id(c),r.attr.for(l),he(a)):r.Empty)},r.on.click(h))},q=({autocomplete:e,autofocus:t,class:n,disabled:s,name:a,placeholder:o,id:i,required:l,hasError:c})=>r.Fragment(r.attr.autocomplete(e),r.attr.autofocus(t),r.attr.class(n),r.attr.disabled(s),r.attr.name(a??i),r.attr.placeholder(o),r.attr.id(i),r.aria.required(l),c!=null?r.aria.invalid(c??!1):null),pe=r.html.span(r.attr.class("bc-input-wrapper__required")," *");function Je(e){const t=["bc-input-wrapper"];return e&&t.push("bc-input-wrapper--horizontal"),t.join(" ")}function Qe(e,t){const n=["bc-input-wrapper__label-text"];return e?n.push("bc-input-wrapper__label-text--error"):t?n.push("bc-input-wrapper__label-text--disabled"):n.push("bc-input-wrapper__label-text--default"),n.join(" ")}const U=({required:e,label:t,labelChildren:n,context:s,description:a,content:o,error:i,labelFor:l,hasError:c,disabled:h,horizontal:u},...d)=>{const p=c??i!=null,b=h??!1,g=u??!1,m=N("input-wrapper"),k=a?`${m}-description`:void 0,w=i!=null?`${m}-error`:void 0;return r.html.div(r.attr.class(r.Value.map(g,C=>Je(C))),t!=null||s!=null?r.html.div(r.attr.class("bc-input-wrapper__header"),r.html.div(r.attr.class("bc-input-wrapper__label-section"),r.html.label(r.attr.class("bc-input-wrapper__label"),l!=null?r.attr.for(l):r.Empty,r.html.span(r.attr.class(r.computedOf(p,b)((C,x)=>Qe(C??!1,x??!1))),t),t!=null&&e?pe:r.Empty),r.When(r.computedOf(g,a)((C,x)=>C&&x!=null),()=>r.html.div(r.attr.class("bc-input-wrapper__description bc-input-wrapper__description--under-label"),r.attr.id(k),a))),s!=null?de(s):r.Empty,n):r.Empty,r.html.div(r.attr.class("bc-input-wrapper__content"),[k,w].filter(Boolean).length>0?r.dataAttr.describedby([k,w].filter(Boolean).join(" ")):r.Empty,e?r.dataAttr.required("true"):r.Empty,r.When(p,()=>r.dataAttr.invalid("true")),o),r.When(r.computedOf(g,a)((C,x)=>!C&&x!=null),()=>r.html.div(r.attr.class("bc-input-wrapper__description"),r.attr.id(k),a)),i!=null?r.When(p,()=>r.html.div(r.attr.class("bc-input-wrapper__error"),r.attr.id(w),r.aria.live("polite"),r.attr.role("alert"),i)):null,...d)};function Ze(...e){return r.html.div(r.attr.class("bc-stack"),...e)}const Xe=e=>{const t={name:"email",autocomplete:"email",...e},{value:n,before:s,onBlur:a,onChange:o,onInput:i,placeholder:l}=t,c=s??O({icon:"line-md:email",size:"sm",color:"neutral"});return r.Use(_,h=>T({...e,before:c,input:r.input.email(q(t),r.attr.placeholder(r.coalesce(l,h.$.emailPlaceholderText)),r.attr.value(n),r.attr.class("bc-input"),a!=null?r.on.blur(r.emitValue(a)):r.Empty,o!=null?r.on.change(r.emitValue(o)):r.Empty,i!=null?r.on.input(r.emitValue(i)):r.Empty)}))},et=e=>{const{value:t,onBlur:n,onChange:s,onInput:a}=e;return T({...e,input:r.input.text(q(e),r.attr.value(t),r.attr.class("bc-input"),n!=null?r.on.blur(r.emitValue(n)):r.Empty,s!=null?r.on.change(r.emitValue(s)):r.Empty,a!=null?r.on.input(r.emitValue(a)):r.Empty)})},tt=e=>{const{value:t,onBlur:n,onChange:s,onInput:a,before:o,after:i,hasError:l,disabled:c,autocomplete:h,placeholder:u,...d}=e,p={name:"password",disabled:c,...d},b=r.prop(!0),g=r.computedOf(b,h)((m,k)=>m?k??"current-password":"off");return r.Use(_,m=>{const k=r.computedOf(m.$.passwordPlaceholderText,b,u)((C,x,Ee)=>x?"•••••••••••••••":Ee??C),w=r.html.button(r.attr.class("bc-input-container__password-toggle"),r.aria.label(m.$.togglePasswordVisibility),r.on.click(()=>b.update(C=>!C)),r.When(b,()=>O({icon:"line-md:watch"}),()=>O({icon:"line-md:watch-off"})));return T({before:o,disabled:c,hasError:l,input:r.html.input(q({...p,autocomplete:g,placeholder:k}),r.When(b,()=>r.Fragment(r.attr.type("password")),()=>r.Fragment(r.attr.type("text"))),r.attr.class("bc-input"),r.attr.value(t),n!=null?r.on.blur(r.emitValue(n)):r.Empty,s!=null?r.on.change(r.emitValue(s)):r.Empty,a!=null?r.on.input(r.emitValue(a)):r.Empty),after:i!=null?r.Fragment(w,i):w})})},fe=(e,t)=>()=>{e.markTouched(),t?.()},me=(e,t)=>n=>{e.change(n),t?.(n)};function z(e,t){const{controller:n,onBlur:s,onChange:a,...o}=t;return e({id:n.name,disabled:n.disabled,value:n.value,hasError:n.errorVisible,...o,onChange:me(n,a),onBlur:fe(n,s)})}function rt(e,t,...n){return U({...t,content:z(e,t)},...n)}function be(e,t){const{toInput:n,fromInput:s,controller:a,...o}=t,i=a.transform(n,s);return z(e,{...o,controller:i})}function nt(e,t,...n){return U({...t,content:be(e,t)},...n)}function st(e){return e.split(".").map(n=>{const s=n.match(/^\[(\d+)\]$/);return s?Number(s[1]):n})}function ge(e){return typeof e=="number"?`[${e}]`:`.${e}`}function ve(e){if(e.length===0)return"";const[t,...n]=e;return[typeof t=="number"?`[${t}]`:t,...n.map(ge)].join("")}function L(e){return function(n){if(n.type==="valid")return n;let s=n.error;for(const a of e)if(s=s?.dependencies?.[a],s==null)return y.valid;return y.invalid(s)}}class I{path;change;value;status;error;hasError;touched;errorVisible;dirty;dependencyErrors;#e={disabled:r.prop(!1),touched:r.prop(!1)};#r;#t=r.prop(void 0);parent;disabled;#n=[];disabledOrHasErrors;constructor(t,n,s,a,o,i=P){this.path=t,this.change=n,this.value=s,this.status=a,this.#r=i,this.#t.set(s.value),this.error=a.map(l=>l?.type==="invalid"?l.error?.message:void 0),this.hasError=this.error.map(l=>l!=null),this.touched=this.#e.touched,o.validationMode?this.errorVisible=r.computedOf(this.hasError,this.touched,o.validationMode)((l,c,h)=>h==="continuous"?!!l:!!l&&!!c):this.errorVisible=r.computedOf(this.hasError,this.touched)((l,c)=>!!l&&!!c),this.dirty=r.computedOf(this.value,this.#t)((l,c)=>!this.#r(l,c)),this.dependencyErrors=a.map(l=>l?.type==="invalid"?l.error?.dependencies:void 0),this.parent=o,this.disabled=r.computedOf(this.#e.disabled,o.disabled)((l,c)=>l||c),this.disabledOrHasErrors=r.computedOf(this.disabled,this.hasError)((l,c)=>l||c),this.onDispose(()=>{this.#e.disabled.dispose(),this.#e.touched.dispose(),this.disabled.dispose(),this.error.dispose(),this.errorVisible.dispose(),this.dirty.dispose(),this.#t.dispose(),this.dependencyErrors.dispose(),this.disabledOrHasErrors.dispose()})}get name(){return ve(this.path)}onDispose=t=>{this.#n.push(t)};dispose=()=>{for(const t of this.#n)try{t()}catch(n){console.error("Error in dispose callback:",n)}this.#n.length=0};setDisabled=t=>{this.#e.disabled.set(t)};disable=()=>this.setDisabled(!0);enable=()=>this.setDisabled(!1);markTouched=()=>{this.#e.touched.set(!0)};resetTouched=()=>{this.#e.touched.set(!1)};markPristine=()=>{this.#t.set(this.value.value)};reset=()=>{this.change(this.#t.value)};array=(t=P)=>new ke(this.path,this.change,this.value,this.status,this.parent,t);object=(t=P)=>new ye(this.path,this.change,this.value,this.status,this.parent,t);transform=(t,n,s=[],a=P)=>new I([...this.path,...s],o=>this.change(n(o)),this.value.map(t,a),this.status.map(L(s)),this.parent,a);asyncTransform=(t,n,s,a=[],o=P)=>new I([...this.path,...a],i=>{n(i).then(l=>this.change(l))},this.value.mapAsync(t,s,void 0,o),this.status.map(L(a)),this.parent,o)}class ye extends I{#e=new Map;#r=new Map;#t=new Map;#n=r.prop(!1);touchedDeep=this.#n;#a=new Map;#s=new Map;#i=r.prop(!1);dirtyDeep=this.#i;#c;#u;#l=()=>{let t=!1;for(const n of this.#r.values())if(n){t=!0;break}this.#n.set(this.touched.value||t)};constructor(t,n,s,a,o,i){super(t,n,s.map(c=>c??{},i),a,o,i),this.#c=this.touched.on(()=>{this.#l()}),this.#u=this.dirty.on(()=>{this.#o()});const l=this.value.on(()=>this.#o());this.onDispose(()=>{for(const c of this.#e.values())c.dispose();this.#e.clear();for(const c of this.#t.values())c();this.#t.clear(),this.#r.clear(),this.#n.dispose();for(const c of this.#s.values())c();this.#s.clear(),this.#a.clear(),this.#i.dispose(),this.#c(),this.#u(),l()})}field=t=>{if(this.#e.has(t))return this.#e.get(t);const n=async i=>{this.change({...this.value.value,[t]:i})},s=new I([...this.path,t],n,this.value.map(i=>i[t]),this.status.map(L([t])),{disabled:this.disabled,validationMode:this.parent.validationMode});this.#e.set(t,s);const a=s.touched.on(i=>{this.#r.set(t,i),this.#l()});this.#t.set(t,a);const o=s.dirty.on(i=>{this.#a.set(t,i),this.#o()});return this.#s.set(t,o),s};markAllTouched=()=>{this.markTouched();const t=this.value.value;for(const n of Object.keys(t))this.field(n).markTouched();for(const n of this.#e.values())n.markTouched()};markAllPristine=()=>{this.markPristine();const t=this.value.value;for(const n of Object.keys(t))this.field(n).markPristine?.();for(const n of this.#e.values())n.markPristine?.()};#o=()=>{let t=!1;for(const n of this.#a.values())if(n){t=!0;break}this.#i.set(this.dirty.value||t)}}class ke extends I{#e=new Array;length;#r=new Map;#t=new Map;#n=r.prop(!1);touchedDeep=this.#n;#a=new Map;#s=new Map;#i=r.prop(!1);dirtyDeep=this.#i;#c;#u;#l=()=>{let t=!1;for(const n of this.#r.values())if(n){t=!0;break}this.#n.set(this.touched.value||t)};constructor(t,n,s,a,o,i){const l=s.map(u=>u??[],i);super(t,n,l,a,o,i);const c=l.on(u=>{const d=this.#e.length-u.length;d>0&&(this.#e.splice(u.length,d).forEach((p,b)=>{const g=u.length+b;p.dispose(),this.#t.get(g)?.(),this.#t.delete(g),this.#r.delete(g),this.#s.get(g)?.(),this.#s.delete(g),this.#a.delete(g)}),this.#l(),this.#o())});this.length=l.map(u=>u.length),this.#c=this.touched.on(()=>{this.#l()}),this.#u=this.dirty.on(()=>{this.#o()});const h=this.value.on(()=>this.#o());this.onDispose(()=>{for(const u of this.#e)u.dispose();this.length.dispose(),this.#e.length=0,c(),l.dispose();for(const u of this.#t.values())u();this.#t.clear(),this.#r.clear(),this.#n.dispose();for(const u of this.#s.values())u();this.#s.clear(),this.#a.clear(),this.#i.dispose(),this.#c(),this.#u(),h()})}item=t=>{if(this.#e[t])return this.#e[t];const n=async i=>{const l=this.value.value.slice();l[t]=i,this.change(l)},s=new I([...this.path,t],n,this.value.map(i=>i[t]),this.status.map(L([t])),{disabled:this.disabled,validationMode:this.parent.validationMode});this.#e[t]=s;const a=s.touched.on(i=>{this.#r.set(t,i),this.#l()});this.#t.set(t,a);const o=s.dirty.on(i=>{this.#a.set(t,i),this.#o()});return this.#s.set(t,o),s};push=(...t)=>{this.change([...this.value.value,...t])};pop=()=>{this.splice(this.value.value.length-1,1)};shift=()=>{this.splice(0,1)};unshift=(...t)=>{this.change([...t,...this.value.value])};removeAt=t=>{this.splice(t,1)};splice=(t,n)=>{const s=this.value.value.slice();s.splice(t,n),this.change(s)};move=(t,n,s=1)=>{if(s<1||t===n)return;const a=this.value.value.slice(),o=a.splice(t,s);a.splice(n,0,...o),this.change(a)};markAllTouched=()=>{this.markTouched();const t=this.value.value.length;for(let n=0;n<t;n++)this.item(n).markTouched()};markAllPristine=()=>{this.markPristine();const t=this.value.value.length;for(let n=0;n<t;n++)this.item(n).markPristine?.()};#o=()=>{let t=!1;for(const n of this.#a.values())if(n){t=!0;break}this.#i.set(this.dirty.value||t)}}function Ce(e){function t(n){return typeof n=="number"?n:n.toString()}return e.map(n=>typeof n=="object"&&n.key!=null?t(n.key):t(n))}function we(e){const t=e.filter(a=>a.path==null||a.path.length===0).map(a=>a.message),n=e.filter(a=>a.path!=null&&a.path.length>0).reduce((a,o)=>{const i=Ce(o.path),l=i.pop();let c=a;for(const h of i)c.dependencies==null&&(c.dependencies={}),c.dependencies[h]==null&&(c.dependencies[h]={}),c=c.dependencies[h];return c.dependencies==null&&(c.dependencies={}),c.dependencies[l]={message:o.message},a},{}),s=t.join(`
|
|
2
|
+
`);return{...n,message:s!=""?s:void 0}}function Se({initialValue:e,onChange:t,validate:n,equals:s,validationMode:a,validateDebounceMs:o}){const i=r.Value.deriveProp(e),l=r.prop(y.valid),c=r.prop(!1),h=r.prop(a??"touchedOrSubmit"),u=m=>{l.set(m)};let d;const p=async m=>{if(n!=null){const k=await n(m);u(k)}},b=async m=>{i.set(m),t?.(m);const k=h.value;if(n!=null){if(k==="onSubmit")return;const w=o??0;w>0?(d&&clearTimeout(d),d=setTimeout(()=>{p(m)},w)):await p(m)}},g=new I([],b,i,l,{disabled:c,validationMode:h},s??P);return g.onDispose(()=>{c.dispose(),i.dispose(),l.dispose(),h.dispose(),d&&clearTimeout(d)}),{controller:g,setStatus:u}}function G(e){return r.Fragment(r.attr.disabled(e.disabled),r.attr.name(e.name))}function at(e,{triggerOn:t="change"}={}){return r.Fragment(G(e),r.attr.value(e.value),(t==="input"?r.on.input:r.on.change)(r.emitValue(e.change)))}function ot(e,{triggerOn:t="change"}={}){return r.Fragment(G(e),r.attr.valueAsNumber(e.value),(t==="input"?r.on.input:r.on.change)(r.emitValueAsNumber(e.change)))}function j(e){return e.issues!=null?y.invalid(we(e.issues)):y.valid}async function it({task:e,errorMessage:t,errorPath:n=["root"],validation:s}){try{const a=await e();return s!=null?s(a):y.valid}catch(a){const o=t??(a instanceof Error?a.message:"Operation failed");return n.length===1&&n[0]==="root"?y.invalid({message:o}):y.invalid({dependencies:Ie(n,o)})}}function Ie(e,t){if(e.length===1)return{[e[0]]:{message:t}};const[n,...s]=e;return{[n]:{dependencies:Ie(s,t)}}}function lt({initialValue:e={},schema:t,onSubmit:n=async()=>y.valid,validationMode:s,validateDebounceMs:a}){const{controller:o,setStatus:i}=Se({initialValue:e,validationMode:s??"touchedOrSubmit",validateDebounceMs:a,validate:(s??"touchedOrSubmit")==="onSubmit"?void 0:async u=>j(await t["~standard"].validate(u))}),l=r.prop(!1),c=o.object();return c.onDispose(l.dispose),{controller:c,setStatus:i,submit:async u=>{if(l.set(!0),u?.preventDefault(),c.markAllTouched(),(s??"touchedOrSubmit")==="onSubmit"){const p=c.value.value,b=j(await t["~standard"].validate(p));if(i(b),b.type==="invalid"){l.set(!1);return}}const d=await n(c.value.value);l.set(!1),d.type==="invalid"&&i(d)},submitting:l}}function ct(e){const t=e.split("-"),n=[e];return t.length>1&&n.push(t[0]),n}function xe({locale:e,defaultLocale:t="en-US",defaultMessages:n,localeLoader:s}){const a=r.prop(t),o=r.prop(n),i=e.on(async l=>{if(l===a.value)return;a.set(l);const c=ct(l);for(const h of c)try{const u=await s(h);if(typeof u.default=="object"&&Object.keys(u).length===1){console.error("It appears that you are trying to load a translation module without referencing the default export. Please use `(await import(...)).default` in your loader function.");return}if(l===a.value){o.set(u);return}}catch{continue}console.warn(`No locale found for "'${e}", using fallback`),l===a.value&&o.set(n)});return{dispose:()=>{i(),a.dispose(),o.dispose()},t:o}}function De({defaultLocale:e,defaultMessages:t,localeLoader:n,providerName:s="I18nProvider"}){return{mark:r.makeProviderMark(s),create:(a,o)=>{const{value:{locale:i}}=o.getProvider(se.mark),{t:l,dispose:c}=xe({locale:i,defaultMessages:t,defaultLocale:e,localeLoader:n});return{value:l,dispose:c}}}}const _=De({defaultLocale:ee,defaultMessages:X,localeLoader:async e=>(await te(Object.assign({"./locales/ar.ts":()=>Promise.resolve().then(()=>require("./ar-CYAprS9_.cjs")),"./locales/de.ts":()=>Promise.resolve().then(()=>require("./de-rQvC-Ydh.cjs")),"./locales/en.ts":()=>Promise.resolve().then(()=>Pe),"./locales/es.ts":()=>Promise.resolve().then(()=>require("./es-BvmzhRc0.cjs")),"./locales/fa.ts":()=>Promise.resolve().then(()=>require("./fa-B3IJgHCh.cjs")),"./locales/fr.ts":()=>Promise.resolve().then(()=>require("./fr-C9hsLGOb.cjs")),"./locales/he.ts":()=>Promise.resolve().then(()=>require("./he-CHrcixO3.cjs")),"./locales/hi.ts":()=>Promise.resolve().then(()=>require("./hi-CpbCblie.cjs")),"./locales/it.ts":()=>Promise.resolve().then(()=>require("./it-iA1CUA-2.cjs")),"./locales/ja.ts":()=>Promise.resolve().then(()=>require("./ja-CRKtLvpo.cjs")),"./locales/ko.ts":()=>Promise.resolve().then(()=>require("./ko-DAqjjbor.cjs")),"./locales/nl.ts":()=>Promise.resolve().then(()=>require("./nl-CCa2fPh7.cjs")),"./locales/pl.ts":()=>Promise.resolve().then(()=>require("./pl-BVuQd0i3.cjs")),"./locales/pt.ts":()=>Promise.resolve().then(()=>require("./pt-BFGThC8F.cjs")),"./locales/ru.ts":()=>Promise.resolve().then(()=>require("./ru-M4WO0h1a.cjs")),"./locales/tr.ts":()=>Promise.resolve().then(()=>require("./tr-KxY4CbD3.cjs")),"./locales/ur.ts":()=>Promise.resolve().then(()=>require("./ur-GeXcd9eA.cjs")),"./locales/vi.ts":()=>Promise.resolve().then(()=>require("./vi-DYvrvqim.cjs")),"./locales/zh.ts":()=>Promise.resolve().then(()=>require("./zh-EIWIyzbZ.cjs"))}),`./locales/${e}.ts`,3)).default,providerName:"BeatUII18n"});exports.ArrayController=ke;exports.BaseControl=z;exports.BaseMappedControl=be;exports.BeatUII18n=_;exports.Button=ue;exports.CheckboxInput=Ye;exports.CloseButton=Ue;exports.CommonInputAttributes=q;exports.Control=rt;exports.Controller=I;exports.EmailInput=Xe;exports.EmphasisLabel=Ge;exports.ErrorLabel=Ke;exports.Icon=O;exports.InputContainer=T;exports.InputWrapper=U;exports.LOGICAL_PROPERTY_MAP=ne;exports.Label=de;exports.Locale=se;exports.MappedControl=nt;exports.MutedLabel=he;exports.O=P;exports.ObjectController=ye;exports.PasswordInput=tt;exports.RequiredSymbol=pe;exports.Stack=Ze;exports.TextInput=et;exports.__variableDynamicImportRuntimeHelper=te;exports.a=y;exports.backgroundValue=D;exports.connectCommonAttributes=G;exports.connectNumberInput=ot;exports.connectStringInput=at;exports.convertStandardSchemaIssues=we;exports.convertStandardSchemaPathToPath=Ce;exports.defaultLocale=ee;exports.defaultMessages=X;exports.formatFileSize=F;exports.generateButtonClasses=le;exports.generateButtonStyles=ce;exports.getDirectionClassName=Oe;exports.getDirectionFromLocale=R;exports.getIconLocally=ie;exports.getOppositeDirection=Le;exports.getPhysicalProperty=Te;exports.hoverBackgroundValue=S;exports.isIndexedDBAvailable=H;exports.isRTLLocale=_e;exports.makeI18nProvider=De;exports.makeMapValidation=L;exports.makeMessages=xe;exports.makeOnBlurHandler=fe;exports.makeOnChangeHandler=me;exports.parsePath=st;exports.pathToString=ve;exports.resolveDirection=re;exports.sessionId=N;exports.standardSchemaResultToValidation=j;exports.storeIconLocally=oe;exports.taskToValidation=it;exports.textColorValue=E;exports.useController=Se;exports.useForm=lt;exports.wrapSegment=ge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./translations-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./translations-BtAHDMLA.cjs"),s={signInTitle:"Sign In",signInButton:"Sign In",emailLabel:"Email",passwordLabel:"Password",rememberMeLabel:"Remember me",forgotPasswordLink:"Forgot password?",noAccountLink:"Don't have an account? Sign up",signUpTitle:"Sign Up",signUpButton:"Sign Up",nameLabel:"Name",confirmPasswordLabel:"Confirm Password",acceptTermsLabel:"I accept the terms and conditions",hasAccountLink:"Already have an account? Sign in",resetPasswordTitle:"Reset Password",resetPasswordButton:"Reset Password",resetPasswordDescription:"Enter your email to reset your password.",backToSignInLink:"Back to sign in",continueWithProvider:e=>`Continue with ${e}`,passwordStrengthWeak:"Weak",passwordStrengthFair:"Fair",passwordStrengthGood:"Good",passwordStrengthStrong:"Strong",orDivider:"or",error:"An error occurred",required:"Required",authenticationTitle:"Authentication"},o=Object.freeze(Object.defineProperty({__proto__:null,default:s},Symbol.toStringTag,{value:"Module"})),t=s,n="en",i=r.makeI18nProvider({defaultLocale:n,defaultMessages:t,localeLoader:async e=>(await r.__variableDynamicImportRuntimeHelper(Object.assign({"./locales/ar.ts":()=>Promise.resolve().then(()=>require("./ar-BsUm-TCn.cjs")),"./locales/de.ts":()=>Promise.resolve().then(()=>require("./de-BUFLEyKr.cjs")),"./locales/en.ts":()=>Promise.resolve().then(()=>o),"./locales/es.ts":()=>Promise.resolve().then(()=>require("./es-BxBeTRCv.cjs")),"./locales/fa.ts":()=>Promise.resolve().then(()=>require("./fa-DxPseW3g.cjs")),"./locales/fr.ts":()=>Promise.resolve().then(()=>require("./fr-Cdyopuz3.cjs")),"./locales/he.ts":()=>Promise.resolve().then(()=>require("./he-DarDNPn0.cjs")),"./locales/hi.ts":()=>Promise.resolve().then(()=>require("./hi-tATwsXJ6.cjs")),"./locales/it.ts":()=>Promise.resolve().then(()=>require("./it-BmFag7j0.cjs")),"./locales/ja.ts":()=>Promise.resolve().then(()=>require("./ja-Dj-bAKLf.cjs")),"./locales/ko.ts":()=>Promise.resolve().then(()=>require("./ko-BomUE-yQ.cjs")),"./locales/nl.ts":()=>Promise.resolve().then(()=>require("./nl-Dr-l6zUy.cjs")),"./locales/pl.ts":()=>Promise.resolve().then(()=>require("./pl-BK0i_yvq.cjs")),"./locales/pt.ts":()=>Promise.resolve().then(()=>require("./pt-oBMmVYcu.cjs")),"./locales/ru.ts":()=>Promise.resolve().then(()=>require("./ru-CtxMmoa6.cjs")),"./locales/tr.ts":()=>Promise.resolve().then(()=>require("./tr-CgJ8uhZu.cjs")),"./locales/ur.ts":()=>Promise.resolve().then(()=>require("./ur-DvqAg9gW.cjs")),"./locales/vi.ts":()=>Promise.resolve().then(()=>require("./vi-D5R3YcU0.cjs")),"./locales/zh.ts":()=>Promise.resolve().then(()=>require("./zh-CCGXcj5r.cjs"))}),`./locales/${e}.ts`,3)).default,providerName:"AuthI18n"});exports.AuthI18n=i;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TNode, Value } from '@tempots/dom';
|
|
2
2
|
import { ControlSize, ButtonVariant } from '../theme';
|
|
3
3
|
import { ThemeColorName } from '@/tokens';
|
|
4
|
+
import { ExtendedColor } from '../theme/style-utils';
|
|
4
5
|
import { RadiusName } from '@/tokens/radius';
|
|
5
6
|
export interface ButtonOptions {
|
|
6
7
|
type?: Value<'submit' | 'reset' | 'button'>;
|
|
@@ -12,5 +13,6 @@ export interface ButtonOptions {
|
|
|
12
13
|
roundedness?: Value<RadiusName>;
|
|
13
14
|
onClick?: () => void;
|
|
14
15
|
}
|
|
15
|
-
export declare function generateButtonClasses(variant: ButtonVariant, size: ControlSize, color:
|
|
16
|
+
export declare function generateButtonClasses(variant: ButtonVariant, size: ControlSize, color: ExtendedColor, roundedness: RadiusName, disabled?: boolean, loading?: boolean): string;
|
|
17
|
+
export declare function generateButtonStyles(variant: ButtonVariant, color: ExtendedColor, disabled?: boolean): string;
|
|
16
18
|
export declare function Button({ type, disabled, loading, variant, size, color, roundedness, onClick, }: ButtonOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TNode, Value } from '@tempots/dom';
|
|
2
2
|
import { IconSize } from '../theme';
|
|
3
3
|
import { ThemeColorName } from '@/tokens';
|
|
4
|
+
import { ForegroundTone } from '../theme/style-utils';
|
|
4
5
|
export declare const isIndexedDBAvailable: boolean;
|
|
5
6
|
export declare function storeIconLocally(id: string, svgString: string): Promise<unknown>;
|
|
6
7
|
export declare function getIconLocally(id: string): Promise<string | null>;
|
|
@@ -17,5 +18,6 @@ export interface IconOptions {
|
|
|
17
18
|
* @default 'auto'
|
|
18
19
|
*/
|
|
19
20
|
accessibility?: Value<'decorative' | 'informative' | 'auto'>;
|
|
21
|
+
tone?: Value<ForegroundTone>;
|
|
20
22
|
}
|
|
21
|
-
export declare function Icon({ icon, size, color, title, accessibility }: IconOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
|
|
23
|
+
export declare function Icon({ icon, size, color, title, accessibility, tone, }: IconOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
|
|
@@ -2,6 +2,7 @@ import { TNode, Value } from '@tempots/dom';
|
|
|
2
2
|
export declare const RequiredSymbol: import("@tempots/dom").Renderable;
|
|
3
3
|
export type InputWrapperOptions = {
|
|
4
4
|
label?: TNode;
|
|
5
|
+
labelChildren?: TNode;
|
|
5
6
|
context?: TNode;
|
|
6
7
|
description?: TNode;
|
|
7
8
|
error?: TNode;
|
|
@@ -12,4 +13,4 @@ export type InputWrapperOptions = {
|
|
|
12
13
|
disabled?: Value<boolean>;
|
|
13
14
|
horizontal?: Value<boolean>;
|
|
14
15
|
};
|
|
15
|
-
export declare const InputWrapper: ({ required, label, context, description, content, error, labelFor, hasError, disabled, horizontal, }: InputWrapperOptions, ...children: TNode[]) => import("@tempots/dom").Renderable;
|
|
16
|
+
export declare const InputWrapper: ({ required, label, labelChildren, context, description, content, error, labelFor, hasError, disabled, horizontal, }: InputWrapperOptions, ...children: TNode[]) => import("@tempots/dom").Renderable;
|
|
@@ -4,7 +4,7 @@ import { ControllerValidation, Controller, ObjectController } from './controller
|
|
|
4
4
|
export interface UseFormOptions<T> {
|
|
5
5
|
schema: StandardSchemaV1<T, T>;
|
|
6
6
|
initialValue?: Value<T>;
|
|
7
|
-
|
|
7
|
+
onSubmit?: (value: T) => Promise<ControllerValidation>;
|
|
8
8
|
validationMode?: 'onSubmit' | 'continuous' | 'touchedOrSubmit';
|
|
9
9
|
validateDebounceMs?: number;
|
|
10
10
|
}
|
|
@@ -59,7 +59,7 @@ export declare function taskToValidation<T>({ task, errorMessage, errorPath, val
|
|
|
59
59
|
export type UseFormResult<T> = {
|
|
60
60
|
controller: ObjectController<T>;
|
|
61
61
|
setStatus: (result: ControllerValidation) => void;
|
|
62
|
-
|
|
62
|
+
submit: (e?: Event) => Promise<void>;
|
|
63
63
|
submitting: Signal<boolean>;
|
|
64
64
|
};
|
|
65
|
-
export declare function useForm<T>({ initialValue, schema,
|
|
65
|
+
export declare function useForm<T>({ initialValue, schema, onSubmit, validationMode, validateDebounceMs, }: UseFormOptions<T>): UseFormResult<T>;
|
|
@@ -31,6 +31,8 @@ export interface FlyoutOptions {
|
|
|
31
31
|
arrow?: (signal: any) => TNode;
|
|
32
32
|
/** Additional role attribute for accessibility */
|
|
33
33
|
role?: Value<string>;
|
|
34
|
+
/** Optional aria-haspopup value for the trigger element */
|
|
35
|
+
hasPopup?: Value<boolean | 'dialog' | 'menu' | 'listbox' | 'tree' | 'grid'>;
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
36
38
|
* Flyout component that provides a flexible popover with various trigger options.
|
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import { TNode, Value } from '@tempots/dom';
|
|
2
|
+
import type { NavigationOptions } from '@tempots/ui';
|
|
2
3
|
import { ControlSize, ButtonVariant } from '../../theme';
|
|
3
4
|
import { ThemeColorName } from '@/tokens';
|
|
4
5
|
import { RadiusName } from '@/tokens/radius';
|
|
5
6
|
import { UrlMatchMode } from './navigation-link';
|
|
6
7
|
export interface ButtonLinkOptions {
|
|
7
8
|
href: Value<string>;
|
|
8
|
-
|
|
9
|
+
viewTransition?: boolean;
|
|
10
|
+
state?: NavigationOptions['state'];
|
|
11
|
+
scroll?: NavigationOptions['scroll'];
|
|
12
|
+
replace?: NavigationOptions['replace'];
|
|
9
13
|
target?: Value<string>;
|
|
10
14
|
rel?: Value<string>;
|
|
11
15
|
matchMode?: UrlMatchMode;
|
|
12
16
|
disableWhenActive?: Value<boolean>;
|
|
13
17
|
variant?: Value<ButtonVariant>;
|
|
14
18
|
size?: Value<ControlSize>;
|
|
15
|
-
color?: Value<ThemeColorName>;
|
|
19
|
+
color?: Value<ThemeColorName | 'black' | 'white'>;
|
|
16
20
|
roundedness?: Value<RadiusName>;
|
|
17
21
|
disabled?: Value<boolean>;
|
|
18
22
|
}
|
|
19
|
-
export declare function ButtonLink({ href,
|
|
23
|
+
export declare function ButtonLink({ href, viewTransition, state, scroll, replace, target, rel, matchMode, disableWhenActive, variant, size, color, roundedness, disabled, }: ButtonLinkOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TNode, Value } from '@tempots/dom';
|
|
2
|
+
import type { NavigationOptions } from '@tempots/ui';
|
|
2
3
|
import { ThemeColorName } from '@/tokens';
|
|
3
4
|
export type LinkVariant = 'default' | 'plain' | 'hover';
|
|
4
5
|
export interface LinkOptions {
|
|
@@ -7,9 +8,13 @@ export interface LinkOptions {
|
|
|
7
8
|
color?: Value<ThemeColorName>;
|
|
8
9
|
colorDisabled?: Value<ThemeColorName>;
|
|
9
10
|
disabled?: Value<boolean>;
|
|
10
|
-
|
|
11
|
+
viewTransition?: boolean;
|
|
12
|
+
state?: NavigationOptions['state'];
|
|
13
|
+
scroll?: NavigationOptions['scroll'];
|
|
14
|
+
replace?: NavigationOptions['replace'];
|
|
11
15
|
target?: Value<string>;
|
|
12
16
|
rel?: Value<string>;
|
|
13
17
|
}
|
|
14
18
|
export declare function generateLinkClasses(variant: LinkVariant, color: ThemeColorName, disabled: boolean): string;
|
|
15
|
-
export declare function
|
|
19
|
+
export declare function generateLinkStyles(color: ThemeColorName): string;
|
|
20
|
+
export declare function Link({ href, variant, color, colorDisabled, disabled, viewTransition, state, scroll, replace, target, rel, }: LinkOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TNode, Value } from '@tempots/dom';
|
|
2
|
+
import type { LocationData } from '@tempots/ui';
|
|
2
3
|
import { LinkOptions } from './link';
|
|
3
4
|
export type UrlMatchMode = 'exact' | 'prefix' | 'params';
|
|
4
5
|
export interface NavigationLinkOptions extends Omit<LinkOptions, 'disabled'> {
|
|
@@ -15,9 +16,8 @@ export interface NavigationLinkOptions extends Omit<LinkOptions, 'disabled'> {
|
|
|
15
16
|
*/
|
|
16
17
|
disableWhenActive?: Value<boolean>;
|
|
17
18
|
}
|
|
18
|
-
export declare function isUrlMatch(location:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
hash?: string;
|
|
22
|
-
}, targetHref: string, matchMode: UrlMatchMode): boolean;
|
|
19
|
+
export declare function isUrlMatch(location: LocationData, targetHref: string, matchMode: UrlMatchMode): boolean;
|
|
20
|
+
type LocationMatcher = string | RegExp | ((location: LocationData) => boolean);
|
|
21
|
+
export declare function createLocationMatcher(href: Value<string>, matchMode: UrlMatchMode): Value<LocationMatcher>;
|
|
23
22
|
export declare function NavigationLink({ href, matchMode, disableWhenActive, ...linkOptions }: NavigationLinkOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { NavigationOptions } from '@tempots/ui';
|
|
2
|
+
export type NavigationProps = Partial<Pick<NavigationOptions, 'state' | 'scroll' | 'replace'>> & {
|
|
3
|
+
viewTransition?: NavigationOptions['viewTransition'];
|
|
4
|
+
};
|
|
5
|
+
export declare const buildNavigationOptions: ({ viewTransition, state, scroll, replace, }: NavigationProps) => Partial<NavigationOptions>;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { DOMContext, TNode, Value } from '@tempots/dom';
|
|
2
|
+
import type { NavigationOptions } from '@tempots/ui';
|
|
2
3
|
export type UrlAction = {
|
|
3
4
|
href: Value<string>;
|
|
5
|
+
viewTransition?: boolean;
|
|
6
|
+
state?: NavigationOptions['state'];
|
|
7
|
+
scroll?: NavigationOptions['scroll'];
|
|
8
|
+
replace?: NavigationOptions['replace'];
|
|
4
9
|
};
|
|
5
10
|
export type ClickAction = {
|
|
6
11
|
onClick: () => void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { TNode, Value } from '@tempots/dom';
|
|
2
2
|
import { ControlSize } from '../../theme';
|
|
3
|
-
export interface TabItem {
|
|
3
|
+
export interface TabItem<T extends string> {
|
|
4
4
|
/** Unique identifier for the tab */
|
|
5
|
-
key:
|
|
5
|
+
key: T;
|
|
6
6
|
/** Tab label content */
|
|
7
7
|
label: TNode;
|
|
8
8
|
/** Tab content to display when active */
|
|
@@ -13,13 +13,13 @@ export interface TabItem {
|
|
|
13
13
|
ariaLabel?: Value<string>;
|
|
14
14
|
}
|
|
15
15
|
export type TabsDirection = 'horizontal' | 'vertical';
|
|
16
|
-
export interface TabsOptions {
|
|
16
|
+
export interface TabsOptions<T extends string> {
|
|
17
17
|
/** Array of tab items */
|
|
18
|
-
items: TabItem[];
|
|
18
|
+
items: TabItem<T>[];
|
|
19
19
|
/** Currently active tab key */
|
|
20
|
-
value: Value<
|
|
20
|
+
value: Value<T>;
|
|
21
21
|
/** Callback when tab changes */
|
|
22
|
-
onChange?: (key:
|
|
22
|
+
onChange?: (key: T) => void;
|
|
23
23
|
/** Size of the tabs */
|
|
24
24
|
size?: Value<ControlSize>;
|
|
25
25
|
/** Whether tabs are disabled */
|
|
@@ -49,4 +49,4 @@ export interface TabsOptions {
|
|
|
49
49
|
* })
|
|
50
50
|
* ```
|
|
51
51
|
*/
|
|
52
|
-
export declare function Tabs(options: TabsOptions): TNode;
|
|
52
|
+
export declare function Tabs<T extends string>(options: TabsOptions<T>): TNode;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ThemeColorName } from '@/tokens/colors';
|
|
2
|
+
export type ExtendedColor = ThemeColorName | 'white' | 'black' | 'transparent';
|
|
3
|
+
export type Mode = 'light' | 'dark';
|
|
4
|
+
export type BackgroundVariant = 'solid' | 'light' | 'soft' | 'lighter';
|
|
5
|
+
export type ForegroundTone = 'solid' | 'soft';
|
|
6
|
+
export declare function backgroundValue(color: ExtendedColor, variant: BackgroundVariant, mode: Mode): {
|
|
7
|
+
backgroundColor: string;
|
|
8
|
+
textColor: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function hoverBackgroundValue(color: ExtendedColor, variant: 'solid' | 'light' | 'soft', mode: Mode): {
|
|
11
|
+
backgroundColor: string;
|
|
12
|
+
textColor: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function borderColorValue(color: ExtendedColor, mode: Mode): string;
|
|
15
|
+
export declare function textColorValue(color: ExtendedColor, mode: Mode): string;
|
|
16
|
+
export declare function foregroundColorValue(color: ThemeColorName, tone: ForegroundTone, mode: Mode): string;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export type MarkdownOptions = {
|
|
|
11
11
|
/**
|
|
12
12
|
* Markdown component: renders Markdown to HTML using micromark.
|
|
13
13
|
* - Escapes HTML by default (allowHtml: false)
|
|
14
|
-
* - Applies
|
|
14
|
+
* - Applies bc-markdown typography styles for consistent Markdown rendering
|
|
15
15
|
* - Ships as separate subpath bundle (@tempots/beatui/markdown)
|
|
16
16
|
*/
|
|
17
17
|
export declare function Markdown(options: MarkdownOptions, ...children: TNode[]): Renderable;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type SemanticColorOverrides } from '../tokens/colors';
|
|
2
|
+
export interface BeatuiPresetOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Override the semantic color mapping BeatUI uses (e.g. map `primary` to `emerald`).
|
|
5
|
+
*/
|
|
6
|
+
semanticColors?: SemanticColorOverrides;
|
|
7
|
+
/**
|
|
8
|
+
* When false, skip registering core token variables (spacing, typography, etc.).
|
|
9
|
+
*/
|
|
10
|
+
includeCoreTokens?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* When false, skip registering semantic token aliases.
|
|
13
|
+
*/
|
|
14
|
+
includeSemanticTokens?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Extend Tailwind's theme with BeatUI semantic color aliases.
|
|
17
|
+
*/
|
|
18
|
+
extendTheme?: boolean;
|
|
19
|
+
}
|
|
20
|
+
interface TailwindPluginApi {
|
|
21
|
+
addBase: (base: Record<string, Record<string, string>>) => void;
|
|
22
|
+
addVariant: (name: string, variant: string | string[]) => void;
|
|
23
|
+
}
|
|
24
|
+
interface TailwindPreset {
|
|
25
|
+
darkMode: string;
|
|
26
|
+
theme: {
|
|
27
|
+
extend: Record<string, unknown>;
|
|
28
|
+
};
|
|
29
|
+
plugins: TailwindPluginConfig[];
|
|
30
|
+
}
|
|
31
|
+
interface TailwindPluginConfig {
|
|
32
|
+
handler: (api: TailwindPluginApi) => void;
|
|
33
|
+
config?: Record<string, unknown>;
|
|
34
|
+
}
|
|
35
|
+
export declare function createBeatuiPreset(options?: BeatuiPresetOptions): TailwindPreset;
|
|
36
|
+
export declare const beatuiPreset: TailwindPreset;
|
|
37
|
+
export type { SemanticColorOverrides as BeatuiSemanticColorOverrides };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
import type { BeatuiPresetOptions } from './preset';
|
|
3
|
+
export interface BeatuiTailwindPluginOptions extends BeatuiPresetOptions {
|
|
4
|
+
/** Automatically import the BeatUI Tailwind CSS bundle into the application entry. */
|
|
5
|
+
injectCss?: boolean;
|
|
6
|
+
/** File name of the Tailwind config if it lives in a non-standard location. */
|
|
7
|
+
tailwindConfigPath?: string;
|
|
8
|
+
/** Tailwind class that denotes dark mode. Defaults to 'dark'. */
|
|
9
|
+
darkClass?: string;
|
|
10
|
+
/** Attribute inspected for RTL mode. Defaults to `dir="rtl"`. */
|
|
11
|
+
rtlAttribute?: string;
|
|
12
|
+
/** Value of RTL attribute that should trigger `.b-rtl`. Defaults to `rtl`. */
|
|
13
|
+
rtlValue?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function beatuiTailwindPlugin(options?: BeatuiTailwindPluginOptions): Plugin;
|
|
16
|
+
export default beatuiTailwindPlugin;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { Renderable, TNode } from '@tempots/dom';
|
|
2
2
|
import { BeatUITemporal } from './types';
|
|
3
|
-
export
|
|
3
|
+
export type WithTemporalOptions = {
|
|
4
|
+
pending?: () => TNode;
|
|
5
|
+
error?: (error: unknown) => TNode;
|
|
6
|
+
};
|
|
7
|
+
export declare const WithTemporal: (render: (temporal: BeatUITemporal) => TNode, options?: WithTemporalOptions) => Renderable;
|
|
@@ -7,6 +7,16 @@ export type ThemeColorName = ColorName | SemanticColorName;
|
|
|
7
7
|
export declare const semanticColorNames: readonly ["primary", "secondary", "base", "success", "warning", "error", "info"];
|
|
8
8
|
export declare const themeColorNames: ("base" | "error" | "primary" | "secondary" | "success" | "warning" | "info" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose" | "slate" | "gray" | "zinc" | "neutral" | "stone")[];
|
|
9
9
|
export declare const semanticColors: Record<SemanticColorName, ColorName>;
|
|
10
|
+
export type SemanticColorOverrides = Partial<Record<SemanticColorName, ThemeColorName>>;
|
|
11
|
+
export declare function resolveSemanticColorMap(overrides?: SemanticColorOverrides): {
|
|
12
|
+
base: ThemeColorName;
|
|
13
|
+
error: ThemeColorName;
|
|
14
|
+
primary: ThemeColorName;
|
|
15
|
+
secondary: ThemeColorName;
|
|
16
|
+
success: ThemeColorName;
|
|
17
|
+
warning: ThemeColorName;
|
|
18
|
+
info: ThemeColorName;
|
|
19
|
+
};
|
|
10
20
|
export type BackgroundColorName = 'background' | 'surface' | 'subtle' | 'elevated' | 'raised' | 'overlay';
|
|
11
21
|
export declare const bgColors: {
|
|
12
22
|
light: Record<BackgroundColorName, [ThemeColorName, ColorShade]>;
|
|
@@ -27,7 +37,7 @@ export declare const interactiveColors: {
|
|
|
27
37
|
light: Record<InteractiveColorName, [ThemeColorName, ColorShade]>;
|
|
28
38
|
dark: Record<InteractiveColorName, [ThemeColorName, ColorShade]>;
|
|
29
39
|
};
|
|
30
|
-
export declare function normalizeColorName(color: ThemeColorName): ThemeColorName;
|
|
40
|
+
export declare function normalizeColorName(color: ThemeColorName, overrides?: SemanticColorOverrides): ThemeColorName;
|
|
31
41
|
export declare function getColorVarName(color: ThemeColorName, shade: ColorShade): `--color-${ThemeColorName}-${ColorShade}`;
|
|
32
42
|
export declare function getColorVar(color: ThemeColorName, shade: ColorShade): string;
|
|
33
43
|
export type BackgroundVariant = 'solid' | 'soft' | 'light' | 'lighter';
|
|
@@ -125,6 +135,6 @@ export declare const backgroundConfig: {
|
|
|
125
135
|
};
|
|
126
136
|
};
|
|
127
137
|
};
|
|
128
|
-
export declare function
|
|
129
|
-
export declare function
|
|
138
|
+
export declare function generateCoreColorVariables(): Record<string, string>;
|
|
139
|
+
export declare function generateSemanticColorVariables(overrides?: SemanticColorOverrides): Record<string, string>;
|
|
130
140
|
export declare function generateColorVariables(): Record<string, string>;
|
|
@@ -5,5 +5,8 @@ export * from './radius';
|
|
|
5
5
|
export * from './spacing';
|
|
6
6
|
export * from './typography';
|
|
7
7
|
export * from './z-index';
|
|
8
|
+
import { SemanticColorOverrides } from './colors';
|
|
9
|
+
export declare function generateCoreTokenVariables(): Record<string, string>;
|
|
10
|
+
export declare function generateSemanticTokenVariables(overrides?: SemanticColorOverrides): Record<string, string>;
|
|
8
11
|
export declare function generateAllTokenVariables(): Record<string, string>;
|
|
9
12
|
export declare function getTokenValue(tokenName: string, element?: HTMLElement): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./translations-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./translations-BtAHDMLA.cjs"),c={loadingExtended:"لوڈ ہو رہا ہے، براہ کرم انتظار کریں",loadingShort:"لوڈ ہو رہا ہے...",locale:"زبان",iconDescription:"آئیکن",loadingIcon:"لوڈنگ آئیکن",failedToLoadIcon:"آئیکن لوڈ کرنے میں ناکام",editLabel:"ترمیم",selectOne:"ایک منتخب کریں",selectMany:"متعدد منتخب کریں",noResults:"کوئی نتیجہ نہیں",passwordPlaceholderText:"خفیہ پاس ورڈ",togglePasswordVisibility:"پاس ورڈ کی مرئیت تبدیل کریں",toggleMenu:"مینو ٹوگل کریں",toggleAside:"سائیڈ پینل ٹوگل کریں",mainNavigation:"بنیادی نیویگیشن",sidebar:"سائیڈ بار",closeDrawer:"دراز بند کریں",closeModal:"ماڈل بند کریں",confirm:"تصدیق",cancel:"منسوخ",addLabel:"شامل کریں",removeItem:"آئٹم ہٹائیں",currentLocale:"اردو",ar:"عربی",de:"جرمن",en:"انگریزی",es:"ہسپانوی",fr:"فرانسیسی",he:"عبرانی",hi:"ہندی",it:"اطالوی",ja:"جاپانی",ko:"کوریائی",nl:"ڈچ",pl:"پولش",pt:"پرتگالی",ru:"روسی",tr:"ترکی",vi:"ویتنامی",zh:"چینی",fa:"فارسی",ur:"اردو",emailPlaceholderText:"اپنا ای میل داخل کریں",incrementValue:"قدر اضافہ کریں",decrementValue:"قدر کم کریں",dropZoneInstructions:e=>e?"منتخب کرنے کے لیے کلک کریں یا فائلیں یہاں گھسیٹیں، یا فائل منتخب کرنے کے لیے Enter یا Space دبائیں":"فائلیں یہاں گھسیٹیں",fileSizeUnits:["بائٹس","KB","MB","GB","TB"],removeFile:"فائل حذف کریں",clearAllFiles:"تمام فائلیں صاف کریں",clearValue:"قدر صاف کریں",unknownType:"نامعلوم قسم",filesInputInstructions:(e,n,o)=>{let r=e==null||e>1?"منتخب کرنے کے لیے کلک کریں یا فائلیں یہاں گھسیٹیں":"منتخب کرنے کے لیے کلک کریں یا فائل یہاں گھسیٹیں";if(e||n){const t=[];if(e!=null&&e>1&&t.push(`زیادہ سے زیادہ ${e} فائلیں`),n&&o){const a=l.formatFileSize(n,{units:o});t.push(`ہر ایک زیادہ سے زیادہ ${a}`)}t.length>0&&(r+=` (${t.join("، ")})`)}else if(n&&o){const t=l.formatFileSize(n,{units:o});r+=` (زیادہ سے زیادہ ${t})`}return r}};exports.default=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("./translations-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("./translations-BtAHDMLA.cjs"),g={loadingExtended:"Đang tải, vui lòng đợi",loadingShort:"Đang tải...",locale:"Ngôn ngữ",iconDescription:"Biểu tượng",loadingIcon:"Biểu tượng tải",failedToLoadIcon:"Không thể tải biểu tượng",editLabel:"Chỉnh sửa",selectOne:"Chọn một",selectMany:"Chọn nhiều",noResults:"Không có kết quả",passwordPlaceholderText:"Mật khẩu bí mật",togglePasswordVisibility:"Chuyển đổi hiển thị mật khẩu",toggleMenu:"Chuyển đổi menu",toggleAside:"Chuyển đổi bảng bên",mainNavigation:"Điều hướng chính",sidebar:"Thanh bên",closeDrawer:"Đóng ngăn kéo",closeModal:"Đóng modal",confirm:"Xác nhận",cancel:"Hủy",addLabel:"Thêm",removeItem:"Xóa mục",currentLocale:"Tiếng Việt",ar:"Tiếng Ả Rập",de:"Tiếng Đức",en:"Tiếng Anh",es:"Tiếng Tây Ban Nha",fr:"Tiếng Pháp",hi:"Tiếng Hindi",it:"Tiếng Ý",ja:"Tiếng Nhật",ko:"Tiếng Hàn",nl:"Tiếng Hà Lan",pl:"Tiếng Ba Lan",pt:"Tiếng Bồ Đào Nha",ru:"Tiếng Nga",tr:"Tiếng Thổ Nhĩ Kỳ",vi:"Tiếng Việt",zh:"Tiếng Trung",he:"Tiếng Do Thái",fa:"Tiếng Ba Tư",ur:"Tiếng Urdu",emailPlaceholderText:"Nhập email của bạn",incrementValue:"Tăng giá trị",decrementValue:"Giảm giá trị",dropZoneInstructions:n=>n?"Nhấp để chọn hoặc kéo tệp vào đây, hoặc nhấn Enter hoặc Space để mở trình chọn tệp":"Kéo tệp vào đây",fileSizeUnits:["Byte","KB","MB","GB","TB"],removeFile:"Xóa tệp",clearAllFiles:"Xóa tất cả tệp",clearValue:"Xóa giá trị",unknownType:"Loại không xác định",filesInputInstructions:(n,i,e)=>{let o=n==null||n>1?"Nhấp để chọn hoặc kéo tệp vào đây":"Nhấp để chọn hoặc kéo một tệp vào đây";if(n||i){const t=[];if(n!=null&&n>1&&t.push(`tối đa ${n} tệp`),i&&e){const a=h.formatFileSize(i,{units:e});t.push(`mỗi tệp tối đa ${a}`)}t.length>0&&(o+=` (${t.join(", ")})`)}else if(i&&e){const t=h.formatFileSize(i,{units:e});o+=` (tối đa ${t})`}return o}};exports.default=g;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./translations-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./translations-BtAHDMLA.cjs"),a={loadingExtended:"正在加载,请稍候",loadingShort:"加载中...",locale:"语言",iconDescription:"图标",loadingIcon:"加载图标",failedToLoadIcon:"图标加载失败",editLabel:"编辑",selectOne:"选择一个",selectMany:"选择多个",noResults:"无结果",passwordPlaceholderText:"密码",togglePasswordVisibility:"切换密码可见性",toggleMenu:"切换菜单",toggleAside:"切换侧边栏",mainNavigation:"主导航",sidebar:"侧边栏",closeDrawer:"关闭抽屉",closeModal:"关闭模态框",confirm:"确认",cancel:"取消",addLabel:"添加",removeItem:"删除项目",currentLocale:"简体中文",ar:"阿拉伯语",de:"德语",en:"英语",es:"西班牙语",fr:"法语",hi:" Hindi",it:"意大利语",ja:"日语",ko:"韩语",nl:"荷兰语",pl:"波兰语",pt:"葡萄牙语",ru:"俄语",tr:"土耳其语",vi:"越南语",zh:"简体中文",he:"希伯来语",fa:"波斯语",ur:"乌尔都语",emailPlaceholderText:"请输入邮箱",incrementValue:"增加值",decrementValue:"减少值",dropZoneInstructions:e=>e?"点击选择或将文件拖拽到此处,或按 Enter 或空格键打开文件选择器":"将文件拖拽到此处",fileSizeUnits:["字节","KB","MB","GB","TB"],removeFile:"删除文件",clearAllFiles:"清除所有文件",clearValue:"清除值",unknownType:"未知类型",filesInputInstructions:(e,n,o)=>{let r=(e==null||e>1,"点击选择或将文件拖拽到此处");if(e||n){const t=[];if(e!=null&&e>1&&t.push(`最多${e}个文件`),n&&o){const i=l.formatFileSize(n,{units:o});t.push(`每个最大${i}`)}t.length>0&&(r+=` (${t.join(",")})`)}else if(n&&o){const t=l.formatFileSize(n,{units:o});r+=` (最大${t})`}return r}};exports.default=a;
|