@coffer-org/web 1.7.0 → 1.8.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/ExtendReasonInfo-BhCi8mhM.js +1 -0
- package/dist/assets/NewRecordView-BPsnPsT7.js +1 -0
- package/dist/assets/{PluginSettingsPage-BLyv_svI.js → PluginSettingsPage-Csx46vJ2.js} +1 -1
- package/dist/assets/{SettingsForm-YHNQLRBn.js → SettingsForm-BlSnJkUU.js} +1 -1
- package/dist/assets/{SettingsPage-BVB0OiB8.js → SettingsPage-Uw-JHbT5.js} +2 -2
- package/dist/assets/{Toolbar-C08bdOI6.js → Toolbar-CVjgIOri.js} +1 -1
- package/dist/assets/api-B7hHeZsv.js +1 -0
- package/dist/assets/{auth-context-CIGQgBfM.js → auth-context-5nk31OPN.js} +1 -1
- package/dist/assets/field-frame-GkHj6Ywy.js +1 -0
- package/dist/assets/index-CiPgTz1J.js +354 -0
- package/dist/assets/index-DtDqdYhT.css +2 -0
- package/dist/assets/{src-Bt8MMPOh.js → src-Cq7iaGwG.js} +1 -1
- package/dist/assets/src-CrIOZO6Q.js +1 -0
- package/dist/assets/{src-56y8la1R.js → src-w4NORKjp.js} +1 -1
- package/dist/assets/{ui-D2hIw4gq.js → ui-EkC8CVbj.js} +1 -1
- package/dist/index.html +8 -8
- package/package.json +1 -1
- package/dist/assets/ExtendReasonInfo-Cw042gEq.js +0 -1
- package/dist/assets/NewRecordView-B6V00NvK.js +0 -1
- package/dist/assets/api-V98HaFMa.js +0 -1
- package/dist/assets/field-frame-UyV2HVbd.js +0 -1
- package/dist/assets/index-C94DLfRb.css +0 -2
- package/dist/assets/index-D_9GGfvb.js +0 -354
- package/dist/assets/src-B5o7YUhY.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./fields-B4fdbc1_.js";import{i as t}from"./shelf-e7xL1R3N.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:{table:[`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:{table:[`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`,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]}]});export{o as default};
|
|
1
|
+
import{i as e}from"./fields-B4fdbc1_.js";import{i as t}from"./shelf-e7xL1R3N.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:{table:[`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:{table:[`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`,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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./fields-B4fdbc1_.js";import{i as t}from"./shelf-e7xL1R3N.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:{table:[`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.string({key:`madeIn`,label:`things.item.fields.madeIn`,rules:{max:60}}),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.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.group({label:`things.item.groups.purchase`,fields:[e.string({key:`store`,label:`things.item.fields.store`,rules:{max:100}}),e.url({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:{table:[`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,4 +1,4 @@
|
|
|
1
1
|
import{i as e}from"./fields-B4fdbc1_.js";import{i as t}from"./shelf-e7xL1R3N.js";import{n,r}from"./plugin-q1oOYqt7.js";var i=t({shelf:`plant`,library:`garden`,label:`garden.plant.label`,icon:`lucide:sprout`,claude:`A houseplant. title — name. variety — cultivar/subspecies. location — where it stands.
|
|
2
2
|
wateringDays — watering interval (days). lastWatered — date of last watering.
|
|
3
3
|
fertilizerDays — fertilizing interval. lastFertilized — last date.
|
|
4
|
-
planted — date planted/acquired.`,views:{table:[`variety`,`location`,`wateringDays`,`lastWatered`]},fields:[e.title({key:`name`,label:`core.fields.name`}),e.image({key:`logo`,label:`garden.plant.fields.logo`}),e.string({key:`variety`,label:`garden.plant.fields.variety`,rules:{max:100}}),e.select({key:`location`,label:`garden.plant.fields.location`,options:[{value:`windowsill`,title:`garden.plant.options.location.windowsill`},{value:`balcony`,title:`garden.plant.options.location.balcony`},{value:`hanging`,title:`garden.plant.options.location.hanging`},{value:`floor`,title:`garden.plant.options.location.floor`},{value:`other`,title:`garden.plant.options.location.other`}]}),e.select({key:`sunlight`,label:`garden.plant.fields.sunlight`,options:[{value:`shade`,title:`garden.plant.options.sunlight.shade`},{value:`partial`,title:`garden.plant.options.sunlight.partial`},{value:`indirect`,title:`garden.plant.options.sunlight.indirect`},{value:`direct`,title:`garden.plant.options.sunlight.direct`}]}),e.string({key:`pot`,label:`garden.plant.fields.pot`,rules:{max:100}}),e.date({key:`planted`,label:`garden.plant.fields.planted`,rules:{min:`2000-01-01`,max:`today`}}),e.int({key:`wateringDays`,label:`garden.plant.fields.wateringDays`,rules:{min:1,max:365}}),e.date({key:`lastWatered`,label:`garden.plant.fields.lastWatered`,rules:{max:`today`}}),e.reminder({key:`nextWatering`,label:`garden.plant.fields.nextWatering`,rules:{lead:3}}),e.int({key:`fertilizerDays`,label:`garden.plant.fields.fertilizerDays`,rules:{min:1,max:365}}),e.date({key:`lastFertilized`,label:`garden.plant.fields.lastFertilized`,rules:{max:`today`}}),e.reminder({key:`nextFertilizing`,label:`garden.plant.fields.nextFertilizing`,rules:{lead:7}}),e.button({label:`garden.plant.actions.watered`,value:`garden.watered`,icon:`lucide:droplet`}),e.button({label:`garden.plant.actions.fertilized`,value:`garden.fertilized`,icon:`lucide:flask-conical`}),e.text({key:`notes`,label:`garden.plant.fields.notes`,rules:{max:500}}),e.tags({key:`tags`,label:`garden.plant.fields.tags`})]}),a=n({id:`garden`,version:`1.0.0`,dependsOn:[],libraries:[{meta:r({id:`garden`,label:`garden.library.label`,icon:`lucide:sprout`,agent:`Garden plants (plant) — watering and fertilizing schedule.`}),shelves:[i]}]});export{a as default};
|
|
4
|
+
planted — date planted/acquired.`,views:{table:[`variety`,`location`,`wateringDays`,`lastWatered`]},fields:[e.title({key:`name`,label:`core.fields.name`}),e.image({key:`logo`,label:`garden.plant.fields.logo`}),e.string({key:`variety`,label:`garden.plant.fields.variety`,rules:{max:100}}),e.select({key:`location`,label:`garden.plant.fields.location`,options:[{value:`windowsill`,title:`garden.plant.options.location.windowsill`},{value:`balcony`,title:`garden.plant.options.location.balcony`},{value:`hanging`,title:`garden.plant.options.location.hanging`},{value:`floor`,title:`garden.plant.options.location.floor`},{value:`other`,title:`garden.plant.options.location.other`}]}),e.select({key:`sunlight`,label:`garden.plant.fields.sunlight`,options:[{value:`shade`,title:`garden.plant.options.sunlight.shade`},{value:`partial`,title:`garden.plant.options.sunlight.partial`},{value:`indirect`,title:`garden.plant.options.sunlight.indirect`},{value:`direct`,title:`garden.plant.options.sunlight.direct`}]}),e.string({key:`pot`,label:`garden.plant.fields.pot`,rules:{max:100}}),e.date({key:`planted`,label:`garden.plant.fields.planted`,rules:{min:`2000-01-01`,max:`today`}}),e.int({key:`wateringDays`,label:`garden.plant.fields.wateringDays`,rules:{min:1,max:365}}),e.date({key:`lastWatered`,label:`garden.plant.fields.lastWatered`,rules:{max:`today`}}),e.reminder({key:`nextWatering`,label:`garden.plant.fields.nextWatering`,rules:{lead:3}}),e.int({key:`fertilizerDays`,label:`garden.plant.fields.fertilizerDays`,rules:{min:1,max:365}}),e.date({key:`lastFertilized`,label:`garden.plant.fields.lastFertilized`,rules:{max:`today`}}),e.reminder({key:`nextFertilizing`,label:`garden.plant.fields.nextFertilizing`,rules:{lead:7}}),e.button({label:`garden.plant.actions.watered`,value:`garden.watered`,icon:`lucide:droplet`}),e.button({label:`garden.plant.actions.fertilized`,value:`garden.fertilized`,icon:`lucide:flask-conical`}),e.text({key:`notes`,label:`garden.plant.fields.notes`,rules:{max:500}}),e.tags({key:`tags`,label:`garden.plant.fields.tags`})]}),a=n({id:`garden`,version:`1.0.0`,dependsOn:[`things`],libraries:[{meta:r({id:`garden`,label:`garden.library.label`,icon:`lucide:sprout`,agent:`Garden plants (plant) — watering and fertilizing schedule.`}),shelves:[i]}],fieldContribs:[{library:`things`,shelf:`item`,field:`type`,options:[{value:`garden`,title:`garden.contrib.type.garden`}]}]});export{a as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NoMac-D7iyE4U0.js","assets/jsx-dev-runtime-CSfA-jUb.js","assets/rolldown-runtime-QTnfLwEv.js","assets/react-n93t21jb.js","assets/ScanSummary-BtTfSAGX.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-n93t21jb.js";import{n}from"./clsx-enQ3xCtU.js";import{t as r}from"./jsx-dev-runtime-CSfA-jUb.js";import{C as i,E as a,S as o,T as s,V as c,b as l,r as u,w as d,y as f}from"./shared-D0511v9d.js";import{t as p}from"./json-2IEVhd4i.js";import{t as m}from"./field-frame-
|
|
2
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-n93t21jb.js";import{n}from"./clsx-enQ3xCtU.js";import{t as r}from"./jsx-dev-runtime-CSfA-jUb.js";import{C as i,E as a,S as o,T as s,V as c,b as l,r as u,w as d,y as f}from"./shared-D0511v9d.js";import{t as p}from"./json-2IEVhd4i.js";import{t as m}from"./field-frame-GkHj6Ywy.js";import{a as h,c as g,n as _,o as v,t as y}from"./data-size-DCGcE2iT.js";function b(e,t,n){return{library:e,shelf:t,...n}}var x=e(t(),1);function S(e){let t=e.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);if(t){let e=t.slice(1).map(Number);return e.every(e=>e>=0&&e<=255)?{v:4,a:e}:null}try{let t=e;if(e.includes(`::`)){let[n,r]=e.split(`::`),i=n?n.split(`:`):[],a=r?r.split(`:`):[],o=8-i.length-a.length;t=[...i,...Array(o).fill(`0`),...a].join(`:`)}let n=t.split(`:`);if(n.length!==8)return null;let r=n.map(e=>parseInt(e,16));return r.some(e=>isNaN(e)||e<0||e>65535)?null:{v:6,a:r}}catch{return null}}function C(e){return e.v===4?e.a.join(`.`):e.a.map(e=>e.toString(16)).join(`:`)}function w(e){let t=e.lastIndexOf(`/`);if(t===-1)return null;let n=e.slice(0,t),r=e.slice(t+1),i=parseInt(r,10),a=S(n);if(!a||isNaN(i))return null;let o=a.v===4?32:128;return i<0||i>o?null:{...a,p:i}}function T(e){return`${C(e)}/${e.p}`}var E=r(),D=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-devices/src/fields/ui.tsx`;function O({value:e,onChange:t,parse:n,format:r,placeholder:i}){let a=(0,x.useMemo)(()=>{try{return JSON.parse(e)}catch{return null}},[e]),[o,s]=(0,x.useState)(a?r(a):e??``);(0,x.useEffect)(()=>{s(a?r(a):e||``)},[e,a]);let l=e=>{let r=e.trim(),i=n(r);t(i?JSON.stringify(i):r)};return(0,E.jsxDEV)(c,{value:o,placeholder:i,onChange:e=>s(e.target.value),onBlur:()=>l(o),onKeyDown:e=>{e.key===`Enter`&&l(o)}},void 0,!1,{fileName:D,lineNumber:51,columnNumber:5},this)}function k(e,t){return(0,E.jsxDEV)(l,{items:p(e,[]),content:e=>{let n=typeof e==`string`?p(e,null):e;return n&&typeof n==`object`?t(n):String(e)},reserveEditor:!0},void 0,!1,{fileName:D,lineNumber:68,columnNumber:5},this)}function A(e){return(0,E.jsxDEV)(m,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>e.field.hints.multiple===!0?k(t,e=>C(e)):(()=>{let e=p(t,null);if(e)return(0,E.jsxDEV)(`code`,{className:`font-mono text-sm`,children:C(e)},void 0,!1,{fileName:D,lineNumber:96,columnNumber:34},this);let n=String(t??``);return n?(0,E.jsxDEV)(`span`,{className:`text-muted`,children:n},void 0,!1,{fileName:D,lineNumber:98,columnNumber:28},this):(0,E.jsxDEV)(f,{},void 0,!1,{fileName:D,lineNumber:98,columnNumber:72},this)})(),edit:(t,n)=>e.field.hints.multiple===!0?(0,E.jsxDEV)(u,{value:String(t),onChange:n,validate:e=>S(e.trim())!==null,serialize:e=>{let t=S(e.trim());return t?JSON.stringify(t):null},display:e=>{try{return C(JSON.parse(e))}catch{return e}},renderInput:(e,t,n)=>(0,E.jsxDEV)(c,{value:e,placeholder:`192.168.1.1`,onChange:e=>t(e.target.value),className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:D,lineNumber:119,columnNumber:15},this)},void 0,!1,{fileName:D,lineNumber:103,columnNumber:11},this):(0,E.jsxDEV)(O,{value:String(t),onChange:n,parse:S,format:C,placeholder:`192.168.1.1`},void 0,!1,{fileName:D,lineNumber:134,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:81,columnNumber:5},this)}function j({value:e}){try{return(0,E.jsxDEV)(`span`,{className:`truncate font-mono`,children:C(JSON.parse(String(e)))},void 0,!1,{fileName:D,lineNumber:149,columnNumber:12},this)}catch{return(0,E.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:D,lineNumber:151,columnNumber:12},this)}}var M={kinds:[`ip`],Page:A,Inline:j};function N(e){return(0,E.jsxDEV)(m,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>e.field.hints.multiple===!0?k(t,e=>T(e)):(()=>{let e=p(t,null);if(e)return(0,E.jsxDEV)(`code`,{className:`font-mono text-sm`,children:T(e)},void 0,!1,{fileName:D,lineNumber:178,columnNumber:34},this);let n=String(t??``);return n?(0,E.jsxDEV)(`span`,{className:`text-muted`,children:n},void 0,!1,{fileName:D,lineNumber:180,columnNumber:28},this):(0,E.jsxDEV)(f,{},void 0,!1,{fileName:D,lineNumber:180,columnNumber:72},this)})(),edit:(t,n)=>e.field.hints.multiple===!0?(0,E.jsxDEV)(u,{value:String(t),onChange:n,validate:e=>w(e.trim())!==null,serialize:e=>{let t=w(e.trim());return t?JSON.stringify(t):null},display:e=>{try{return T(JSON.parse(e))}catch{return e}},renderInput:(e,t,n)=>(0,E.jsxDEV)(c,{value:e,placeholder:`192.168.1.0/24`,onChange:e=>t(e.target.value),className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:D,lineNumber:201,columnNumber:15},this)},void 0,!1,{fileName:D,lineNumber:185,columnNumber:11},this):(0,E.jsxDEV)(O,{value:String(t),onChange:n,parse:w,format:T,placeholder:`192.168.1.0/24`},void 0,!1,{fileName:D,lineNumber:216,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:163,columnNumber:5},this)}function P({value:e}){try{return(0,E.jsxDEV)(`span`,{className:`truncate font-mono`,children:T(JSON.parse(String(e)))},void 0,!1,{fileName:D,lineNumber:231,columnNumber:12},this)}catch{return(0,E.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:D,lineNumber:233,columnNumber:12},this)}}var F={kinds:[`cidr`],Page:N,Inline:P};function I({field:e,value:t,onChange:n}){let r=g(e),l=t===``?``:Number(t),[u,f]=(0,x.useState)(()=>l!==``&&Number(l)>0?_(Number(l),r)[0]:e.hints.unit??`GB`),p=h(r,u),m=l===``?``:Number((Number(l)/p).toFixed(4)),v=e=>Math.round(e*p);return(0,E.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,E.jsxDEV)(c,{type:`number`,className:`flex-1 min-w-0`,min:0,value:m,onChange:e=>n(e.target.value===``?``:String(v(Number(e.target.value))))},void 0,!1,{fileName:D,lineNumber:256,columnNumber:7},this),(0,E.jsxDEV)(o,{value:u,onValueChange:f,children:[(0,E.jsxDEV)(s,{className:`w-24`,children:(0,E.jsxDEV)(a,{},void 0,!1,{fileName:D,lineNumber:265,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:264,columnNumber:9},this),(0,E.jsxDEV)(i,{children:y[r].map(([e])=>(0,E.jsxDEV)(d,{value:e,children:e},e,!1,{fileName:D,lineNumber:269,columnNumber:13},this))},void 0,!1,{fileName:D,lineNumber:267,columnNumber:9},this)]},void 0,!0,{fileName:D,lineNumber:263,columnNumber:7},this)]},void 0,!0,{fileName:D,lineNumber:255,columnNumber:5},this)}function L({value:e,system:t}){let n=v(e,t);return n?(0,E.jsxDEV)(`span`,{className:`tabular-nums`,children:n},void 0,!1,{fileName:D,lineNumber:281,columnNumber:14},this):(0,E.jsxDEV)(f,{},void 0,!1,{fileName:D,lineNumber:281,columnNumber:58},this)}function R(e){let t=g(e.field);return(0,E.jsxDEV)(m,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>(0,E.jsxDEV)(L,{value:e,system:t},void 0,!1,{fileName:D,lineNumber:298,columnNumber:20},this),edit:(t,n)=>(0,E.jsxDEV)(I,{field:e.field,value:String(t??``),onChange:n},void 0,!1,{fileName:D,lineNumber:300,columnNumber:9},this)},void 0,!1,{fileName:D,lineNumber:287,columnNumber:5},this)}function z({field:e,value:t}){return(0,E.jsxDEV)(L,{value:t,system:g(e)},void 0,!1,{fileName:D,lineNumber:307,columnNumber:10},this)}var B=b(`devices`,`network`,{renderers:[M,F,{kinds:[`dataSize`],Page:R,Inline:z}],templates:{"devices.scan.noMac":()=>n(()=>import(`./NoMac-D7iyE4U0.js`),__vite__mapDeps([0,1,2,3])),"devices.scan.summary":()=>n(()=>import(`./ScanSummary-BtTfSAGX.js`),__vite__mapDeps([4,1,2,3]))}});export{B as default};
|
package/dist/index.html
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
</script>
|
|
40
|
-
<script type="module" crossorigin src="/assets/index-
|
|
40
|
+
<script type="module" crossorigin src="/assets/index-CiPgTz1J.js"></script>
|
|
41
41
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
|
|
42
42
|
<link rel="modulepreload" crossorigin href="/assets/react-n93t21jb.js">
|
|
43
43
|
<link rel="modulepreload" crossorigin href="/assets/clsx-enQ3xCtU.js">
|
|
@@ -47,27 +47,27 @@
|
|
|
47
47
|
<link rel="modulepreload" crossorigin href="/assets/button-Dlm2GmQs.js">
|
|
48
48
|
<link rel="modulepreload" crossorigin href="/assets/chunk-KS7C4IRE-B1_Zk64s.js">
|
|
49
49
|
<link rel="modulepreload" crossorigin href="/assets/fields-B4fdbc1_.js">
|
|
50
|
-
<link rel="modulepreload" crossorigin href="/assets/field-frame-
|
|
50
|
+
<link rel="modulepreload" crossorigin href="/assets/field-frame-GkHj6Ywy.js">
|
|
51
51
|
<link rel="modulepreload" crossorigin href="/assets/shelf-e7xL1R3N.js">
|
|
52
52
|
<link rel="modulepreload" crossorigin href="/assets/extend-DDZLGxKJ.js">
|
|
53
53
|
<link rel="modulepreload" crossorigin href="/assets/plugin-q1oOYqt7.js">
|
|
54
54
|
<link rel="modulepreload" crossorigin href="/assets/development-ChLInqDF.js">
|
|
55
55
|
<link rel="modulepreload" crossorigin href="/assets/micromark-extension-gfm-Cu0AwUgc.js">
|
|
56
|
-
<link rel="modulepreload" crossorigin href="/assets/Toolbar-
|
|
56
|
+
<link rel="modulepreload" crossorigin href="/assets/Toolbar-CVjgIOri.js">
|
|
57
57
|
<link rel="modulepreload" crossorigin href="/assets/PageBody-CvuReTKD.js">
|
|
58
|
-
<link rel="modulepreload" crossorigin href="/assets/SettingsForm-
|
|
58
|
+
<link rel="modulepreload" crossorigin href="/assets/SettingsForm-BlSnJkUU.js">
|
|
59
59
|
<link rel="modulepreload" crossorigin href="/assets/dist-DkJnaE0X.js">
|
|
60
60
|
<link rel="modulepreload" crossorigin href="/assets/floating-ui.dom-BiC1_AXf.js">
|
|
61
61
|
<link rel="modulepreload" crossorigin href="/assets/json-2IEVhd4i.js">
|
|
62
62
|
<link rel="modulepreload" crossorigin href="/assets/dist-CdqdWApy.js">
|
|
63
63
|
<link rel="modulepreload" crossorigin href="/assets/shared-D0511v9d.js">
|
|
64
|
-
<link rel="modulepreload" crossorigin href="/assets/ExtendReasonInfo-
|
|
64
|
+
<link rel="modulepreload" crossorigin href="/assets/ExtendReasonInfo-BhCi8mhM.js">
|
|
65
65
|
<link rel="modulepreload" crossorigin href="/assets/purify.es-sLXpNpJ5.js">
|
|
66
66
|
<link rel="modulepreload" crossorigin href="/assets/countries-BSm8PNWW.js">
|
|
67
|
-
<link rel="modulepreload" crossorigin href="/assets/api-
|
|
67
|
+
<link rel="modulepreload" crossorigin href="/assets/api-B7hHeZsv.js">
|
|
68
68
|
<link rel="modulepreload" crossorigin href="/assets/lib-DqTnDi2O.js">
|
|
69
|
-
<link rel="modulepreload" crossorigin href="/assets/auth-context-
|
|
70
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
69
|
+
<link rel="modulepreload" crossorigin href="/assets/auth-context-5nk31OPN.js">
|
|
70
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DtDqdYhT.css">
|
|
71
71
|
</head>
|
|
72
72
|
<body>
|
|
73
73
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-n93t21jb.js";import{C as n,S as r,i,w as a,x as o}from"./button-Dlm2GmQs.js";import{t as s}from"./jsx-dev-runtime-CSfA-jUb.js";import{i as c,o as l,s as u,t as d}from"./dist-DkJnaE0X.js";import{t as f}from"./jsx-runtime-JUshM5qe.js";import{a as p,b as ee,c as m,i as h,l as g,n as _,o as v,r as te,s as y,u as b,v as x,x as ne,y as S}from"./json-2IEVhd4i.js";import{C}from"./field-frame-UyV2HVbd.js";import{p as re}from"./shelf-e7xL1R3N.js";var w=s(),T=e(t(),1),E=f(),D=`Popover`,[O,ie]=l(D,[b]),k=b(),[ae,A]=O(D),j=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=k(t),c=T.useRef(null),[l,u]=T.useState(!1),[f,p]=d({prop:r,defaultProp:i??!1,onChange:a,caller:D});return(0,E.jsx)(g,{...s,children:(0,E.jsx)(ae,{scope:t,contentId:x(),triggerRef:c,open:f,onOpenChange:p,onOpenToggle:T.useCallback(()=>p(e=>!e),[p]),hasCustomAnchor:l,onCustomAnchorAdd:T.useCallback(()=>u(!0),[]),onCustomAnchorRemove:T.useCallback(()=>u(!1),[]),modal:o,children:n})})};j.displayName=D;var M=`PopoverAnchor`,N=T.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=A(M,n),a=k(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return T.useEffect(()=>(o(),()=>s()),[o,s]),(0,E.jsx)(v,{...a,...r,ref:t})});N.displayName=M;var P=`PopoverTrigger`,F=T.forwardRef((e,t)=>{let{__scopePopover:n,...i}=e,a=A(P,n),o=k(n),s=r(t,a.triggerRef),l=(0,E.jsx)(c.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":q(a.open),...i,ref:s,onClick:u(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?l:(0,E.jsx)(v,{asChild:!0,...o,children:l})});F.displayName=P;var I=`PopoverPortal`,[oe,se]=O(I,{forceMount:void 0}),L=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=A(I,t);return(0,E.jsx)(oe,{scope:t,forceMount:n,children:(0,E.jsx)(h,{present:n||a.open,children:(0,E.jsx)(p,{asChild:!0,container:i,children:r})})})};L.displayName=I;var R=`PopoverContent`,z=T.forwardRef((e,t)=>{let n=se(R,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=A(R,e.__scopePopover);return(0,E.jsx)(h,{present:r||a.open,children:a.modal?(0,E.jsx)(V,{...i,ref:t}):(0,E.jsx)(H,{...i,ref:t})})});z.displayName=R;var B=o(`PopoverContent.RemoveScroll`),V=T.forwardRef((e,t)=>{let n=A(R,e.__scopePopover),i=T.useRef(null),a=r(t,i),o=T.useRef(!1);return T.useEffect(()=>{let e=i.current;if(e)return te(e)},[]),(0,E.jsx)(_,{as:B,allowPinchZoom:!0,children:(0,E.jsx)(U,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:u(e.onCloseAutoFocus,e=>{e.preventDefault(),o.current||n.triggerRef.current?.focus()}),onPointerDownOutside:u(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;o.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:u(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),H=T.forwardRef((e,t)=>{let n=A(R,e.__scopePopover),r=T.useRef(!1),i=T.useRef(!1);return(0,E.jsx)(U,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),U=T.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,f=A(R,n),p=k(n);return ee(),(0,E.jsx)(S,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,E.jsx)(ne,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>f.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,E.jsx)(m,{"data-state":q(f.open),role:`dialog`,id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})}),W=`PopoverClose`,G=T.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=A(W,n);return(0,E.jsx)(c.button,{type:`button`,...r,ref:t,onClick:u(e.onClick,()=>i.onOpenChange(!1))})});G.displayName=W;var K=`PopoverArrow`,ce=T.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=k(n);return(0,E.jsx)(y,{...i,...r,ref:t})});ce.displayName=K;function q(e){return e?`open`:`closed`}var le=j,ue=N,de=F,fe=L,pe=z,J=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/popover.tsx`;function Y({...e}){return(0,w.jsxDEV)(le,{"data-slot":`popover`,...e},void 0,!1,{fileName:J,lineNumber:7,columnNumber:10},this)}function X({...e}){return(0,w.jsxDEV)(de,{"data-slot":`popover-trigger`,...e},void 0,!1,{fileName:J,lineNumber:11,columnNumber:10},this)}function Z({className:e,align:t=`center`,sideOffset:r=4,...i}){return(0,w.jsxDEV)(fe,{children:(0,w.jsxDEV)(pe,{"data-slot":`popover-content`,align:t,sideOffset:r,className:n(`z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-xl border border-border bg-popover p-4 text-popover-foreground shadow-xl outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...i},void 0,!1,{fileName:J,lineNumber:22,columnNumber:7},this)},void 0,!1,{fileName:J,lineNumber:21,columnNumber:5},this)}function me({...e}){return(0,w.jsxDEV)(ue,{"data-slot":`popover-anchor`,...e},void 0,!1,{fileName:J,lineNumber:37,columnNumber:10},this)}function he(e){if(e==null||e===``)return[];if(Array.isArray(e))return e.map(String).filter(Boolean);if(typeof e==`string`){if(e.startsWith(`[`))try{let t=JSON.parse(e);if(Array.isArray(t))return t.map(String).filter(Boolean)}catch{}return e?[e]:[]}return[String(e)]}function ge(e){return e.kind===`tags`||e.hints?.multiple===!0}var Q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/dispatch.tsx`;function _e(e){let t=C(e.field);return t?(0,w.jsxDEV)(t.Page,{...e},void 0,!1,{fileName:Q,lineNumber:15,columnNumber:10},this):(console.warn(`[render] немає рендера для`,e.field.kind),(0,w.jsxDEV)(`span`,{children:String(e.value)},void 0,!1,{fileName:Q,lineNumber:13,columnNumber:12},this))}function ve({field:e,value:t,height:n}){let r=C(e),i=r?.Inline?(0,w.jsxDEV)(r.Inline,{field:e,value:t,height:n},void 0,!1,{fileName:Q,lineNumber:26,columnNumber:5},this):(0,w.jsxDEV)(`span`,{className:`truncate`,children:String(t??``)},void 0,!1,{fileName:Q,lineNumber:28,columnNumber:5},this);return n?(0,w.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center font-medium`,style:{fontSize:Math.round(n*.7),lineHeight:1.15},children:i},void 0,!1,{fileName:Q,lineNumber:32,columnNumber:5},this):i}function ye(e,t,n){let r=C(e),i=t=>r?.keys?r.keys(t,e,n):t==null||t===``?[]:[{value:String(t),rawValue:t,label:String(t)}],a=ge(e)?he(t):[t],o=new Set,s=[];for(let e of a)for(let t of i(e))o.has(t.value)||(o.add(t.value),s.push(t));return s}var $=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ExtendReasonInfo.tsx`;function be({ext:e,fieldLabel:t,valueLabel:n}){let{t:r}=a(),o=re(e.showWhen,t,n);return o.length===0?null:(0,w.jsxDEV)(Y,{children:[(0,w.jsxDEV)(X,{type:`button`,"aria-label":r(`extend.shownWhen`),className:`inline-flex items-center text-muted hover:text-text`,children:(0,w.jsxDEV)(i,{name:`lucide:info`,size:14},void 0,!1,{fileName:$,lineNumber:30,columnNumber:9},this)},void 0,!1,{fileName:$,lineNumber:25,columnNumber:7},this),(0,w.jsxDEV)(Z,{align:`start`,className:`w-auto max-w-xs text-sm`,children:[(0,w.jsxDEV)(`p`,{className:`text-muted mb-1`,children:r(`extend.shownWhen`)},void 0,!1,{fileName:$,lineNumber:33,columnNumber:9},this),(0,w.jsxDEV)(`p`,{children:o.join(`; `)},void 0,!1,{fileName:$,lineNumber:34,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:32,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:24,columnNumber:5},this)}export{Y as a,X as c,ye as i,ve as n,me as o,_e as r,Z as s,be as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-n93t21jb.js";import{i as n,t as r,w as i}from"./button-Dlm2GmQs.js";import{c as a,l as o}from"./chunk-KS7C4IRE-B1_Zk64s.js";import{t as s}from"./jsx-dev-runtime-CSfA-jUb.js";import{t as c}from"./json-2IEVhd4i.js";import{r as l,t as u}from"./ExtendReasonInfo-Cw042gEq.js";import{f as d,l as f,m as p,n as m,o as h,r as g,s as _,t as v,u as y,y as b}from"./Toolbar-C08bdOI6.js";import{S as x,f as S,g as C,m as w}from"./fields-B4fdbc1_.js";import{a as T,h as E,m as D,n as O,o as k,t as A}from"./shelf-e7xL1R3N.js";import{o as j,w as M}from"./api-V98HaFMa.js";var N=e(t(),1),P=s(),F=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/fields-form.tsx`;function I({shelf:e,record:t,onSubmit:n,onCancel:a,submitLabel:o,busy:s,children:c,hiddenFields:l,onValuesChange:u,errorSink:d,extraValidate:p}){let{t:h}=i(),v=f(h),y=!!t,b=(0,N.useMemo)(()=>k(e.fields),[e]),{values:S,errors:C,setErrors:w,setTouched:T,bridge:E}=m({fm:b,mode:y?`edit`:`create`,recordCtx:{library:e.library,shelf:e.shelf,recordId:t?String(t.id):null},initial:()=>R(e,t),hiddenFields:l}),[D,j]=(0,N.useState)(),[M,I]=(0,N.useState)(!1);(0,N.useEffect)(()=>{u?.(S)},[S,u]),(0,N.useEffect)(()=>{d?.({setErrors:w,setTouched:T})},[d,w,T]);async function L(t){t.preventDefault(),j(void 0);let r=Object.keys(b),i={};for(let e of r)e in S&&(i[e]=S[e]);let a=z(i),o=(y?O(e):A(e)).safeParse(a),s={};if(!o.success)for(let e of o.error.issues){let t=String(e.path[0]??``);if(!r.includes(t)||s[t])continue;let{code:n,params:i}=x(e.message);s[t]=v(n,i)}if(Object.assign(s,p?.(S)??{}),Object.keys(s).length){w(s),T(new Set(Object.keys(s)));return}I(!0);let c=await n(a);I(!1),c&&j(c)}return(0,P.jsxDEV)(`form`,{onSubmit:L,noValidate:!0,className:`flex flex-col gap-5 min-w-0`,children:[(0,P.jsxDEV)(_.Provider,{value:e=>C[e.join(`.`)],children:(0,P.jsxDEV)(g,{items:e.fields,ctx:{bridge:E}},void 0,!1,{fileName:F,lineNumber:118,columnNumber:9},this)},void 0,!1,{fileName:F,lineNumber:117,columnNumber:7},this),c,D&&(0,P.jsxDEV)(`p`,{className:`text-sm text-danger`,children:D},void 0,!1,{fileName:F,lineNumber:121,columnNumber:21},this),(0,P.jsxDEV)(`div`,{className:`flex gap-3 pt-2 border-t border-border`,children:[(0,P.jsxDEV)(r,{type:`submit`,disabled:s||M,size:`lg`,className:`flex-1`,children:o??h(`actions.save`)},void 0,!1,{fileName:F,lineNumber:123,columnNumber:9},this),a&&(0,P.jsxDEV)(r,{type:`button`,variant:`secondary`,size:`lg`,onClick:a,className:`flex-1`,children:h(`actions.cancel`)},void 0,!1,{fileName:F,lineNumber:127,columnNumber:11},this)]},void 0,!0,{fileName:F,lineNumber:122,columnNumber:7},this)]},void 0,!0,{fileName:F,lineNumber:116,columnNumber:5},this)}var L=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/form.tsx`;function R(e,t){let n={};n.name=t?.name==null?``:String(t.name);for(let[r,i]of T(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`:w(i)?n[r]=e===``?``:c(e,i.hints.multiple===!0?[]:{}):n[r]=e}else n[r]=i.prim===`checkbox`?!1:w(i)&&i.hints.multiple===!0?[]:``;for(let r of e.fields){if(!S(r)||!C(r))continue;let e=r.key;t?n[e]=t[e]??(r.multiple?[]:{}):n[e]=r.multiple?[]:{}}return n}function z(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 B({ext:e,values:t,onChange:r,recordId:a,fieldLabel:o}){let{t:s}=i();return(0,P.jsxDEV)(`fieldset`,{className:`border border-accent/30 rounded-xl p-4 pt-2 flex flex-col min-w-0 gap-4`,children:[(0,P.jsxDEV)(`legend`,{className:`px-2 inline-flex items-center gap-1.5 text-sm font-semibold text-accent`,children:[(0,P.jsxDEV)(n,{name:e.icon,size:14,className:`shrink-0`},void 0,!1,{fileName:L,lineNumber:114,columnNumber:9},this),` `,s(e.label),(0,P.jsxDEV)(u,{ext:e,fieldLabel:o},void 0,!1,{fileName:L,lineNumber:115,columnNumber:9},this)]},void 0,!0,{fileName:L,lineNumber:113,columnNumber:7},this),(0,P.jsxDEV)(g,{items:e.fields,ctx:{renderField:(n,i)=>E(i.hidden,t)?null:(0,P.jsxDEV)(l,{mode:`create`,field:i,label:i.label?s(i.label):void 0,required:E(i.required,t),value:t[n]??``,recordCtx:{library:``,shelf:e.id,recordId:a},onChange:t=>r(e.id,n,t)},void 0,!1,{fileName:L,lineNumber:100,columnNumber:9},this)}},void 0,!1,{fileName:L,lineNumber:117,columnNumber:7},this)]},void 0,!0,{fileName:L,lineNumber:112,columnNumber:5},this)}function V(e,t,n){let[r]=(0,N.useState)(()=>{let n={};for(let r of e){let e=t?._extends?.[r.id];n[r.id]={};for(let[t,i]of T(r.fields)){let a=e?.[t];a==null?n[r.id][t]=i.prim===`checkbox`?!1:w(i)&&i.hints.multiple===!0?[]:``:i.prim===`checkbox`?n[r.id][t]=a===1||a===!0||a===`1`:w(i)?n[r.id][t]=a===``?``:c(a,i.hints.multiple===!0?[]:{}):n[r.id][t]=a}}return n}),[i,a]=(0,N.useState)(r),o=(0,N.useMemo)(()=>e.filter(e=>D(e.showWhen,n)),[e,n]);function s(e,t,n){a(r=>({...r,[e]:{...r[e],[t]:n}}))}function l(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:l}}function H({shelf:e,record:t,defaults:n,hiddenFields:r,onSuccess:a,onCancel:o}){let{t:s}=i(),c=f(s),l=!!t,u=(0,N.useMemo)(()=>k(e.fields),[e]),[p,m]=(0,N.useState)([]),[h,g]=(0,N.useState)(!1),[_,v]=(0,N.useState)(()=>R(e,t)),b=(0,N.useRef)(null),{extValues:x,setExtValue:S,activeExts:C,buildExtendPatch:w}=V((0,N.useMemo)(()=>d().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 M(e.library,e.shelf,i,r):await j(e.library,e.shelf,r);if(g(!1),o.ok){a(o.row);return}let s=o.issues??[],d={},f=[];for(let e of s)e.field&&u[e.field]?d[e.field]=c(e.code,e.params):f.push(e);let p=y(s,c);(Object.keys(d).length||Object.keys(p).length)&&(b.current?.setErrors(e=>({...e,...d,...p})),b.current?.setTouched(e=>new Set([...e,...Object.keys(d)]))),m(f)}return(0,P.jsxDEV)(`div`,{children:(0,P.jsxDEV)(I,{shelf:e,record:t,onSubmit:E,onCancel:o,submitLabel:s(h?`common.saving`:l?`actions.save`:`actions.create`),busy:h,hiddenFields:r,onValuesChange:v,errorSink:e=>{b.current=e},extraValidate:T,children:[C.map(e=>(0,P.jsxDEV)(B,{ext:e,values:x[e.id]??{},onChange:S,recordId:t?String(t.id):null,fieldLabel:e=>u[e]?.label?s(u[e].label):e},e.id,!1,{fileName:L,lineNumber:318,columnNumber:11},this)),p.length>0&&(0,P.jsxDEV)(`div`,{className:`bg-danger/10 border border-danger/30 rounded-xl p-3.5 text-sm`,children:[(0,P.jsxDEV)(`p`,{className:`font-semibold text-danger mb-2`,children:s(`form.serverRejected`)},void 0,!1,{fileName:L,lineNumber:330,columnNumber:13},this),(0,P.jsxDEV)(`ul`,{className:`space-y-1 text-text/80`,children:p.map((e,t)=>{let n=u[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,P.jsxDEV)(`li`,{className:`flex gap-1.5`,children:[r&&(0,P.jsxDEV)(`span`,{className:`text-muted font-medium`,children:[r,`:`]},void 0,!0,{fileName:L,lineNumber:341,columnNumber:31},this),i]},t,!0,{fileName:L,lineNumber:340,columnNumber:19},this)})},void 0,!1,{fileName:L,lineNumber:331,columnNumber:13},this)]},void 0,!0,{fileName:L,lineNumber:329,columnNumber:11},this)]},`${e.library}/${e.shelf}/${t?t.id:`new`}`,!0,{fileName:L,lineNumber:301,columnNumber:7},this)},void 0,!1,{fileName:L,lineNumber:293,columnNumber:5},this)}var U=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/record/NewRecordView.tsx`;function W(){let{t:e}=i(),{library:t,type:n}=o(),s=a(),c=p().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===n);return!c||c.standalone===!1?(0,P.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:U,lineNumber:19,columnNumber:44},this):(0,P.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,P.jsxDEV)(v,{children:(0,P.jsxDEV)(r,{variant:`ghost`,size:`sm`,className:`px-2`,onClick:()=>s(`/${t}/${n}`),children:[(0,P.jsxDEV)(b,{size:18},void 0,!1,{fileName:U,lineNumber:25,columnNumber:11},this),(0,P.jsxDEV)(`span`,{className:`text-sm`,children:e(c.label)},void 0,!1,{fileName:U,lineNumber:26,columnNumber:11},this)]},void 0,!0,{fileName:U,lineNumber:24,columnNumber:9},this)},void 0,!1,{fileName:U,lineNumber:23,columnNumber:7},this),(0,P.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,P.jsxDEV)(`div`,{className:`max-w-2xl mx-auto px-6 py-6`,children:(0,P.jsxDEV)(h,{library:c.library,shelf:c.shelf,children:(0,P.jsxDEV)(H,{shelf:c,onSuccess:e=>{e?.id?s(`/${t}/${n}/${e.id}`):s(`/${t}/${n}`)},onCancel:()=>s(`/${t}/${n}`)},void 0,!1,{fileName:U,lineNumber:32,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:31,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:30,columnNumber:9},this)},void 0,!1,{fileName:U,lineNumber:29,columnNumber:7},this)]},void 0,!0,{fileName:U,lineNumber:22,columnNumber:5},this)}export{W as NewRecordView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
async function e(e){let t=new FormData;t.append(`file`,e);let n=await fetch(`/api/upload`,{method:`POST`,body:t});return n.ok?(await n.json()).filename:null}function t(e){return`/uploads/${e}`}async function n(e){let t=await fetch(`/api/embed`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({url:e})});return t.ok?await t.json():null}async function r(e,t,n){let r=n&&Object.keys(n).length?`?`+new URLSearchParams(n).toString():``,i=await fetch(`/api/${e}/${t}${r}`);if(!i.ok)throw Error(`Не вдалося завантажити`);return i.json()}async function i(e,t,n){let r=await fetch(`/api/${e}/${t}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(n)});return r.status===201?{ok:!0,row:await r.json()}:r.status===422?{ok:!1,issues:(await r.json()).issues}:{ok:!1,issues:[{field:``,code:`server`,path:[]}]}}async function a(e,t,n,r){let i=await fetch(`/api/${e}/${t}/${n}`,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(r)});return i.ok?{ok:!0,row:await i.json()}:i.status===422?{ok:!1,issues:(await i.json()).issues}:{ok:!1,issues:[{field:``,code:`server`,path:[]}]}}async function o(e,t,n){return(await fetch(`/api/${e}/${t}/${n}`,{method:`DELETE`})).status===204}async function s(){let e=await fetch(`/api/plugins`);if(!e.ok)throw Error(`plugins`);return e.json()}async function c(e,t){let n=await fetch(`/api/plugins/${e}`,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify({enabled:t})}),r=await n.json().catch(()=>({}));return n.ok?{ok:!0}:{ok:!1,error:r.error??String(n.status),data:r}}async function l(e){let t=await fetch(`/api/plugins/${e}/update`,{method:`POST`}),n=await t.json().catch(()=>({}));return t.ok?{ok:!0}:{ok:!1,error:n.error??String(t.status),stderr:n.stderr}}async function u(){let e=await fetch(`/api/plugins/update-all`,{method:`POST`}),t=await e.json().catch(()=>({}));return e.ok?{ok:!0,updated:t.updated}:{ok:!1,error:t.error??String(e.status),stderr:t.stderr}}async function d(){let e=await fetch(`/api/runtime`);return e.ok?await e.json():{installedVersion:null,latestVersion:null}}async function f(e,t){let n=await fetch(e,{headers:{"content-type":`application/json`},...t}),r=await n.json().catch(()=>({}));return n.ok?{ok:!0,data:r}:{ok:!1,status:n.status,data:r}}function p(){return fetch(`/api/auth/status`).then(e=>e.json())}function m(e,t,n){return f(`/api/auth/setup`,{method:`POST`,body:JSON.stringify({login:e,password:t,displayName:n})})}function h(e,t){return f(`/api/auth/login`,{method:`POST`,body:JSON.stringify({login:e,password:t})})}async function g(){let e=await fetch(`/api/auth/me`);return e.ok?e.json():null}function _(e){return f(`/api/auth/me`,{method:`PATCH`,body:JSON.stringify(e)})}function v(e){return f(`/api/auth/users${e?`?q=${encodeURIComponent(e)}`:``}`)}function y(e){return f(`/api/auth/users`,{method:`POST`,body:JSON.stringify(e)})}function b(e,t){return f(`/api/auth/users/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}function x(e){return f(`/api/auth/users/${e}`,{method:`DELETE`})}function S(){return f(`/api/auth/tokens`)}function C(e,t){return f(`/api/auth/tokens`,{method:`POST`,body:JSON.stringify({name:e,token:t})})}function w(e){return f(`/api/auth/tokens/${e}`,{method:`DELETE`})}function T(){return f(`/api/oauth/grants`)}function E(e){return f(`/api/oauth/grants/${encodeURIComponent(e)}`,{method:`DELETE`})}export{l as C,e as E,u as S,b as T,t as _,_ as a,w as b,y as c,d,T as f,v as g,S as h,p as i,o as l,r as m,g as n,i as o,s as p,m as r,C as s,h as t,x as u,n as v,a as w,c as x,E as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-n93t21jb.js";import{a as n,i as r,t as i,v as a,w as o,y as s}from"./button-Dlm2GmQs.js";import{t as c}from"./jsx-dev-runtime-CSfA-jUb.js";import{c as l,d as u,f as d,h as f,l as p,p as m,s as h,u as g}from"./fields-B4fdbc1_.js";var _=s(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),v=e(t(),1),y={};function b(e){if(!e.kinds.length)throw Error(`[render] renderer without kinds`);let t={kinds:e.kinds,layout:e.layout,box:e.box,Page:e.Page,Inline:e.Inline,keys:e.keys};for(let n of e.kinds){if(y[n])throw Error(`[render] kind '${n}' already registered`);y[n]=t}}function x(e){return y[e.kind]}function S(e){if(u(e)||f(e))return e.type.kind;if(d(e))return e.kind??(l(e)?`collection`:g(e)?`embedded`:`group`);if(h(e))return`button`;if(p(e))return`divider`;if(m(e))return`info`;throw Error(`[render] unknown layout element`)}function C(e){let t=x(e)?.layout;return typeof t==`function`?t(e):t??`scalar`}var ee=e=>e.hints.multi===!0||e.hints.multiple===!0?`block`:`scalar`,w={};function te(e,t){if(w[e])throw Error(`[template] '${e}' already registered`);w[e]=t}function ne(e){return w[e]}function T(e){return e===1||e===!0||e===`1`||e===`true`}function E(e,t){return e.prim===`checkbox`?T(t):t??``}async function re(e,t){let n=await t?.(e),r=typeof n==`string`?n:void 0;return{ok:!r,error:r}}function ie(e,t,n){let[r,i]=(0,v.useState)(!1),[a,o]=(0,v.useState)(()=>E(e,t)),[s,c]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{r||o(E(e,t))},[r,e,t]),{editing:r,draft:a,setDraft:o,busy:s,beginEdit:()=>i(!0),cancel:()=>{o(E(e,t)),i(!1)},commit:async(e=a)=>{c(!0);let{ok:t}=await re(e,n);c(!1),t&&i(!1)}}}function D(e,t){return x(e)?.box||(C(e)===`block`?`none`:t)}function ae(e){switch(e){case`title`:return`flex items-center self-start w-full rounded-lg border border-transparent px-3 py-1 text-[28px] font-bold leading-tight`;case`textarea`:return`flex self-start min-h-20 w-full rounded-lg border border-transparent px-3 py-2 text-sm whitespace-pre-wrap`;case`none`:return``;default:return`flex w-full min-w-0 items-center self-start min-h-9 rounded-lg border border-transparent px-2 text-sm`}}var O=c(),k=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/chrome.tsx`,A=`gap-2`,j=`gap-6`;function M({children:e}){return(0,O.jsxDEV)(`div`,{className:`border-l-2 border-border pl-3 py-1`,children:e},void 0,!1,{fileName:k,lineNumber:39,columnNumber:10},this)}function N({label:e,required:t,actions:n,reserveAction:r}){return(0,O.jsxDEV)(`div`,{className:`flex items-center gap-2 mb-0.5 min-h-8 ${r?`pr-24`:``}`,children:[(0,O.jsxDEV)(`span`,{className:`min-w-0 text-[11px] font-medium text-muted`,children:[e,t&&(0,O.jsxDEV)(`span`,{className:`text-danger ml-0.5`,children:`*`},void 0,!1,{fileName:k,lineNumber:62,columnNumber:22},this)]},void 0,!0,{fileName:k,lineNumber:60,columnNumber:7},this),n&&(0,O.jsxDEV)(`div`,{className:`ml-auto flex shrink-0 items-center gap-1.5`,children:n},void 0,!1,{fileName:k,lineNumber:64,columnNumber:19},this)]},void 0,!0,{fileName:k,lineNumber:59,columnNumber:5},this)}var P=`flex items-center gap-2 text-[13px] font-semibold`;`${P}`;function F({label:e,icon:t,actions:n,as:i=`h3`}){let a=i,o=R()===0?`text-accent`:`text-muted`;return(0,O.jsxDEV)(a,{className:`${P} ${o}${i===`legend`?` px-1 w-full`:``}`,children:[t&&(0,O.jsxDEV)(r,{name:t,size:16,className:`shrink-0`},void 0,!1,{fileName:k,lineNumber:100,columnNumber:16},this),e,n&&(0,O.jsxDEV)(`span`,{className:`ml-auto flex shrink-0 items-center gap-1.5`,children:n},void 0,!1,{fileName:k,lineNumber:102,columnNumber:19},this)]},void 0,!0,{fileName:k,lineNumber:99,columnNumber:5},this)}var I=`opacity-0 transition-opacity group-hover/field:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100`,L=(0,v.createContext)(0),R=()=>(0,v.useContext)(L);function z({depth:e,children:t}){return(0,O.jsxDEV)(L.Provider,{value:e,children:t},void 0,!1,{fileName:k,lineNumber:131,columnNumber:10},this)}function B(e){switch(e&3){case 0:return`group/group`;case 1:return`group/group2`;case 2:return`group/group3`;default:return`group/group4`}}var V=[`opacity-0 transition-opacity group-hover/group:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100`,`opacity-0 transition-opacity group-hover/group2:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100`,`opacity-0 transition-opacity group-hover/group3:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100`,`opacity-0 transition-opacity group-hover/group4:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100`];function H(e){return V[e&3]??V[0]}var U=`h-7 w-7 rounded-md border border-border bg-surface/80 text-muted hover:border-accent/60 hover:text-accent`,W=`h-7 w-7 rounded-md border border-accent/40 bg-accent/10 text-accent hover:border-accent hover:bg-accent/20 hover:text-accent`;function G({onEdit:e,variant:t=`inline`,scope:n=`field`}){let{t:r}=o(),a=R(),s=n===`group`?H(a):I;return(0,O.jsxDEV)(i,{type:`button`,variant:`outline`,size:`iconXs`,className:`${t===`overlay`?`absolute right-1 top-0 z-10`:``} ${U} ${s}`,onClick:e,title:r(`actions.edit`),children:(0,O.jsxDEV)(_,{size:13},void 0,!1,{fileName:k,lineNumber:197,columnNumber:7},this)},void 0,!1,{fileName:k,lineNumber:189,columnNumber:5},this)}function K({size:e,busy:t,disabled:r,onSave:s,onCancel:c}){let{t:l}=o(),u=e===`xs`?`iconXs`:`iconSm`,d=e===`xs`?13:14;return(0,O.jsxDEV)(O.Fragment,{children:[(0,O.jsxDEV)(i,{type:`button`,variant:`outline`,size:u,disabled:t||r,onClick:s,className:W,title:l(`actions.save`),children:(0,O.jsxDEV)(a,{size:d},void 0,!1,{fileName:k,lineNumber:235,columnNumber:9},this)},void 0,!1,{fileName:k,lineNumber:226,columnNumber:7},this),(0,O.jsxDEV)(i,{type:`button`,variant:`outline`,size:u,onClick:c,className:`h-7 w-7 rounded-md border border-border bg-surface/80 text-muted hover:border-danger hover:text-danger`,title:l(`actions.cancel`),children:(0,O.jsxDEV)(n,{size:d},void 0,!1,{fileName:k,lineNumber:245,columnNumber:9},this)},void 0,!1,{fileName:k,lineNumber:237,columnNumber:7},this)]},void 0,!0,{fileName:k,lineNumber:225,columnNumber:5},this)}var oe=`min-h-9 px-2 border border-transparent`;function q({geom:e,field:t,children:n}){let r=D(t,e);return r===`none`?(0,O.jsxDEV)(O.Fragment,{children:n},void 0,!1,{fileName:k,lineNumber:263,columnNumber:30},this):(0,O.jsxDEV)(`div`,{className:ae(r),children:n},void 0,!1,{fileName:k,lineNumber:264,columnNumber:10},this)}function J({error:e}){return e?(0,O.jsxDEV)(`p`,{className:`text-xs text-danger flex items-center gap-1 mt-0.5`,children:[(0,O.jsxDEV)(r,{name:`lucide:alert-triangle`,size:12,className:`shrink-0`},void 0,!1,{fileName:k,lineNumber:272,columnNumber:7},this),` `,e]},void 0,!0,{fileName:k,lineNumber:271,columnNumber:5},this):null}var Y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/flow-row.tsx`,X=(0,v.createContext)(!1),se=()=>(0,v.useContext)(X);function ce({items:e,scroll:t}){return(0,O.jsxDEV)(X.Provider,{value:!0,children:(0,O.jsxDEV)(`div`,{className:`flex gap-x-3 gap-y-2 items-start ${t?`flex-nowrap overflow-x-auto`:`flex-wrap`}`,children:e.map(e=>e.break?(0,O.jsxDEV)(`div`,{className:`basis-full h-0`,"aria-hidden":!0},e.key,!1,{fileName:Y,lineNumber:38,columnNumber:13},this):(0,O.jsxDEV)(`div`,{className:e.full?`basis-full min-w-0`:`flex-none min-w-0 max-w-[min(16rem,100%)]`,children:e.node},e.key,!1,{fileName:Y,lineNumber:40,columnNumber:13},this))},void 0,!1,{fileName:Y,lineNumber:35,columnNumber:7},this)},void 0,!1,{fileName:Y,lineNumber:34,columnNumber:5},this)}function Z(e){return e==null||e===``?!0:Array.isArray(e)?e.length===0:typeof e==`object`&&Object.values(e).every(Z)}var Q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/field-frame.tsx`,le=`[data-slot="combobox-content"],[data-slot="popover-content"],[role="listbox"],[role="dialog"],[role="menu"],[data-scope="date-picker"][data-part="content"]`;function ue(e){let t=e instanceof Element?e:typeof document<`u`?document.activeElement:null;return t instanceof Element&&t.closest(le)!==null}var de=new Set([`file`,`image`,`media`]);function $(e,t){return e.prim===`checkbox`||de.has(e.kind)||e.hints.noEditControl===!0?!0:!Z(t)}function fe(e){let{field:t,value:n,onChange:r,label:i,required:a,error:o,mode:s,geom:c,view:l,edit:u,bare:d,width:f=`w-64`}=e,p=s!==`view`,m=ie(t,n,r),h=se(),g=(e,n,r,i)=>e?u(E(t,n),r):l(n,i);if(d)return(0,O.jsxDEV)(O.Fragment,{children:[g(p,n,e=>r?.(e),r),(0,O.jsxDEV)(J,{error:o},void 0,!1,{fileName:Q,lineNumber:75,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:73,columnNumber:7},this);if(p)return i===void 0?(0,O.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:g(!0,n,e=>r?.(e))},void 0,!1,{fileName:Q,lineNumber:83,columnNumber:14},this):(0,O.jsxDEV)(`div`,{className:`group/field ${f}`,children:[(0,O.jsxDEV)(N,{label:i,required:a},void 0,!1,{fileName:Q,lineNumber:87,columnNumber:9},this),g(!0,n,e=>r?.(e)),(0,O.jsxDEV)(J,{error:o},void 0,!1,{fileName:Q,lineNumber:89,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:86,columnNumber:7},this);if(t.hints.noEditControl===!0){let e=(0,O.jsxDEV)(q,{geom:c,field:t,children:l(n,r)},void 0,!1,{fileName:Q,lineNumber:98,columnNumber:7},this);return i===void 0?e:(0,O.jsxDEV)(`div`,{className:`group/field ${f}`,children:[(0,O.jsxDEV)(N,{label:i,required:a},void 0,!1,{fileName:Q,lineNumber:105,columnNumber:9},this),e,(0,O.jsxDEV)(J,{error:o},void 0,!1,{fileName:Q,lineNumber:107,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:104,columnNumber:7},this)}if(!$(t,n))return null;let _=t.hints.emphasis,v=t.hints.noLabel===!0||i===void 0,y=(0,O.jsxDEV)(`div`,{className:`min-w-0`,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),m.cancel())},children:g(!0,m.draft,m.setDraft)},void 0,!1,{fileName:Q,lineNumber:124,columnNumber:5},this),b=(0,O.jsxDEV)(q,{geom:c,field:t,children:g(!1,n,()=>{},r)},void 0,!1,{fileName:Q,lineNumber:138,columnNumber:5},this),x=h?(0,O.jsxDEV)(`div`,{className:`grid min-w-0`,children:[(0,O.jsxDEV)(`div`,{className:`col-start-1 row-start-1 min-w-0`,"aria-hidden":!m.editing,inert:!m.editing||void 0,style:{visibility:m.editing?`visible`:`hidden`},children:y},void 0,!1,{fileName:Q,lineNumber:149,columnNumber:7},this),(0,O.jsxDEV)(`div`,{className:`col-start-1 row-start-1 min-w-0`,style:{visibility:m.editing?`hidden`:`visible`},children:b},void 0,!1,{fileName:Q,lineNumber:157,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:148,columnNumber:5},this):m.editing?y:b,S=r&&!m.editing?(0,O.jsxDEV)(G,{variant:`overlay`,onEdit:m.beginEdit},void 0,!1,{fileName:Q,lineNumber:170,columnNumber:51},this):null,C=r&&m.editing?(0,O.jsxDEV)(`div`,{className:`absolute right-1 top-0 z-10 flex gap-1`,children:(0,O.jsxDEV)(K,{size:`xs`,busy:m.busy,onSave:()=>m.commit(),onCancel:m.cancel},void 0,!1,{fileName:Q,lineNumber:175,columnNumber:9},this)},void 0,!1,{fileName:Q,lineNumber:174,columnNumber:7},this):null;if(_===`hero`){let e=r?m.editing?(0,O.jsxDEV)(K,{size:`sm`,busy:m.busy,onSave:()=>m.commit(),onCancel:m.cancel},void 0,!1,{fileName:Q,lineNumber:183,columnNumber:11},this):(0,O.jsxDEV)(G,{onEdit:m.beginEdit},void 0,!1,{fileName:Q,lineNumber:184,columnNumber:11},this):null;return(0,O.jsxDEV)(`div`,{className:`group/field flex items-center gap-2 min-w-0`,children:[(0,O.jsxDEV)(`div`,{className:`text-lg font-semibold text-text min-w-0`,children:m.editing?y:g(!1,n,()=>{},r)},void 0,!1,{fileName:Q,lineNumber:188,columnNumber:9},this),e,(0,O.jsxDEV)(J,{error:o},void 0,!1,{fileName:Q,lineNumber:192,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:187,columnNumber:7},this)}return _===`muted`?(0,O.jsxDEV)(`div`,{className:`group/field grid grid-cols-[110px_1fr] items-center gap-x-3 text-xs text-muted min-w-0`,children:[(0,O.jsxDEV)(`span`,{className:`flex items-center gap-1.5`,children:[i,r?m.editing?(0,O.jsxDEV)(K,{size:`xs`,busy:m.busy,onSave:()=>m.commit(),onCancel:m.cancel},void 0,!1,{fileName:Q,lineNumber:201,columnNumber:11},this):(0,O.jsxDEV)(G,{onEdit:m.beginEdit},void 0,!1,{fileName:Q,lineNumber:202,columnNumber:11},this):null]},void 0,!0,{fileName:Q,lineNumber:206,columnNumber:9},this),(0,O.jsxDEV)(`span`,{className:`min-w-0`,children:m.editing?y:g(!1,n,()=>{},r)},void 0,!1,{fileName:Q,lineNumber:210,columnNumber:9},this),(0,O.jsxDEV)(J,{error:o},void 0,!1,{fileName:Q,lineNumber:211,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:205,columnNumber:7},this):v?(0,O.jsxDEV)(`div`,{className:`group/field relative min-w-0 pr-8`,children:[x,S,C,(0,O.jsxDEV)(J,{error:o},void 0,!1,{fileName:Q,lineNumber:223,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:219,columnNumber:7},this):(0,O.jsxDEV)(`div`,{className:`group/field relative ${f}`,children:[(0,O.jsxDEV)(N,{label:i,required:a,reserveAction:!!r},void 0,!1,{fileName:Q,lineNumber:231,columnNumber:7},this),x,S,C,(0,O.jsxDEV)(J,{error:o},void 0,!1,{fileName:Q,lineNumber:235,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:230,columnNumber:5},this)}export{x as C,te as S,_ as T,T as _,X as a,ee as b,J as c,F as d,j as f,R as g,B as h,Z as i,N as l,A as m,ue as n,ce as o,M as p,$ as r,oe as s,fe as t,z as u,S as v,ne as w,b as x,C as y};
|