@coffer-org/web 4.0.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/ChatWidget-qpAe26bF.js +31 -0
- package/dist/assets/{DiagnosticsPage-CGZZeXWa.js → DiagnosticsPage-7qim0xtf.js} +1 -1
- package/dist/assets/{GeoMap-DOMXVIzU.js → GeoMap-B1DFGu6_.js} +1 -1
- package/dist/assets/{MarkdownEditor-DxGJiEiq.js → MarkdownEditor-B2QcGxzl.js} +1 -1
- package/dist/assets/{NewRecordView-DpBMCorS.js → NewRecordView-X6Bro17s.js} +1 -1
- package/dist/assets/{PluginSettingsPage-B-dOMLxu.js → PluginSettingsPage-C3iGqJEb.js} +1 -1
- package/dist/assets/ScanSummary-xKGEaOS0.js +1 -0
- package/dist/assets/{SettingsForm-Zo6DJPut.js → SettingsForm-BAjKJ1MR.js} +1 -1
- package/dist/assets/SettingsPage-DbAk9URh.js +3 -0
- package/dist/assets/{ThemeSwitcher-BHyUdXsG.js → ThemeSwitcher-CADoC9xw.js} +1 -1
- package/dist/assets/arrow-left-5G0O-4HL.js +1 -0
- package/dist/assets/{auth-context-BnKHhDto.js → auth-context-CGdGFadP.js} +1 -1
- package/dist/assets/{data-size-D542cEx7.js → data-size-oPRYOwnj.js} +1 -1
- package/dist/assets/{extend-wEVjCYJU.js → extend-BTkr7oJ8.js} +1 -1
- package/dist/assets/fields-BtCN_frr.js +64 -0
- package/dist/assets/file-text-DzYzGxiY.js +1 -0
- package/dist/assets/index-CHlM3CU9.js +28 -0
- package/dist/assets/index-KdG4mu3z.css +2 -0
- package/dist/assets/{input-D_zWGMG1.js → input-DqF3I-kT.js} +1 -1
- package/dist/assets/{list-cache-BnsDWh3e.js → list-cache-D1eUf-Pp.js} +1 -1
- package/dist/assets/phone-input-CX0JAfCj.js +1 -0
- package/dist/assets/{phone-input-BlrDpvrj.js → phone-input-vooQJZf_.js} +1 -1
- package/dist/assets/{popover-D8hJnUjO.js → popover-DjWMp23y.js} +1 -1
- package/dist/assets/{react-vendor-BskHO5hY.js → react-vendor-CzSUaSLk.js} +1 -1
- package/dist/assets/settings-BfEurOH1.js +1 -0
- package/dist/assets/{shelf-BA1by9Mb.js → shelf-CRUDKiTz.js} +1 -1
- package/dist/assets/{showcase-oqu7qFaz.js → showcase-Boajqdx8.js} +1 -1
- package/dist/assets/src-54Qdjl2W.js +4 -0
- package/dist/assets/src-6lNAeDcP.js +1 -0
- package/dist/assets/{src-BaKnB63T.js → src-B3nX_MMy.js} +1 -1
- package/dist/assets/src-BRzAjJX_.js +6 -0
- package/dist/assets/src-BTv3nocd.js +1 -0
- package/dist/assets/{src-C3yNVG-m.js → src-BYHuqMQ7.js} +4 -4
- package/dist/assets/src-B_YWtyQn.js +4 -0
- package/dist/assets/src-BiJuengh.js +1 -0
- package/dist/assets/src-BinvE9sd2.js +1 -0
- package/dist/assets/src-Br4oAdCy.js +1 -0
- package/dist/assets/src-C-Xmuyui.js +1 -0
- package/dist/assets/{src-C1V7wRsu2.js → src-C4BNu6EC.js} +1 -1
- package/dist/assets/{src-BWhgGUxV.js → src-CFcpeTQ5.js} +1 -1
- package/dist/assets/src-CO3npa8j.js +1 -0
- package/dist/assets/src-CYiAjCO3.js +1 -0
- package/dist/assets/src-Cr_oHzOc.js +1 -0
- package/dist/assets/src-CustHESR.js +1 -0
- package/dist/assets/src-CzmJIKcf.js +1 -0
- package/dist/assets/src-DVO-Ghnz.js +1 -0
- package/dist/assets/src-DWgNUcSX2.js +1 -0
- package/dist/assets/src-DiE6pP9S.js +2 -0
- package/dist/assets/src-DsNlLMpF.js +6 -0
- package/dist/assets/{src-CuFBIOTb.js → src-Ys25cnOv.js} +1 -1
- package/dist/assets/ui-BgqTuhxj2.js +2 -0
- package/dist/assets/{ui-COe8a5rs.js → ui-CImMNxCk.js} +2 -2
- package/dist/assets/{ui-DqMqZAeT.js → ui-Cy5oShj4.js} +2 -2
- package/dist/assets/{ui-vendor-DMxbiC-c.js → ui-vendor-C79K_wDx.js} +1 -1
- package/dist/index.html +17 -17
- package/dist-vendor/web-ui.js +10122 -9892
- package/package.json +1 -1
- package/site.mjs +5 -3
- package/dist/assets/ChatWidget-B0cYgc--.js +0 -31
- package/dist/assets/NoMac-DLu311Th.js +0 -1
- package/dist/assets/ScanSummary-CtIkC51I.js +0 -1
- package/dist/assets/SettingsPage-bBeKUwGo.js +0 -3
- package/dist/assets/arrow-left-HC89JP7G.js +0 -1
- package/dist/assets/fields-y5U9dI_Y.js +0 -64
- package/dist/assets/file-text-toMDXSh-.js +0 -1
- package/dist/assets/index-B5P0VtoK.css +0 -2
- package/dist/assets/index-CTDNvJWx.js +0 -28
- package/dist/assets/phone-input-CaYWPwcM.js +0 -1
- package/dist/assets/settings-dNkqaT_p.js +0 -1
- package/dist/assets/src-BGDCb7l3.js +0 -1
- package/dist/assets/src-C0yjyl-f.js +0 -1
- package/dist/assets/src-C9mXCFPr.js +0 -1
- package/dist/assets/src-CDxDf0ym.js +0 -1
- package/dist/assets/src-CK4EBc7O.js +0 -4
- package/dist/assets/src-Ce_iMRXK.js +0 -1
- package/dist/assets/src-CllIFOuJ.js +0 -1
- package/dist/assets/src-CnIrsaBk2.js +0 -1
- package/dist/assets/src-D5G-COK0.js +0 -6
- package/dist/assets/src-D9W8VueC.js +0 -6
- package/dist/assets/src-DQoFOqKb.js +0 -2
- package/dist/assets/src-DbNyWMfo.js +0 -1
- package/dist/assets/src-LlR445gi.js +0 -4
- package/dist/assets/src-W4ua7zq-.js +0 -1
- package/dist/assets/src-dMbJQOTo.js +0 -1
- package/dist/assets/src-hRrcDCT9.js +0 -1
- package/dist/assets/src-hmc2-ZHB.js +0 -1
- package/dist/assets/src-iTZHe1wo.js +0 -1
- package/dist/assets/ui-x68mFh05.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./phone-input-BlrDpvrj.js";export{e as PhoneInput};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e}from"./fields-y5U9dI_Y.js";function t(t){return e(t)}export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t,s as n}from"./data-size-D542cEx7.js";import{a as r,c as i,i as a,n as o,o as s,r as c,s as l,t as u}from"./src-CllIFOuJ.js";export{c as SCHEME_TO_ACCESS_TYPE,a as cidr,t as dataSize,o as default,u as dev,e as diskSize,r as hostname,s as imei,l as ip,i as mac,n as ram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./fields-y5U9dI_Y.js";import{n as t}from"./plugin-CFEkHH3f.js";import{t as n}from"./settings-dNkqaT_p.js";var r=t({id:`telegram`,version:`1.0.0`,dependsOn:[],settings:n({label:`telegram.settings.label`,fields:{api_id:e.int({label:`telegram.settings.api_id`}),api_hash:e.password({label:`telegram.settings.api_hash`}),bot_token:e.password({label:`telegram.settings.bot_token`}),phone:e.tel({label:`telegram.settings.phone`}),reasoning_display:e.string({label:`telegram.settings.reasoning_display`,default:`collapsible`,strict:!0,view:{noSearch:!0},options:[{value:`off`,title:`telegram.settings.reasoning_display_off`},{value:`collapsible`,title:`telegram.settings.reasoning_display_collapsible`},{value:`separate`,title:`telegram.settings.reasoning_display_separate`}]})}})});export{r as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./fields-y5U9dI_Y.js";import{n as t}from"./plugin-CFEkHH3f.js";import{t as n}from"./settings-dNkqaT_p.js";var r={vision:!0,documents:!0,tools:!0,reasoning:!0},i={vision:!0,documents:!0,tools:!0,reasoning:!1};function a(e){return{labelKey:`claude-agent.models.${e}.label`,titleKey:`claude-agent.models.${e}.title`,hintKey:`claude-agent.models.${e}.hint`}}var o=[{value:`haiku`,id:`claude-haiku-4-5`,effort:``,quality:1,time:1,...a(`haiku`),capabilities:i},{value:`sonnet-medium`,id:`claude-sonnet-5`,effort:`medium`,quality:2,time:2,...a(`sonnet-medium`),capabilities:r},{value:`sonnet-high`,id:`claude-sonnet-5`,effort:`high`,quality:3,time:3,...a(`sonnet-high`),capabilities:r},{value:`opus-medium`,id:`claude-opus-5`,effort:`medium`,quality:4,time:4,...a(`opus-medium`),capabilities:r},{value:`opus-high`,id:`claude-opus-5`,effort:`high`,quality:5,time:5,...a(`opus-high`),capabilities:r}],s=t({id:`claude-agent`,version:`1.0.0`,dependsOn:[],fieldContribs:[{library:`_settings`,shelf:`system`,field:`agent_id`,options:[{value:`claude-agent`,title:`claude-agent.plugin.label`}]}],settings:n({label:`claude-agent.settings.label`,fields:{group:e.group({label:`claude-agent.settings.groups.runtime`,icon:`lucide:bot`,scope:`hoist`,fields:{auth_mode:e.string({label:`claude-agent.settings.auth_mode`,default:`subscription`,strict:!0,view:{noSearch:!0},options:[{value:`subscription`,title:`claude-agent.settings.auth_mode_subscription`},{value:`api_key`,title:`claude-agent.settings.auth_mode_api_key`}]}),anthropic_api_key:e.password({label:`claude-agent.settings.anthropic_api_key`,view:{hidden:{auth_mode:{$ne:`api_key`}}}}),claude_model:e.string({label:`claude-agent.settings.claude_model`,default:`haiku`,strict:!0,view:{noSearch:!0},options:o.map(e=>({value:e.value,title:e.labelKey}))}),thinking_enabled:e.boolean({label:`claude-agent.settings.thinking_enabled`,default:!1}),skip_permissions:e.boolean({label:`claude-agent.settings.skip_permissions`,default:!0}),response_timeout:e.int({label:`claude-agent.settings.response_timeout`,default:600})}}),group2:e.group({label:`claude-agent.settings.groups.rag`,icon:`lucide:search`,scope:`hoist`,fields:{rag_enabled:e.boolean({label:`claude-agent.settings.rag_enabled`,default:!0}),openai_api_key:e.password({label:`claude-agent.settings.openai_api_key`})}}),group3:e.group({label:`claude-agent.settings.groups.langfuse`,icon:`lucide:activity`,scope:`hoist`,fields:{tracing_enabled:e.boolean({label:`claude-agent.settings.tracing_enabled`}),langfuse_base_url:e.string({label:`claude-agent.settings.langfuse_base_url`}),langfuse_public_key:e.password({label:`claude-agent.settings.langfuse_public_key`}),langfuse_secret_key:e.password({label:`claude-agent.settings.langfuse_secret_key`})}})}})});export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./fields-y5U9dI_Y.js";import{n as t}from"./plugin-CFEkHH3f.js";import{t as n}from"./settings-dNkqaT_p.js";var r=t({id:`webchat`,version:`1.0.0`,dependsOn:[],settings:n({label:`webchat.settings.label`,fields:{reasoning_display:e.string({label:`webchat.settings.reasoning_display`,default:`live`,strict:!0,view:{noSearch:!0},options:[{value:`live`,title:`webchat.settings.reasoning_display_live`},{value:`off`,title:`webchat.settings.reasoning_display_off`}]})}})});export{r as default};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./fields-y5U9dI_Y.js";import{s as n}from"./shelf-BA1by9Mb.js";import{n as r,r as i}from"./plugin-CFEkHH3f.js";var a=n({shelf:`meter_reading`,library:`home`,label:`home.meter_reading.label`,icon:`lucide:gauge`,claude:`Utility meter readings for a date. name — reading period, e.g. "2026-05".
|
|
2
|
-
date — reading date. cold_water/hot_water — water meter readings (m³).
|
|
3
|
-
electricity — electricity meter reading (kWh). gas — gas meter reading (m³).
|
|
4
|
-
Stores RAW cumulative readings, not consumption (the difference is a derived calculation).`,views:{title:`date`,inline:[`date`],list:[`cold_water`,`hot_water`,`electricity`,`gas`]},fields:{date:e.date({label:`home.meter_reading.fields.date`,required:!0,rules:{min:`2000-01-01`,max:`today`},ui:{span:12}}),cold_water:e.real({label:`home.meter_reading.fields.cold_water`,rules:{min:0},ui:{span:3}}),hot_water:e.real({label:`home.meter_reading.fields.hot_water`,rules:{min:0},ui:{span:3}}),electricity:e.real({label:`home.meter_reading.fields.electricity`,rules:{min:0},ui:{span:3}}),gas:e.real({label:`home.meter_reading.fields.gas`,rules:{min:0},ui:{span:3}}),notes:e.text({label:`home.meter_reading.fields.notes`,rules:{max:500}})}}),o=n({shelf:`room`,library:`home`,label:`home.room.label`,icon:`lucide:door-open`,claude:`A room/space in the apartment. name — name (Bedroom, Kitchen). area — area (m²). This is a reference list of places: a target for relations from material (where a material was used). Does not store the materials themselves.`,views:{inline:[`name`],list:[`area`]},fields:{name:e.title({label:`core.fields.name`,required:!0}),description:e.text({label:`home.room.fields.description`,rules:{max:1e3}}),area:e.measured({label:`home.room.fields.area`,units:`area`,rules:{min:0}}),notes:e.text({label:`home.room.fields.notes`,rules:{max:500}})}}),s=n({shelf:`material`,library:`home`,label:`home.material.label`,icon:`lucide:paint-roller`,claude:`A material/paint used in renovation. One record = a specific product (e.g. "Dulux Easycare, RAL 9010"). name — name, type — category, brand — manufacturer, color/color_code — color and tint code. rooms — relation to home/room (where used, can be several). price/quantity/store/bought_date/link — purchase data. photo/rating/notes — photos and impressions. Does NOT store a work log/timeline — only a catalog of "what was bought and where it is used".`,views:{inline:[`name`,`color`],list:[`type`,`color`,`brand`,`rooms`]},fields:{name:e.title({label:`core.fields.name`,required:!0}),description:e.text({label:`home.material.fields.description`,rules:{max:1e3}}),group:e.group({label:`home.material.group.identity`,icon:`lucide:tag`,scope:`hoist`,fields:{type:e.string({label:`core.fields.type`,strict:!0,view:{noSearch:!0},options:[{value:`paint`,title:`home.material.options.type.paint`},{value:`primer`,title:`home.material.options.type.primer`},{value:`lacquer`,title:`home.material.options.type.lacquer`},{value:`enamel`,title:`home.material.options.type.enamel`},{value:`plaster`,title:`home.material.options.type.plaster`},{value:`tile`,title:`home.material.options.type.tile`},{value:`laminate`,title:`home.material.options.type.laminate`},{value:`wallpaper`,title:`home.material.options.type.wallpaper`},{value:`skirting`,title:`home.material.options.type.skirting`},{value:`panel`,title:`home.material.options.type.panel`},{value:`putty`,title:`home.material.options.type.putty`},{value:`glue`,title:`home.material.options.type.glue`},{value:`cement`,title:`home.material.options.type.cement`},{value:`drywall`,title:`home.material.options.type.drywall`},{value:`insulation`,title:`home.material.options.type.insulation`},{value:`fixture`,title:`home.material.options.type.fixture`},{value:`plumbing`,title:`home.material.options.type.plumbing`},{value:`other`,title:`home.material.options.type.other`}]}),brand:e.string({label:`home.material.fields.brand`,rules:{max:120}}),color:e.color({label:`home.material.fields.color`}),color_code:e.string({label:`home.material.fields.color_code`,rules:{max:60}}),rooms:e.relation({label:`home.material.fields.rooms`,options:t({library:`home`,shelf:`room`}),multiple:!0})}}),ledger:e.ledger({label:`home.material.group.purchase`,icon:`lucide:shopping-cart`,fields:{price:e.money({label:`home.material.fields.price`,rules:{min:0}}),currency:e.currency({label:`core.fields.currency`,default:`UAH`}),quantity:e.measured({label:`home.material.fields.quantity`,units:[{value:`l`,label:`core.units.l`},{value:`kg`,label:`core.units.kg`},{value:`m2`,label:`core.units.m2`},{value:`pcs`,label:`core.units.pcs`}],rules:{min:0}}),store:e.string({label:`home.material.fields.store`,rules:{max:120}}),bought_date:e.date({label:`home.material.fields.bought_date`,rules:{max:`today`}}),link:e.link({label:`home.material.fields.link`})}}),group2:e.group({label:`home.material.group.media`,icon:`lucide:image`,scope:`hoist`,fields:{photo:e.image({label:`home.material.fields.photo`,multiple:!0}),rating:e.rating({label:`home.material.fields.rating`,rules:{max:5}})}}),notes:e.text({label:`home.material.fields.notes`,rules:{max:2e3}})}}),c=r({id:`home`,version:`1.0.0`,dependsOn:[],libraries:[{meta:i({id:`home`,label:`home.library.label`,icon:`lucide:house`,agent:`The home itself — renovation materials, utility meter readings, rooms.`}),shelves:[a,o,s]}]});export{c as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./fields-y5U9dI_Y.js";import{s as n}from"./shelf-BA1by9Mb.js";import{t as r}from"./extend-wEVjCYJU.js";import{n as i,r as a}from"./plugin-CFEkHH3f.js";import{t as o}from"./settings-dNkqaT_p.js";import{t as s}from"./src-CllIFOuJ.js";import{t as c}from"./src-C3yNVG-m.js";var l=n({shelf:`field_demo`,library:`lab`,label:`lab.field_demo.label`,icon:`lucide:flask-conical`,views:{inline:[`name`,`select`],listKind:`map`,list:[`place`,`text_minmax`,`integer`,`boolean`,`select`,`rating_5`,`measured_currency`]},fields:{name:e.title({label:`core.fields.name`}),image:e.image({label:`lab.field_demo.fields.image`,role:`cover`}),avatar:e.avatar({label:`lab.field_demo.fields.avatar`,role:`avatar`}),info:e.info(`lab.field_demo.info.intro`),button:e.button({label:`lab.field_demo.fields.button_demo`,value:`lab.demoAction`,icon:`lucide:zap`,variant:`outline`}),properties:e.properties({label:`lab.field_demo.groups.properties_inspector`,icon:`lucide:sliders-horizontal`,columns:4,fields:{demo_status:e.string({label:`lab.field_demo.fields.demo_status`,ui:{span:3}}),demo_author:e.string({label:`lab.field_demo.fields.demo_author`,ui:{span:3}}),demo_prop_rating:e.rating({label:`lab.field_demo.fields.rating_5`,ui:{span:3}}),demo_prop_date:e.date({label:`lab.field_demo.fields.date`,ui:{span:3}})}}),stack:e.stack({label:`lab.field_demo.groups.vertical_stack`,icon:`lucide:layers`,fields:{stack_note_1:e.string({label:`lab.field_demo.fields.stack_note_1`}),stack_note_2:e.string({label:`lab.field_demo.fields.stack_note_2`})}}),group:e.group({label:`lab.field_demo.groups.embeds`,icon:`lucide:tv`,scope:`hoist`,fields:{embed_wide:e.embed({label:`lab.field_demo.fields.embed_wide`,multiple:!0}),embed_narrow:e.embed({label:`lab.field_demo.fields.embed_narrow`,multiple:!0})}}),group2:e.group({label:`lab.field_demo.groups.text_pattern`,icon:`lucide:type`,scope:`hoist`,fields:{text_pattern:e.string({label:`lab.field_demo.fields.text_pattern`,rules:{pattern:`^[A-Za-z]+$`,messageKey:`lab.field_demo.validation.letters_only`}})}}),group3:e.group({label:`lab.field_demo.groups.text_email`,icon:`lucide:mail`,scope:`hoist`,fields:{text_emails:e.email({label:`lab.field_demo.fields.text_emails`,multiple:!0})}}),group4:e.group({label:`lab.field_demo.groups.text_url`,icon:`lucide:link`,scope:`hoist`,fields:{text_url:e.url({label:`lab.field_demo.fields.text_url`})}}),group5:e.group({label:`lab.field_demo.groups.text_password`,icon:`lucide:key-round`,scope:`hoist`,fields:{text_password:e.password({label:`lab.field_demo.fields.text_password`})}}),group6:e.group({label:`lab.field_demo.groups.slug_link`,icon:`lucide:link-2`,scope:`hoist`,fields:{demo_slug:e.slug({label:`lab.field_demo.fields.demo_slug`}),demo_link:e.link({label:`lab.field_demo.fields.demo_link`})}}),group7:e.group({label:`lab.field_demo.groups.string_mask`,icon:`lucide:credit-card`,scope:`hoist`,fields:{demo_mask_card:e.string({label:`lab.field_demo.fields.demo_mask_card`,rules:{pattern:`^\\d{4} \\d{4} \\d{4} \\d{4}$`}})}}),group8:e.group({label:`lab.field_demo.groups.percent_year`,icon:`lucide:percent`,scope:`hoist`,fields:{demo_percent:e.percent({label:`lab.field_demo.fields.demo_percent`}),demo_year:e.year({label:`lab.field_demo.fields.demo_year`})}}),group9:e.group({label:`lab.field_demo.groups.local_paths`,icon:`lucide:folder-tree`,scope:`hoist`,fields:{demo_local_dir:e.localDir({label:`lab.field_demo.fields.demo_local_dir`}),demo_local_file:e.localFile({label:`lab.field_demo.fields.demo_local_file`})}}),group10:e.group({label:`lab.field_demo.groups.tag_i18n`,icon:`lucide:tags`,scope:`hoist`,fields:{demo_tag:e.tag({label:`lab.field_demo.fields.demo_tag`,options:[`new`,`sale`,`featured`]}),demo_i18n:e.i18n({label:`lab.field_demo.fields.demo_i18n`})}}),group11:e.group({label:`lab.field_demo.groups.source_poster`,icon:`lucide:file-code`,scope:`hoist`,fields:{demo_source:e.source({label:`lab.field_demo.fields.demo_source`}),demo_poster:e.poster({label:`lab.field_demo.fields.demo_poster`})}}),group12:e.group({label:`lab.field_demo.groups.ranges`,icon:`lucide:chevrons-left-right`,scope:`hoist`,fields:{demo_number_range:e.numberRange({label:`lab.field_demo.fields.demo_number_range`}),demo_real_range:e.realRange({label:`lab.field_demo.fields.demo_real_range`})}}),group13:e.group({label:`lab.field_demo.groups.date_month`,icon:`lucide:calendar`,scope:`hoist`,fields:{demo_month:e.date({label:`lab.field_demo.fields.demo_month`,rules:{granularity:`month`}})}}),group14:e.group({label:`lab.field_demo.groups.ratings`,icon:`lucide:star`,scope:`hoist`,fields:{rating_5:e.rating({label:`lab.field_demo.fields.rating_5`}),rating_10:e.rating({label:`lab.field_demo.fields.rating_10`,rules:{max:10}})}}),group15:e.group({label:`lab.field_demo.groups.hostname`,icon:`lucide:globe`,scope:`hoist`,fields:{demo_hostname:s.hostname({label:`lab.field_demo.fields.demo_hostname`})}}),group16:e.group({label:`lab.field_demo.groups.unit_amount`,icon:`lucide:calculator`,scope:`hoist`,fields:{demo_unit:e.unit({label:`lab.field_demo.fields.demo_unit`,options:`weight`}),demo_amount:e.amount({label:`lab.field_demo.fields.demo_amount`,unitFrom:`demo_unit`})}}),group17:e.group({label:`lab.field_demo.groups.datetimes`,icon:`lucide:calendar-clock`,scope:`hoist`,fields:{datetimes_multi:e.datetime({label:`lab.field_demo.fields.datetimes_multi`,multiple:!0})}}),group18:e.group({label:`lab.field_demo.groups.times_multi`,icon:`lucide:alarm-clock`,scope:`hoist`,fields:{times_multi:e.time({label:`lab.field_demo.fields.times_multi`,multiple:!0})}}),sheet:e.sheet({label:`lab.field_demo.fields.demo_sheet`,icon:`lucide:grid-2x2`,fields:{row1:{sheet_a1:e.string({label:`lab.field_demo.fields.sheet_a1`}),sheet_b1:e.string({label:`lab.field_demo.fields.sheet_b1`})},row2:{sheet_a2:e.string({label:`lab.field_demo.fields.sheet_a2`}),sheet_b2:e.string({label:`lab.field_demo.fields.sheet_b2`})}}}),demo_table_specs:e.row({scope:`nest`,multiple:!0,label:`lab.field_demo.fields.demo_table_specs`,icon:`lucide:table`,fields:{param:e.string({label:`lab.field_demo.per_row.param`}),val:e.string({label:`lab.field_demo.per_row.val`})}}),demo_check_multi:e.check({label:`lab.field_demo.fields.demo_check_multi`,multiple:!0}),demo_check_stages:e.check({label:`lab.field_demo.fields.demo_check_stages`,slots:[`lab.field_demo.fields.stage_ordered`,`lab.field_demo.fields.stage_paid`,`lab.field_demo.fields.stage_shipped`],multiple:!0}),demo_stepper:e.stepper({label:`lab.field_demo.fields.demo_stepper`,options:[{value:`ordered`,title:`lab.field_demo.options.stage.ordered`},{value:`packed`,title:`lab.field_demo.options.stage.packed`},{value:`shipped`,title:`lab.field_demo.options.stage.shipped`},{value:`delivered`,title:`lab.field_demo.options.stage.delivered`}]}),divider:e.divider({label:`lab.field_demo.blocks.divider`}),bento:e.bento({label:`lab.field_demo.blocks.bento`,icon:`lucide:layout-grid`,fields:{number_int:{span:`2x1`,el:e.int({label:`lab.field_demo.fields.number_int`,rules:{min:0,max:100}})},color_multi:e.color({label:`lab.field_demo.fields.color_multi`,multiple:!0}),numbers_multi:e.real({label:`lab.field_demo.fields.numbers_multi`,multiple:!0}),dates_multi:{span:`2x1`,el:e.date({label:`lab.field_demo.fields.dates_multi`,multiple:!0})}}}),group19:e.group({label:`lab.field_demo.groups.split_rating`,icon:`lucide:columns-2`,fields:{split:e.split({ratio:[1,1],columns:[{rating_split_5:e.rating({label:`lab.field_demo.fields.rating_split_5`})},{rating_split_10:e.rating({label:`lab.field_demo.fields.rating_split_10`,rules:{max:10}})}]})},scope:`hoist`}),grid:e.grid({label:`lab.field_demo.blocks.grid`,icon:`lucide:clock`,columns:2,fields:{time_field:e.time({label:`lab.field_demo.fields.time_field`})}}),group20:e.group({label:`lab.field_demo.groups.spread`,icon:`lucide:newspaper`,fields:{spread:e.spread({visual:{cover:e.cover({label:`lab.field_demo.fields.cover`})},quote:{nolabel_note:e.string({view:{noEditControl:!0}})},facts:{origin:e.country({label:`lab.field_demo.fields.origin`}),tags_field:e.tags({label:`lab.field_demo.fields.tags_field`,options:[`alpha`,`beta`,`gamma`,`delta`]})}})},scope:`hoist`}),group21:e.group({label:`lab.field_demo.groups.aside`,icon:`lucide:panel-right`,scope:`hoist`,fields:{aside:e.aside({fields:{demo_weight:e.weight({label:`lab.field_demo.fields.demo_weight`})},aside:{demo_dimensions:e.dimensions({label:`lab.field_demo.fields.demo_dimensions`})}})}}),tabs:e.tabs({tabs:[{name:`tab1`,label:`lab.field_demo.blocks.tab1`,fields:{demo_datasize:s.dataSize({label:`lab.field_demo.fields.demo_datasize`}),demo_ram:s.ram({label:`lab.field_demo.fields.demo_ram`})}},{name:`tab2`,label:`lab.field_demo.blocks.tab2`,fields:{demo_disk:s.diskSize({label:`lab.field_demo.fields.demo_disk`}),ip_addr:s.ip({label:`lab.field_demo.fields.ip_addr`})}}]}),accordion:e.accordion({sections:[{name:`section1`,label:`lab.field_demo.blocks.section1`,open:!0,fields:{demo_weekday:e.string({label:`lab.field_demo.fields.demo_weekday`,options:`weekdays`,strict:!0,view:{noSearch:!0}}),demo_weekdays:e.string({label:`lab.field_demo.fields.demo_weekdays`,options:`weekdays`,multiple:!0,strict:!0,view:{noSearch:!0}})}},{name:`section2`,label:`lab.field_demo.blocks.section2`,fields:{cidr_subnet:s.cidr({label:`lab.field_demo.fields.cidr_subnet`}),ip_addrs:s.ip({label:`lab.field_demo.fields.ip_addrs`,multiple:!0})}}]}),divider2:e.divider({label:`lab.field_demo.blocks.leaves`}),prose:e.prose({label:`lab.field_demo.blocks.prose`,icon:`lucide:file-text`,dropCap:`markdown`,fields:{markdown:e.markdown({label:`lab.field_demo.fields.markdown`,rules:{max:5e3}}),text_multiline:e.text({label:`lab.field_demo.fields.text_multiline`,rules:{max:500}})}}),plaque:e.plaque({label:`lab.field_demo.blocks.plaque`,icon:`lucide:cpu`,title:{mac:s.mac({label:`lab.field_demo.fields.mac`})},subtitle:{imei:s.imei({label:`lab.field_demo.fields.imei`})}}),ledger:e.ledger({label:`lab.field_demo.blocks.ledger`,icon:`lucide:list`,fields:{duration_short:e.duration({label:`lab.field_demo.fields.duration_short`,rules:{max:28800,step:300}}),measured_weight:e.measured({label:`lab.field_demo.fields.measured_weight`,units:`weight`})}}),stats:e.stats({label:`lab.field_demo.blocks.stats`,icon:`lucide:thermometer`,fields:{tempRange:e.realRange({label:`lab.field_demo.fields.tempRange`})}}),facets:e.facets({label:`lab.field_demo.blocks.facets`,icon:`lucide:sun-medium`,fields:{day_period:e.string({label:`lab.field_demo.fields.day_period`,options:`day-periods`,strict:!0,view:{noSearch:!0}})}}),terminal:e.terminal({label:`lab.field_demo.blocks.terminal`,icon:`lucide:terminal`,caption:`lab.field_demo.blocks.terminal_caption`,fields:{code:e.snippet({label:`lab.field_demo.fields.code`,rules:{language:`yaml`,max:5e3}})}}),callout:e.callout({label:`lab.field_demo.blocks.callout`,icon:`lucide:shield-check`,tone:`warn`,fields:{agree:e.triState({label:`lab.field_demo.fields.agree`}),boolean:e.boolean({label:`lab.field_demo.fields.boolean`})}}),compare:e.compare({label:`lab.field_demo.blocks.compare`,icon:`lucide:git-compare`,leftLabel:`lab.field_demo.blocks.compare_left`,rightLabel:`lab.field_demo.blocks.compare_right`,left:{country_multi:e.string({label:`lab.field_demo.fields.country_multi`,options:`countries`,multiple:!0,strict:!0,view:{noSearch:!0}})},right:{demo_check:e.check({label:`lab.field_demo.fields.demo_check`}),select_multi:e.string({label:`lab.field_demo.fields.select_multi`,multiple:!0,strict:!0,view:{noSearch:!0},options:[{value:`red`,title:`lab.field_demo.options.select.red`},{value:`green`,title:`lab.field_demo.options.select.green`},{value:`blue`,title:`lab.field_demo.options.select.blue`}]})}}),group22:e.group({label:`lab.field_demo.groups.figure`,icon:`lucide:image`,fields:{figure:e.figure({image:{image_gallery:e.image({label:`lab.field_demo.fields.image_gallery`,multiple:!0})},caption:{small_text:e.smallText({label:`lab.field_demo.fields.small_text`,rules:{max:500}})}})},scope:`hoist`}),group23:e.group({label:`lab.field_demo.groups.illustrated`,icon:`lucide:image`,scope:`hoist`,fields:{illustrated_one:e.illustrated({label:`lab.field_demo.fields.illustrated_one`}),illustrated_many:e.illustrated({label:`lab.field_demo.fields.illustrated_many`,multiple:!0,fields:{text:e.markdown({}),image:e.image({})}})}}),group24:e.group({label:`lab.field_demo.groups.epigraph`,icon:`lucide:quote`,fields:{epigraph:e.epigraph({source:{textarea:e.text({label:`lab.field_demo.fields.textarea`,rules:{max:1e3},noLabel:!0})},attribution:{compact_note:e.string({label:`lab.field_demo.fields.compact_note`,view:{noEditControl:!0}})}})},scope:`hoist`}),group25:e.group({label:`lab.field_demo.groups.masthead`,icon:`lucide:calendar-days`,fields:{masthead:e.masthead({overline:{day_period_multi:e.string({label:`lab.field_demo.fields.day_period_multi`,options:`day-periods`,multiple:!0,strict:!0,view:{noSearch:!0}})},title:{birthYear:e.date({label:`lab.field_demo.fields.birthYear`,rules:{granularity:`year`}})}})},scope:`hoist`}),divider3:e.divider({label:`lab.field_demo.blocks.domain`}),group26:e.group({label:`lab.field_demo.groups.timeline`,icon:`lucide:history`,fields:{timeline:e.timeline({fields:{date_future:e.date({label:`lab.field_demo.fields.date_future`,rules:{min:`today`}}),demo_reminder:e.reminder({label:`lab.field_demo.fields.demo_reminder`,rules:{lead:14}})}})},scope:`hoist`}),group27:e.group({label:`lab.field_demo.groups.countdown`,icon:`lucide:timer`,fields:{countdown:e.countdown({source:{datetime:e.datetime({label:`lab.field_demo.fields.datetime`})},caption:`lab.field_demo.blocks.countdown_caption`})},scope:`hoist`}),group28:e.group({label:`lab.field_demo.groups.deck`,icon:`lucide:layers`,fields:{deck:e.deck({source:{relation_multi:e.relation({label:`lab.field_demo.fields.relation_multi`,options:t({library:`lab`,shelf:`field_demo_child`}),multiple:!0})}})},scope:`hoist`}),group29:e.group({label:`lab.field_demo.groups.people`,icon:`lucide:user`,fields:{people:e.people({source:{relation_single:e.relation({label:`lab.field_demo.fields.relation_single`,options:t({library:`lab`,shelf:`field_demo_child`})})}})},scope:`hoist`}),group30:e.group({label:`lab.field_demo.groups.identity`,icon:`lucide:contact`,fields:{identity:e.identity({name:{text_plain:e.string({label:`lab.field_demo.fields.text_plain`,rules:{max:200}})},role:{text_minmax:e.string({label:`lab.field_demo.fields.text_minmax`,rules:{min:3,max:20}})},channels:{text_tel:e.tel({label:`lab.field_demo.fields.text_tel`}),text_email:e.email({label:`lab.field_demo.fields.text_email`})}})},scope:`hoist`}),group31:e.group({label:`lab.field_demo.groups.score`,icon:`lucide:gauge`,fields:{score:e.score({source:{integer:e.int({label:`lab.field_demo.fields.integer`,rules:{min:1,max:12}})},max:12})},scope:`hoist`}),group32:e.group({label:`lab.field_demo.groups.status`,icon:`lucide:check-circle`,fields:{status:e.status({source:{select:e.string({label:`lab.field_demo.fields.select`,strict:!0,view:{noSearch:!0},options:[{value:`red`,title:`lab.field_demo.options.select.red`},{value:`green`,title:`lab.field_demo.options.select.green`},{value:`blue`,title:`lab.field_demo.options.select.blue`}]})}})},scope:`hoist`}),group33:e.group({label:`lab.field_demo.groups.meter`,icon:`lucide:sliders-horizontal`,fields:{meter:e.meter({source:{meter_value:e.int({label:`lab.field_demo.fields.meter_value`,rules:{min:0,max:50}})},min:0,max:50})},scope:`hoist`}),group34:e.group({label:`lab.field_demo.groups.receipt`,icon:`lucide:receipt`,scope:`hoist`,fields:{receipt:e.receipt({fields:{number_decimal:e.real({label:`lab.field_demo.fields.number_decimal`,rules:{min:0,max:1e3}})},total:{price:e.money({label:`lab.field_demo.fields.price`})}}),currency:e.currency({label:`core.fields.currency`,default:`UAH`})}}),group35:e.group({label:`lab.field_demo.groups.balance`,icon:`lucide:scale`,fields:{balance:e.balance({source:{measured_currency:e.measured({label:`lab.field_demo.fields.measured_currency`,units:`currency`})},caption:`lab.field_demo.blocks.balance_caption`})},scope:`hoist`}),group36:e.group({label:`lab.field_demo.groups.route`,icon:`lucide:map-pin`,fields:{route:e.route({from:{country:e.string({label:`lab.field_demo.fields.country`,options:`countries`,strict:!0,view:{noSearch:!0}})},to:{place:e.geo({label:`lab.field_demo.fields.place`})}})},scope:`hoist`}),calendar:e.calendar({source:{calendar_dates:e.group({scope:`nest`,label:`lab.field_demo.fields.calendar_dates`,icon:`lucide:calendar`,multiple:!0,fields:{occurs_on:e.date({label:`lab.field_demo.per_row.occurs_on`})}})},date:`occurs_on`}),journal:e.journal({source:{journal_log:e.group({scope:`nest`,label:`lab.field_demo.fields.journal_log`,icon:`lucide:book-open`,multiple:!0,fields:{logged_at:e.date({label:`lab.field_demo.per_row.logged_at`}),entry:e.text({label:`lab.field_demo.per_row.entry`,rules:{max:500}})}})},date:`logged_at`,text:`entry`}),group37:e.group({label:`lab.field_demo.groups.nutrition`,icon:`lucide:flame`,scope:`hoist`,fields:{nutrition:e.nutrition({energy:{ageRange:e.numberRange({label:`lab.field_demo.fields.ageRange`,rules:{min:0,max:120}})},fields:{measured_custom:e.measured({label:`lab.field_demo.fields.measured_custom`,units:[{value:`shot`,label:`lab.field_demo.units.shot`},{value:`scoop`,label:`lab.field_demo.units.scoop`}]})}})}}),group38:e.group({label:`lab.field_demo.groups.specimen`,icon:`lucide:palette`,fields:{specimen:e.specimen({title:{color_name:e.string({label:`lab.field_demo.fields.color_name`,options:`colors`,strict:!0,view:{noSearch:!0}})},subtitle:{color_hex:e.color({label:`lab.field_demo.fields.color_hex`})}})},scope:`hoist`}),manifest:e.manifest({source:{row_ingredients:e.group({scope:`nest`,label:`lab.field_demo.fields.row_ingredients`,icon:`lucide:carrot`,multiple:!0,rules:{unique:[`product`]},fields:{product:e.relation({label:`lab.field_demo.per_row.product`,options:t({library:`kitchen`,shelf:`food_item`})}),amount:e.real({label:`lab.field_demo.per_row.amount`,rules:{min:0}}),stock:e.measured({label:`lab.field_demo.per_row.stock`,units:`cooking`,cache:0,value:async e=>(await e.ref?.(`product`))?.quantity??null})}})},quantity:`amount`,item:`product`}),table:e.table({label:`lab.field_demo.fields.demo_table`,source:{demo_table_rows:e.row({scope:`nest`,label:`lab.field_demo.fields.demo_table`,multiple:!0,fields:{part:e.string({label:`lab.field_demo.table.part`}),vendor:e.string({label:`lab.field_demo.table.vendor`}),qty:e.int({label:`lab.field_demo.table.qty`})}})},sort:`qty`,dir:`desc`,groupBy:`vendor`,totals:{qty:`sum`},numbered:!0}),group39:e.group({label:`lab.field_demo.groups.idcard`,icon:`lucide:credit-card`,fields:{idcard:e.idcard({number:{iban:c.iban({label:`lab.field_demo.fields.iban`})},meta:{date:e.date({label:`lab.field_demo.fields.date`})}})},scope:`hoist`}),divider4:e.divider({label:`lab.field_demo.blocks.computed`}),chart:e.chart({source:{chart_readings:e.group({scope:`nest`,label:`lab.field_demo.fields.chart_readings`,icon:`lucide:trending-up`,multiple:!0,fields:{measured_on:e.date({label:`lab.field_demo.per_row.measured_on`}),reading:e.real({label:`lab.field_demo.per_row.reading`})}})},value:`reading`,date:`measured_on`,delta:!0}),heatmap:e.heatmap({source:{heatmap_sessions:e.group({scope:`nest`,label:`lab.field_demo.fields.heatmap_sessions`,icon:`lucide:calendar-check`,multiple:!0,fields:{happened_on:e.date({label:`lab.field_demo.per_row.happened_on`})}})},date:`happened_on`}),divider5:e.divider(),group40:e.group({label:`lab.field_demo.groups.periods`,icon:`lucide:calendar-range`,scope:`hoist`,fields:{periods:e.period({label:`lab.field_demo.fields.periods`,multiple:!0})}}),group41:e.group({label:`lab.field_demo.groups.json`,icon:`lucide:code-2`,scope:`hoist`,fields:{json:e.json({label:`lab.field_demo.fields.json`,emphasis:`muted`})}}),row_single:e.group({scope:`nest`,label:`lab.field_demo.fields.row_single`,icon:`lucide:rows-3`,fields:{env:e.string({label:`lab.field_demo.per_row.env`,strict:!0,view:{noSearch:!0},options:[{value:`dev`,title:`lab.field_demo.options.env.dev`},{value:`prod`,title:`lab.field_demo.options.env.prod`}]}),url:e.url({label:`lab.field_demo.per_row.url`}),token:e.password({label:`lab.field_demo.per_row.token`})}}),variants:e.keyed({label:`lab.field_demo.fields.variants`,icon:`lucide:languages`,fields:{lang:e.string({label:`lab.field_demo.per_row.lang`,options:`languages`,strict:!0,view:{noSearch:!0}}),name:e.string({label:`lab.field_demo.per_row.name`}),surname:e.string({label:`lab.field_demo.per_row.surname`})},by:`lang`}),perkey_fixed:e.keyed({label:`lab.field_demo.fields.perkey_fixed`,icon:`lucide:key`,fixed:!0,fields:{size:e.string({label:`lab.field_demo.per_row.size`,strict:!0,view:{noSearch:!0},options:[{value:`s`,title:`lab.field_demo.options.size.s`},{value:`m`,title:`lab.field_demo.options.size.m`},{value:`l`,title:`lab.field_demo.options.size.l`}]}),qty:e.int({label:`lab.field_demo.per_row.qty`,rules:{min:0}})},by:`size`}),coll_text:e.group({scope:`nest`,label:`lab.field_demo.fields.coll_text`,icon:`lucide:type`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.string({label:`lab.field_demo.fields.pp_value`})}}),coll_integer:e.group({scope:`nest`,label:`lab.field_demo.fields.coll_integer`,icon:`lucide:hash`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.int({label:`lab.field_demo.fields.pp_value`})}}),coll_select:e.group({scope:`nest`,label:`lab.field_demo.fields.coll_select`,icon:`lucide:list-checks`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.string({label:`lab.field_demo.fields.pp_value`,strict:!0,view:{noSearch:!0},options:[{value:`s`,title:`lab.field_demo.options.pp_select.s`},{value:`m`,title:`lab.field_demo.options.pp_select.m`},{value:`l`,title:`lab.field_demo.options.pp_select.l`}]})}}),group42:e.group({label:`lab.field_demo.groups.per_weekday`,icon:`lucide:calendar-days`,scope:`hoist`,fields:{per_weekday:e.perWeekday({label:`lab.field_demo.fields.per_weekday`,rules:{min:0,max:5,step:.5}})}}),per_weekday_per_person:e.group({scope:`nest`,label:`lab.field_demo.fields.per_weekday_per_person`,icon:`lucide:users`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.perWeekday({label:`lab.field_demo.fields.pp_value`,rules:{min:0,max:10,step:1}})}}),group43:e.group({label:`lab.field_demo.groups.media_carousel`,icon:`lucide:images`,scope:`hoist`,fields:{avatar_row:e.avatar({label:`lab.field_demo.fields.avatar_row`,multiple:!0}),cover_carousel:e.cover({label:`lab.field_demo.fields.cover_carousel`,multiple:!0})}}),group44:e.group({label:`lab.field_demo.groups.files`,icon:`lucide:paperclip`,scope:`hoist`,fields:{attachment:e.file({label:`lab.field_demo.fields.attachment`}),doc:e.document({label:`lab.field_demo.fields.doc`}),voice:e.audio({label:`lab.field_demo.fields.voice`}),clip:e.video({label:`lab.field_demo.fields.clip`}),gallery:e.media({label:`lab.field_demo.fields.gallery`,multiple:!0}),attachment_one:e.attachment({label:`lab.field_demo.fields.attachment_one`}),attachment_many:e.attachment({label:`lab.field_demo.fields.attachment_many`,multiple:!0,fields:{file:e.document({})}})}}),group45:e.group({label:`lab.field_demo.groups.key_value`,icon:`lucide:key-round`,scope:`hoist`,fields:{key_value:e.keyValue({label:`lab.field_demo.fields.key_value`,multiple:!0}),key_value_secret:e.keyValue({label:`lab.field_demo.fields.key_value_secret`,fields:{value:e.password({label:``})}})}}),services_bylist:e.group({scope:`nest`,label:`lab.field_demo.fields.services_bylist`,icon:`lucide:server`,multiple:!0,fields:{type:e.string({label:`devices.service.type`,options:`service-types`,strict:!0,view:{noSearch:!0}}),url:e.url({label:`devices.service.url`}),login:e.string({label:`devices.service.login`}),password:e.password({label:`devices.service.password`,emphasis:`muted`}),token:e.password({label:`devices.service.token`})}}),group46:e.group({label:`lab.field_demo.groups.classifier`,icon:`lucide:toggle-right`,scope:`hoist`,fields:{type:e.string({label:`lab.field_demo.fields.type`,strict:!0,view:{noSearch:!0},options:[{value:`basic`,title:`lab.field_demo.options.type.basic`},{value:`advanced`,title:`lab.field_demo.options.type.advanced`}]})}})}}),u=n({shelf:`field_demo_child`,library:`lab`,label:`lab.field_demo_child.label`,icon:`lucide:link`,standalone:!1,fields:{name:e.title({label:`core.fields.name`}),demo_id:e.relation({label:`lab.field_demo_child.fields.demo_id`,options:t({library:`lab`,shelf:`field_demo`})}),notes:e.text({label:`lab.field_demo_child.fields.notes`,rules:{max:500}})}}),d=r({id:`demo_extra`,label:`lab.demo_extra.label`,icon:`lucide:plus`,attachTo:[{library:`lab`,shelf:`field_demo`}],showWhen:{type:`advanced`},fields:{extra_text:e.string({label:`lab.demo_extra.fields.extra_text`,rules:{max:200}}),extra_number:e.int({label:`lab.demo_extra.fields.extra_number`,rules:{min:0}}),extra_flag:e.boolean({label:`lab.demo_extra.fields.extra_flag`})}}),f=i({id:`lab`,version:`1.0.0`,dependsOn:[`people`,`kitchen`,`devices`,`finance`,`geo`],settings:o({label:`lab.settings.label`,icon:`lucide:flask-conical`,fields:{info:e.info(`lab.settings.intro`),greeting:e.string({label:`lab.settings.fields.greeting`,rules:{max:80}}),enabled:e.boolean({label:`lab.settings.fields.enabled`}),mode:e.string({label:`lab.settings.fields.mode`,strict:!0,view:{noSearch:!0},options:[{value:`fast`,title:`lab.settings.modes.fast`},{value:`safe`,title:`lab.settings.modes.safe`},{value:`debug`,title:`lab.settings.modes.debug`}]}),retries:e.int({label:`lab.settings.fields.retries`,rules:{min:0,max:10}}),divider:e.divider(),info2:e.info(`lab.settings.actions_info`),button:e.button({label:`lab.settings.run_button`,value:`lab.demoAction`,icon:`lucide:play`}),button2:e.button({label:`lab.settings.fail_button`,value:`lab.demoFail`,icon:`lucide:bug`,variant:`destructive`}),button3:e.button({label:`lab.settings.variants.default`,value:`lab.demoAction`,icon:`lucide:check`,variant:`default`}),button4:e.button({label:`lab.settings.variants.secondary`,value:`lab.demoAction`,icon:`lucide:settings`,variant:`secondary`}),button5:e.button({label:`lab.settings.variants.ghost`,value:`lab.demoAction`,icon:`lucide:ghost`,variant:`ghost`}),button6:e.button({label:`lab.settings.variants.link`,value:`lab.demoAction`,icon:`lucide:link`,variant:`link`})}}),libraries:[{meta:a({id:`lab`,label:`lab.library.label`,icon:`lucide:flask-conical`,agent:`Developer demo of field types — not real household data; ignore unless explicitly asked.`}),shelves:[l,u]}],extends_:[d]});export{f as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{D as e,E as t,G as n,H as r,I as i,K as a,M as o,P as s,R as c,V as l,W as u,j as d,k as f,n as p,r as m,z as h}from"./fields-y5U9dI_Y.js";import{s as g}from"./shelf-BA1by9Mb.js";import{t as _}from"./extend-wEVjCYJU.js";import{n as v,r as y}from"./plugin-CFEkHH3f.js";import{t as b}from"./settings-dNkqaT_p.js";import{i as x,r as S,s as C}from"./data-size-D542cEx7.js";import{t as w}from"./showcase-oqu7qFaz.js";var T=(e,t)=>a().superRefine((n,r)=>{e.safeParse(d(n)).success||r.addIssue({code:i.custom,message:s(t)})}),E=()=>l().int().min(0).max(255),D=()=>l().int().min(0).max(65535),O=n([E(),E(),E(),E()]),k=n([D(),D(),D(),D(),D(),D(),D(),D()]),A=r({v:h(4),a:O}),j=r({v:h(6),a:k}),M=c(`v`,[A,j]);function N(n){let r=t(n),i=r.required??!1,a=T(M,`ip_structure`);return f(void 0,r,e({kind:`ip`,label:r.label??``,required:i,prim:`ip`,column:`text`,hints:{},zod:o(a,i)},r.multiple??!1))}var P=/^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/;function F(n){let r=t(n),i=r.required??!1,a=u().regex(P,{message:s(`pattern`,{messageKey:`core.presets.mac`})});return f(void 0,r,e({kind:`text`,label:r.label??``,required:i,prim:`text`,column:`text`,hints:{mask:`macAddress`},zod:o(a,i)},r.multiple??!1))}var I=/^[A-Za-z0-9_]([A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?(\.[A-Za-z0-9_]([A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*$/;function L(n){let r=t(n),i=r.required??!1,a=u().regex(I,{message:s(`pattern`,{messageKey:`core.presets.hostname`})});return f(void 0,r,e({kind:`text`,label:r.label??``,required:i,prim:`text`,column:`text`,hints:{},zod:o(a,i)},r.multiple??!1))}var R=/^\d{15}$/;function z(e){let t=0,n=!1;for(let r=e.length-1;r>=0;r--){let i=e.charCodeAt(r)-48;n&&(i*=2,i>9&&(i-=9)),t+=i,n=!n}return t%10==0}function B(n){let r=t(n),i=r.required??!1,a=u().regex(R,{message:s(`pattern`,{messageKey:`core.presets.imei`})}).refine(z,{message:s(`pattern`,{messageKey:`core.presets.imei`})});return f(void 0,r,e({kind:`text`,label:r.label??``,required:i,prim:`text`,column:`text`,hints:{},zod:o(a,i)},r.multiple??!1))}var V=c(`v`,[A.extend({p:l().int().min(0).max(32)}),j.extend({p:l().int().min(0).max(128)})]);function H(n){let r=t(n),i=r.required??!1,a=T(V,`cidr_structure`);return f(void 0,r,e({kind:`cidr`,label:r.label??``,required:i,prim:`cidr`,column:`text`,hints:{},zod:o(a,i)},r.multiple??!1))}var U=g({shelf:`network`,library:`devices`,label:`devices.network.label`,icon:`lucide:globe`,claude:`A network segment. subnet — CIDR. gateway — the gateway. domain — the segment's DNS suffix (e.g. lan → host FQDN = hostname.lan).`,views:{list:[`subnet`,`gateway`,`dnsPrimary`]},fields:{name:p.title({label:`core.fields.name`}),description:p.text({label:`devices.network.fields.description`,rules:{max:1e3}}),facets:p.facets({fields:{vlan:p.int({label:`devices.network.fields.vlan`,rules:{min:1,max:4094}}),domain:L({label:`devices.network.fields.domain`})}}),ledger:p.ledger({fields:{subnet:H({label:`devices.network.fields.subnet`}),gateway:N({label:`devices.network.fields.gateway`}),dnsPrimary:N({label:`devices.network.fields.dnsPrimary`}),dnsFallback:N({label:`devices.network.fields.dnsFallback`}),poolStart:N({label:`devices.network.fields.poolStart`}),poolEnd:N({label:`devices.network.fields.poolEnd`})}}),notes:p.text({label:`devices.network.fields.notes`,rules:{max:2e3}})}}),W=[`access`,`infra`,`monitoring`,`database`,`automation`,`network`,`media`,`lighting`,`files`,`backup`,`downloads`,`finance`,`calendars`,`communication`,`web`,`ai`,`devices`,`other`].map(e=>({value:e,title:`devices.service.cat.${e}`})),G=[{value:`http`,title:`devices.accessTypes.http`},{value:`https`,title:`devices.accessTypes.https`},{value:`ssh`,title:`devices.accessTypes.ssh`},{value:`mysql`,title:`devices.accessTypes.mysql`},{value:`mqtt`,title:`devices.accessTypes.mqtt`},{value:`ws`,title:`devices.accessTypes.ws`},{value:`dns`,title:`devices.accessTypes.dns`},{value:`other`,title:`devices.accessTypes.other`}],K={http:`http`,https:`https`,ssh:`ssh`,mysql:`mysql`,mqtt:`mqtt`,ws:`ws`,wss:`ws`,dns:`dns`},q=g({shelf:`service`,library:`devices`,label:`devices.service_catalog.label`,icon:`lucide:layers`,claude:`Catalog of network service types. name — human-readable name (custom, not translated). code — slug (auto-link key from the scanner). category — tag slugs (multi; SERVICE_CATEGORIES as hints). description_mode — description source: 'key' (i18n key in the description field) or 'own' (free text in the description_text field). SERVICE_META defaults → 'key' + devices.service.desc.<code>; user records are usually 'own'.`,views:{list:[`code`,`category`]},fields:{name:p.title({label:`core.fields.name`}),description_mode:p.string({label:`devices.service.description_mode`,options:[{value:`key`,title:`devices.service.description_mode_key`},{value:`own`,title:`devices.service.description_mode_own`}],default:`key`,strict:!0,view:{noSearch:!0}}),description:p.i18n({label:`devices.service.description`,rules:{max:1e3},view:{hidden:{description_mode:{$ne:`key`}}}}),description_text:p.text({label:`devices.service.description`,rules:{max:1e3},view:{hidden:{description_mode:{$ne:`own`}}}}),code:p.string({label:`devices.service.code`,rules:{max:60}}),category:p.string({label:`devices.service.category`,options:[...W],multiple:!0,strict:!0,view:{noSearch:!0}})}}),J=(e,t)=>{let n=e?.[t];return typeof n==`number`&&Number.isFinite(n)&&n>=0?n:null},Y=({parent:e})=>{let t=J(e,`used`),n=J(e,`free`);return t==null||n==null||t+n===0?null:Math.round(t/(t+n)*1e3)/10},X=80,Z=95,Q=_({id:`device_info`,label:`devices.device_info.label`,icon:`lucide:monitor`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`device`},claude:`Network and technical specs of a device. hostname — FQDN on the LAN. addresses[] — network addresses (ip/mac, multi-NIC). group — human-friendly. services[] — inline services (type/title/links[]/secrets[]). disks_usage[] — disk usage (SSH).`,fields:{facets:p.facets({fields:{group:p.string({label:`devices.device_info.fields.group`,options:`device-groups`,strict:!0,view:{noSearch:!0}}),arch:p.string({label:`devices.device_info.fields.arch`,rules:{max:30}})}}),ledger:p.ledger({fields:{hostname:p.string({label:`devices.device_info.fields.hostname`,rules:{max:120}}),vendor:p.string({label:`devices.device_info.fields.vendor`,rules:{max:80}}),model:p.string({label:`devices.device_info.fields.model`,rules:{max:120}}),os:p.string({label:`devices.device_info.fields.os`,rules:{max:100}}),kernel:p.string({label:`devices.device_info.fields.kernel`,rules:{max:100}}),cpu:p.string({label:`devices.device_info.fields.cpu`,rules:{max:150}}),gpu:p.string({label:`devices.device_info.fields.gpu`,rules:{max:150}}),ram:C({label:`devices.device_info.fields.ram`})}}),addresses:p.row({scope:`nest`,multiple:!0,label:`devices.device_info.fields.addresses`,icon:`lucide:network`,fields:{ip:N({label:`devices.device_info.fields.ip`}),mac:F({label:`devices.device_info.fields.mac`})}}),disks_usage:p.group({scope:`nest`,label:`devices.device_info.fields.disks_usage`,icon:`lucide:hard-drive`,multiple:!0,fields:{mount:p.string({label:`devices.device_info.disk.mount`,rules:{max:80}}),size:S({label:`devices.device_info.disk.size`,system:`binary`,unit:`GiB`}),used:S({label:`devices.device_info.disk.used`,system:`binary`,unit:`GiB`,mutate:[`.usage`]}),free:S({label:`devices.device_info.disk.free`,system:`binary`,unit:`GiB`,mutate:[`.usage`]}),usage:p.real({label:`devices.device_info.disk.usage`,rules:{min:0,max:100},value:Y,mutate:[`.state`]}),state:p.string({label:`devices.device_info.disk.state`,options:[{value:`ok`,title:`devices.device_info.disk_state.ok`,icon:{kind:`icon`,value:`lucide:check`}},{value:`warn`,title:`devices.device_info.disk_state.warn`,icon:{kind:`icon`,value:`lucide:minus`}},{value:`full`,title:`devices.device_info.disk_state.full`,icon:{kind:`icon`,value:`lucide:x`}}],value:e=>{let t=Y(e);return typeof t==`number`?t>=Z?`full`:t>=X?`warn`:`ok`:null},strict:!0,view:{noSearch:!0}})}}),services:p.keyed({label:`devices.device_info.fields.services`,icon:`lucide:server`,fields:{service:p.relation({label:`devices.service.type`,options:m({library:`devices`,shelf:`service`})}),description:p.smallText({label:`devices.service.description`,rules:{max:500}}),hide:p.boolean({label:`devices.service.hide`}),links:p.row({scope:`nest`,multiple:!0,label:`devices.service.links`,icon:`lucide:link`,fields:{url:p.url({label:`devices.service.url`}),access:p.string({label:`devices.service.access`,options:`access-types`,strict:!0,view:{noSearch:!0}}),visibility:p.string({label:`devices.service.visibility`,options:`visibility-types`,strict:!0,view:{noSearch:!0}})}}),secrets:p.keyValue({label:`devices.service.secrets`,fields:{value:p.password({})},multiple:!0,view:{keyLabel:`devices.service.secretName`,valueLabel:`devices.service.secretValue`}})},by:`service`})}}),$={ssh_config_path:`~/.ssh/config`,pihole_conf_path:``,syncthing_ini_path:`~/.config/syncthingtray.ini`,gtk_bookmarks_path:`~/.config/gtk-3.0/bookmarks`,kodi_sources_path:`~/.local/share/kodi/userdata/sources.xml`,krdc_bookmarks_path:`~/.local/share/krdc/bookmarks.xml`,rclone_config_path:`~/.config/rclone/rclone.conf`,remmina_dir:`~/.local/share/remmina`,remoteview_dir:`~/.local/share/remoteview`,delfin_config_path:`~/.config/delfin/config.toml`},ee=`docker compose exec pihole pihole reloaddns`,te={ip:N,cidr:H,mac:F,hostname:L,imei:B,dataSize:S,ram:C,diskSize:x},ne=v({id:`devices`,version:`1.0.0`,dependsOn:[`things`],settings:b({label:`devices.settings.label`,icon:`lucide:radar`,fields:{info:p.info(`devices.settings.scan_info`),button:p.button({label:`devices.settings.scan_button`,value:`devices.runScan`,icon:`lucide:radar`}),info2:p.info(`devices.settings.secrets_help`),info3:p.info(`devices.settings.sync_targets_info`),ssh_config_path:p.localFile({label:`devices.settings.ssh_config_path`,default:$.ssh_config_path}),pihole_conf_path:p.localFile({label:`devices.settings.pihole_conf_path`,default:$.pihole_conf_path}),pihole_reload_cmd:p.string({label:`devices.settings.pihole_reload_cmd`,default:ee}),syncthing_ini_path:p.localFile({label:`devices.settings.syncthing_ini_path`,default:$.syncthing_ini_path}),gtk_bookmarks_path:p.localFile({label:`devices.settings.gtk_bookmarks_path`,default:$.gtk_bookmarks_path}),kodi_sources_path:p.localFile({label:`devices.settings.kodi_sources_path`,default:$.kodi_sources_path}),krdc_bookmarks_path:p.localFile({label:`devices.settings.krdc_bookmarks_path`,default:$.krdc_bookmarks_path}),rclone_config_path:p.localFile({label:`devices.settings.rclone_config_path`,default:$.rclone_config_path}),remmina_dir:p.localDir({label:`devices.settings.remmina_dir`,default:$.remmina_dir}),remoteview_dir:p.localDir({label:`devices.settings.remoteview_dir`,default:$.remoteview_dir}),delfin_config_path:p.localFile({label:`devices.settings.delfin_config_path`,default:$.delfin_config_path})}}),libraries:[{meta:y({id:`devices`,label:`devices.library.label`,icon:`lucide:globe`,agent:`Network subnets and the service catalog (network, service).`}),shelves:[U,q]},{meta:y({id:`hardware`,label:`devices.hardware.label`,icon:`lucide:monitor`,agent:`All owned devices (a view over things/item where type=device). No shelves of its own.`}),shelves:[]}],extends_:[Q],showcases:[w({id:`fleet`,library:`devices`,label:`devices.fleet.label`,icon:`lucide:server`,source:{library:`things`,shelf:`item`},filter:{type:`device`,tags:{$contains:`network`}},columns:[`subtype`,`brand`,`model`,`location`,`condition`],createDefaults:{type:`device`}}),w({id:`all`,library:`hardware`,label:`devices.all.label`,icon:`lucide:monitor`,source:{library:`things`,shelf:`item`},filter:{type:`device`},columns:[`subtype`,`brand`,`model`,`location`,`condition`],createDefaults:{type:`device`}})],fieldContribs:[{library:`things`,shelf:`item`,field:`type`,options:[{value:`device`,title:`devices.device_info.label`}]},{library:`things`,shelf:`item`,field:`subtype`,options:[{value:`pc`,title:`devices.deviceGroups.pc`,when:{type:`device`}},{value:`server`,title:`devices.deviceGroups.server`,when:{type:`device`}},{value:`mobile`,title:`devices.deviceGroups.mobile`,when:{type:`device`}},{value:`tv`,title:`devices.deviceGroups.tv`,when:{type:`device`}},{value:`printer`,title:`devices.deviceGroups.printer`,when:{type:`device`}},{value:`iot`,title:`devices.deviceGroups.iot`,when:{type:`device`}},{value:`network`,title:`devices.deviceGroups.network`,when:{type:`device`}},{value:`other`,title:`devices.deviceGroups.other`,when:{type:`device`}}]}],optionLists:[{name:`access-types`,options:[...G]},{name:`visibility-types`,options:[{value:`lan`,title:`devices.visibilityTypes.lan`},{value:`public`,title:`devices.visibilityTypes.public`},{value:`other`,title:`devices.visibilityTypes.other`}]},{name:`device-groups`,options:[{value:`pc`,title:`devices.deviceGroups.pc`},{value:`server`,title:`devices.deviceGroups.server`},{value:`mobile`,title:`devices.deviceGroups.mobile`},{value:`tv`,title:`devices.deviceGroups.tv`},{value:`printer`,title:`devices.deviceGroups.printer`},{value:`iot`,title:`devices.deviceGroups.iot`},{value:`network`,title:`devices.deviceGroups.network`},{value:`other`,title:`devices.deviceGroups.other`}]}]});export{L as a,F as c,H as i,ne as n,B as o,K as r,N as s,te as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./fields-y5U9dI_Y.js";import{s as n}from"./shelf-BA1by9Mb.js";import{n as r,r as i}from"./plugin-CFEkHH3f.js";var a=[`accommodations`,`activities`,`insurances`],o=e=>{let t=typeof e==`string`&&e!==``?Number(e):e;return typeof t==`number`&&Number.isFinite(t)?t:null},s=({record:e})=>{let t=Date.parse(String(e.date_from??``)),n=Date.parse(String(e.date_to??``));return Number.isNaN(t)||Number.isNaN(n)||n<t?null:Math.round((n-t)/864e5)+1},c=({record:e})=>{let t=0,n=!1;for(let r of a){let i=e[r];if(Array.isArray(i))for(let e of i){let r=o(e?.cost);r!=null&&(t+=r,n=!0)}}return n?Math.round(t*100)/100:null},l=n({shelf:`trip`,library:`travel`,label:`travel.trip.label`,icon:`lucide:plane`,views:{list:[`destination`,`date_from`,`date_to`,`status`]},fields:{name:e.title({label:`core.fields.name`}),description:e.text({label:`travel.trip.fields.description`,rules:{max:2e3}}),destination:e.string({label:`travel.trip.fields.destination`,rules:{max:200}}),countdown:e.countdown({source:{date_from:e.date({label:`travel.trip.fields.date_from`,mutate:[`days`]})}}),date_to:e.date({label:`travel.trip.fields.date_to`,mutate:[`days`]}),status:e.status({source:{status:e.string({label:`travel.trip.fields.status`,strict:!0,view:{noSearch:!0},options:[{value:`planned`,title:`travel.trip.options.status.planned`},{value:`active`,title:`travel.trip.options.status.active`},{value:`completed`,title:`travel.trip.options.status.completed`},{value:`cancelled`,title:`travel.trip.options.status.cancelled`}]})}}),people:e.people({source:{participants:e.relation({label:`travel.trip.fields.participants`,options:t({library:`people`,shelf:`person`}),multiple:!0})}}),currency:e.currency({label:`core.fields.currency`,default:`UAH`}),budget:e.money({label:`travel.trip.fields.budget`,mutate:[`budget_state`]}),photos:e.image({label:`travel.trip.fields.photos`,multiple:!0}),packing_items:e.check({label:`travel.trip.fields.packing_items`,slots:[`travel.trip.packing.prepared`,`travel.trip.packing.packed`,`travel.trip.packing.packed_back`],fields:{item:e.relation({label:`travel.trip.packing.item`,options:t({library:`things`,shelf:`item`})})},multiple:!0}),packing_list:e.check({label:`travel.trip.fields.packing_list`,slots:[`travel.trip.packing.prepared`,`travel.trip.packing.packed`,`travel.trip.packing.packed_back`],multiple:!0}),legs:e.group({scope:`nest`,label:`travel.trip.fields.legs`,icon:`lucide:route`,multiple:!0,fields:{date:e.date({label:`travel.trip.leg.date`}),leg_type:e.string({label:`travel.trip.leg.leg_type`,strict:!0,view:{noSearch:!0},options:[{value:`flight`,title:`travel.trip.leg_opt.leg_type.flight`},{value:`train`,title:`travel.trip.leg_opt.leg_type.train`},{value:`bus`,title:`travel.trip.leg_opt.leg_type.bus`},{value:`car`,title:`travel.trip.leg_opt.leg_type.car`},{value:`ferry`,title:`travel.trip.leg_opt.leg_type.ferry`},{value:`other`,title:`travel.trip.leg_opt.leg_type.other`}]}),operator:e.string({label:`travel.trip.leg.operator`,rules:{max:100}}),number:e.string({label:`travel.trip.leg.number`,rules:{max:20}}),seat:e.string({label:`travel.trip.leg.seat`,rules:{max:10}}),class:e.string({label:`travel.trip.leg.class`,strict:!0,view:{noSearch:!0},options:[{value:`economy`,title:`travel.trip.leg_opt.class.economy`},{value:`business`,title:`travel.trip.leg_opt.class.business`},{value:`first`,title:`travel.trip.leg_opt.class.first`}]}),booking_ref:e.string({label:`travel.trip.leg.booking_ref`,rules:{max:50}}),terminal:e.string({label:`travel.trip.leg.terminal`,rules:{max:20}}),gate:e.string({label:`travel.trip.leg.gate`,rules:{max:20}}),origin_city:e.string({label:`travel.trip.leg.origin_city`,rules:{max:100}}),origin_code:e.string({label:`travel.trip.leg.origin_code`,rules:{max:10}}),departure_time:e.time({label:`travel.trip.leg.departure_time`}),destination_city:e.string({label:`travel.trip.leg.destination_city`,rules:{max:100}}),destination_code:e.string({label:`travel.trip.leg.destination_code`,rules:{max:10}}),arrival_time:e.time({label:`travel.trip.leg.arrival_time`}),duration:e.duration({label:`travel.trip.leg.duration`}),checked_in:e.boolean({label:`travel.trip.leg.checked_in`}),documents:e.document({label:`travel.trip.leg.documents`,multiple:!0}),notes:e.text({label:`travel.trip.leg.notes`,rules:{max:2e3}})}}),accommodations:e.group({scope:`nest`,label:`travel.trip.fields.accommodations`,icon:`lucide:bed`,multiple:!0,fields:{accom_type:e.string({label:`travel.trip.accom.accom_type`,strict:!0,view:{noSearch:!0},options:[{value:`hotel`,title:`travel.trip.accom_opt.accom_type.hotel`},{value:`apartment`,title:`travel.trip.accom_opt.accom_type.apartment`},{value:`hostel`,title:`travel.trip.accom_opt.accom_type.hostel`},{value:`other`,title:`travel.trip.accom_opt.accom_type.other`}]}),location:e.string({label:`travel.trip.accom.location`,rules:{max:300}}),address:e.string({label:`travel.trip.accom.address`,rules:{max:300}}),rating:e.rating({label:`travel.trip.accom.rating`,rules:{max:5}}),breakfast:e.boolean({label:`travel.trip.accom.breakfast`}),check_in:e.date({label:`travel.trip.accom.check_in`}),check_out:e.date({label:`travel.trip.accom.check_out`}),booking_ref:e.string({label:`travel.trip.accom.booking_ref`,rules:{max:100}}),cost:e.money({label:`travel.trip.accom.cost`,currencyFrom:`parent:currency`,mutate:[`spent`]}),documents:e.document({label:`travel.trip.accom.documents`,multiple:!0}),notes:e.text({label:`travel.trip.accom.notes`,rules:{max:2e3}})}}),insurances:e.group({scope:`nest`,label:`travel.trip.fields.insurances`,icon:`lucide:shield-check`,multiple:!0,fields:{insurer:e.string({label:`travel.trip.insur.insurer`,rules:{max:200}}),policy_number:e.string({label:`travel.trip.insur.policy_number`,rules:{max:100}}),coverage:e.text({label:`travel.trip.insur.coverage`,rules:{max:1e3}}),cost:e.money({label:`travel.trip.insur.cost`,currencyFrom:`parent:currency`,mutate:[`spent`]}),valid_from:e.date({label:`travel.trip.insur.valid_from`}),valid_until:e.date({label:`travel.trip.insur.valid_until`}),emergency_phone:e.string({label:`travel.trip.insur.emergency_phone`,rules:{max:50}}),documents:e.document({label:`travel.trip.insur.documents`,multiple:!0}),notes:e.text({label:`travel.trip.insur.notes`,rules:{max:2e3}})}}),activities:e.group({scope:`nest`,label:`travel.trip.fields.activities`,icon:`lucide:ticket`,multiple:!0,fields:{activity_type:e.string({label:`travel.trip.act.activity_type`,strict:!0,view:{noSearch:!0},options:[{value:`sightseeing`,title:`travel.trip.act_opt.activity_type.sightseeing`},{value:`museum`,title:`travel.trip.act_opt.activity_type.museum`},{value:`beach`,title:`travel.trip.act_opt.activity_type.beach`},{value:`nature`,title:`travel.trip.act_opt.activity_type.nature`},{value:`restaurant`,title:`travel.trip.act_opt.activity_type.restaurant`},{value:`tour`,title:`travel.trip.act_opt.activity_type.tour`},{value:`shopping`,title:`travel.trip.act_opt.activity_type.shopping`},{value:`entertainment`,title:`travel.trip.act_opt.activity_type.entertainment`},{value:`other`,title:`travel.trip.act_opt.activity_type.other`}]}),date:e.date({label:`travel.trip.act.date`}),time_start:e.time({label:`travel.trip.act.time_start`}),time_end:e.time({label:`travel.trip.act.time_end`}),location:e.string({label:`travel.trip.act.location`,rules:{max:300}}),booking_ref:e.string({label:`travel.trip.act.booking_ref`,rules:{max:100}}),cost:e.money({label:`travel.trip.act.cost`,currencyFrom:`parent:currency`,mutate:[`spent`]}),documents:e.document({label:`travel.trip.act.documents`,multiple:!0}),notes:e.text({label:`travel.trip.act.notes`,rules:{max:2e3}})}}),days:e.int({label:`travel.trip.fields.days`,value:s}),spent:e.money({label:`travel.trip.fields.spent`,value:c,mutate:[`budget_state`]}),budget_state:e.string({label:`travel.trip.fields.budget_state`,value:e=>{let t=o(e.record.budget),n=o(c(e));return t==null||t<=0||n==null?null:n>t?`over`:`within`},strict:!0,view:{noSearch:!0},options:[{value:`within`,title:`travel.trip.options.budget_state.within`,icon:{kind:`icon`,value:`lucide:check`}},{value:`over`,title:`travel.trip.options.budget_state.over`,icon:{kind:`icon`,value:`lucide:x`}}]}),tags:e.tags({label:`travel.trip.fields.tags`}),notes:e.text({label:`travel.trip.fields.notes`,rules:{max:3e3}})}}),u=r({id:`travel`,version:`1.0.0`,dependsOn:[`people`,`things`],libraries:[{meta:i({id:`travel`,label:`travel.library.label`,icon:`lucide:plane`,agent:`Trips (trip) with legs, lodging, insurance, activities, and packing lists.`}),shelves:[l]}]});export{u as default};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./fields-y5U9dI_Y.js";import{s as t}from"./shelf-BA1by9Mb.js";import{n,r}from"./plugin-CFEkHH3f.js";function i(e,t){if(typeof e!=`string`||!e)return null;let n=Number(t);if(!Number.isFinite(n)||n<=0)return null;let r=Date.parse(e);return Number.isNaN(r)?null:new Date(r+n*864e5).toISOString().slice(0,10)}var a=(e,t)=>({record:n})=>i(n[e],n[t]),o=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
|
-
wateringDays — watering interval (days). lastWatered — date of last watering.
|
|
3
|
-
fertilizerDays — fertilizing interval. lastFertilized — last date.
|
|
4
|
-
planted — date planted/acquired.
|
|
5
|
-
nextWatering/nextFertilizing are COMPUTED by the server (last date + interval) and rejected on write:
|
|
6
|
-
to move them, write lastWatered/lastFertilized.`,views:{list:[`variety`,`location`,`wateringDays`,`lastWatered`]},fields:{name:e.title({label:`core.fields.name`}),about:e.illustrated({label:`garden.plant.fields.about`,fields:{image:e.avatar({role:`avatar`}),text:e.text({rules:{max:1e3}})}}),photos:e.image({label:`garden.plant.fields.photos`,multiple:!0}),specimen:e.specimen({title:{variety:e.string({label:`garden.plant.fields.variety`,rules:{max:100}})},subtitle:{location:e.string({label:`garden.plant.fields.location`,strict:!0,view:{noSearch:!0},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`}]})},conditions:{sunlight:e.string({label:`garden.plant.fields.sunlight`,strict:!0,view:{noSearch:!0},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`}]}),pot:e.string({label:`garden.plant.fields.pot`,rules:{max:100}})}}),planted:e.date({label:`garden.plant.fields.planted`,rules:{min:`2000-01-01`,max:`today`}}),wateringDays:e.int({label:`garden.plant.fields.wateringDays`,rules:{min:1,max:365},mutate:[`nextWatering`]}),lastWatered:e.date({label:`garden.plant.fields.lastWatered`,rules:{max:`today`},mutate:[`nextWatering`]}),countdown:e.countdown({source:{nextWatering:e.reminder({label:`garden.plant.fields.nextWatering`,rules:{lead:3},value:a(`lastWatered`,`wateringDays`)})}}),fertilizerDays:e.int({label:`garden.plant.fields.fertilizerDays`,rules:{min:1,max:365},mutate:[`nextFertilizing`]}),lastFertilized:e.date({label:`garden.plant.fields.lastFertilized`,rules:{max:`today`},mutate:[`nextFertilizing`]}),nextFertilizing:e.reminder({label:`garden.plant.fields.nextFertilizing`,rules:{lead:7},value:a(`lastFertilized`,`fertilizerDays`)}),button:e.button({label:`garden.plant.actions.watered`,value:`garden.watered`,icon:`lucide:droplet`}),button2:e.button({label:`garden.plant.actions.fertilized`,value:`garden.fertilized`,icon:`lucide:flask-conical`}),tags:e.tags({label:`garden.plant.fields.tags`}),notes:e.text({label:`garden.plant.fields.notes`,rules:{max:500}})}}),s=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:[o]}],fieldContribs:[{library:`things`,shelf:`item`,field:`type`,options:[{value:`garden`,title:`garden.contrib.type.garden`}]}]});export{s as default};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./fields-y5U9dI_Y.js";import{s as n}from"./shelf-BA1by9Mb.js";import{n as r,r as i}from"./plugin-CFEkHH3f.js";var a=n({shelf:`item`,library:`things`,label:`things.item.label`,icon:`lucide:package`,claude:`A physical item. name — the title. type — an optional FAMILY classifier (extends can add types, e.g. device). subtype — an optional LEAF within that family (e.g. type=device, subtype=vtx for a video transmitter); an empty subtype is a valid state. Nothing validates that the pair is coherent, so when you set one, set the other consistently with it. store — a relation to things/store; store_legacy is hidden pre-migration free text kept only as a one-release rollback safety net, never write to it.`,views:{list:[`type`,`subtype`,`brand`,`model`,`location`],groupBy:[`type`,`subtype`,`paymentStatus`,`condition`,`owner`,`location`,`store`,`madeIn`]},fields:{name:e.title({label:`core.fields.name`}),about:e.illustrated({label:`things.item.fields.about`,fields:{image:e.avatar({role:`avatar`}),text:e.text({rules:{max:1e3}})}}),properties:e.properties({columns:4,fields:{type:e.string({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:`other`,title:`things.item.options.type.other`}],strict:!0,view:{noSearch:!0},ui:{span:3}}),subtype:e.string({label:`core.fields.subtype`,options:[],strict:!0,view:{noSearch:!0},ui:{span:3}}),status:e.status({source:{condition:e.string({label:`things.item.fields.condition`,strict:!0,view:{noSearch:!0},ui:{span:3},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`}]})}}),quantity:e.int({label:`things.item.fields.quantity`,rules:{min:0},ui:{span:3}}),owner:e.relation({label:`things.item.fields.owner`,options:t({library:`people`,shelf:`person`}),ui:{span:3}}),location:e.relation({label:`things.item.fields.location`,options:t({library:`things`,shelf:`storage_location`}),ui:{span:3}}),brand:e.string({label:`things.item.fields.brand`,rules:{max:100},ui:{span:3}}),model:e.string({label:`things.item.fields.model`,rules:{max:100},ui:{span:3}})}}),countdown:e.countdown({source:{warrantyExpires:e.reminder({label:`things.item.fields.warrantyExpires`,rules:{lead:30}})}}),group:e.group({label:`things.item.groups.specs`,icon:`lucide:ruler`,scope:`hoist`,fields:{serialNumber:e.string({label:`things.item.fields.serialNumber`,rules:{max:80},ui:{span:4}}),weight:e.weight({label:`things.item.fields.weight`,ui:{span:4}}),dimensions:e.dimensions({label:`things.item.fields.dimensions`,ui:{span:4}}),color:e.string({label:`things.item.fields.color`,rules:{max:120},ui:{span:4}}),material:e.string({label:`things.item.fields.material`,rules:{max:80},ui:{span:4}}),madeIn:e.country({label:`things.item.fields.madeIn`,ui:{span:4}})}}),group2:e.group({label:`things.item.groups.purchase`,icon:`lucide:shopping-cart`,scope:`hoist`,fields:{purchaseDate:e.date({label:`things.item.fields.purchaseDate`,ui:{span:4}}),purchasePrice:e.money({label:`things.item.fields.purchasePrice`,ui:{span:2}}),currency:e.currency({label:`core.fields.currency`,default:`UAH`,ui:{span:2}}),paymentStatus:e.string({label:`things.item.fields.paymentStatus`,strict:!0,view:{noSearch:!0},ui:{span:4},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`}]}),store:e.relation({label:`things.item.fields.store`,options:t({library:`things`,shelf:`store`}),ui:{span:6}}),store_legacy:e.string({label:`things.item.fields.store_legacy`,view:{hidden:!0},rules:{max:100}}),orderNumber:e.string({label:`things.item.fields.orderNumber`,rules:{max:100},ui:{span:6}}),link:e.link({label:`things.item.fields.link`,ui:{span:12}}),receipt:e.image({label:`things.item.fields.receipt`})}}),group3:e.group({label:`things.item.groups.media`,icon:`lucide:images`,scope:`hoist`,fields:{manual:e.document({label:`things.item.fields.manual`,ui:{span:6}}),photos:e.image({label:`things.item.fields.photos`,multiple:!0})}}),tags:e.tags({label:`things.item.fields.tags`}),notes:e.text({label:`things.item.fields.notes`,rules:{max:2e3}})}}),o=n({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:[`path`]},fields:{name:e.title({label:`core.fields.name`,required:!0}),description:e.text({label:`things.storage_location.fields.description`,rules:{max:1e3}}),path:e.string({label:`things.storage_location.fields.path`,multiple:!0,rules:{max:120}}),notes:e.text({label:`things.storage_location.fields.notes`,rules:{max:2e3}})}}),s=n({shelf:`store`,library:`things`,label:`things.store.label`,icon:`lucide:store`,claude:`A shop, marketplace or seller a thing was bought from; things/item.store points here.
|
|
2
|
-
scripts — a collection of page-extraction scripts for this shop. Each row's script field is
|
|
3
|
-
plain JavaScript text, readable in one record read, and is written by uploading a file or
|
|
4
|
-
through the API — never hand-edited in the web form. urlPattern is a human hint about which
|
|
5
|
-
pages a script applies to; nothing matches against it automatically. account holds a login or
|
|
6
|
-
a loyalty-card number and is stored in the clear — never write a password there.`,views:{list:[`type`,`country`,`status`,`rating`],inline:[`logo`,`name`],groupBy:[`type`,`status`,`country`]},fields:{name:e.title({label:`core.fields.name`}),logo:e.avatar({label:`things.store.fields.logo`,role:`avatar`}),description:e.text({label:`things.store.fields.description`,rules:{max:1e3}}),group:e.group({label:`things.store.groups.place`,icon:`lucide:map-pin`,scope:`hoist`,fields:{address:e.string({label:`things.store.fields.address`,rules:{max:200},ui:{span:6}}),geo:e.geo({label:`things.store.fields.geo`,ui:{span:6}}),hours:e.keyed({label:`things.store.fields.hours`,fields:{day:e.string({label:`core.fields.weekday`,options:`weekdays`,strict:!0,view:{noSearch:!0}}),open:e.time({label:`things.store.fields.open`}),close:e.time({label:`things.store.fields.close`})},by:`day`,unique:[`day`]})}}),links:e.group({scope:`nest`,label:`things.store.groups.links`,icon:`lucide:link`,multiple:!0,fields:{kind:e.string({label:`things.store.fields.linkKind`,options:[{value:`site`,title:`things.store.options.linkKind.site`},{value:`account`,title:`things.store.options.linkKind.account`},{value:`orders`,title:`things.store.options.linkKind.orders`},{value:`support`,title:`things.store.options.linkKind.support`},{value:`other`,title:`things.store.options.linkKind.other`}],strict:!0,view:{noSearch:!0}}),url:e.link({label:`things.store.fields.url`,required:!0})}}),account:e.string({label:`things.store.fields.account`,rules:{max:100}}),scripts:e.group({scope:`nest`,label:`things.store.groups.scripts`,icon:`lucide:code`,multiple:!0,fields:{title:e.string({label:`things.store.fields.scriptTitle`,required:!0,rules:{max:100}}),kind:e.string({label:`things.store.fields.scriptKind`,options:[{value:`product`,title:`things.store.options.scriptKind.product`},{value:`orders`,title:`things.store.options.scriptKind.orders`},{value:`receipt`,title:`things.store.options.scriptKind.receipt`},{value:`search`,title:`things.store.options.scriptKind.search`},{value:`other`,title:`things.store.options.scriptKind.other`}],strict:!0,view:{noSearch:!0}}),urlPattern:e.string({label:`things.store.fields.urlPattern`,rules:{max:200}}),script:e.source({label:`things.store.fields.script`,rules:{ext:`js`}}),note:e.text({label:`things.store.fields.scriptNote`,rules:{max:500}})}}),photos:e.image({label:`things.store.fields.photos`,multiple:!0}),properties:e.properties({columns:4,fields:{type:e.string({label:`core.fields.type`,options:[{value:`marketplace`,title:`things.store.options.type.marketplace`},{value:`online_store`,title:`things.store.options.type.online_store`},{value:`retail`,title:`things.store.options.type.retail`},{value:`secondhand`,title:`things.store.options.type.secondhand`},{value:`manufacturer`,title:`things.store.options.type.manufacturer`}],strict:!0,view:{noSearch:!0},ui:{span:3}}),country:e.country({label:`things.store.fields.country`,ui:{span:3}}),rating:e.rating({label:`things.store.fields.rating`,ui:{span:3}}),status:e.string({label:`things.store.fields.status`,options:[{value:`active`,title:`things.store.options.status.active`},{value:`rare`,title:`things.store.options.status.rare`},{value:`abandoned`,title:`things.store.options.status.abandoned`}],strict:!0,view:{noSearch:!0},ui:{span:3}})}}),tags:e.tags({label:`things.store.fields.tags`}),notes:e.text({label:`things.store.fields.notes`,rules:{max:2e3}})}}),c=r({id:`things`,version:`1.0.0`,dependsOn:[`people`],libraries:[{meta:i({id:`things`,label:`things.library.label`,icon:`lucide:package`,agent:`Belongings and where they are stored (item, storage_location, store). Also hosts network hosts (device_info) and drone builds.`,starterHint:`what's about to warranty-expire`}),shelves:[a,o,s]}]});export{c as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./fields-y5U9dI_Y.js";import{s as n}from"./shelf-BA1by9Mb.js";import{t as r}from"./extend-wEVjCYJU.js";import{n as i,r as a}from"./plugin-CFEkHH3f.js";var o=n({shelf:`personal_document`,library:`documents`,label:`documents.personal_document.label`,icon:`lucide:id-card`,views:{list:[`owner`,`type`,`surname`,`expires`]},fields:{name:e.title({label:`core.fields.name`}),about:e.illustrated({label:`documents.personal_document.fields.about`,fields:{image:e.avatar({role:`avatar`}),text:e.text({rules:{max:1e3}})}}),idcard:e.idcard({number:{number:e.string({label:`documents.personal_document.fields.number`,rules:{max:50}})},meta:{issued:e.date({label:`documents.personal_document.fields.issued`}),authority:e.string({label:`documents.personal_document.fields.authority`,rules:{max:200}})}}),countdown:e.countdown({source:{expires:e.reminder({label:`documents.personal_document.fields.expires`,rules:{lead:60}})}}),surname:e.string({label:`documents.personal_document.fields.surname`,rules:{max:100},ui:{span:6}}),given_names:e.string({label:`documents.personal_document.fields.given_names`,rules:{max:200},ui:{span:6}}),birth_date:e.date({label:`documents.personal_document.fields.birth_date`,ui:{span:4}}),sex:e.string({label:`documents.personal_document.fields.sex`,strict:!0,view:{noSearch:!0},options:[{value:`M`,title:`documents.personal_document.options.sex.M`},{value:`F`,title:`documents.personal_document.options.sex.F`}],ui:{span:4}}),nationality:e.string({label:`documents.personal_document.fields.nationality`,options:`countries`,strict:!0,view:{noSearch:!0},ui:{span:4}}),owner:e.relation({label:`documents.personal_document.fields.owner`,options:t({library:`people`,shelf:`person`}),ui:{span:6}}),storage:e.relation({label:`documents.personal_document.fields.storage`,options:t({library:`things`,shelf:`storage_location`}),ui:{span:6}}),record_no:e.string({label:`documents.personal_document.fields.record_no`,rules:{max:50},ui:{span:6}}),mrz:e.string({label:`documents.personal_document.fields.mrz`,rules:{max:200},ui:{span:6}}),photos:e.image({label:`documents.personal_document.fields.photos`,multiple:!0}),type:e.string({label:`core.fields.type`,required:!0,strict:!0,view:{noSearch:!0},options:[{value:`P`,title:`documents.personal_document.options.type.P`},{value:`PA`,title:`documents.personal_document.options.type.PA`},{value:`TP`,title:`documents.personal_document.options.type.TP`},{value:`ID`,title:`documents.personal_document.options.type.ID`},{value:`DL`,title:`documents.personal_document.options.type.DL`},{value:`BR`,title:`documents.personal_document.options.type.BR`},{value:`MC`,title:`documents.personal_document.options.type.MC`},{value:`OT`,title:`documents.personal_document.options.type.OT`}]}),tags:e.tags({label:`documents.personal_document.fields.tags`}),notes:e.text({label:`documents.personal_document.fields.notes`,rules:{max:1e3}})}}),s=r({id:`person_identity`,label:`documents.person_identity.label`,icon:`lucide:globe`,attachTo:[{library:`people`,shelf:`person`}],claude:`Canonical person identity (not tied to a physical document).
|
|
2
|
-
nationality — ISO alpha-2. variants — given/family name per language (field.keyed by lang: name+surname).`,fields:{nationality:e.string({label:`documents.person_identity.fields.nationality`,options:`countries`,strict:!0,view:{noSearch:!0}}),variants:e.keyed({label:`documents.person_identity.fields.variants`,icon:`lucide:languages`,fields:{lang:e.string({label:`documents.person_identity.variants.lang`,options:`languages`,strict:!0,view:{noSearch:!0}}),name:e.string({label:`documents.person_identity.variants.name`}),surname:e.string({label:`documents.person_identity.variants.surname`})},by:`lang`})}}),c=i({id:`documents`,version:`1.0.0`,dependsOn:[`people`,`things`],libraries:[{meta:a({id:`documents`,label:`documents.library.label`,icon:`lucide:id-card`,agent:`Personal documents — IDs, passports, licences (personal_document); tracks expiry.`}),shelves:[o]}],extends_:[s]});export{c as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,n as t,r as n}from"./fields-y5U9dI_Y.js";import{s as r}from"./shelf-BA1by9Mb.js";import{t as i}from"./extend-wEVjCYJU.js";import{n as a,r as o}from"./plugin-CFEkHH3f.js";import{t as s}from"./settings-dNkqaT_p.js";var c=new Map(e.map((e,t)=>[e.value,t])),l=864e5,u=7;function d(e){let t=[0,0,0,0,0,0,0];if(!Array.isArray(e))return t;for(let n of e){let e=n?.value;if(Array.isArray(e))for(let n of e){let e=n,r=typeof e?.day==`string`?c.get(e.day):void 0;if(r===void 0)continue;let i=Number(e?.value);Number.isFinite(i)&&i>0&&(t[r]=t[r]+i)}}return t}function f(){return new Date().toISOString().slice(0,10)}var p=e=>String(e).padStart(2,`0`);function m(e){let t=e instanceof Date?`${e.getFullYear()}-${p(e.getMonth()+1)}-${p(e.getDate())}`:typeof e==`string`?e.slice(0,10):null;if(t===null||!/^\d{4}-\d{2}-\d{2}$/.test(t))return null;let n=Date.parse(t);return Number.isNaN(n)?null:n}function h(e,t,n){let r=Math.round((n-t)/l);if(!Number.isFinite(r)||r<=0)return 0;let i=e.reduce((e,t)=>e+t,0),a=Math.floor(r/u)*i,o=(new Date(t).getUTCDay()+6)%u;for(let t=1;t<=r%u;t++)a+=e[(o+t)%u];return a}function g(e,t,n,r){let i=Number(e);if(!Number.isFinite(i))return null;let a=d(t),o=a.reduce((e,t)=>e+t,0);if(o<=0)return null;let s=m(n),c=m(r),l=s===null||c===null?0:h(a,s,c),f=Math.max(0,i-l);return Math.floor(f/(o/u))}function _(e){return typeof e!=`number`||!Number.isFinite(e)?null:e<=0?`out`:e<7?`low`:`enough`}var v=({record:e})=>g(e.quantity,e.dose,e.quantityCheckedAt,f()),y=r({shelf:`medicine`,library:`health`,label:`health.medicine.label`,icon:`lucide:pill`,views:{list:[`type`,`form`,`quantity`]},fields:{name:t.title({label:`core.fields.name`}),about:t.illustrated({label:`health.medicine.fields.about`,fields:{image:t.image({}),text:t.text({rules:{max:1e3}})}}),photos:t.image({label:`health.medicine.fields.photos`,multiple:!0}),quantity:t.int({label:`health.medicine.fields.quantity`,rules:{min:0,max:1e5},mutate:[`daysLeft`,`quantityCheckedAt`],ui:{span:6}}),countdown:t.countdown({source:{quantityCheckedAt:t.date({label:`health.medicine.fields.quantityCheckedAt`,value:e=>e.now.slice(0,10),mutate:[`daysLeft`],ui:{span:6}})}}),dose:t.keyed({label:`health.medicine.fields.dose`,icon:`lucide:pill`,fields:{person:t.relation({label:`health.medicine.fields.dose_person`,options:n({library:`people`,shelf:`person`})}),value:t.perWeekday({label:`health.medicine.fields.dose_value`,rules:{min:0,max:20,step:.5},mutate:[`daysLeft`]})},by:`person`}),meter:t.meter({source:{daysLeft:t.int({label:`health.medicine.fields.daysLeft`,value:v,cache:3600,mutate:[`supply_state`],ui:{span:6}})},min:0,max:30}),status:t.status({source:{supply_state:t.string({label:`health.medicine.fields.supply_state`,options:[{value:`enough`,title:`health.medicine.options.supply_state.enough`,icon:{kind:`icon`,value:`lucide:check`}},{value:`low`,title:`health.medicine.options.supply_state.low`,icon:{kind:`icon`,value:`lucide:minus`}},{value:`out`,title:`health.medicine.options.supply_state.out`,icon:{kind:`icon`,value:`lucide:x`}}],value:e=>_(v(e)),cache:3600,strict:!0,view:{noSearch:!0},ui:{span:6}})}}),intakeTimes:t.string({label:`health.medicine.fields.intakeTimes`,options:`day-periods`,multiple:!0,strict:!0,view:{noSearch:!0}}),intakePeriods:t.period({label:`health.medicine.fields.intakePeriods`,multiple:!0}),properties:t.properties({columns:2,fields:{type:t.string({label:`core.fields.type`,required:!0,strict:!0,view:{noSearch:!0},ui:{span:6},options:[{value:`vitamin`,title:`health.medicine.options.type.vitamin`},{value:`supplement`,title:`health.medicine.options.type.supplement`},{value:`medication`,title:`health.medicine.options.type.medication`},{value:`antibiotic`,title:`health.medicine.options.type.antibiotic`},{value:`hormone`,title:`health.medicine.options.type.hormone`},{value:`painkiller`,title:`health.medicine.options.type.painkiller`},{value:`homeopathy`,title:`health.medicine.options.type.homeopathy`},{value:`herbal`,title:`health.medicine.options.type.herbal`}]}),form:t.string({label:`health.medicine.fields.form`,strict:!0,view:{noSearch:!0},ui:{span:6},options:[{value:`tablet`,title:`health.medicine.options.form.tablet`},{value:`capsule`,title:`health.medicine.options.form.capsule`},{value:`syrup`,title:`health.medicine.options.form.syrup`},{value:`drops`,title:`health.medicine.options.form.drops`},{value:`ointment`,title:`health.medicine.options.form.ointment`},{value:`gel`,title:`health.medicine.options.form.gel`},{value:`spray`,title:`health.medicine.options.form.spray`},{value:`injection`,title:`health.medicine.options.form.injection`},{value:`powder`,title:`health.medicine.options.form.powder`},{value:`suppository`,title:`health.medicine.options.form.suppository`}]})}}),notes:t.text({label:`health.medicine.fields.notes`,rules:{max:2e3}})}}),b=r({shelf:`health_visit`,library:`health`,label:`health.health_visit.label`,icon:`lucide:stethoscope`,views:{list:[`date`,`person`,`specialty`]},fields:{name:t.title({label:`core.fields.name`}),description:t.text({label:`health.health_visit.fields.description`,rules:{max:1e3}}),timeline:t.timeline({fields:{date:t.date({label:`health.health_visit.fields.date`}),nextVisit:t.reminder({label:`health.health_visit.fields.nextVisit`,rules:{lead:14}})}}),reason:t.text({label:`health.health_visit.fields.reason`,rules:{max:1e3}}),result:t.text({label:`health.health_visit.fields.result`,rules:{max:2e3}}),next_step:t.text({label:`health.health_visit.fields.next_step`,rules:{max:1e3}}),specialist:t.string({label:`health.health_visit.fields.specialist`,rules:{max:200},ui:{span:4}}),specialty:t.string({label:`health.health_visit.fields.specialty`,rules:{max:100},ui:{span:4}}),clinic:t.string({label:`health.health_visit.fields.clinic`,rules:{max:200},ui:{span:4}}),cost:t.money({label:`health.health_visit.fields.cost`,ui:{span:3}}),currency:t.currency({label:`core.fields.currency`,default:`UAH`,ui:{span:3}}),medicines:t.relation({label:`health.health_visit.fields.medicines`,options:n({library:`health`,shelf:`medicine`}),multiple:!0,ui:{span:6}}),people:t.people({source:{person:t.relation({label:`health.health_visit.fields.person`,options:n({library:`people`,shelf:`person`})})}}),files:t.file({label:`health.health_visit.fields.files`,multiple:!0}),photos:t.image({label:`health.health_visit.fields.photos`,multiple:!0}),notes:t.text({label:`health.health_visit.fields.notes`,rules:{max:2e3}})}}),x=r({shelf:`health_test`,library:`health`,label:`health.health_test.label`,icon:`lucide:flask-conical`,views:{list:[`date`,`person`,`status`]},fields:{name:t.title({label:`core.fields.name`}),description:t.text({label:`health.health_test.fields.description`,rules:{max:1e3}}),date:t.date({label:`health.health_test.fields.date`,ui:{span:4}}),clinic:t.string({label:`health.health_test.fields.clinic`,rules:{max:200},ui:{span:4}}),person:t.relation({label:`health.health_test.fields.person`,options:n({library:`people`,shelf:`person`}),ui:{span:4}}),result:t.text({label:`health.health_test.fields.result`,rules:{max:5e3}}),attachments:t.image({label:`health.health_test.fields.attachments`,multiple:!0}),properties:t.properties({columns:2,fields:{status:t.string({label:`health.health_test.fields.status`,strict:!0,view:{noSearch:!0},ui:{span:6},options:[{value:`ordered`,title:`health.health_test.options.status.ordered`},{value:`completed`,title:`health.health_test.options.status.completed`},{value:`cancelled`,title:`health.health_test.options.status.cancelled`}]}),test_type:t.string({label:`health.health_test.fields.test_type`,strict:!0,view:{noSearch:!0},ui:{span:6},options:[{value:`blood`,title:`health.health_test.options.test_type.blood`},{value:`urine`,title:`health.health_test.options.test_type.urine`},{value:`ultrasound`,title:`health.health_test.options.test_type.ultrasound`},{value:`xray`,title:`health.health_test.options.test_type.xray`},{value:`mri`,title:`health.health_test.options.test_type.mri`},{value:`other`,title:`health.health_test.options.test_type.other`}]})}}),notes:t.text({label:`health.health_test.fields.notes`,rules:{max:2e3}})}}),S=i({id:`person_body`,label:`health.person_body.label`,icon:`lucide:ruler`,attachTo:[{library:`people`,shelf:`person`}],claude:`Person's body measurements. weightKg — weight in kg. heightCm — height in cm. bloodGroup — ABO/Rh blood type. allergies — list of allergens.`,fields:{weightKg:t.real({label:`health.person_body.fields.weightKg`,rules:{min:1,max:500}}),heightCm:t.int({label:`health.person_body.fields.heightCm`,rules:{min:50,max:250}}),bloodGroup:t.string({label:`health.person_body.fields.bloodGroup`,strict:!0,view:{noSearch:!0},options:[`O-`,`O+`,`A-`,`A+`,`B-`,`B+`,`AB-`,`AB+`]}),allergies:t.string({label:`health.person_body.fields.allergies`,multiple:!0})}}),C=[{value:`any`,title:`health.dayPeriods.any`},{value:`before_breakfast`,title:`health.dayPeriods.before_breakfast`},{value:`with_breakfast`,title:`health.dayPeriods.with_breakfast`},{value:`after_breakfast`,title:`health.dayPeriods.after_breakfast`},{value:`with_food`,title:`health.dayPeriods.with_food`},{value:`after_lunch`,title:`health.dayPeriods.after_lunch`},{value:`evening`,title:`health.dayPeriods.evening`},{value:`before_bed`,title:`health.dayPeriods.before_bed`},{value:`as_needed`,title:`health.dayPeriods.as_needed`}],w=a({id:`health`,version:`1.0.0`,dependsOn:[`people`],optionLists:[{name:`day-periods`,options:[...C]}],libraries:[{meta:o({id:`health`,label:`health.library.label`,icon:`lucide:hospital`,agent:`Medical tests, doctor visits, and medicines — each linked to a person.`}),shelves:[y,b,x]}],extends_:[S],settings:s({label:`health.settings.label`,fields:{caldav_calendar:t.string({label:`health.settings.caldav_calendar`}),caldav_url:t.string({label:`health.settings.caldav_url`}),caldav_username:t.string({label:`health.settings.caldav_username`}),caldav_password:t.password({label:`health.settings.caldav_password`}),...Object.fromEntries(C.filter(e=>e.value!==`as_needed`).map(e=>[`time_${e.value}`,t.time({label:`health.settings.time_${e.value}`,rules:{granularity:`minute`}})]))}})});export{w as default};
|