@coffer-org/web 2.5.5 → 2.6.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/dist/assets/{ChatWidget-BJkTiD5X.js → ChatWidget-D_mykvfd.js} +1 -1
- package/dist/assets/{ExtendReasonInfo-CiNt5Y3V.js → ExtendReasonInfo-DvfVQWJR.js} +1 -1
- package/dist/assets/NewRecordView-BfyaaO_5.js +1 -0
- package/dist/assets/{PluginSettingsPage-i-OMHgqv.js → PluginSettingsPage-EhIpvmcl.js} +1 -1
- package/dist/assets/{SettingsForm-DhXLCpGR.js → SettingsForm-Dwry8Oe1.js} +1 -1
- package/dist/assets/{Toolbar-tBn9ARi5.js → Toolbar-C5S0_fah.js} +1 -1
- package/dist/assets/{chrome-izijxuBU.js → chrome-_m2AYIjS.js} +1 -1
- package/dist/assets/{data-size-ncAO72C8.js → data-size-BFf4oF5n.js} +1 -1
- package/dist/assets/{dispatch-BR6ES1YV.js → dispatch-Bpnn2XRC.js} +1 -1
- package/dist/assets/{extend-CK_8aGP-.js → extend-C4MFviaS.js} +1 -1
- package/dist/assets/{field-frame-DRn_YTLz.js → field-frame-cFE-u56I.js} +1 -1
- package/dist/assets/{fields-BbsbCIvX.js → fields-fE_vzhqS.js} +1 -1
- package/dist/assets/{index-pM8Du-1p.js → index-wCQxsLAS.js} +11 -11
- package/dist/assets/{shelf-DPQYW8n7.js → shelf-BU6Jrxdn.js} +1 -1
- package/dist/assets/src-0vuf5cD2.js +1 -0
- package/dist/assets/{src-C99L3laQ.js → src-97trQW1e.js} +1 -1
- package/dist/assets/{src-5zhuOMm-.js → src-B5J6a7xU.js} +1 -1
- package/dist/assets/{src-DnlNLa7L.js → src-BG7tifqi.js} +2 -2
- package/dist/assets/{src-D3BnFRPS.js → src-BckYqSba.js} +1 -1
- package/dist/assets/{src-CuZmkqRm.js → src-BlTOHYZL.js} +1 -1
- package/dist/assets/{src-DdcjPE8f.js → src-BscxyzWm.js} +1 -1
- package/dist/assets/{src-DcsqR-q0.js → src-BwT6fU6Z.js} +1 -1
- package/dist/assets/{src-CdtEUqtE.js → src-C8SGMFDC.js} +1 -1
- package/dist/assets/src-C9oB3ukn.js +1 -0
- package/dist/assets/src-CK9rs1Ky.js +1 -0
- package/dist/assets/{src-N4vEUcQu.js → src-CMbUQsqp.js} +1 -1
- package/dist/assets/{src-DqtBktfY.js → src-CNbzboJN.js} +1 -1
- package/dist/assets/{src-BLvQI8Un.js → src-CREOT_7V.js} +1 -1
- package/dist/assets/{src-BJDg-3KB.js → src-CTajJz2B.js} +1 -1
- package/dist/assets/{src-C7_YQgbA.js → src-CVXUq44N.js} +1 -1
- package/dist/assets/{src-BN2zezj6.js → src-CcrtnEIQ.js} +1 -1
- package/dist/assets/{src-Ck2r9PdK.js → src-ClmEI4bL.js} +1 -1
- package/dist/assets/{src-Dajw9Az6.js → src-CpLYaHc_.js} +1 -1
- package/dist/assets/{src-CX8lJ_Bd.js → src-DPq_gXsF.js} +1 -1
- package/dist/assets/{src-yWzIeLL6.js → src-Dr1EPJgR.js} +1 -1
- package/dist/assets/{src-DF0JjvAL.js → src-XWTmD-Mn.js} +1 -1
- package/dist/assets/{src-BhzIt6X_.js → src-ethXcfjn.js} +1 -1
- package/dist/assets/src-gM-6BSUd.js +1 -0
- package/dist/assets/{src-KGPu1fwh.js → src-qvD2ou1m.js} +1 -1
- package/dist/assets/{ui-CAcWu8py.js → ui-Bl4kUgYS.js} +1 -1
- package/dist/assets/{ui-BRZ7wpuB.js → ui-DnlLcAtd.js} +1 -1
- package/dist/assets/{ui-DwQMDUGA.js → ui-QD_F7vze.js} +2 -2
- package/dist/index.html +11 -11
- package/dist-vendor/web-sdk.js +246 -212
- package/package.json +1 -1
- package/dist/assets/NewRecordView-DOotbZbV.js +0 -1
- package/dist/assets/src-BJeZ0fIl.js +0 -1
- package/dist/assets/src-Blz6vbqg.js +0 -1
- package/dist/assets/src-COqoTMyz.js +0 -1
- package/dist/assets/src-D0IOasYV.js +0 -1
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{l as r,t as i,u as a}from"./react-vendor-BskHO5hY.js";import{n as o,t as s}from"./ExtendReasonInfo-CiNt5Y3V.js";import{t as c}from"./Icon-wZ-Cwtc3.js";import{b as l,f as u,l as d,m as f,n as p,o as m,r as h,s as g,t as _,u as v}from"./Toolbar-tBn9ARi5.js";import{t as y}from"./button-DsalTwxl.js";import{S as b,f as x,g as S,m as C}from"./fields-BbsbCIvX.js";import{_ as w,n as T,o as E,s as D,t as O,v as k}from"./shelf-DPQYW8n7.js";import{t as A}from"./json-CkyL3W27.js";import{j,s as M}from"./api-DsJ6cAbe.js";import{n as N}from"./dispatch-BR6ES1YV.js";var P=e(t(),1),F=i(),I=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/fields-form.tsx`;function L({shelf:e,record:t,onSubmit:r,onCancel:i,submitLabel:a,busy:o,children:s,hiddenFields:c,onValuesChange:l,errorSink:u,extraValidate:f}){let{t:m}=n(),_=d(m),v=!!t,x=(0,P.useMemo)(()=>D(e.fields),[e]),{values:S,errors:C,setErrors:w,setTouched:E,bridge:k}=p({fm:x,mode:v?`edit`:`create`,recordCtx:{library:e.library,shelf:e.shelf,recordId:t?String(t.id):null},initial:()=>z(e,t),hiddenFields:c}),[A,j]=(0,P.useState)(),[M,N]=(0,P.useState)(!1);(0,P.useEffect)(()=>{l?.(S)},[S,l]),(0,P.useEffect)(()=>{u?.({setErrors:w,setTouched:E})},[u,w,E]);async function L(t){t.preventDefault(),j(void 0);let n=Object.keys(x),i={};for(let e of n)e in S&&(i[e]=S[e]);let a=B(i),o=(v?T(e):O(e)).safeParse(a),s={};if(!o.success)for(let e of o.error.issues){let t=String(e.path[0]??``);if(!n.includes(t)||s[t])continue;let{code:r,params:i}=b(e.message);s[t]=_(r,i)}if(Object.assign(s,f?.(S)??{}),Object.keys(s).length){w(s),E(new Set(Object.keys(s)));return}N(!0);let c=await r(a);N(!1),c&&j(c)}return(0,F.jsxDEV)(`form`,{onSubmit:L,noValidate:!0,className:`flex flex-col gap-5 min-w-0`,children:[(0,F.jsxDEV)(g.Provider,{value:e=>C[e.join(`.`)],children:(0,F.jsxDEV)(h,{items:e.fields,ctx:{bridge:k}},void 0,!1,{fileName:I,lineNumber:117,columnNumber:9},this)},void 0,!1,{fileName:I,lineNumber:116,columnNumber:7},this),s,A&&(0,F.jsxDEV)(`p`,{className:`text-sm text-danger`,children:A},void 0,!1,{fileName:I,lineNumber:120,columnNumber:21},this),(0,F.jsxDEV)(`div`,{className:`flex gap-3 pt-2 border-t border-border`,children:[(0,F.jsxDEV)(y,{type:`submit`,disabled:o||M,size:`lg`,className:`flex-1`,children:a??m(`actions.save`)},void 0,!1,{fileName:I,lineNumber:122,columnNumber:9},this),i&&(0,F.jsxDEV)(y,{type:`button`,variant:`secondary`,size:`lg`,onClick:i,className:`flex-1`,children:m(`actions.cancel`)},void 0,!1,{fileName:I,lineNumber:126,columnNumber:11},this)]},void 0,!0,{fileName:I,lineNumber:121,columnNumber:7},this)]},void 0,!0,{fileName:I,lineNumber:115,columnNumber:5},this)}var R=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/form.tsx`;function z(e,t){let n={};n.name=t?.name==null?``:String(t.name);for(let[r,i]of E(e.fields))if(!i.virtual)if(t){let e=t[r];e==null?n[r]=i.prim!==`checkbox`&&``:i.prim===`checkbox`?n[r]=e===1||e===!0||e===`1`:C(i)?n[r]=e===``?``:A(e,i.hints.multiple===!0?[]:{}):n[r]=e}else n[r]=i.prim===`checkbox`?!1:C(i)&&i.hints.multiple===!0?[]:``;for(let r of e.fields){if(!x(r)||!S(r))continue;let e=r.key;t?n[e]=t[e]??(r.multiple?[]:{}):n[e]=r.multiple?[]:{}}return n}function B(e){let t={};for(let[n,r]of Object.entries(e))r===``||r===void 0||Array.isArray(r)&&r.length===0||typeof r==`object`&&r&&!Array.isArray(r)&&Object.keys(r).length===0||(t[n]=r);return t}function V({ext:e,values:t,onChange:r,recordId:i,fieldLabel:a}){let{t:o}=n();return(0,F.jsxDEV)(`fieldset`,{className:`border border-accent/30 rounded-xl p-4 pt-2 flex flex-col min-w-0 gap-4`,children:[(0,F.jsxDEV)(`legend`,{className:`px-2 inline-flex items-center gap-1.5 text-sm font-semibold text-accent`,children:[(0,F.jsxDEV)(c,{name:e.icon,size:14,className:`shrink-0`},void 0,!1,{fileName:R,lineNumber:114,columnNumber:9},this),` `,o(e.label),(0,F.jsxDEV)(s,{ext:e,fieldLabel:a},void 0,!1,{fileName:R,lineNumber:115,columnNumber:9},this)]},void 0,!0,{fileName:R,lineNumber:113,columnNumber:7},this),(0,F.jsxDEV)(h,{items:e.fields,ctx:{renderField:(n,a)=>k(a.hidden,t)?null:(0,F.jsxDEV)(N,{mode:`create`,field:a,label:a.label?o(a.label):void 0,required:k(a.required,t),value:t[n]??``,recordCtx:{library:``,shelf:e.id,recordId:i},onChange:t=>r(e.id,n,t)},void 0,!1,{fileName:R,lineNumber:100,columnNumber:9},this)}},void 0,!1,{fileName:R,lineNumber:117,columnNumber:7},this)]},void 0,!0,{fileName:R,lineNumber:112,columnNumber:5},this)}function H(e,t,n){let[r]=(0,P.useState)(()=>{let n={};for(let r of e){let e=t?._extends?.[r.id];n[r.id]={};for(let[t,i]of E(r.fields)){let a=e?.[t];a==null?n[r.id][t]=i.prim===`checkbox`?!1:C(i)&&i.hints.multiple===!0?[]:``:i.prim===`checkbox`?n[r.id][t]=a===1||a===!0||a===`1`:C(i)?n[r.id][t]=a===``?``:A(a,i.hints.multiple===!0?[]:{}):n[r.id][t]=a}}return n}),[i,a]=(0,P.useState)(r),o=(0,P.useMemo)(()=>e.filter(e=>w(e.showWhen,n)),[e,n]);function s(e,t,n){a(r=>({...r,[e]:{...r[e],[t]:n}}))}function c(e){let t={};for(let n of o){let a=i[n.id]??{};if(e){let e=r[n.id]??{},i=Object.fromEntries(Object.entries(a).filter(([t,n])=>n!==e[t]));Object.keys(i).length>0&&(t[`_extend_${n.id}`]=i)}else{let e=Object.fromEntries(Object.entries(a).filter(([,e])=>e!==``&&e!==!1));t[`_extend_${n.id}`]=e}}return t}return{extValues:i,setExtValue:s,activeExts:o,buildExtendPatch:c}}function U({shelf:e,record:t,defaults:r,hiddenFields:i,onSuccess:a,onCancel:o}){let{t:s}=n(),c=d(s),l=!!t,f=(0,P.useMemo)(()=>D(e.fields),[e]),[p,m]=(0,P.useState)([]),[h,g]=(0,P.useState)(!1),[_,y]=(0,P.useState)(()=>z(e,t)),b=(0,P.useRef)(null),{extValues:x,setExtValue:S,activeExts:C,buildExtendPatch:w}=H((0,P.useMemo)(()=>u().filter(t=>t.attachTo.some(t=>t.library===e.library&&(!t.shelf||t.shelf===e.shelf))),[e]),t,_);function T(e){return l||String(e.name??``).trim()?{}:{name:s(`validation.required`)}}async function E(n){m([]),g(!0);let r={...n,...w()},i=String(t?.id??``),o=l?await j(e.library,e.shelf,i,r):await M(e.library,e.shelf,r);if(g(!1),o.ok){a(o.row);return}let s=o.issues??[],u={},d=[];for(let e of s)e.field&&f[e.field]?u[e.field]=c(e.code,e.params):d.push(e);let p=v(s,c);(Object.keys(u).length||Object.keys(p).length)&&(b.current?.setErrors(e=>({...e,...u,...p})),b.current?.setTouched(e=>new Set([...e,...Object.keys(u)]))),m(d)}return(0,F.jsxDEV)(`div`,{children:(0,F.jsxDEV)(L,{shelf:e,record:t,onSubmit:E,onCancel:o,submitLabel:s(h?`common.saving`:l?`actions.save`:`actions.create`),busy:h,hiddenFields:i,onValuesChange:y,errorSink:e=>{b.current=e},extraValidate:T,children:[C.map(e=>(0,F.jsxDEV)(V,{ext:e,values:x[e.id]??{},onChange:S,recordId:t?String(t.id):null,fieldLabel:e=>f[e]?.label?s(f[e].label):e},e.id,!1,{fileName:R,lineNumber:316,columnNumber:11},this)),p.length>0&&(0,F.jsxDEV)(`div`,{className:`bg-danger/10 border border-danger/30 rounded-xl p-3.5 text-sm`,children:[(0,F.jsxDEV)(`p`,{className:`font-semibold text-danger mb-2`,children:s(`form.serverRejected`)},void 0,!1,{fileName:R,lineNumber:328,columnNumber:13},this),(0,F.jsxDEV)(`ul`,{className:`space-y-1 text-text/80`,children:p.map((e,t)=>{let n=f[e.field],r=n?s(n.label):e.field,i=e.code===`pattern`&&e.params?.messageKey?s(String(e.params.messageKey)):s(`validation.${e.code}`,e.params);return(0,F.jsxDEV)(`li`,{className:`flex gap-1.5`,children:[r&&(0,F.jsxDEV)(`span`,{className:`text-muted font-medium`,children:[r,`:`]},void 0,!0,{fileName:R,lineNumber:339,columnNumber:31},this),i]},t,!0,{fileName:R,lineNumber:338,columnNumber:19},this)})},void 0,!1,{fileName:R,lineNumber:329,columnNumber:13},this)]},void 0,!0,{fileName:R,lineNumber:327,columnNumber:11},this)]},`${e.library}/${e.shelf}/${t?t.id:`new`}`,!0,{fileName:R,lineNumber:299,columnNumber:7},this)},void 0,!1,{fileName:R,lineNumber:291,columnNumber:5},this)}var W=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/record/NewRecordView.tsx`;function G(){let{t:e}=n(),{library:t,shelf:i}=a(),s=r(),c=f().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===i);return!c||c.standalone===!1?(0,F.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:W,lineNumber:20,columnNumber:44},this):(0,F.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,F.jsxDEV)(_,{children:(0,F.jsxDEV)(y,{variant:`ghost`,size:`sm`,className:`px-2`,onClick:()=>s(`/${t}/${i}`),children:[(0,F.jsxDEV)(l,{size:18},void 0,!1,{fileName:W,lineNumber:26,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-sm`,children:e(c.label)},void 0,!1,{fileName:W,lineNumber:27,columnNumber:11},this)]},void 0,!0,{fileName:W,lineNumber:25,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:24,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,F.jsxDEV)(`div`,{className:`max-w-2xl mx-auto px-6 py-6`,children:(0,F.jsxDEV)(m,{library:c.library,shelf:c.shelf,children:(0,F.jsxDEV)(U,{shelf:c,onSuccess:e=>{o(`${c.library}/${c.shelf}`),e?.id?s(`/${t}/${i}/${e.id}`):s(`/${t}/${i}`)},onCancel:()=>s(`/${t}/${i}`)},void 0,!1,{fileName:W,lineNumber:33,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:32,columnNumber:11},this)},void 0,!1,{fileName:W,lineNumber:31,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:30,columnNumber:7},this)]},void 0,!0,{fileName:W,lineNumber:23,columnNumber:5},this)}export{G as NewRecordView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./fields-BbsbCIvX.js";import{a as t}from"./shelf-DPQYW8n7.js";import{n,r}from"./plugin-q1oOYqt7.js";var i=t({shelf:`item`,library:`things`,label:`things.item.label`,icon:`lucide:package`,claude:`A physical item. name — the title. type — an optional classifier (extends can add types, e.g. device).`,views:{list:{fields:[`type`,`brand`,`model`,`location`]},groupBy:[`type`,`paymentStatus`,`condition`,`owner`,`location`,`store`,`brand`,`model`,`color`,`material`,`madeIn`]},fields:[e.title({key:`name`,label:`core.fields.name`}),e.image({key:`logo`,label:`things.item.fields.logo`}),e.text({key:`description`,label:`things.item.fields.description`,rules:{max:1e3}}),e.string({key:`brand`,label:`things.item.fields.brand`,rules:{max:100}}),e.string({key:`model`,label:`things.item.fields.model`,rules:{max:100}}),e.int({key:`quantity`,label:`things.item.fields.quantity`,rules:{min:0}}),e.relation({key:`owner`,label:`things.item.fields.owner`,options:{library:`people`,shelf:`person`}}),e.relation({key:`location`,label:`things.item.fields.location`,options:{library:`things`,shelf:`storage_location`}}),e.string({key:`color`,label:`things.item.fields.color`,rules:{max:120}}),e.string({key:`material`,label:`things.item.fields.material`,rules:{max:80}}),e.country({key:`madeIn`,label:`things.item.fields.madeIn`}),e.weight({key:`weight`,label:`things.item.fields.weight`}),e.dimensions({key:`dimensions`,label:`things.item.fields.dimensions`}),e.string({key:`serialNumber`,label:`things.item.fields.serialNumber`,rules:{max:80}}),e.group({label:`things.item.groups.purchase`,icon:`lucide:shopping-cart`,fields:[e.date({key:`purchaseDate`,label:`things.item.fields.purchaseDate`}),e.money({key:`purchasePrice`,label:`things.item.fields.purchasePrice`,rules:{defaultCurrency:`UAH`}}),e.select({key:`paymentStatus`,label:`things.item.fields.paymentStatus`,options:[{value:`bought`,title:`things.item.options.paymentStatus.bought`},{value:`installment`,title:`things.item.options.paymentStatus.installment`},{value:`credit`,title:`things.item.options.paymentStatus.credit`}]}),e.string({key:`store`,label:`things.item.fields.store`,rules:{max:100}}),e.link({key:`link`,label:`things.item.fields.link`}),e.string({key:`orderNumber`,label:`things.item.fields.orderNumber`,rules:{max:100}}),e.image({key:`receipt`,label:`things.item.fields.receipt`})]}),e.select({key:`condition`,label:`things.item.fields.condition`,options:[{value:`new`,title:`things.item.options.condition.new`},{value:`good`,title:`things.item.options.condition.good`},{value:`fair`,title:`things.item.options.condition.fair`},{value:`poor`,title:`things.item.options.condition.poor`}]}),e.reminder({key:`warrantyExpires`,label:`things.item.fields.warrantyExpires`,rules:{lead:30}}),e.document({key:`manual`,label:`things.item.fields.manual`}),e.image({key:`photos`,label:`things.item.fields.photos`,multiple:!0}),e.select({key:`type`,label:`core.fields.type`,options:[{value:`clothing`,title:`things.item.options.type.clothing`},{value:`bag`,title:`things.item.options.type.bag`},{value:`cable`,title:`things.item.options.type.cable`},{value:`tool`,title:`things.item.options.type.tool`},{value:`furniture`,title:`things.item.options.type.furniture`},{value:`appliance`,title:`things.item.options.type.appliance`},{value:`household`,title:`things.item.options.type.household`},{value:`consumable`,title:`things.item.options.type.consumable`},{value:`personal_care`,title:`things.item.options.type.personal_care`},{value:`sports`,title:`things.item.options.type.sports`},{value:`hobby`,title:`things.item.options.type.hobby`},{value:`hardware`,title:`things.item.options.type.hardware`},{value:`decor`,title:`things.item.options.type.decor`},{value:`stationery`,title:`things.item.options.type.stationery`},{value:`document`,title:`things.item.options.type.document`},{value:`other`,title:`things.item.options.type.other`}]}),e.tags({key:`tags`,label:`things.item.fields.tags`})]}),a=t({shelf:`storage_location`,library:`things`,label:`things.storage_location.label`,icon:`lucide:map-pin`,claude:`A storage location for items. name — what we call the place. path — hierarchy levels in order (room, furniture, shelf, container), free-form.`,views:{list:{fields:[`path`]}},fields:[e.title({key:`name`,label:`core.fields.name`,required:!0}),e.string({key:`path`,label:`things.storage_location.fields.path`,multiple:!0,rules:{max:120}})]}),o=n({id:`things`,version:`1.0.0`,dependsOn:[`people`],libraries:[{meta:r({id:`things`,label:`things.library.label`,icon:`lucide:package`,agent:`Belongings and where they are stored (item, storage_location). Also hosts network hosts (device_info) and drone builds.`}),shelves:[i,a]}]});export{o as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"./src-5zhuOMm-.js";export{e as default,n as fin,t as iban};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./fields-BbsbCIvX.js";import{a as t}from"./shelf-DPQYW8n7.js";import{n,r}from"./plugin-q1oOYqt7.js";var i=t({shelf:`food_item`,library:`kitchen`,label:`kitchen.food_item.label`,icon:`lucide:soup`,views:{list:{fields:[`subcategory`,`quantity`,`expires`]}},fields:[e.title({key:`name`,label:`core.fields.name`}),e.image({key:`logo`,label:`kitchen.food_item.fields.logo`}),e.text({key:`description`,label:`kitchen.food_item.fields.description`,rules:{max:1e3}}),e.string({key:`subcategory`,label:`kitchen.food_item.fields.subcategory`,rules:{max:100}}),e.measured({key:`quantity`,label:`kitchen.food_item.fields.quantity`,options:`cooking`,rules:{min:0}}),e.measured({key:`minQuantity`,label:`kitchen.food_item.fields.minQuantity`,options:`cooking`,rules:{min:0}}),e.reminder({key:`expires`,label:`kitchen.food_item.fields.expires`,rules:{lead:14}}),e.relation({key:`location`,label:`kitchen.food_item.fields.location`,options:{library:`things`,shelf:`storage_location`}}),e.string({key:`brand`,label:`kitchen.food_item.fields.brand`,rules:{max:100}}),e.tags({key:`tags`,label:`kitchen.food_item.fields.tags`})]}),a=t({shelf:`food_recipe`,library:`kitchen`,label:`kitchen.food_recipe.label`,icon:`lucide:clipboard-list`,views:{list:{fields:[`category`,`description`,`prep_time`,`cook_time`]}},fields:[e.title({key:`name`,label:`core.fields.name`}),e.image({key:`images`,label:`kitchen.food_recipe.fields.images`,multiple:!0}),e.text({key:`description`,label:`kitchen.food_recipe.fields.description`,rules:{max:500}}),e.int({key:`servings`,label:`kitchen.food_recipe.fields.servings`,rules:{min:1,max:100}}),e.select({key:`difficulty`,label:`kitchen.food_recipe.fields.difficulty`,options:[{value:`easy`,title:`kitchen.food_recipe.options.difficulty.easy`},{value:`medium`,title:`kitchen.food_recipe.options.difficulty.medium`},{value:`hard`,title:`kitchen.food_recipe.options.difficulty.hard`}]}),e.select({key:`category`,label:`kitchen.food_recipe.fields.category`,multiple:!0,options:[{value:`first`,title:`kitchen.food_recipe.options.category.first`},{value:`main`,title:`kitchen.food_recipe.options.category.main`},{value:`salad`,title:`kitchen.food_recipe.options.category.salad`},{value:`appetizer`,title:`kitchen.food_recipe.options.category.appetizer`},{value:`side`,title:`kitchen.food_recipe.options.category.side`},{value:`dessert`,title:`kitchen.food_recipe.options.category.dessert`},{value:`drink`,title:`kitchen.food_recipe.options.category.drink`},{value:`sauce`,title:`kitchen.food_recipe.options.category.sauce`}]}),e.tags({key:`tags`,label:`kitchen.food_recipe.fields.tags`}),e.duration({key:`prep_time`,label:`kitchen.food_recipe.fields.prep_time`}),e.duration({key:`cook_time`,label:`kitchen.food_recipe.fields.cook_time`}),e.table({key:`ingredients`,label:`kitchen.food_recipe.fields.ingredients`,icon:`lucide:carrot`,rules:{unique:[`product`]},fields:[e.relation({key:`product`,label:`kitchen.food_recipe.ingredient.product`,options:{library:`kitchen`,shelf:`food_item`}}),e.real({key:`amount`,label:`kitchen.food_recipe.ingredient.amount`,rules:{min:0}}),e.lookup({key:`stock`,label:`kitchen.food_recipe.ingredient.stock`,from:`product`,pick:[`quantity`],view:{compareWith:`amount`}})]}),e.markdown({key:`steps`,label:`kitchen.food_recipe.fields.steps`,rules:{max:5e3}}),e.text({key:`comment`,label:`kitchen.food_recipe.fields.comment`,rules:{max:1e3}})]}),o=n({id:`kitchen`,version:`1.0.0`,dependsOn:[`things`],libraries:[{meta:r({id:`kitchen`,label:`kitchen.library.label`,icon:`lucide:cooking-pot`,agent:`Food inventory and recipes — what is in stock, what is expiring, what can be cooked.`}),shelves:[i,a]}],fieldContribs:[{library:`things`,shelf:`item`,field:`type`,options:[{value:`kitchenware`,title:`kitchen.contrib.type.kitchenware`}]}]});export{o as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t,s as n}from"./data-size-ncAO72C8.js";import{a as r,i,n as a,o,r as s,s as c,t as l}from"./src-C99L3laQ.js";export{s as cidr,t as dataSize,a as default,l as dev,e as diskSize,i as hostname,r as imei,o as ip,c as mac,n as ram};
|