@coffer-org/web 3.1.2 → 3.3.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-DucdkqsL.js → ChatWidget-nNf5Rw0a.js} +2 -2
- package/dist/assets/{DiagnosticsPage-BmXQ2wx_.js → DiagnosticsPage-BWHlPR6q.js} +1 -1
- package/dist/assets/{ExtendReasonInfo-nosoadn6.js → ExtendReasonInfo-CJ67X4F6.js} +1 -1
- package/dist/assets/Icon-BumJSRVW.js +2 -0
- package/dist/assets/NewRecordView-BdpK6Egr.js +1 -0
- package/dist/assets/{PluginSettingsPage-YthgPItj.js → PluginSettingsPage-Cdb8beej.js} +1 -1
- package/dist/assets/{SettingsForm-P7AveuRL.js → SettingsForm-CveAr_ig.js} +1 -1
- package/dist/assets/{SettingsPage-F7vhUaoM.js → SettingsPage-CQKhHrWm.js} +1 -1
- package/dist/assets/{ThemeSwitcher-CidwMjS9.js → ThemeSwitcher-CfRsyjzE.js} +1 -1
- package/dist/assets/Toolbar-BFVsURKo.js +2 -0
- package/dist/assets/{chrome-DX8F_v18.js → chrome-Drri9yIC.js} +1 -1
- package/dist/assets/{data-size-D-gMRpFc.js → data-size-Byck_i1v.js} +1 -1
- package/dist/assets/{dispatch-Z_UJ7sOs.js → dispatch-Dn_1ZBIw.js} +1 -1
- package/dist/assets/extend-Dz66ZOVA.js +1 -0
- package/dist/assets/{field-frame-Co_Y1euk.js → field-frame-p-0aFlK2.js} +1 -1
- package/dist/assets/fields-CdNaYlSV.js +64 -0
- package/dist/assets/index-BhD27QjD.js +36 -0
- package/dist/assets/index-CbYvPAob.css +2 -0
- package/dist/assets/{shared-CybDb-Q0.js → shared-53AEUTK1.js} +1 -1
- package/dist/assets/shelf-CYFZoY4Y.js +1 -0
- package/dist/assets/{showcase-g9KGsIJf.js → showcase-BEd8Qi9n.js} +1 -1
- package/dist/assets/{src-oxroY989.js → src-6BvwolRe.js} +1 -1
- package/dist/assets/{src-CIbjpG2X.js → src-6wNB8mAI.js} +1 -1
- package/dist/assets/{src-DFYZEu1M.js → src-B3EKJbtB.js} +1 -1
- package/dist/assets/{src-C4Lw6UC7.js → src-B5_A2mYY.js} +1 -1
- package/dist/assets/{src-I0D69wPd.js → src-BEO9VDg0.js} +2 -2
- package/dist/assets/{src-6EFD6CpO.js → src-BEPkH-ct.js} +1 -1
- package/dist/assets/{src-HtNjG36u.js → src-BGRdBpoy.js} +1 -1
- package/dist/assets/{src-DyJctdPe.js → src-BVH5k75w.js} +1 -1
- package/dist/assets/{src-CalRvEpR.js → src-CCmXjawq.js} +1 -1
- package/dist/assets/{src-Df0q1za7.js → src-COeSlgp5.js} +1 -1
- package/dist/assets/src-CfaMs77p.js +1 -0
- package/dist/assets/{src-DZhdHqwF.js → src-CtOhjDAR.js} +1 -1
- package/dist/assets/src-CukyJanI.js +1 -0
- package/dist/assets/{src-Db-cqkZV.js → src-D3d5pZiz.js} +1 -1
- package/dist/assets/src-DBlnH-G8.js +1 -0
- package/dist/assets/{src-BpgLWVlc.js → src-DGkgvDff.js} +1 -1
- package/dist/assets/{src-CDzj7gs1.js → src-DYI3zRw6.js} +1 -1
- package/dist/assets/{src-RuMLw9Df.js → src-DrMNxEnS.js} +1 -1
- package/dist/assets/{src-COMSWH4j.js → src-SgNQDm_8.js} +1 -1
- package/dist/assets/{src-COfhPliI.js → src-a39U8IWk.js} +1 -1
- package/dist/assets/src-i9wl96A-.js +1 -0
- package/dist/assets/{src-migt9nqy.js → src-klR9zexB.js} +1 -1
- package/dist/assets/{src-BR6hbGmU.js → src-mXu3EbjH.js} +1 -1
- package/dist/assets/src-qh6HJOzS.js +1 -0
- package/dist/assets/src-skK-v7r6.js +7 -0
- package/dist/assets/ui-CElwsbzS.js +2 -0
- package/dist/assets/{ui-CGwjZwt9.js → ui-DGTH-Sdo.js} +1 -1
- package/dist/assets/{ui-Df14rQUE.js → ui-pNaus2uP.js} +2 -2
- package/dist/index.html +16 -16
- package/dist-vendor/web-sdk.js +1609 -1485
- package/package.json +2 -2
- package/dist/assets/Icon-DyZrCblq.js +0 -2
- package/dist/assets/NewRecordView-B_kv9qD_.js +0 -1
- package/dist/assets/Toolbar-kvM_SekW.js +0 -2
- package/dist/assets/extend-C60kAlp4.js +0 -1
- package/dist/assets/fields-DA2uwuWg.js +0 -64
- package/dist/assets/index-BNqGpvsY.css +0 -2
- package/dist/assets/index-Bdz1ZPcL.js +0 -36
- package/dist/assets/shelf-CdaVoMG2.js +0 -1
- package/dist/assets/src-BZxKxK4W.js +0 -1
- package/dist/assets/src-Cns9vFlU.js +0 -1
- package/dist/assets/src-KsFUvYvh.js +0 -7
- package/dist/assets/src-Wss-Pefj.js +0 -1
- package/dist/assets/src-Yyqpiun8.js +0 -1
- package/dist/assets/src-tePV5CBX.js +0 -1
- package/dist/assets/ui-Iht7bdzK.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./fields-
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{o as t}from"./shelf-CYFZoY4Y.js";import{n,r}from"./plugin-q1oOYqt7.js";var i=t({shelf:`trip`,library:`travel`,label:`travel.trip.label`,icon:`lucide:plane`,views:{list:[`destination`,`date_from`,`date_to`,`status`]},fields:[e.title({key:`name`,label:`core.fields.name`}),e.text({key:`description`,label:`travel.trip.fields.description`,rules:{max:2e3}}),e.string({key:`destination`,label:`travel.trip.fields.destination`,rules:{max:200}}),e.date({key:`date_from`,label:`travel.trip.fields.date_from`}),e.date({key:`date_to`,label:`travel.trip.fields.date_to`}),e.select({key:`status`,label:`travel.trip.fields.status`,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`}]}),e.relation({key:`participants`,label:`travel.trip.fields.participants`,options:{library:`people`,shelf:`person`},multiple:!0}),e.money({key:`budget`,label:`travel.trip.fields.budget`,rules:{defaultCurrency:`UAH`}}),e.image({key:`photos`,label:`travel.trip.fields.photos`,multiple:!0}),e.check({key:`packing_items`,label:`travel.trip.fields.packing_items`,slots:[`travel.trip.packing.prepared`,`travel.trip.packing.packed`,`travel.trip.packing.packed_back`],fields:[e.relation({key:`item`,label:`travel.trip.packing.item`,options:{library:`things`,shelf:`item`}})],multiple:!0}),e.check({key:`packing_list`,label:`travel.trip.fields.packing_list`,slots:[`travel.trip.packing.prepared`,`travel.trip.packing.packed`,`travel.trip.packing.packed_back`],multiple:!0}),e.group({key:`legs`,label:`travel.trip.fields.legs`,icon:`lucide:route`,multiple:!0,fields:[e.date({key:`date`,label:`travel.trip.leg.date`}),e.select({key:`leg_type`,label:`travel.trip.leg.leg_type`,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`}]}),e.string({key:`operator`,label:`travel.trip.leg.operator`,rules:{max:100}}),e.string({key:`number`,label:`travel.trip.leg.number`,rules:{max:20}}),e.string({key:`seat`,label:`travel.trip.leg.seat`,rules:{max:10}}),e.select({key:`class`,label:`travel.trip.leg.class`,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`}]}),e.string({key:`booking_ref`,label:`travel.trip.leg.booking_ref`,rules:{max:50}}),e.string({key:`terminal`,label:`travel.trip.leg.terminal`,rules:{max:20}}),e.string({key:`gate`,label:`travel.trip.leg.gate`,rules:{max:20}}),e.string({key:`origin_city`,label:`travel.trip.leg.origin_city`,rules:{max:100}}),e.string({key:`origin_code`,label:`travel.trip.leg.origin_code`,rules:{max:10}}),e.time({key:`departure_time`,label:`travel.trip.leg.departure_time`}),e.string({key:`destination_city`,label:`travel.trip.leg.destination_city`,rules:{max:100}}),e.string({key:`destination_code`,label:`travel.trip.leg.destination_code`,rules:{max:10}}),e.time({key:`arrival_time`,label:`travel.trip.leg.arrival_time`}),e.duration({key:`duration`,label:`travel.trip.leg.duration`}),e.boolean({key:`checked_in`,label:`travel.trip.leg.checked_in`}),e.document({key:`documents`,label:`travel.trip.leg.documents`,multiple:!0}),e.text({key:`notes`,label:`travel.trip.leg.notes`,rules:{max:2e3}})]}),e.group({key:`accommodations`,label:`travel.trip.fields.accommodations`,icon:`lucide:bed`,multiple:!0,fields:[e.select({key:`accom_type`,label:`travel.trip.accom.accom_type`,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`}]}),e.string({key:`location`,label:`travel.trip.accom.location`,rules:{max:300}}),e.string({key:`address`,label:`travel.trip.accom.address`,rules:{max:300}}),e.rating({key:`rating`,label:`travel.trip.accom.rating`,rules:{max:5}}),e.boolean({key:`breakfast`,label:`travel.trip.accom.breakfast`}),e.date({key:`check_in`,label:`travel.trip.accom.check_in`}),e.date({key:`check_out`,label:`travel.trip.accom.check_out`}),e.string({key:`booking_ref`,label:`travel.trip.accom.booking_ref`,rules:{max:100}}),e.money({key:`cost`,label:`travel.trip.accom.cost`,rules:{defaultCurrency:`UAH`}}),e.document({key:`documents`,label:`travel.trip.accom.documents`,multiple:!0}),e.text({key:`notes`,label:`travel.trip.accom.notes`,rules:{max:2e3}})]}),e.group({key:`insurances`,label:`travel.trip.fields.insurances`,icon:`lucide:shield-check`,multiple:!0,fields:[e.string({key:`insurer`,label:`travel.trip.insur.insurer`,rules:{max:200}}),e.string({key:`policy_number`,label:`travel.trip.insur.policy_number`,rules:{max:100}}),e.text({key:`coverage`,label:`travel.trip.insur.coverage`,rules:{max:1e3}}),e.money({key:`cost`,label:`travel.trip.insur.cost`,rules:{defaultCurrency:`UAH`}}),e.date({key:`valid_from`,label:`travel.trip.insur.valid_from`}),e.date({key:`valid_until`,label:`travel.trip.insur.valid_until`}),e.string({key:`emergency_phone`,label:`travel.trip.insur.emergency_phone`,rules:{max:50}}),e.document({key:`documents`,label:`travel.trip.insur.documents`,multiple:!0}),e.text({key:`notes`,label:`travel.trip.insur.notes`,rules:{max:2e3}})]}),e.group({key:`activities`,label:`travel.trip.fields.activities`,icon:`lucide:ticket`,multiple:!0,fields:[e.select({key:`activity_type`,label:`travel.trip.act.activity_type`,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`}]}),e.date({key:`date`,label:`travel.trip.act.date`}),e.time({key:`time_start`,label:`travel.trip.act.time_start`}),e.time({key:`time_end`,label:`travel.trip.act.time_end`}),e.string({key:`location`,label:`travel.trip.act.location`,rules:{max:300}}),e.string({key:`booking_ref`,label:`travel.trip.act.booking_ref`,rules:{max:100}}),e.money({key:`cost`,label:`travel.trip.act.cost`,rules:{defaultCurrency:`UAH`}}),e.document({key:`documents`,label:`travel.trip.act.documents`,multiple:!0}),e.text({key:`notes`,label:`travel.trip.act.notes`,rules:{max:2e3}})]}),e.tags({key:`tags`,label:`travel.trip.fields.tags`}),e.text({key:`notes`,label:`travel.trip.fields.notes`,rules:{max:3e3}})]}),a=n({id:`travel`,version:`1.0.0`,dependsOn:[`people`,`things`],libraries:[{meta:r({id:`travel`,label:`travel.library.label`,icon:`lucide:plane`,agent:`Trips (trip) with legs, lodging, insurance, activities, and packing lists.`}),shelves:[i]}]});export{a as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{t}from"./extend-Dz66ZOVA.js";import{n,r}from"./plugin-q1oOYqt7.js";import{t as i}from"./showcase-BEd8Qi9n.js";var a=t({id:`drone`,label:`drone.drone.label`,icon:`tb:drone`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:{$in:[`aircraft`,`rtf`]}},claude:`FPV drone technical characteristics. frame_size — frame size (e.g. 3.5"). motors — motors. firmware — firmware (Betaflight/INAV). camera/flight_controller/vtx/gps_module link to things/item[type=drone] records of the matching subtype. A drone whose parts cannot be separate records is subtype='rtf' instead, and carries the component extends directly.`,fields:[e.string({key:`frame_size`,label:`drone.drone.fields.frame_size`,rules:{max:40}}),e.string({key:`purpose`,label:`drone.drone.fields.purpose`,rules:{max:200}}),e.string({key:`motors`,label:`drone.drone.fields.motors`,rules:{max:150}}),e.string({key:`props`,label:`drone.drone.fields.props`,rules:{max:80}}),e.relation({key:`camera`,label:`drone.drone.fields.camera`,options:{library:`things`,shelf:`item`,filter:{type:`drone`,subtype:`camera`}}}),e.relation({key:`flight_controller`,label:`drone.drone.fields.flight_controller`,options:{library:`things`,shelf:`item`,filter:{type:`drone`,subtype:`flight_controller`}}}),e.relation({key:`vtx`,label:`drone.drone.fields.vtx`,options:{library:`things`,shelf:`item`,filter:{type:`drone`,subtype:`vtx`}}}),e.relation({key:`gps_module`,label:`drone.drone.fields.gps_module`,options:{library:`things`,shelf:`item`,filter:{type:`drone`,subtype:`gps`}}}),e.select({key:`radio_link`,label:`drone.drone.fields.radio_link`,options:`drone-radio-links`,multiple:!0}),e.string({key:`receiver`,label:`drone.drone.fields.receiver`,rules:{max:80}}),e.select({key:`video_system`,label:`drone.drone.fields.video_system`,options:`drone-video-systems`}),e.string({key:`power_module`,label:`drone.drone.fields.power_module`,rules:{max:60}}),e.string({key:`flight_time`,label:`drone.drone.fields.flight_time`,rules:{max:60}}),e.select({key:`firmware`,label:`drone.drone.fields.firmware`,options:`drone-firmware`}),e.string({key:`firmware_version`,label:`drone.drone.fields.firmware_version`,rules:{max:40}}),e.string({key:`firmware_target`,label:`drone.drone.fields.firmware_target`,rules:{max:80}}),e.group({key:`snippets`,label:`drone.drone.groups.snippets`,icon:`lucide:terminal`,multiple:!0,fields:[e.string({key:`title`,label:`drone.drone.fields.snippet_title`,required:!0,rules:{max:100}}),e.text({key:`summary`,label:`drone.drone.fields.snippet_summary`,rules:{max:500}}),e.source({key:`snippet`,label:`drone.drone.fields.snippet`,rules:{ext:`md`}})]}),e.text({key:`notes`,label:`drone.drone.fields.notes`,rules:{max:2e3}})]}),o=t({id:`drone_battery`,label:`drone.drone_battery.label`,icon:`lucide:battery-full`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:{$in:[`battery`,`rtf`]}},claude:`FPV drone battery characteristics. cells — number of cells (1S/3S/4S). capacity — capacity in mAh. c_rate — discharge current. auw — all-up weight of the assembly in flight.`,fields:[e.string({key:`charger`,label:`drone.drone_battery.fields.charger`,rules:{max:100}}),e.select({key:`cells`,label:`drone.drone_battery.fields.cells`,options:`drone-cells`}),e.measured({key:`capacity`,label:`drone.drone_battery.fields.capacity`,options:`energy`}),e.string({key:`c_rate`,label:`drone.drone_battery.fields.c_rate`,rules:{max:20}}),e.string({key:`auw`,label:`drone.drone_battery.fields.auw`,rules:{max:40}}),e.text({key:`notes`,label:`drone.drone_battery.fields.notes`,rules:{max:2e3}})]}),s=t({id:`drone_vtx`,label:`drone.drone_vtx.label`,icon:`lucide:radio-tower`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:{$in:[`vtx`,`rtf`]}},claude:`FPV video transmitter characteristics. input_voltage — input voltage. protocol — control protocols, codes from the drone-vtx-protocols list. frequency_groups — Betaflight band letters. channel_count — number of channels.`,fields:[e.string({key:`input_voltage`,label:`drone.drone_vtx.fields.input_voltage`,rules:{max:40}}),e.select({key:`protocol`,label:`drone.drone_vtx.fields.protocol`,options:`drone-vtx-protocols`,multiple:!0}),e.select({key:`antenna_interface`,label:`drone.drone_vtx.fields.antenna_interface`,options:`drone-rf-connectors`}),e.int({key:`channel_count`,label:`drone.drone_vtx.fields.channel_count`,rules:{min:0}}),e.select({key:`mounting`,label:`drone.drone_vtx.fields.mounting`,options:`drone-mounting`,multiple:!0}),e.boolean({key:`built_in_microphone`,label:`drone.drone_vtx.fields.built_in_microphone`}),e.select({key:`frequency_groups`,label:`drone.drone_vtx.fields.frequency_groups`,options:`drone-bands`,multiple:!0}),e.keyed({key:`power_levels`,label:`drone.drone_vtx.groups.power_levels`,icon:`lucide:zap`,container:e.table,by:e.select({key:`level`,label:`drone.drone_vtx.fields.power_level`,options:`drone-vtx-power`}),fields:[e.int({key:`current_ma`,label:`drone.drone_vtx.fields.current_ma`,rules:{min:0}}),e.real({key:`dbm`,label:`drone.drone_vtx.fields.dbm`})]}),e.text({key:`notes`,label:`drone.drone_vtx.fields.notes`,rules:{max:2e3}})]}),c=t({id:`drone_gps`,label:`drone.drone_gps.label`,icon:`lucide:satellite`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:{$in:[`gps`,`rtf`]}},claude:`FPV drone GPS module characteristics. gnss_chip — chipset. compass_chip — magnetometer. satellite_systems — supported satellite systems.`,fields:[e.string({key:`gnss_chip`,label:`drone.drone_gps.fields.gnss_chip`,rules:{max:80}}),e.string({key:`compass_chip`,label:`drone.drone_gps.fields.compass_chip`,rules:{max:60}}),e.boolean({key:`barometer`,label:`drone.drone_gps.fields.barometer`}),e.select({key:`interface`,label:`drone.drone_gps.fields.interface`,options:`drone-serial-interfaces`,multiple:!0}),e.string({key:`input_voltage`,label:`drone.drone_gps.fields.input_voltage`,rules:{max:40}}),e.int({key:`update_rate_hz`,label:`drone.drone_gps.fields.update_rate_hz`,rules:{min:0}}),e.int({key:`receiving_channels`,label:`drone.drone_gps.fields.receiving_channels`,rules:{min:0}}),e.select({key:`supported_protocols`,label:`drone.drone_gps.fields.supported_protocols`,options:`drone-gnss-protocols`,multiple:!0}),e.select({key:`baud_rates`,label:`drone.drone_gps.fields.baud_rates`,options:`drone-baud-rates`,multiple:!0}),e.select({key:`satellite_systems`,label:`drone.drone_gps.fields.satellite_systems`,options:`drone-gnss-systems`,multiple:!0}),e.text({key:`notes`,label:`drone.drone_gps.fields.notes`,rules:{max:2e3}})]}),l=t({id:`drone_flight_controller`,label:`drone.drone_flight_controller.label`,icon:`lucide:sliders-horizontal`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:{$in:[`flight_controller`,`rtf`]}},claude:`FPV drone flight controller characteristics. mcu — processor (STM32F411/F405). gyro — gyroscope. supported_firmware — compatible firmware (Betaflight, INAV).`,fields:[e.select({key:`mcu`,label:`drone.drone_flight_controller.fields.mcu`,options:`drone-fc-mcu`}),e.select({key:`gyro`,label:`drone.drone_flight_controller.fields.gyro`,options:`drone-gyro`,multiple:!0}),e.boolean({key:`barometer`,label:`drone.drone_flight_controller.fields.barometer`}),e.select({key:`osd_chip`,label:`drone.drone_flight_controller.fields.osd_chip`,options:`drone-osd-chip`}),e.select({key:`blackbox`,label:`drone.drone_flight_controller.fields.blackbox`,options:`drone-blackbox`}),e.boolean({key:`bluetooth`,label:`drone.drone_flight_controller.fields.bluetooth`}),e.boolean({key:`wifi`,label:`drone.drone_flight_controller.fields.wifi`}),e.boolean({key:`current_sensor_input`,label:`drone.drone_flight_controller.fields.current_sensor_input`}),e.string({key:`power_input`,label:`drone.drone_flight_controller.fields.power_input`,rules:{max:40}}),e.string({key:`constant_current`,label:`drone.drone_flight_controller.fields.constant_current`,rules:{max:20}}),e.string({key:`peak_current`,label:`drone.drone_flight_controller.fields.peak_current`,rules:{max:20}}),e.string({key:`bec_5v`,label:`drone.drone_flight_controller.fields.bec_5v`,rules:{max:20}}),e.string({key:`bec_9v`,label:`drone.drone_flight_controller.fields.bec_9v`,rules:{max:20}}),e.select({key:`mounting`,label:`drone.drone_flight_controller.fields.mounting`,options:`drone-mounting`,multiple:!0}),e.int({key:`uart_count`,label:`drone.drone_flight_controller.fields.uart_count`,rules:{min:0}}),e.select({key:`supported_firmware`,label:`drone.drone_flight_controller.fields.supported_firmware`,options:`drone-firmware`,multiple:!0}),e.string({key:`firmware_target`,label:`drone.drone_flight_controller.fields.firmware_target`,rules:{max:80}}),e.string({key:`build_role`,label:`drone.drone_flight_controller.fields.build_role`,rules:{max:200}}),e.text({key:`notes`,label:`drone.drone_flight_controller.fields.notes`,rules:{max:2e3}})]}),u=t({id:`drone_goggles`,label:`drone.drone_goggles.label`,icon:`lucide:glasses`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:`goggles`},claude:`FPV goggles characteristics. display_size — display diagonal. frequency_bands — supported radio bands. battery_life — runtime on battery.`,fields:[e.string({key:`display_size`,label:`drone.drone_goggles.fields.display_size`,rules:{max:20}}),e.string({key:`display_resolution`,label:`drone.drone_goggles.fields.display_resolution`,rules:{max:40}}),e.string({key:`display_brightness`,label:`drone.drone_goggles.fields.display_brightness`,rules:{max:30}}),e.string({key:`view_angle`,label:`drone.drone_goggles.fields.view_angle`,rules:{max:20}}),e.string({key:`antenna`,label:`drone.drone_goggles.fields.antenna`,rules:{max:80}}),e.select({key:`frequency_bands`,label:`drone.drone_goggles.fields.frequency_bands`,options:`drone-bands`,multiple:!0}),e.string({key:`battery`,label:`drone.drone_goggles.fields.battery`,rules:{max:60}}),e.string({key:`battery_life`,label:`drone.drone_goggles.fields.battery_life`,rules:{max:40}}),e.string({key:`charging`,label:`drone.drone_goggles.fields.charging`,rules:{max:60}}),e.keyed({key:`band_channels`,label:`drone.drone_goggles.groups.band_channels`,icon:`lucide:radio`,container:e.table,by:e.select({key:`band`,label:`drone.drone_goggles.fields.band`,options:`drone-bands`}),fields:[e.int({key:`channels`,label:`drone.drone_goggles.fields.channels`,multiple:!0})]}),e.text({key:`notes`,label:`drone.drone_goggles.fields.notes`,rules:{max:2e3}})]}),d=t({id:`drone_antenna`,label:`drone.drone_antenna.label`,icon:`lucide:radio`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:{$in:[`antenna`,`rtf`]}},claude:`FPV antenna characteristics. rf_band — the bands it covers, codes from drone-rf-bands. polarization — RHCP/LHCP/linear; a video link needs the SAME polarization on both ends. antenna_type — the radiating structure. connector — one model often ships in several connector variants.`,fields:[e.select({key:`rf_band`,label:`drone.drone_antenna.fields.rf_band`,options:`drone-rf-bands`,multiple:!0}),e.select({key:`polarization`,label:`drone.drone_antenna.fields.polarization`,options:`drone-polarization`}),e.select({key:`antenna_type`,label:`drone.drone_antenna.fields.antenna_type`,options:`drone-antenna-types`}),e.select({key:`connector`,label:`drone.drone_antenna.fields.connector`,options:`drone-rf-connectors`,multiple:!0}),e.real({key:`gain_dbi`,label:`drone.drone_antenna.fields.gain_dbi`}),e.int({key:`cable_length`,label:`drone.drone_antenna.fields.cable_length`,rules:{min:0}}),e.text({key:`notes`,label:`drone.drone_antenna.fields.notes`,rules:{max:2e3}})]}),f=t({id:`drone_receiver`,label:`drone.drone_receiver.label`,icon:`lucide:antenna`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:{$in:[`receiver`,`rtf`]}},claude:`RC receiver characteristics. radio_link — the protocol it binds with (ExpressLRS, Crossfire…). output_protocol — how it talks to the flight controller (CRSF, SBUS…). diversity — two antennas with active switching.`,fields:[e.select({key:`radio_link`,label:`drone.drone_receiver.fields.radio_link`,options:`drone-radio-links`}),e.select({key:`rf_band`,label:`drone.drone_receiver.fields.rf_band`,options:`drone-rf-bands`,multiple:!0}),e.select({key:`output_protocol`,label:`drone.drone_receiver.fields.output_protocol`,options:`drone-rx-outputs`,multiple:!0}),e.select({key:`antenna_connector`,label:`drone.drone_receiver.fields.antenna_connector`,options:`drone-rf-connectors`}),e.int({key:`antenna_count`,label:`drone.drone_receiver.fields.antenna_count`,rules:{min:0}}),e.boolean({key:`telemetry`,label:`drone.drone_receiver.fields.telemetry`}),e.boolean({key:`diversity`,label:`drone.drone_receiver.fields.diversity`}),e.string({key:`input_voltage`,label:`drone.drone_receiver.fields.input_voltage`,rules:{max:40}}),e.string({key:`firmware_version`,label:`drone.drone_receiver.fields.firmware_version`,rules:{max:40}}),e.text({key:`notes`,label:`drone.drone_receiver.fields.notes`,rules:{max:2e3}})]}),p=t({id:`drone_camera`,label:`drone.drone_camera.label`,icon:`lucide:camera`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{type:`drone`,subtype:{$in:[`camera`,`rtf`]}},claude:`FPV camera characteristics. sensor — the sensor model (free text, e.g. Sony Super HAD II). resolution_tvl — analog horizontal resolution in TVL. aspect_ratio — 4:3 / 16:9 / switchable. output — the video signal it produces (analog CVBS or a digital HD system).`,fields:[e.string({key:`sensor`,label:`drone.drone_camera.fields.sensor`,rules:{max:100}}),e.int({key:`resolution_tvl`,label:`drone.drone_camera.fields.resolution_tvl`,rules:{min:0}}),e.select({key:`aspect_ratio`,label:`drone.drone_camera.fields.aspect_ratio`,options:`drone-camera-aspect`}),e.real({key:`lens_mm`,label:`drone.drone_camera.fields.lens_mm`}),e.int({key:`fov_deg`,label:`drone.drone_camera.fields.fov_deg`,rules:{min:0}}),e.select({key:`output`,label:`drone.drone_camera.fields.output`,options:`drone-camera-output`}),e.select({key:`camera_size`,label:`drone.drone_camera.fields.camera_size`,options:`drone-camera-sizes`}),e.string({key:`input_voltage`,label:`drone.drone_camera.fields.input_voltage`,rules:{max:40}}),e.text({key:`notes`,label:`drone.drone_camera.fields.notes`,rules:{max:2e3}})]}),m=n({id:`drone`,version:`1.0.0`,dependsOn:[`things`],libraries:[{meta:r({id:`drone`,label:`drone.library.label`,icon:`tb:drone`,agent:`FPV drones and their components. Owns no table — the records are things/item rows with type=drone.`}),shelves:[]}],extends_:[a,o,s,c,l,u,d,f,p],showcases:[i({id:`fleet`,library:`drone`,label:`drone.fleet.label`,icon:`lucide:plane`,source:{library:`things`,shelf:`item`},filter:{type:`drone`},columns:[`subtype`,`brand`,`model`,`location`,`condition`],defaultGroupBy:`subtype`,createDefaults:{type:`drone`}})],optionLists:[{name:`drone-bands`,options:[{value:`A`,title:`A`},{value:`B`,title:`B`},{value:`E`,title:`E`},{value:`F`,title:`F`},{value:`R`,title:`R`},{value:`L`,title:`L`},{value:`U`,title:`U`},{value:`O`,title:`O`},{value:`H`,title:`H`}]},{name:`drone-vtx-power`,options:[{value:`pit`,title:`PIT`},{value:`25mw`,title:`25 mW`},{value:`100mw`,title:`100 mW`},{value:`200mw`,title:`200 mW`},{value:`350mw`,title:`350 mW`},{value:`400mw`,title:`400 mW`},{value:`600mw`,title:`600 mW`},{value:`800mw`,title:`800 mW`},{value:`1000mw`,title:`1 W`},{value:`1600mw`,title:`1.6 W`},{value:`2500mw`,title:`2.5 W`}]},{name:`drone-vtx-protocols`,options:[{value:`smartaudio_1_0`,title:`SmartAudio 1.0`},{value:`smartaudio_2_0`,title:`SmartAudio 2.0`},{value:`smartaudio_2_1`,title:`SmartAudio 2.1`},{value:`tramp`,title:`IRC Tramp`},{value:`msp_displayport`,title:`MSP DisplayPort`},{value:`none`,title:`drone.options.none`}]},{name:`drone-rf-connectors`,options:[{value:`ipex_mhf1`,title:`IPEX / MHF1 (U.FL)`},{value:`ipex_mhf3`,title:`IPEX MHF3`},{value:`mmcx`,title:`MMCX`},{value:`sma`,title:`SMA`},{value:`rp_sma`,title:`RP-SMA`},{value:`ufl_solder`,title:`U.FL (soldered)`}]},{name:`drone-mounting`,options:[{value:`16x16_m2`,title:`16×16 mm M2`},{value:`20x20_m2`,title:`20×20 mm M2`},{value:`20x20_m3`,title:`20×20 mm M3`},{value:`25.5x25.5_m2`,title:`25.5×25.5 mm M2`},{value:`30.5x30.5_m3`,title:`30.5×30.5 mm M3`},{value:`adhesive`,title:`drone.options.adhesive`}]},{name:`drone-firmware`,options:[{value:`betaflight`,title:`Betaflight`},{value:`inav`,title:`INAV`},{value:`ardupilot`,title:`ArduPilot`},{value:`emuflight`,title:`EmuFlight`},{value:`rotorflight`,title:`Rotorflight`},{value:`kiss`,title:`KISS`},{value:`cleanflight`,title:`Cleanflight`}]},{name:`drone-fc-mcu`,options:[{value:`stm32f411`,title:`STM32F411`},{value:`stm32f405`,title:`STM32F405`},{value:`stm32f722`,title:`STM32F722`},{value:`stm32f745`,title:`STM32F745`},{value:`stm32f765`,title:`STM32F765`},{value:`stm32h743`,title:`STM32H743`},{value:`stm32h750`,title:`STM32H750`},{value:`at32f435`,title:`AT32F435`},{value:`gd32f405`,title:`GD32F405`}]},{name:`drone-gyro`,options:[{value:`mpu6000`,title:`MPU6000`},{value:`mpu6500`,title:`MPU6500`},{value:`icm20602`,title:`ICM20602`},{value:`icm20689`,title:`ICM20689`},{value:`icm42688p`,title:`ICM42688-P`},{value:`icm42605`,title:`ICM42605`},{value:`bmi270`,title:`BMI270`},{value:`bmi160`,title:`BMI160`}]},{name:`drone-osd-chip`,options:[{value:`at7456e`,title:`AT7456E`},{value:`max7456`,title:`MAX7456`},{value:`msp_displayport`,title:`MSP DisplayPort`},{value:`none`,title:`drone.options.none`}]},{name:`drone-blackbox`,options:[{value:`none`,title:`drone.options.none`},{value:`flash_8mb`,title:`Flash 8 MB`},{value:`flash_16mb`,title:`Flash 16 MB`},{value:`flash_32mb`,title:`Flash 32 MB`},{value:`sd_card`,title:`microSD`}]},{name:`drone-gnss-systems`,options:[{value:`gps`,title:`GPS`},{value:`glonass`,title:`GLONASS`},{value:`galileo`,title:`Galileo`},{value:`beidou`,title:`BeiDou`},{value:`qzss`,title:`QZSS`},{value:`sbas`,title:`SBAS`},{value:`navic`,title:`NavIC`}]},{name:`drone-gnss-protocols`,options:[{value:`ubx`,title:`UBX`},{value:`nmea`,title:`NMEA`},{value:`rtcm3`,title:`RTCM3`},{value:`msp`,title:`MSP`}]},{name:`drone-baud-rates`,options:[{value:`4800`,title:`4800`},{value:`9600`,title:`9600`},{value:`19200`,title:`19200`},{value:`38400`,title:`38400`},{value:`57600`,title:`57600`},{value:`115200`,title:`115200`},{value:`230400`,title:`230400`},{value:`460800`,title:`460800`},{value:`921600`,title:`921600`}]},{name:`drone-serial-interfaces`,options:[{value:`uart`,title:`UART`},{value:`i2c`,title:`I2C`},{value:`spi`,title:`SPI`},{value:`can`,title:`CAN`}]},{name:`drone-video-systems`,options:[{value:`analog_5_8`,title:`drone.options.videoSystems.analog_5_8`},{value:`dji_v1_v2`,title:`DJI V1/V2`},{value:`dji_o3`,title:`DJI O3`},{value:`dji_o4`,title:`DJI O4`},{value:`walksnail_avatar`,title:`Walksnail Avatar`},{value:`hdzero`,title:`HDZero`}]},{name:`drone-radio-links`,options:[{value:`elrs_2_4`,title:`ExpressLRS 2.4 GHz`},{value:`elrs_900`,title:`ExpressLRS 868/915 MHz`},{value:`crossfire`,title:`TBS Crossfire`},{value:`tracer`,title:`TBS Tracer`},{value:`ghost`,title:`ImmersionRC Ghost`},{value:`frsky_d16`,title:`FrSky D16`},{value:`frsky_d8`,title:`FrSky D8`},{value:`dsmx`,title:`Spektrum DSMX`},{value:`dji`,title:`DJI`}]},{name:`drone-rf-bands`,options:[{value:`5_8ghz`,title:`5.8 GHz`},{value:`2_4ghz`,title:`2.4 GHz`},{value:`1_2ghz`,title:`1.2 GHz`},{value:`900mhz`,title:`868/915 MHz`},{value:`433mhz`,title:`433 MHz`}]},{name:`drone-polarization`,options:[{value:`rhcp`,title:`drone.options.polarization.rhcp`},{value:`lhcp`,title:`drone.options.polarization.lhcp`},{value:`linear`,title:`drone.options.polarization.linear`}]},{name:`drone-antenna-types`,options:[{value:`omni`,title:`drone.options.antennaTypes.omni`},{value:`patch`,title:`drone.options.antennaTypes.patch`},{value:`helical`,title:`drone.options.antennaTypes.helical`},{value:`pagoda`,title:`drone.options.antennaTypes.pagoda`},{value:`cloverleaf`,title:`drone.options.antennaTypes.cloverleaf`},{value:`monopole`,title:`drone.options.antennaTypes.monopole`},{value:`whip`,title:`drone.options.antennaTypes.whip`}]},{name:`drone-cells`,options:[{value:`1s`,title:`1S`},{value:`2s`,title:`2S`},{value:`3s`,title:`3S`},{value:`4s`,title:`4S`},{value:`5s`,title:`5S`},{value:`6s`,title:`6S`},{value:`7s`,title:`7S`},{value:`8s`,title:`8S`},{value:`12s`,title:`12S`}]},{name:`drone-rx-outputs`,options:[{value:`crsf`,title:`CRSF`},{value:`sbus`,title:`SBUS`},{value:`ibus`,title:`IBUS`},{value:`ppm`,title:`PPM`},{value:`pwm`,title:`PWM`},{value:`spektrum`,title:`Spektrum`},{value:`ghst`,title:`GHST`}]},{name:`drone-camera-aspect`,options:[{value:`4_3`,title:`4:3`},{value:`16_9`,title:`16:9`},{value:`switchable`,title:`drone.options.cameraAspect.switchable`}]},{name:`drone-camera-output`,options:[{value:`analog_cvbs`,title:`drone.options.cameraOutput.analog_cvbs`},{value:`dji`,title:`DJI`},{value:`walksnail`,title:`Walksnail`},{value:`hdzero`,title:`HDZero`}]},{name:`drone-camera-sizes`,options:[{value:`nano`,title:`Nano`},{value:`micro`,title:`Micro`},{value:`mini`,title:`Mini`},{value:`full`,title:`Full-size`},{value:`whoop`,title:`Whoop`}]}],fieldContribs:[{library:`things`,shelf:`item`,field:`type`,options:[{value:`drone`,title:`drone.drone.label`}]},{library:`things`,shelf:`item`,field:`subtype`,options:[{value:`aircraft`,title:`drone.contrib.subtype.aircraft`,when:{type:`drone`}},{value:`battery`,title:`drone.drone_battery.label`,when:{type:`drone`}},{value:`vtx`,title:`drone.drone_vtx.label`,when:{type:`drone`}},{value:`gps`,title:`drone.drone_gps.label`,when:{type:`drone`}},{value:`flight_controller`,title:`drone.drone_flight_controller.label`,when:{type:`drone`}},{value:`goggles`,title:`drone.drone_goggles.label`,when:{type:`drone`}},{value:`radio`,title:`drone.contrib.subtype.radio`,when:{type:`drone`}},{value:`camera`,title:`drone.drone_camera.label`,when:{type:`drone`}},{value:`antenna`,title:`drone.drone_antenna.label`,when:{type:`drone`}},{value:`receiver`,title:`drone.drone_receiver.label`,when:{type:`drone`}},{value:`frame`,title:`drone.contrib.subtype.frame`,when:{type:`drone`}},{value:`rtf`,title:`drone.contrib.subtype.rtf`,when:{type:`drone`}},{value:`accessory`,title:`drone.contrib.subtype.accessory`,when:{type:`drone`}}]}]});export{m as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./fields-
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{n as t}from"./plugin-q1oOYqt7.js";import{t as n}from"./settings-Dfvzj6n2.js";var r=t({id:`orchestrator`,version:`1.0.0`,dependsOn:[`claude-agent`],settings:n({label:`orchestrator.settings.label`,fields:[e.select({key:`agent_id`,label:`orchestrator.settings.agent_id`}),e.password({key:`access_password`,label:`orchestrator.settings.access_password`}),e.string({key:`trigger_prefix`,label:`orchestrator.settings.trigger_prefix`}),e.int({key:`reply_window`,label:`orchestrator.settings.reply_window`,default:1800})]})});export{r as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,B as t,D as n,F as r,G as i,L as a,O as o,R as s,U as c,V as l,W as u,_ as d,i as f,t as p,x as m}from"./fields-CdNaYlSV.js";import{o as h}from"./shelf-CYFZoY4Y.js";import{t as g}from"./extend-Dz66ZOVA.js";import{n as _,r as v}from"./plugin-q1oOYqt7.js";import{t as y}from"./settings-Dfvzj6n2.js";import{i as b,r as x,s as S}from"./data-size-Byck_i1v.js";import{t as C}from"./showcase-BEd8Qi9n.js";var w=(t,a)=>i().superRefine((i,o)=>{t.safeParse(n(i)).success||o.addIssue({code:r.custom,message:e(a)})}),T=()=>t().int().min(0).max(255),E=()=>t().int().min(0).max(65535),D=u([T(),T(),T(),T()]),O=u([E(),E(),E(),E(),E(),E(),E(),E()]),k=l({v:s(4),a:D}),A=l({v:s(6),a:O}),j=a(`v`,[k,A]);function M(e){let t=m(e),n=t.required??!1,r=w(j,`ip_structure`);return d(t,p({kind:`ip`,label:t.label??``,required:n,prim:`ip`,column:`text`,hints:{},zod:o(r,n)},t.multiple??!1))}var N=/^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/;function P(t){let n=m(t),r=n.required??!1,i=c().regex(N,{message:e(`pattern`,{messageKey:`core.presets.mac`})});return d(n,p({kind:`text`,label:n.label??``,required:r,prim:`text`,column:`text`,hints:{mask:`macAddress`},zod:o(i,r)},n.multiple??!1))}var F=/^[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 I(t){let n=m(t),r=n.required??!1,i=c().regex(F,{message:e(`pattern`,{messageKey:`core.presets.hostname`})});return d(n,p({kind:`text`,label:n.label??``,required:r,prim:`text`,column:`text`,hints:{},zod:o(i,r)},n.multiple??!1))}var L=/^\d{15}$/;function R(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 z(t){let n=m(t),r=n.required??!1,i=c().regex(L,{message:e(`pattern`,{messageKey:`core.presets.imei`})}).refine(R,{message:e(`pattern`,{messageKey:`core.presets.imei`})});return d(n,p({kind:`text`,label:n.label??``,required:r,prim:`text`,column:`text`,hints:{},zod:o(i,r)},n.multiple??!1))}var B=a(`v`,[k.extend({p:t().int().min(0).max(32)}),A.extend({p:t().int().min(0).max(128)})]);function V(e){let t=m(e),n=t.required??!1,r=w(B,`cidr_structure`);return d(t,p({kind:`cidr`,label:t.label??``,required:n,prim:`cidr`,column:`text`,hints:{},zod:o(r,n)},t.multiple??!1))}var H=h({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:[f.title({key:`name`,label:`core.fields.name`}),f.text({key:`description`,label:`devices.network.fields.description`,rules:{max:1e3}}),f.int({key:`vlan`,label:`devices.network.fields.vlan`,rules:{min:1,max:4094}}),I({key:`domain`,label:`devices.network.fields.domain`}),V({key:`subnet`,label:`devices.network.fields.subnet`}),M({key:`gateway`,label:`devices.network.fields.gateway`}),M({key:`dnsPrimary`,label:`devices.network.fields.dnsPrimary`}),M({key:`dnsFallback`,label:`devices.network.fields.dnsFallback`}),M({key:`poolStart`,label:`devices.network.fields.poolStart`}),M({key:`poolEnd`,label:`devices.network.fields.poolEnd`}),f.text({key:`notes`,label:`devices.network.fields.notes`,rules:{max:2e3}})]}),U=[`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}`})),W=[{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`}],G={http:`http`,https:`https`,ssh:`ssh`,mysql:`mysql`,mqtt:`mqtt`,ws:`ws`,wss:`ws`,dns:`dns`},K=h({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:[f.title({key:`name`,label:`core.fields.name`}),f.string({key:`code`,label:`devices.service.code`,rules:{max:60}}),f.select({key:`category`,label:`devices.service.category`,options:[...U],multiple:!0}),f.select({key:`description_mode`,label:`devices.service.description_mode`,options:[{value:`key`,title:`devices.service.description_mode_key`},{value:`own`,title:`devices.service.description_mode_own`}],default:`key`}),f.i18n({key:`description`,label:`devices.service.description`,rules:{max:1e3},view:{hidden:{description_mode:{$ne:`key`}}}}),f.text({key:`description_text`,label:`devices.service.description`,rules:{max:1e3},view:{hidden:{description_mode:{$ne:`own`}}}})]}),q=g({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:[f.sheet({fields:[[f.string({key:`hostname`,label:`devices.device_info.fields.hostname`,rules:{max:120}}),f.select({key:`group`,label:`devices.device_info.fields.group`,options:`device-groups`})],[f.string({key:`vendor`,label:`devices.device_info.fields.vendor`,rules:{max:80}}),f.string({key:`model`,label:`devices.device_info.fields.model`,rules:{max:120}})],[f.string({key:`os`,label:`devices.device_info.fields.os`,rules:{max:100}}),f.string({key:`kernel`,label:`devices.device_info.fields.kernel`,rules:{max:100}}),f.string({key:`arch`,label:`devices.device_info.fields.arch`,rules:{max:30}})],[f.string({key:`cpu`,label:`devices.device_info.fields.cpu`,rules:{max:150}}),f.string({key:`gpu`,label:`devices.device_info.fields.gpu`,rules:{max:150}}),S({key:`ram`,label:`devices.device_info.fields.ram`})]]}),f.table({key:`addresses`,label:`devices.device_info.fields.addresses`,icon:`lucide:network`,fields:[M({key:`ip`,label:`devices.device_info.fields.ip`}),P({key:`mac`,label:`devices.device_info.fields.mac`})]}),f.group({key:`disks_usage`,label:`devices.device_info.fields.disks_usage`,icon:`lucide:hard-drive`,multiple:!0,fields:[f.string({key:`mount`,label:`devices.device_info.disk.mount`,rules:{max:80}}),x({key:`size`,label:`devices.device_info.disk.size`,system:`binary`,unit:`GiB`}),x({key:`used`,label:`devices.device_info.disk.used`,system:`binary`,unit:`GiB`}),x({key:`free`,label:`devices.device_info.disk.free`,system:`binary`,unit:`GiB`})]}),f.keyed({key:`services`,label:`devices.device_info.fields.services`,icon:`lucide:server`,by:f.relation({key:`service`,label:`devices.service.type`,options:{library:`devices`,shelf:`service`}}),fields:[f.smallText({key:`description`,label:`devices.service.description`,rules:{max:500}}),f.boolean({key:`hide`,label:`devices.service.hide`}),f.table({key:`links`,label:`devices.service.links`,icon:`lucide:link`,fields:[f.url({key:`url`,label:`devices.service.url`}),f.select({key:`access`,label:`devices.service.access`,options:`access-types`}),f.select({key:`visibility`,label:`devices.service.visibility`,options:`visibility-types`})]}),f.keyValue({key:`secrets`,label:`devices.service.secrets`,option:f.password({}),multiple:!0,view:{keyLabel:`devices.service.secretName`,valueLabel:`devices.service.secretValue`}})]})]}),J={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`},Y=`docker compose exec pihole pihole reloaddns`,X={ip:M,cidr:V,mac:P,hostname:I,imei:z,dataSize:x,ram:S,diskSize:b},Z=_({id:`devices`,version:`1.0.0`,dependsOn:[`things`],settings:y({label:`devices.settings.label`,icon:`lucide:radar`,fields:[f.info(`devices.settings.scan_info`),f.button({label:`devices.settings.scan_button`,value:`devices.runScan`,icon:`lucide:radar`}),f.info(`devices.settings.secrets_help`),f.info(`devices.settings.sync_targets_info`),f.localFile({key:`ssh_config_path`,label:`devices.settings.ssh_config_path`,default:J.ssh_config_path}),f.localFile({key:`pihole_conf_path`,label:`devices.settings.pihole_conf_path`,default:J.pihole_conf_path}),f.string({key:`pihole_reload_cmd`,label:`devices.settings.pihole_reload_cmd`,default:Y}),f.localFile({key:`syncthing_ini_path`,label:`devices.settings.syncthing_ini_path`,default:J.syncthing_ini_path}),f.localFile({key:`gtk_bookmarks_path`,label:`devices.settings.gtk_bookmarks_path`,default:J.gtk_bookmarks_path}),f.localFile({key:`kodi_sources_path`,label:`devices.settings.kodi_sources_path`,default:J.kodi_sources_path}),f.localFile({key:`krdc_bookmarks_path`,label:`devices.settings.krdc_bookmarks_path`,default:J.krdc_bookmarks_path}),f.localFile({key:`rclone_config_path`,label:`devices.settings.rclone_config_path`,default:J.rclone_config_path}),f.localDir({key:`remmina_dir`,label:`devices.settings.remmina_dir`,default:J.remmina_dir}),f.localDir({key:`remoteview_dir`,label:`devices.settings.remoteview_dir`,default:J.remoteview_dir}),f.localFile({key:`delfin_config_path`,label:`devices.settings.delfin_config_path`,default:J.delfin_config_path})]}),libraries:[{meta:v({id:`devices`,label:`devices.library.label`,icon:`lucide:globe`,agent:`Network subnets and the service catalog (network, service).`}),shelves:[H,K]},{meta:v({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:[C({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`}}),C({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:[...W]},{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{I as a,P as c,V as i,Z as n,z as o,G as r,M as s,X as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./fields-
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{o as t}from"./shelf-CYFZoY4Y.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 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:[e.title({key:`name`,label:`core.fields.name`}),e.avatar({key:`logo`,label:`things.item.fields.logo`,role:`avatar`}),e.text({key:`description`,label:`things.item.fields.description`,rules:{max:1e3}}),e.string({key:`brand`,label:`things.item.fields.brand`,rules:{max:100}}),e.string({key:`model`,label:`things.item.fields.model`,rules:{max:100}}),e.int({key:`quantity`,label:`things.item.fields.quantity`,rules:{min:0}}),e.relation({key:`owner`,label:`things.item.fields.owner`,options:{library:`people`,shelf:`person`}}),e.relation({key:`location`,label:`things.item.fields.location`,options:{library:`things`,shelf:`storage_location`}}),e.string({key:`color`,label:`things.item.fields.color`,rules:{max:120}}),e.string({key:`material`,label:`things.item.fields.material`,rules:{max:80}}),e.country({key:`madeIn`,label:`things.item.fields.madeIn`}),e.weight({key:`weight`,label:`things.item.fields.weight`}),e.dimensions({key:`dimensions`,label:`things.item.fields.dimensions`}),e.string({key:`serialNumber`,label:`things.item.fields.serialNumber`,rules:{max:80}}),e.group({label:`things.item.groups.purchase`,icon:`lucide:shopping-cart`,fields:[e.date({key:`purchaseDate`,label:`things.item.fields.purchaseDate`}),e.money({key:`purchasePrice`,label:`things.item.fields.purchasePrice`,rules:{defaultCurrency:`UAH`}}),e.select({key:`paymentStatus`,label:`things.item.fields.paymentStatus`,options:[{value:`bought`,title:`things.item.options.paymentStatus.bought`},{value:`installment`,title:`things.item.options.paymentStatus.installment`},{value:`credit`,title:`things.item.options.paymentStatus.credit`}]}),e.relation({key:`store`,label:`things.item.fields.store`,options:{library:`things`,shelf:`store`}}),e.string({key:`store_legacy`,label:`things.item.fields.store_legacy`,view:{hidden:!0},rules:{max:100}}),e.link({key:`link`,label:`things.item.fields.link`}),e.string({key:`orderNumber`,label:`things.item.fields.orderNumber`,rules:{max:100}}),e.image({key:`receipt`,label:`things.item.fields.receipt`})]}),e.select({key:`condition`,label:`things.item.fields.condition`,options:[{value:`new`,title:`things.item.options.condition.new`},{value:`good`,title:`things.item.options.condition.good`},{value:`fair`,title:`things.item.options.condition.fair`},{value:`poor`,title:`things.item.options.condition.poor`}]}),e.reminder({key:`warrantyExpires`,label:`things.item.fields.warrantyExpires`,rules:{lead:30}}),e.document({key:`manual`,label:`things.item.fields.manual`}),e.image({key:`photos`,label:`things.item.fields.photos`,multiple:!0}),e.select({key:`type`,label:`core.fields.type`,options:[{value:`clothing`,title:`things.item.options.type.clothing`},{value:`bag`,title:`things.item.options.type.bag`},{value:`cable`,title:`things.item.options.type.cable`},{value:`tool`,title:`things.item.options.type.tool`},{value:`furniture`,title:`things.item.options.type.furniture`},{value:`appliance`,title:`things.item.options.type.appliance`},{value:`household`,title:`things.item.options.type.household`},{value:`consumable`,title:`things.item.options.type.consumable`},{value:`personal_care`,title:`things.item.options.type.personal_care`},{value:`sports`,title:`things.item.options.type.sports`},{value:`hobby`,title:`things.item.options.type.hobby`},{value:`hardware`,title:`things.item.options.type.hardware`},{value:`decor`,title:`things.item.options.type.decor`},{value:`stationery`,title:`things.item.options.type.stationery`},{value:`other`,title:`things.item.options.type.other`}]}),e.select({key:`subtype`,label:`core.fields.subtype`,options:[]}),e.tags({key:`tags`,label:`things.item.fields.tags`}),e.text({key:`notes`,label:`things.item.fields.notes`,rules:{max:2e3}})]}),a=t({shelf:`storage_location`,library:`things`,label:`things.storage_location.label`,icon:`lucide:map-pin`,claude:`A storage location for items. name — what we call the place. path — hierarchy levels in order (room, furniture, shelf, container), free-form.`,views:{list:[`path`]},fields:[e.title({key:`name`,label:`core.fields.name`,required:!0}),e.text({key:`description`,label:`things.storage_location.fields.description`,rules:{max:1e3}}),e.string({key:`path`,label:`things.storage_location.fields.path`,multiple:!0,rules:{max:120}}),e.text({key:`notes`,label:`things.storage_location.fields.notes`,rules:{max:2e3}})]}),o=t({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
2
|
scripts — a collection of page-extraction scripts for this shop. Each row's script field is
|
|
3
3
|
plain JavaScript text, readable in one record read, and is written by uploading a file or
|
|
4
4
|
through the API — never hand-edited in the web form. urlPattern is a human hint about which
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,r as t,s as n}from"./data-size-Byck_i1v.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-CukyJanI.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 +1 @@
|
|
|
1
|
-
import{i as e}from"./fields-
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{n as t}from"./plugin-q1oOYqt7.js";import{t as n}from"./settings-Dfvzj6n2.js";var r=t({id:`http`,version:`1.0.0`,dependsOn:[`orchestrator`],settings:n({label:`http.settings.label`,fields:[e.int({key:`port`,label:`http.settings.port`}),e.password({key:`access_password`,label:`http.settings.access_password`})]})});export{r as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./fields-
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{n as t}from"./plugin-q1oOYqt7.js";import{t as n}from"./settings-Dfvzj6n2.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-low`,id:`claude-sonnet-5`,effort:`low`,quality:2,time:2,...a(`sonnet-low`),capabilities:r},{value:`sonnet`,id:`claude-sonnet-5`,effort:`high`,quality:3,time:3,...a(`sonnet`),capabilities:r},{value:`opus`,id:`claude-opus-4-8`,effort:`high`,quality:4,time:4,...a(`opus`),capabilities:r},{value:`opus-5`,id:`claude-opus-5`,effort:`high`,quality:5,time:4,...a(`opus-5`),capabilities:r},{value:`opus-5-max`,id:`claude-opus-5`,effort:`max`,quality:5,time:5,...a(`opus-5-max`),capabilities:r}],s=t({id:`claude-agent`,version:`1.0.0`,dependsOn:[],fieldContribs:[{library:`_settings`,shelf:`orchestrator`,field:`agent_id`,options:[{value:`claude-agent`,title:`claude-agent.plugin.label`}]}],settings:n({label:`claude-agent.settings.label`,fields:[e.group({label:`claude-agent.settings.groups.runtime`,icon:`lucide:bot`,fields:[e.select({key:`auth_mode`,label:`claude-agent.settings.auth_mode`,default:`subscription`,options:[{value:`subscription`,title:`claude-agent.settings.auth_mode_subscription`},{value:`api_key`,title:`claude-agent.settings.auth_mode_api_key`}]}),e.password({key:`anthropic_api_key`,label:`claude-agent.settings.anthropic_api_key`,view:{hidden:{auth_mode:{$ne:`api_key`}}}}),e.select({key:`claude_model`,label:`claude-agent.settings.claude_model`,default:`haiku`,options:o.map(e=>({value:e.value,title:e.labelKey}))}),e.boolean({key:`thinking_enabled`,label:`claude-agent.settings.thinking_enabled`,default:!1}),e.boolean({key:`skip_permissions`,label:`claude-agent.settings.skip_permissions`,default:!0}),e.int({key:`response_timeout`,label:`claude-agent.settings.response_timeout`,default:600})]}),e.group({label:`claude-agent.settings.groups.rag`,icon:`lucide:search`,fields:[e.boolean({key:`rag_enabled`,label:`claude-agent.settings.rag_enabled`,default:!0}),e.password({key:`openai_api_key`,label:`claude-agent.settings.openai_api_key`})]}),e.group({label:`claude-agent.settings.groups.langfuse`,icon:`lucide:activity`,fields:[e.boolean({key:`tracing_enabled`,label:`claude-agent.settings.tracing_enabled`}),e.string({key:`langfuse_base_url`,label:`claude-agent.settings.langfuse_base_url`}),e.password({key:`langfuse_public_key`,label:`claude-agent.settings.langfuse_public_key`}),e.password({key:`langfuse_secret_key`,label:`claude-agent.settings.langfuse_secret_key`})]})]})});export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./fields-
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{n as t}from"./plugin-q1oOYqt7.js";import{t as n}from"./settings-Dfvzj6n2.js";var r=t({id:`console`,version:`1.0.0`,dependsOn:[],settings:n({label:`console.settings.label`,icon:`lucide:terminal`,fields:[e.info(`console.settings.intro`),e.divider(),e.info(`console.settings.claude`),e.divider(),e.info(`console.settings.codex`),e.divider(),e.info(`console.settings.skills`)]})});export{r as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./fields-
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{o as t}from"./shelf-CYFZoY4Y.js";import{t as n}from"./extend-Dz66ZOVA.js";import{n as r,r as i}from"./plugin-q1oOYqt7.js";var a=t({shelf:`personal_document`,library:`documents`,label:`documents.personal_document.label`,icon:`lucide:id-card`,views:{list:[`owner`,`type`,`surname`,`expires`]},fields:[e.title({key:`name`,label:`core.fields.name`}),e.avatar({key:`logo`,label:`documents.personal_document.fields.logo`,role:`avatar`}),e.text({key:`description`,label:`documents.personal_document.fields.description`,rules:{max:1e3}}),e.string({key:`surname`,label:`documents.personal_document.fields.surname`,rules:{max:100}}),e.string({key:`given_names`,label:`documents.personal_document.fields.given_names`,rules:{max:200}}),e.select({key:`sex`,label:`documents.personal_document.fields.sex`,options:[{value:`M`,title:`documents.personal_document.options.sex.M`},{value:`F`,title:`documents.personal_document.options.sex.F`}]}),e.date({key:`birth_date`,label:`documents.personal_document.fields.birth_date`}),e.select({key:`nationality`,label:`documents.personal_document.fields.nationality`,options:`countries`}),e.string({key:`number`,label:`documents.personal_document.fields.number`,rules:{max:50}}),e.string({key:`record_no`,label:`documents.personal_document.fields.record_no`,rules:{max:50}}),e.date({key:`issued`,label:`documents.personal_document.fields.issued`}),e.reminder({key:`expires`,label:`documents.personal_document.fields.expires`,rules:{lead:60}}),e.string({key:`authority`,label:`documents.personal_document.fields.authority`,rules:{max:200}}),e.relation({key:`storage`,label:`documents.personal_document.fields.storage`,options:{library:`things`,shelf:`storage_location`}}),e.string({key:`mrz`,label:`documents.personal_document.fields.mrz`,rules:{max:200}}),e.relation({key:`owner`,label:`documents.personal_document.fields.owner`,options:{library:`people`,shelf:`person`}}),e.image({key:`photos`,label:`documents.personal_document.fields.photos`,multiple:!0}),e.select({key:`type`,label:`core.fields.type`,required:!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`}]}),e.tags({key:`tags`,label:`documents.personal_document.fields.tags`}),e.text({key:`notes`,label:`documents.personal_document.fields.notes`,rules:{max:1e3}})]}),o=n({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
2
|
nationality — ISO alpha-2. variants — given/family name per language (field.keyed by lang: name+surname).`,fields:[e.select({key:`nationality`,label:`documents.person_identity.fields.nationality`,options:`countries`}),e.keyed({key:`variants`,label:`documents.person_identity.fields.variants`,icon:`lucide:languages`,by:e.select({key:`lang`,label:`documents.person_identity.variants.lang`,options:`languages`}),fields:[e.string({key:`name`,label:`documents.person_identity.variants.name`}),e.string({key:`surname`,label:`documents.person_identity.variants.surname`})]})]}),s=r({id:`documents`,version:`1.0.0`,dependsOn:[`people`,`things`],libraries:[{meta:i({id:`documents`,label:`documents.library.label`,icon:`lucide:id-card`,agent:`Personal documents — IDs, passports, licences (personal_document); tracks expiry.`}),shelves:[a]}],extends_:[o]});export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./fields-
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{o as t}from"./shelf-CYFZoY4Y.js";import{t as n}from"./extend-Dz66ZOVA.js";import{n as r,r as i}from"./plugin-q1oOYqt7.js";import{t as a}from"./settings-Dfvzj6n2.js";var o=t({shelf:`medicine`,library:`health`,label:`health.medicine.label`,icon:`lucide:pill`,views:{list:[`type`,`form`,`quantity`]},fields:[e.title({key:`name`,label:`core.fields.name`}),e.image({key:`photo`,label:`health.medicine.fields.photo`}),e.image({key:`photos`,label:`health.medicine.fields.photos`,multiple:!0}),e.text({key:`description`,label:`health.medicine.fields.description`,rules:{max:1e3}}),e.int({key:`quantity`,label:`health.medicine.fields.quantity`,rules:{min:0,max:1e5}}),e.date({key:`quantityCheckedAt`,label:`health.medicine.fields.quantityCheckedAt`}),e.keyed({key:`dose`,label:`health.medicine.fields.dose`,icon:`lucide:pill`,by:e.relation({key:`person`,label:`health.medicine.fields.dose_person`,options:{library:`people`,shelf:`person`}}),fields:[e.perWeekday({key:`value`,label:`health.medicine.fields.dose_value`,rules:{min:0,max:20,step:.5}})]}),e.select({key:`intakeTimes`,label:`health.medicine.fields.intakeTimes`,options:`day-periods`,multiple:!0}),e.period({key:`intakePeriods`,label:`health.medicine.fields.intakePeriods`,multiple:!0}),e.select({key:`type`,label:`core.fields.type`,required:!0,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`}]}),e.select({key:`form`,label:`health.medicine.fields.form`,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`}]}),e.text({key:`notes`,label:`health.medicine.fields.notes`,rules:{max:2e3}})]}),s=t({shelf:`health_visit`,library:`health`,label:`health.health_visit.label`,icon:`lucide:stethoscope`,views:{list:[`date`,`person`,`specialty`]},fields:[e.title({key:`name`,label:`core.fields.name`}),e.text({key:`description`,label:`health.health_visit.fields.description`,rules:{max:1e3}}),e.date({key:`date`,label:`health.health_visit.fields.date`}),e.string({key:`specialist`,label:`health.health_visit.fields.specialist`,rules:{max:200}}),e.string({key:`specialty`,label:`health.health_visit.fields.specialty`,rules:{max:100}}),e.string({key:`clinic`,label:`health.health_visit.fields.clinic`,rules:{max:200}}),e.relation({key:`person`,label:`health.health_visit.fields.person`,options:{library:`people`,shelf:`person`}}),e.text({key:`reason`,label:`health.health_visit.fields.reason`,rules:{max:1e3}}),e.text({key:`result`,label:`health.health_visit.fields.result`,rules:{max:2e3}}),e.text({key:`next_step`,label:`health.health_visit.fields.next_step`,rules:{max:1e3}}),e.money({key:`cost`,label:`health.health_visit.fields.cost`,rules:{defaultCurrency:`UAH`}}),e.image({key:`photos`,label:`health.health_visit.fields.photos`,multiple:!0}),e.file({key:`files`,label:`health.health_visit.fields.files`,multiple:!0}),e.relation({key:`medicines`,label:`health.health_visit.fields.medicines`,options:{library:`health`,shelf:`medicine`},multiple:!0}),e.reminder({key:`nextVisit`,label:`health.health_visit.fields.nextVisit`,rules:{lead:14}}),e.text({key:`notes`,label:`health.health_visit.fields.notes`,rules:{max:2e3}})]}),c=t({shelf:`health_test`,library:`health`,label:`health.health_test.label`,icon:`lucide:flask-conical`,views:{list:[`date`,`person`,`status`]},fields:[e.title({key:`name`,label:`core.fields.name`}),e.text({key:`description`,label:`health.health_test.fields.description`,rules:{max:1e3}}),e.date({key:`date`,label:`health.health_test.fields.date`}),e.string({key:`clinic`,label:`health.health_test.fields.clinic`,rules:{max:200}}),e.select({key:`status`,label:`health.health_test.fields.status`,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`}]}),e.select({key:`test_type`,label:`health.health_test.fields.test_type`,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`}]}),e.relation({key:`person`,label:`health.health_test.fields.person`,options:{library:`people`,shelf:`person`}}),e.text({key:`result`,label:`health.health_test.fields.result`,rules:{max:5e3}}),e.image({key:`attachments`,label:`health.health_test.fields.attachments`,multiple:!0}),e.text({key:`notes`,label:`health.health_test.fields.notes`,rules:{max:2e3}})]}),l=n({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:[e.real({key:`weightKg`,label:`health.person_body.fields.weightKg`,rules:{min:1,max:500}}),e.int({key:`heightCm`,label:`health.person_body.fields.heightCm`,rules:{min:50,max:250}}),e.select({key:`bloodGroup`,label:`health.person_body.fields.bloodGroup`,options:[`O-`,`O+`,`A-`,`A+`,`B-`,`B+`,`AB-`,`AB+`]}),e.string({key:`allergies`,label:`health.person_body.fields.allergies`,multiple:!0})]}),u=[{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`}],d=r({id:`health`,version:`1.0.0`,dependsOn:[`people`],optionLists:[{name:`day-periods`,options:[...u]}],libraries:[{meta:i({id:`health`,label:`health.library.label`,icon:`lucide:hospital`,agent:`Medical tests, doctor visits, and medicines — each linked to a person.`}),shelves:[o,s,c]}],extends_:[l],settings:a({label:`health.settings.label`,fields:[e.string({key:`caldav_calendar`,label:`health.settings.caldav_calendar`}),e.string({key:`caldav_url`,label:`health.settings.caldav_url`}),e.string({key:`caldav_username`,label:`health.settings.caldav_username`}),e.password({key:`caldav_password`,label:`health.settings.caldav_password`}),...u.filter(e=>e.value!==`as_needed`).map(t=>e.time({key:`time_${t.value}`,label:`health.settings.time_${t.value}`,rules:{granularity:`minute`}}))]})});export{d as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,r as t,t as n}from"./src-skK-v7r6.js";export{e as default,n as fin,t as iban};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./fields-
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{o as t}from"./shelf-CYFZoY4Y.js";import{n,r}from"./plugin-q1oOYqt7.js";var i=t({shelf:`person`,library:`people`,label:`people.person.label`,icon:`lucide:user`,claude:`A person card. fullName — the full name (first + last), used as the title.`,views:{inline:[`logo`,`fullName`],list:[`birthDate`],select:{icon:`logo`,title:`fullName`,subtitle:`birthDate`}},fields:[e.avatar({key:`logo`,label:`people.person.fields.logo`,role:`avatar`}),e.title({key:`fullName`,label:`people.person.fields.fullName`,required:!0}),e.text({key:`description`,label:`people.person.fields.description`,rules:{max:500}}),e.date({key:`birthDate`,label:`people.person.fields.birthDate`,rules:{min:`1900-01-01`,max:`today`}}),e.select({key:`sex`,label:`people.person.fields.sex`,options:`sex`}),e.tel({key:`phone`,label:`people.person.fields.phone`}),e.email({key:`email`,label:`people.person.fields.email`}),e.text({key:`address`,label:`people.person.fields.address`,rules:{max:300}}),e.string({key:`occupation`,label:`people.person.fields.occupation`,rules:{max:200}}),e.image({key:`photos`,label:`people.person.fields.photos`,multiple:!0}),e.tags({key:`tags`,label:`people.person.fields.tags`}),e.text({key:`notes`,label:`people.person.fields.notes`,rules:{max:1e3}})]}),a=n({id:`people`,version:`1.0.0`,dependsOn:[],libraries:[{meta:r({id:`people`,label:`people.library.label`,icon:`lucide:users`,agent:`People (person) — contacts, birthdays, jobs; referenced by health, travel, and others.`}),shelves:[i]}]});export{a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./fields-
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{n as t}from"./plugin-q1oOYqt7.js";import{t as n}from"./settings-Dfvzj6n2.js";var r=t({id:`webchat`,version:`1.0.0`,dependsOn:[`orchestrator`],settings:n({label:`webchat.settings.label`,fields:[e.select({key:`reasoning_display`,label:`webchat.settings.reasoning_display`,default:`live`,options:[{value:`live`,title:`webchat.settings.reasoning_display_live`},{value:`off`,title:`webchat.settings.reasoning_display_off`}]})]})});export{r as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./fields-CdNaYlSV.js";import{o as t}from"./shelf-CYFZoY4Y.js";import{n,r}from"./plugin-q1oOYqt7.js";var i=(e,t)=>(e??[]).reduce((e,n)=>{let r=n?.[t];return e+(Number(r&&typeof r==`object`?r.value:r)||0)},0),a=e=>e&&typeof e==`object`?e.unit??null:null,o=()=>e.select({options:`cooking`,value:({record:e})=>a(e.quantity)}),s=(e,t)=>(e??[]).map(e=>e?.[t]==null?``:String(e[t])).filter(e=>e!==``).sort()[0]??null,c=t({shelf:`food_item`,library:`kitchen`,label:`kitchen.food_item.label`,icon:`lucide:soup`,views:{list:[`subcategory`,`quantity`,`expires`]},fields:[e.title({key:`name`,label:`core.fields.name`}),e.avatar({key:`logo`,label:`kitchen.food_item.fields.logo`,role:`avatar`}),e.image({key:`photos`,label:`kitchen.food_item.fields.photos`,multiple:!0}),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},parts:{value:e.real({key:`value`,value:({record:e})=>i(e.variants,`quantity`)})}}),e.measured({key:`minQuantity`,label:`kitchen.food_item.fields.minQuantity`,options:`cooking`,rules:{min:0},parts:{unit:o()}}),e.reminder({key:`expires`,label:`kitchen.food_item.fields.expires`,rules:{lead:14},value:({record:e})=>s(e.variants,`expires`)}),e.table({key:`variants`,label:`kitchen.food_item.fields.variants`,icon:`lucide:package`,fields:[e.string({key:`name`,label:`kitchen.food_item.variant.name`,rules:{max:200}}),e.measured({key:`quantity`,label:`kitchen.food_item.variant.quantity`,options:`cooking`,rules:{min:0},parts:{unit:o()}}),e.reminder({key:`expires`,label:`kitchen.food_item.variant.expires`,rules:{lead:14}}),e.relation({key:`location`,label:`kitchen.food_item.variant.location`,options:{library:`things`,shelf:`storage_location`}}),e.link({key:`shops`,label:`kitchen.food_item.variant.shops`,multiple:!0}),e.image({key:`photo`,label:`kitchen.food_item.variant.photo`})]}),e.tags({key:`tags`,label:`kitchen.food_item.fields.tags`}),e.text({key:`notes`,label:`kitchen.food_item.fields.notes`,rules:{max:2e3}})]}),l=async({ref:e})=>{let t=(await e?.(`product`))?.quantity;return t&&typeof t==`object`?t.unit??null:null},u=e=>{let t=e?.value;return typeof t==`number`&&Number.isFinite(t)?t:null},d=async({ref:e})=>(await e?.(`product`))?.quantity??null,f=t({shelf:`food_recipe`,library:`kitchen`,label:`kitchen.food_recipe.label`,icon:`lucide:clipboard-list`,views:{list:[`category`,`description`,`prep_time`,`cook_time`]},fields:[e.title({key:`name`,label:`core.fields.name`}),e.image({key:`images`,label:`kitchen.food_recipe.fields.images`,multiple:!0}),e.text({key:`description`,label:`kitchen.food_recipe.fields.description`,rules:{max:500}}),e.int({key:`servings`,label:`kitchen.food_recipe.fields.servings`,rules:{min:1,max:100}}),e.select({key:`difficulty`,label:`kitchen.food_recipe.fields.difficulty`,options:[{value:`easy`,title:`kitchen.food_recipe.options.difficulty.easy`},{value:`medium`,title:`kitchen.food_recipe.options.difficulty.medium`},{value:`hard`,title:`kitchen.food_recipe.options.difficulty.hard`}]}),e.select({key:`category`,label:`kitchen.food_recipe.fields.category`,multiple:!0,options:[{value:`first`,title:`kitchen.food_recipe.options.category.first`},{value:`main`,title:`kitchen.food_recipe.options.category.main`},{value:`salad`,title:`kitchen.food_recipe.options.category.salad`},{value:`appetizer`,title:`kitchen.food_recipe.options.category.appetizer`},{value:`side`,title:`kitchen.food_recipe.options.category.side`},{value:`dessert`,title:`kitchen.food_recipe.options.category.dessert`},{value:`drink`,title:`kitchen.food_recipe.options.category.drink`},{value:`sauce`,title:`kitchen.food_recipe.options.category.sauce`}]}),e.tags({key:`tags`,label:`kitchen.food_recipe.fields.tags`}),e.duration({key:`prep_time`,label:`kitchen.food_recipe.fields.prep_time`}),e.duration({key:`cook_time`,label:`kitchen.food_recipe.fields.cook_time`}),e.table({key:`ingredients`,label:`kitchen.food_recipe.fields.ingredients`,icon:`lucide:carrot`,rules:{unique:[`product`]},fields:[e.relation({key:`product`,label:`kitchen.food_recipe.ingredient.product`,options:{library:`kitchen`,shelf:`food_item`}}),e.measured({key:`amount`,label:`kitchen.food_recipe.ingredient.amount`,options:`cooking`,rules:{min:0},parts:{unit:e.select({options:`cooking`,value:l})}}),e.boolean({key:`optional`,label:`kitchen.food_recipe.ingredient.optional`}),e.measured({key:`stock`,label:`kitchen.food_recipe.ingredient.stock`,options:`cooking`,store:!1,value:d}),e.select({key:`stock_state`,label:`kitchen.food_recipe.ingredient.stock_state`,options:[{value:`enough`,title:`kitchen.food_recipe.options.stock_state.enough`,icon:{kind:`icon`,value:`lucide:check`}},{value:`partial`,title:`kitchen.food_recipe.options.stock_state.partial`,icon:{kind:`icon`,value:`lucide:minus`}},{value:`missing`,title:`kitchen.food_recipe.options.stock_state.missing`,icon:{kind:`icon`,value:`lucide:x`}}],store:!1,value:async e=>{let t=u(await d(e));if(t==null)return null;let n=u(e.parent?.amount);return n==null?t>0?null:`missing`:t>=n?`enough`:t>0?`partial`:`missing`}})]}),e.table({key:`ingredients_free`,label:`kitchen.food_recipe.fields.ingredients_free`,icon:`lucide:list`,rules:{unique:[`product`]},fields:[e.string({key:`product`,label:`kitchen.food_recipe.ingredient_free.product`,rules:{max:200}}),e.unit({key:`unit`,label:`kitchen.food_recipe.ingredient_free.unit`,options:`cooking`}),e.amount({key:`amount`,label:`kitchen.food_recipe.ingredient_free.amount`,unitFrom:`unit`,rules:{min:0}}),e.boolean({key:`optional`,label:`kitchen.food_recipe.ingredient_free.optional`})]}),e.markdown({key:`steps`,label:`kitchen.food_recipe.fields.steps`,rules:{max:5e3}}),e.text({key:`notes`,label:`kitchen.food_recipe.fields.notes`,rules:{max:1e3}})]}),p=t({shelf:`preferences`,library:`kitchen`,label:`kitchen.preferences.label`,icon:`lucide:notebook-pen`,single:!0,claude:`One record. The household food habits, diets and allergies; where groceries are bought, what is bought there and in what volumes; which kitchen appliances exist and which do not. Read it before suggesting recipes, building a shopping list, or planning a menu. An appliance listed as absent is a fact, not a gap — do not propose recipes that need it.`,fields:[e.markdown({key:`preferences`,label:`kitchen.preferences.fields.preferences`,rules:{max:1e4}}),e.markdown({key:`shops`,label:`kitchen.preferences.fields.shops`,rules:{max:1e4}}),e.markdown({key:`equipment`,label:`kitchen.preferences.fields.equipment`,rules:{max:1e4}}),e.text({key:`notes`,label:`kitchen.preferences.fields.notes`,rules:{max:1e4}})]}),m=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:[c,f,p]}],fieldContribs:[{library:`things`,shelf:`item`,field:`type`,options:[{value:`kitchenware`,title:`kitchen.contrib.type.kitchenware`}]}]});export{m as default};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{A as e,O as t,U as n,_ as r,i,t as a}from"./fields-CdNaYlSV.js";import{o}from"./shelf-CYFZoY4Y.js";import{t as s}from"./extend-Dz66ZOVA.js";import{n as c,r as l}from"./plugin-q1oOYqt7.js";import{t as u}from"./settings-Dfvzj6n2.js";var d=/^[A-Za-z]{2}\d{2}[A-Za-z0-9]{11,30}$/;function f(e){let t=e.toUpperCase().replace(/\s+/g,``),n=t.slice(4)+t.slice(0,4),r=``;for(let e of n){let t=e.charCodeAt(0);t>=65&&t<=90?r+=(t-55).toString():r+=e}let i=0;for(let e of r)i=(i*10+(e.charCodeAt(0)-48))%97;return i===1}function p(i){let o=i.required??!1,s=n().regex(d,{message:e(`pattern`,{messageKey:`core.presets.iban`})}).refine(f,{message:e(`pattern`,{messageKey:`core.presets.iban`})});return r(i,a({kind:`text`,label:i.label??``,required:o,prim:`text`,column:`text`,hints:{mask:`iban`,maskStore:`unmasked`},zod:t(s,o)},i.multiple??!1))}var m=/^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;function h(i){let o=i.required??!1,s=n().regex(m,{message:e(`pattern`,{messageKey:`finance.presets.bic`})});return r(i,a({kind:`text`,label:i.label??``,required:o,prim:`text`,column:`text`,hints:{},zod:t(s,o)},i.multiple??!1))}var g=o({shelf:`account`,library:`finance`,label:`finance.account.label`,icon:`lucide:landmark`,claude:`Firefly III account (read-only mirror). kind — account type.
|
|
2
|
+
current_balance — current balance. firefly_id — external key (do not edit).`,views:{list:[`kind`,`currency`,`current_balance`]},fields:[i.title({key:`name`,label:`core.fields.name`}),i.text({key:`description`,label:`finance.account.fields.description`,rules:{max:1e3}}),i.sheet({fields:[[i.select({key:`kind`,label:`finance.account.fields.kind`,options:[{value:`asset`,title:`finance.account.options.asset`},{value:`expense`,title:`finance.account.options.expense`},{value:`revenue`,title:`finance.account.options.revenue`},{value:`liability`,title:`finance.account.options.liability`},{value:`cash`,title:`finance.account.options.cash`}]}),i.string({key:`currency`,label:`finance.account.fields.currency`,rules:{max:3}})],[i.money({key:`current_balance`,label:`finance.account.fields.current_balance`}),p({key:`iban`,label:`finance.account.fields.iban`})],[i.string({key:`bank`,label:`finance.account.fields.bank`,rules:{max:120}}),h({key:`bic`,label:`finance.account.fields.bic`})]]}),i.string({key:`firefly_id`,label:`finance.account.fields.firefly_id`,rules:{max:32}}),i.text({key:`notes`,label:`finance.account.fields.notes`,rules:{max:2e3}})]}),_=o({shelf:`transaction`,library:`finance`,label:`finance.transaction.label`,icon:`lucide:arrow-left-right`,claude:`Firefly III transaction (read-only). Each split = a separate record.
|
|
3
|
+
source/destination — accounts. firefly_id — split journal id (do not edit).`,views:{list:[`date`,`amount`,`kind`]},fields:[i.title({key:`description`,label:`finance.transaction.fields.description`}),i.sheet({fields:[[i.date({key:`date`,label:`finance.transaction.fields.date`}),i.money({key:`amount`,label:`finance.transaction.fields.amount`})],[i.select({key:`kind`,label:`finance.transaction.fields.kind`,options:[{value:`withdrawal`,title:`finance.transaction.options.withdrawal`},{value:`deposit`,title:`finance.transaction.options.deposit`},{value:`transfer`,title:`finance.transaction.options.transfer`}]}),i.string({key:`category`,label:`finance.transaction.fields.category`,rules:{max:100}})],[i.relation({key:`source`,label:`finance.transaction.fields.source`,options:{library:`finance`,shelf:`account`}}),i.relation({key:`destination`,label:`finance.transaction.fields.destination`,options:{library:`finance`,shelf:`account`}})]]}),i.string({key:`firefly_id`,label:`finance.transaction.fields.firefly_id`,rules:{max:32}}),i.text({key:`notes`,label:`finance.transaction.fields.notes`,rules:{max:2e3}})]}),v=o({shelf:`bill`,library:`finance`,label:`finance.bill.label`,icon:`lucide:receipt`,claude:`Recurring Firefly III payment (Bill = subscription, read-only).
|
|
4
|
+
repeat — recurrence. next_expected — next expected date. firefly_id — do not edit.`,views:{list:[`amount_min`,`repeat`,`next_expected`,`active`]},fields:[i.title({key:`name`,label:`core.fields.name`}),i.text({key:`description`,label:`finance.bill.fields.description`,rules:{max:1e3}}),i.sheet({fields:[[i.money({key:`amount_min`,label:`finance.bill.fields.amount_min`}),i.money({key:`amount_max`,label:`finance.bill.fields.amount_max`})],[i.select({key:`repeat`,label:`finance.bill.fields.repeat`,options:[{value:`weekly`,title:`finance.bill.options.weekly`},{value:`monthly`,title:`finance.bill.options.monthly`},{value:`quarterly`,title:`finance.bill.options.quarterly`},{value:`yearly`,title:`finance.bill.options.yearly`}]}),i.date({key:`next_expected`,label:`finance.bill.fields.next_expected`})]]}),i.boolean({key:`active`,label:`finance.bill.fields.active`}),i.string({key:`firefly_id`,label:`finance.bill.fields.firefly_id`,rules:{max:32}}),i.text({key:`notes`,label:`finance.bill.fields.notes`,rules:{max:2e3}})]}),y=s({id:`item_financing`,label:`finance.item_financing.label`,icon:`lucide:credit-card`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{paymentStatus:{$in:[`installment`,`credit`]}},claude:`Installment/credit details for an item. creditor — who is owed (bank/store).
|
|
5
|
+
holder — which person the debt is registered to (relation people/person).
|
|
6
|
+
total — full debt amount. monthly — monthly payment. termMonths/paidMonths — schedule.
|
|
7
|
+
remaining — how much is left (manual). nextPayment — payment reminder. paidOff — settled.`,fields:[i.string({key:`creditor`,label:`finance.item_financing.fields.creditor`,rules:{max:120}}),i.relation({key:`holder`,label:`finance.item_financing.fields.holder`,options:{library:`people`,shelf:`person`}}),i.sheet({fields:[[i.money({key:`total`,label:`finance.item_financing.fields.total`,rules:{defaultCurrency:`UAH`}}),i.money({key:`downPayment`,label:`finance.item_financing.fields.downPayment`,rules:{defaultCurrency:`UAH`}})],[i.money({key:`monthly`,label:`finance.item_financing.fields.monthly`,rules:{defaultCurrency:`UAH`}}),i.money({key:`remaining`,label:`finance.item_financing.fields.remaining`,rules:{defaultCurrency:`UAH`}})],[i.int({key:`termMonths`,label:`finance.item_financing.fields.termMonths`,rules:{min:0}}),i.int({key:`paidMonths`,label:`finance.item_financing.fields.paidMonths`,rules:{min:0}}),i.real({key:`rate`,label:`finance.item_financing.fields.rate`,rules:{min:0}})]]}),i.date({key:`startDate`,label:`finance.item_financing.fields.startDate`}),i.reminder({key:`nextPayment`,label:`finance.item_financing.fields.nextPayment`,rules:{lead:3}}),i.boolean({key:`paidOff`,label:`finance.item_financing.fields.paidOff`}),i.text({key:`notes`,label:`finance.item_financing.fields.notes`,rules:{max:2e3}})]}),b={iban:p},x=c({id:`finance`,version:`1.0.0`,dependsOn:[`things`,`people`],libraries:[{meta:l({id:`finance`,label:`finance.library.label`,icon:`lucide:wallet`,agent:`Bank accounts, bills, and transactions — mirrored from Firefly.`}),shelves:[g,_,v]}],extends_:[y],settings:u({label:`finance.settings.label`,fields:[i.string({key:`firefly_url`,label:`finance.settings.firefly_url`,required:!0}),i.password({key:`token`,label:`finance.settings.token`,required:!0}),i.button({label:`finance.settings.test_button`,value:`finance.testConnection`,icon:`lucide:wifi`}),i.button({label:`finance.settings.sync_button`,value:`finance.sync`,icon:`lucide:refresh-cw`}),i.file({key:`wise_csv`,label:`finance.settings.wise_csv`}),i.relation({key:`wise_account`,label:`finance.settings.wise_account`,options:{library:`finance`,shelf:`account`}}),i.button({label:`finance.settings.wise_import_button`,value:`finance.importWise`,icon:`lucide:upload`})]})});export{x as n,p as r,b as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GeoMap-DOMXVIzU.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-BskHO5hY.js","assets/GeoMap-vh-t_kPv.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{f as r,l as i,r as a,t as o}from"./react-vendor-BskHO5hY.js";import{r as s,t as c}from"./x-CzSVfh-E.js";import{s as l}from"./input-group-Cp9n2MAA.js";import{i as u,l as d}from"./Icon-BumJSRVW.js";import"./shared-53AEUTK1.js";import{a as f,o as p}from"./chrome-Drri9yIC.js";import{T as m}from"./fields-CdNaYlSV.js";import{c as h,r as g}from"./shelf-CYFZoY4Y.js";import"./src-BGRdBpoy.js";import{n as _}from"./plugin-ui-CKd6q8ec.js";import{t as v}from"./button-DaYjtbcx.js";import{t as y}from"./dispatch-Dn_1ZBIw.js";var b=s(`locate-fixed`,[[`line`,{x1:`2`,x2:`5`,y1:`12`,y2:`12`,key:`bvdh0s`}],[`line`,{x1:`19`,x2:`22`,y1:`12`,y2:`12`,key:`1tbv5k`}],[`line`,{x1:`12`,x2:`12`,y1:`2`,y2:`5`,key:`11lu5j`}],[`line`,{x1:`12`,x2:`12`,y1:`19`,y2:`22`,key:`x3vr5v`}],[`circle`,{cx:`12`,cy:`12`,r:`7`,key:`fim9np`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),x=e(t(),1);function S(e,t){return Math.floor((e+180)/360*2**t)}function C(e,t){let n=e*Math.PI/180;return Math.floor((1-Math.log(Math.tan(n)+1/Math.cos(n))/Math.PI)/2*2**t)}function w(e,t,n=13){return`https://tile.openstreetmap.org/${n}/${S(t,n)}/${C(e,n)}.png`}function T(e){let t=m(e.parts??[]);return{latKey:t.lat??`lat`,lngKey:t.lng??`lng`,labelKey:t.label??`label`}}function E(e,t){let{latKey:n,lngKey:r,labelKey:i}=T(t),a=e&&typeof e==`object`?e:(()=>{try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:null}catch{return null}})();return a?{lat:a[n],lng:a[r],label:a[i]}:{}}var D=e=>Number(e.toFixed(6)),O=(e,t)=>{if(e.lat==null&&e.lng==null&&!e.label)return``;let{latKey:n,lngKey:r,labelKey:i}=T(t);return{[n]:e.lat,[r]:e.lng,[i]:e.label}},k=o(),A=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-geo/src/geo-field.tsx`,j=(0,x.lazy)(()=>r(()=>import(`./GeoMap-DOMXVIzU.js`),__vite__mapDeps([0,1,2,3,4])));function M({g:e,onOpen:t}){let{t:r}=n();return e.lat==null||e.lng==null?(0,k.jsxDEV)(`button`,{type:`button`,onClick:t,className:`flex h-24 w-full items-center justify-center gap-1.5 rounded-lg border border-dashed border-border text-sm text-muted hover:border-accent`,children:[(0,k.jsxDEV)(d,{size:16},void 0,!1,{fileName:A,lineNumber:24,columnNumber:9},this),` `,r(`geo.pick`)]},void 0,!0,{fileName:A,lineNumber:19,columnNumber:7},this):(0,k.jsxDEV)(`button`,{type:`button`,onClick:t,title:e.label??`${e.lat}, ${e.lng}`,className:`relative block h-24 w-full overflow-hidden rounded-lg border border-border hover:border-accent`,children:[(0,k.jsxDEV)(`img`,{src:w(e.lat,e.lng),alt:``,loading:`lazy`,className:`h-full w-full object-cover`},void 0,!1,{fileName:A,lineNumber:35,columnNumber:7},this),(0,k.jsxDEV)(d,{size:22,fill:`currentColor`,className:`pointer-events-none absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-full text-danger drop-shadow`},void 0,!1,{fileName:A,lineNumber:36,columnNumber:7},this)]},void 0,!0,{fileName:A,lineNumber:29,columnNumber:5},this)}function N({field:e,value:t,onChange:r,editable:i,onClose:a}){let{t:o}=n(),[s,d]=(0,x.useState)(()=>E(t,e)),[f,p]=(0,x.useState)(``),[m,h]=(0,x.useState)(!1),g=e=>d(e),_=e=>e===``?void 0:Number(e),y=e.parts?.find(e=>e.role===`lat`),S=e.parts?.find(e=>e.role===`lng`),C=y!=null&&y.mode!==`stored`||S!=null&&S.mode!==`stored`,w=e.parts?.find(e=>e.role===`label`),T=w!=null&&w.mode!==`stored`,M=i&&!C,N=(0,x.useRef)(s);N.current=s;let P=(0,x.useCallback)(()=>a(),[a]),F=(0,x.useCallback)(()=>{r?.(O(N.current,e)),a()},[r,a,e]);(0,x.useEffect)(()=>{let e=e=>{e.key===`Escape`&&P()};return document.addEventListener(`keydown`,e),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=``}},[P]);function I(){navigator.geolocation&&navigator.geolocation.getCurrentPosition(e=>g({...s,lat:D(e.coords.latitude),lng:D(e.coords.longitude)}),()=>{},{enableHighAccuracy:!0})}async function L(){if(f.trim()){h(!0);try{let e=await(await fetch(`https://nominatim.openstreetmap.org/search?format=json&limit=1&q=${encodeURIComponent(f)}`)).json();Array.isArray(e)&&e[0]&&g({lat:D(+e[0].lat),lng:D(+e[0].lon),label:s.label||e[0].display_name})}catch{}h(!1)}}return(0,k.jsxDEV)(`div`,{className:`fixed inset-0 z-[100] flex items-center justify-center bg-black/85 p-4 backdrop-blur-sm`,onClick:P,children:(0,k.jsxDEV)(`div`,{className:`flex max-h-[92dvh] w-full max-w-3xl flex-col gap-2 rounded-xl bg-bg p-3`,onClick:e=>e.stopPropagation(),children:[(0,k.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[M&&(0,k.jsxDEV)(k.Fragment,{children:[(0,k.jsxDEV)(l,{placeholder:o(`geo.searchPlaceholder`),value:f,onChange:e=>p(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),L())},className:`flex-1`},void 0,!1,{fileName:A,lineNumber:136,columnNumber:15},this),(0,k.jsxDEV)(v,{type:`button`,variant:`secondary`,size:`icon`,disabled:m,onClick:L,title:o(`geo.search`),children:(0,k.jsxDEV)(u,{size:16},void 0,!1,{fileName:A,lineNumber:156,columnNumber:17},this)},void 0,!1,{fileName:A,lineNumber:148,columnNumber:15},this),(0,k.jsxDEV)(v,{type:`button`,variant:`secondary`,size:`icon`,onClick:I,title:o(`geo.myLocation`),children:(0,k.jsxDEV)(b,{size:16},void 0,!1,{fileName:A,lineNumber:159,columnNumber:17},this)},void 0,!1,{fileName:A,lineNumber:158,columnNumber:15},this)]},void 0,!0,{fileName:A,lineNumber:135,columnNumber:13},this),(0,k.jsxDEV)(v,{type:`button`,variant:`ghost`,size:`icon`,onClick:P,className:`ml-auto`,children:(0,k.jsxDEV)(c,{size:18},void 0,!1,{fileName:A,lineNumber:164,columnNumber:13},this)},void 0,!1,{fileName:A,lineNumber:163,columnNumber:11},this)]},void 0,!0,{fileName:A,lineNumber:133,columnNumber:9},this),(0,k.jsxDEV)(x.Suspense,{fallback:(0,k.jsxDEV)(`div`,{className:`h-[60dvh] rounded-lg border border-border bg-surface/40`},void 0,!1,{fileName:A,lineNumber:167,columnNumber:29},this),children:(0,k.jsxDEV)(`div`,{className:`[&>div]:h-[60dvh]`,children:(0,k.jsxDEV)(j,{lat:s.lat,lng:s.lng,interactive:M,onPick:M?(e,t)=>g({...s,lat:e,lng:t}):void 0},void 0,!1,{fileName:A,lineNumber:169,columnNumber:13},this)},void 0,!1,{fileName:A,lineNumber:168,columnNumber:11},this)},void 0,!1,{fileName:A,lineNumber:167,columnNumber:9},this),i?(0,k.jsxDEV)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center`,children:[(0,k.jsxDEV)(`div`,{className:`grid flex-1 grid-cols-1 gap-2 sm:grid-cols-[7rem_7rem_1fr]`,children:[C?(0,k.jsxDEV)(`div`,{className:`flex h-9 items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:s.lat??`—`},void 0,!1,{fileName:A,lineNumber:182,columnNumber:17},this):(0,k.jsxDEV)(l,{type:`number`,step:`any`,placeholder:`lat`,value:s.lat??``,onChange:e=>g({...s,lat:_(e.target.value)})},void 0,!1,{fileName:A,lineNumber:186,columnNumber:17},this),C?(0,k.jsxDEV)(`div`,{className:`flex h-9 items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:s.lng??`—`},void 0,!1,{fileName:A,lineNumber:195,columnNumber:17},this):(0,k.jsxDEV)(l,{type:`number`,step:`any`,placeholder:`lng`,value:s.lng??``,onChange:e=>g({...s,lng:_(e.target.value)})},void 0,!1,{fileName:A,lineNumber:199,columnNumber:17},this),T?(0,k.jsxDEV)(`div`,{className:`flex h-9 items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:s.label??`—`},void 0,!1,{fileName:A,lineNumber:208,columnNumber:17},this):(0,k.jsxDEV)(l,{placeholder:o(`geo.label`),value:s.label??``,onChange:e=>g({...s,label:e.target.value||void 0})},void 0,!1,{fileName:A,lineNumber:212,columnNumber:17},this)]},void 0,!0,{fileName:A,lineNumber:180,columnNumber:13},this),(0,k.jsxDEV)(v,{type:`button`,onClick:F,className:`sm:self-auto`,children:o(`actions.save`)},void 0,!1,{fileName:A,lineNumber:219,columnNumber:13},this)]},void 0,!0,{fileName:A,lineNumber:178,columnNumber:11},this):s.lat!=null&&s.lng!=null&&(0,k.jsxDEV)(`a`,{className:`text-sm text-accent hover:underline`,target:`_blank`,rel:`noreferrer`,href:`https://www.openstreetmap.org/?mlat=${s.lat}&mlon=${s.lng}#map=15/${s.lat}/${s.lng}`,children:s.label??`${s.lat.toFixed(5)}, ${s.lng?.toFixed(5)}`},void 0,!1,{fileName:A,lineNumber:226,columnNumber:13},this)]},void 0,!0,{fileName:A,lineNumber:129,columnNumber:7},this)},void 0,!1,{fileName:A,lineNumber:125,columnNumber:5},this)}function P({field:e,value:t,onChange:n,editable:r}){let i=(0,x.useMemo)(()=>E(t,e),[t,e]),[a,o]=(0,x.useState)(!1);return(0,k.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,k.jsxDEV)(M,{g:i,onOpen:()=>o(!0)},void 0,!1,{fileName:A,lineNumber:256,columnNumber:7},this),i.label&&(0,k.jsxDEV)(`span`,{className:`truncate text-xs text-muted`,children:i.label},void 0,!1,{fileName:A,lineNumber:257,columnNumber:19},this),a&&(0,k.jsxDEV)(N,{field:e,value:t,onChange:n,editable:r,onClose:()=>o(!1)},void 0,!1,{fileName:A,lineNumber:259,columnNumber:9},this)]},void 0,!0,{fileName:A,lineNumber:255,columnNumber:5},this)}function F(e){let t=!!e.onChange&&!(e.field.hints.noEditControl===!0&&e.mode===`view`),n=(0,k.jsxDEV)(P,{field:e.field,value:e.value,onChange:t=>e.onChange?.(t),editable:t},void 0,!1,{fileName:A,lineNumber:267,columnNumber:16},this);return e.bare?n:(0,k.jsxDEV)(`div`,{className:`group/field w-56`,children:[e.label!==void 0&&(0,k.jsxDEV)(p,{label:e.label,required:e.required},void 0,!1,{fileName:A,lineNumber:271,columnNumber:33},this),n,(0,k.jsxDEV)(f,{error:e.error},void 0,!1,{fileName:A,lineNumber:273,columnNumber:7},this)]},void 0,!0,{fileName:A,lineNumber:270,columnNumber:5},this)}function I({value:e,field:t}){let n=E(e,t);return(0,k.jsxDEV)(`span`,{className:`truncate`,children:n.label??(n.lat==null?`—`:`${n.lat.toFixed(3)}, ${n.lng?.toFixed(3)}`)},void 0,!1,{fileName:A,lineNumber:281,columnNumber:5},this)}var L={kinds:[`geo`],Page:F,Inline:I};function R(e,t){let n=h(e.fields);return t.filter(e=>n[e]?.kind===`geo`)}function z(e,t){let n=R(e,t);return n.length===1?n[0]:null}function B(e,t){let n=h(e.fields),r=t[0];if(!r||!n[r])return`views.list: shelf has no text field for its title (titleKey fell back to "id")`;let i=R(e,t);return i.length===0?`views.list does not contain a kind:"geo" field`:i.length>1?`views.list contains multiple geo fields: ${i.join(`, `)}`:null}var V=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-geo/src/map-view.tsx`,H=(0,x.lazy)(()=>r(()=>import(`./GeoMap-DOMXVIzU.js`).then(e=>({default:e.MarkersMap})),__vite__mapDeps([0,1,2,3,4])));function U({rows:e,shelf:t,keys:r,hrefBase:o}){let{t:s}=n(),c=i(),[l,u]=(0,x.useState)(!1),d=h(t.fields),f=z(t,r),p=r[0],{points:m,without:_}=(0,x.useMemo)(()=>{let t=[],n=[];for(let r of e){let e=f?g(d[f],f,r):void 0;e&&typeof e.lat==`number`&&typeof e.lng==`number`?t.push({id:String(r.id),lat:e.lat,lng:e.lng,title:String(g(d[p],p,r)??r.id)}):n.push(r)}return{points:t,without:n}},[e,f,p,d]);return(0,k.jsxDEV)(`div`,{className:`p-4`,children:[(0,k.jsxDEV)(x.Suspense,{fallback:(0,k.jsxDEV)(`div`,{className:`h-64 rounded-lg border border-border`},void 0,!1,{fileName:V,lineNumber:48,columnNumber:27},this),children:(0,k.jsxDEV)(H,{points:m,onPick:e=>c(`${o}/${e}`)},void 0,!1,{fileName:V,lineNumber:49,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:48,columnNumber:7},this),_.length>0&&(0,k.jsxDEV)(`div`,{className:`mt-3`,children:[(0,k.jsxDEV)(`button`,{type:`button`,onClick:()=>u(e=>!e),className:`text-sm text-muted hover:text-text transition-colors`,children:s(`geo.withoutCoords`,{count:_.length})},void 0,!1,{fileName:V,lineNumber:53,columnNumber:11},this),l&&(0,k.jsxDEV)(`ul`,{className:`mt-2 flex flex-col gap-1`,children:_.map(e=>(0,k.jsxDEV)(`li`,{children:(0,k.jsxDEV)(a,{to:`${o}/${e.id}`,className:`text-sm text-text hover:text-accent`,children:(0,k.jsxDEV)(y,{field:d[p],value:g(d[p],p,e)},void 0,!1,{fileName:V,lineNumber:65,columnNumber:21},this)},void 0,!1,{fileName:V,lineNumber:64,columnNumber:19},this)},String(e.id),!1,{fileName:V,lineNumber:63,columnNumber:17},this))},void 0,!1,{fileName:V,lineNumber:61,columnNumber:13},this)]},void 0,!0,{fileName:V,lineNumber:52,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:47,columnNumber:5},this)}var W=_({renderers:[L],listViews:[{kind:`map`,View:U,check:B}],translations:{uk:{geo:{searchPlaceholder:`Пошук адреси…`,search:`Знайти`,myLocation:`Моє місцеположення`,label:`Підпис`,pick:`Обрати місце`,withoutCoords:`Без координат: {{count}}`}},ru:{geo:{searchPlaceholder:`Поиск адреса…`,search:`Найти`,myLocation:`Моё местоположение`,label:`Подпись`,pick:`Выбрать место`,withoutCoords:`Без координат: {{count}}`}},en:{geo:{searchPlaceholder:`Search address…`,search:`Search`,myLocation:`My location`,label:`Label`,pick:`Pick location`,withoutCoords:`Without coordinates: {{count}}`}}}});export{W as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NoMac-DLu311Th.js","assets/react-vendor-BskHO5hY.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/ScanSummary-CtIkC51I.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t}from"./i18n-vendor-T6EnJ_TL.js";import{f as n,t as r}from"./react-vendor-BskHO5hY.js";import{s as i}from"./input-group-Cp9n2MAA.js";import{C as a,D as o,E as s,T as c,b as l,r as u,w as d,x as f}from"./shared-
|
|
2
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t}from"./i18n-vendor-T6EnJ_TL.js";import{f as n,t as r}from"./react-vendor-BskHO5hY.js";import{s as i}from"./input-group-Cp9n2MAA.js";import{C as a,D as o,E as s,T as c,b as l,r as u,w as d,x as f}from"./shared-53AEUTK1.js";import{g as p}from"./chrome-Drri9yIC.js";import"./src-BGRdBpoy.js";import{n as m}from"./plugin-ui-CKd6q8ec.js";import{t as h}from"./field-frame-p-0aFlK2.js";import{a as g,c as _,n as v,o as y,t as b}from"./data-size-Byck_i1v.js";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:a}){let o=(0,x.useMemo)(()=>{try{return JSON.parse(e)}catch{return null}},[e]),[s,c]=(0,x.useState)(o?r(o):e??``);(0,x.useEffect)(()=>{c(o?r(o):e||``)},[e,o]);let l=e=>{let r=e.trim(),i=n(r);t(i?JSON.stringify(i):r)};return(0,E.jsxDEV)(i,{value:s,placeholder:a,onChange:e=>c(e.target.value),onBlur:()=>l(s),onKeyDown:e=>{e.key===`Enter`&&l(s)}},void 0,!1,{fileName:D,lineNumber:51,columnNumber:5},this)}function k(e,t){return(0,E.jsxDEV)(f,{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)(h,{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)(l,{},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)(i,{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)(h,{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)(l,{},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)(i,{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=_(e),l=t===``?``:Number(t),[u,f]=(0,x.useState)(()=>l!==``&&Number(l)>0?v(Number(l),r)[0]:e.hints.unit??`GB`),p=g(r,u),m=l===``?``:Number((Number(l)/p).toFixed(4)),h=e=>Math.round(e*p);return(0,E.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,E.jsxDEV)(i,{type:`number`,className:`flex-1 min-w-0`,min:0,value:m,onChange:e=>n(e.target.value===``?``:String(h(Number(e.target.value))))},void 0,!1,{fileName:D,lineNumber:256,columnNumber:7},this),(0,E.jsxDEV)(a,{value:u,onValueChange:f,children:[(0,E.jsxDEV)(s,{className:`w-24`,children:(0,E.jsxDEV)(o,{},void 0,!1,{fileName:D,lineNumber:265,columnNumber:11},this)},void 0,!1,{fileName:D,lineNumber:264,columnNumber:9},this),(0,E.jsxDEV)(d,{children:b[r].map(([e])=>(0,E.jsxDEV)(c,{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=y(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)(l,{},void 0,!1,{fileName:D,lineNumber:281,columnNumber:58},this)}function R(e){let t=_(e.field);return(0,E.jsxDEV)(h,{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:_(e)},void 0,!1,{fileName:D,lineNumber:307,columnNumber:10},this)}var B=m({shelf:{library:`devices`,shelf:`network`},renderers:[M,F,{kinds:[`dataSize`],Page:R,Inline:z}],templates:{"devices.scan.noMac":()=>n(()=>import(`./NoMac-DLu311Th.js`),__vite__mapDeps([0,1,2,3])),"devices.scan.summary":()=>n(()=>import(`./ScanSummary-CtIkC51I.js`),__vite__mapDeps([4,1,2,3]))}});export{B as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatWidget-
|
|
2
|
-
import{f as e}from"./react-vendor-BskHO5hY.js";import"./src-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatWidget-nNf5Rw0a.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-BskHO5hY.js","assets/x-CzSVfh-E.js","assets/clsx-CjueKrWZ.js","assets/icons-DBHj1PyA.js","assets/chevron-down-DgMjlPLK.js","assets/upload-C6w8x5TC.js","assets/use-media-query-D1fYNz6w.js","assets/rotate-ccw-97xLsgYt.js","assets/src-BGRdBpoy.js","assets/fields-CdNaYlSV.js","assets/plugin-ui-CKd6q8ec.js","assets/api-DsJ6cAbe.js","assets/dialog-BKC2UrX0.js","assets/ui-vendor-EU9CHLyR.js","assets/development-olQNibq5.js","assets/micromark-extension-gfm-BUw6_ZLT.js","assets/space-separated-tokens-IJiqTQpk.js","assets/lib-Du7RHLba.js","assets/lib-sYoE14fC.js","assets/lib-B13BbhLB.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{f as e}from"./react-vendor-BskHO5hY.js";import"./src-BGRdBpoy.js";import{n as t}from"./plugin-ui-CKd6q8ec.js";var n=t({slots:[{slot:`overlay`,id:`webchat`,load:()=>e(()=>import(`./ChatWidget-nNf5Rw0a.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]))}]});export{n as default};
|
package/dist/index.html
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
</script>
|
|
41
|
-
<script type="module" crossorigin src="/assets/index-
|
|
41
|
+
<script type="module" crossorigin src="/assets/index-BhD27QjD.js"></script>
|
|
42
42
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
|
|
43
43
|
<link rel="modulepreload" crossorigin href="/assets/i18n-vendor-T6EnJ_TL.js">
|
|
44
44
|
<link rel="modulepreload" crossorigin href="/assets/react-vendor-BskHO5hY.js">
|
|
@@ -47,40 +47,40 @@
|
|
|
47
47
|
<link rel="modulepreload" crossorigin href="/assets/color-names-CKKZbleV.js">
|
|
48
48
|
<link rel="modulepreload" crossorigin href="/assets/icons-DBHj1PyA.js">
|
|
49
49
|
<link rel="modulepreload" crossorigin href="/assets/upload-C6w8x5TC.js">
|
|
50
|
-
<link rel="modulepreload" crossorigin href="/assets/Icon-
|
|
51
|
-
<link rel="modulepreload" crossorigin href="/assets/fields-
|
|
52
|
-
<link rel="modulepreload" crossorigin href="/assets/src-
|
|
50
|
+
<link rel="modulepreload" crossorigin href="/assets/Icon-BumJSRVW.js">
|
|
51
|
+
<link rel="modulepreload" crossorigin href="/assets/fields-CdNaYlSV.js">
|
|
52
|
+
<link rel="modulepreload" crossorigin href="/assets/src-BGRdBpoy.js">
|
|
53
53
|
<link rel="modulepreload" crossorigin href="/assets/ui-vendor-EU9CHLyR.js">
|
|
54
54
|
<link rel="modulepreload" crossorigin href="/assets/button-DaYjtbcx.js">
|
|
55
|
-
<link rel="modulepreload" crossorigin href="/assets/chrome-
|
|
56
|
-
<link rel="modulepreload" crossorigin href="/assets/shelf-
|
|
57
|
-
<link rel="modulepreload" crossorigin href="/assets/field-frame-
|
|
58
|
-
<link rel="modulepreload" crossorigin href="/assets/extend-
|
|
55
|
+
<link rel="modulepreload" crossorigin href="/assets/chrome-Drri9yIC.js">
|
|
56
|
+
<link rel="modulepreload" crossorigin href="/assets/shelf-CYFZoY4Y.js">
|
|
57
|
+
<link rel="modulepreload" crossorigin href="/assets/field-frame-p-0aFlK2.js">
|
|
58
|
+
<link rel="modulepreload" crossorigin href="/assets/extend-Dz66ZOVA.js">
|
|
59
59
|
<link rel="modulepreload" crossorigin href="/assets/plugin-q1oOYqt7.js">
|
|
60
|
-
<link rel="modulepreload" crossorigin href="/assets/api-DsJ6cAbe.js">
|
|
61
60
|
<link rel="modulepreload" crossorigin href="/assets/development-olQNibq5.js">
|
|
62
61
|
<link rel="modulepreload" crossorigin href="/assets/micromark-extension-gfm-BUw6_ZLT.js">
|
|
63
|
-
<link rel="modulepreload" crossorigin href="/assets/Toolbar-
|
|
62
|
+
<link rel="modulepreload" crossorigin href="/assets/Toolbar-BFVsURKo.js">
|
|
64
63
|
<link rel="modulepreload" crossorigin href="/assets/PageBody-Y-cpiRMh.js">
|
|
65
|
-
<link rel="modulepreload" crossorigin href="/assets/SettingsForm-
|
|
64
|
+
<link rel="modulepreload" crossorigin href="/assets/SettingsForm-CveAr_ig.js">
|
|
66
65
|
<link rel="modulepreload" crossorigin href="/assets/input-group-Cp9n2MAA.js">
|
|
67
|
-
<link rel="modulepreload" crossorigin href="/assets/ExtendReasonInfo-
|
|
66
|
+
<link rel="modulepreload" crossorigin href="/assets/ExtendReasonInfo-CJ67X4F6.js">
|
|
68
67
|
<link rel="modulepreload" crossorigin href="/assets/dialog-BKC2UrX0.js">
|
|
69
|
-
<link rel="modulepreload" crossorigin href="/assets/ThemeSwitcher-
|
|
68
|
+
<link rel="modulepreload" crossorigin href="/assets/ThemeSwitcher-CfRsyjzE.js">
|
|
70
69
|
<link rel="modulepreload" crossorigin href="/assets/chevron-down-DgMjlPLK.js">
|
|
71
70
|
<link rel="modulepreload" crossorigin href="/assets/rotate-ccw-97xLsgYt.js">
|
|
72
|
-
<link rel="modulepreload" crossorigin href="/assets/shared-
|
|
71
|
+
<link rel="modulepreload" crossorigin href="/assets/shared-53AEUTK1.js">
|
|
73
72
|
<link rel="modulepreload" crossorigin href="/assets/use-media-query-D1fYNz6w.js">
|
|
74
73
|
<link rel="modulepreload" crossorigin href="/assets/plugin-ui-CKd6q8ec.js">
|
|
75
74
|
<link rel="modulepreload" crossorigin href="/assets/markdown-vendor-CtaBI5gJ.js">
|
|
76
75
|
<link rel="modulepreload" crossorigin href="/assets/purify.es-sLXpNpJ5.js">
|
|
77
76
|
<link rel="modulepreload" crossorigin href="/assets/combobox-Cqg-VPvV.js">
|
|
78
77
|
<link rel="modulepreload" crossorigin href="/assets/countries-BlKrWFMP.js">
|
|
79
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
78
|
+
<link rel="modulepreload" crossorigin href="/assets/api-DsJ6cAbe.js">
|
|
79
|
+
<link rel="modulepreload" crossorigin href="/assets/dispatch-Dn_1ZBIw.js">
|
|
80
80
|
<link rel="modulepreload" crossorigin href="/assets/space-separated-tokens-IJiqTQpk.js">
|
|
81
81
|
<link rel="modulepreload" crossorigin href="/assets/lib-BJGpevNH.js">
|
|
82
82
|
<link rel="modulepreload" crossorigin href="/assets/auth-context-C1voH8bU.js">
|
|
83
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
83
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CbYvPAob.css">
|
|
84
84
|
</head>
|
|
85
85
|
<body>
|
|
86
86
|
<div id="root"></div>
|