@coffer-org/web 7.4.0 → 7.4.2

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.
Files changed (62) hide show
  1. package/dist/assets/{ChatWidget-BpM6H_NG.js → ChatWidget-CZFJNVBt.js} +2 -2
  2. package/dist/assets/{DiagnosticsPage-Dzhks26m.js → DiagnosticsPage-BRGLbMCb.js} +1 -1
  3. package/dist/assets/{MarkdownEditor-CANj53YF.js → MarkdownEditor-DsKPqeIt.js} +1 -1
  4. package/dist/assets/{NewRecordView-Y6PoWPB9.js → NewRecordView-B1jdKkrr.js} +1 -1
  5. package/dist/assets/{PluginSettingsPage-BIUa4IUX.js → PluginSettingsPage-Dasrpx47.js} +1 -1
  6. package/dist/assets/{SettingsForm-D7Go7QNO.js → SettingsForm-C-xB5cdD.js} +1 -1
  7. package/dist/assets/SettingsPage-DjRQ1bY5.js +3 -0
  8. package/dist/assets/{ThemeSwitcher-DuYQMxYo.js → ThemeSwitcher-BJRcZMR7.js} +1 -1
  9. package/dist/assets/{data-size-BMG0D59K.js → data-size-CO-LGHbN.js} +1 -1
  10. package/dist/assets/{extend-yQ8zoqGc.js → extend-CHOe1AVl.js} +1 -1
  11. package/dist/assets/{fields-CV3RQg0Y.js → fields-Ce51pRua.js} +1 -1
  12. package/dist/assets/{ilamy-view-Dddf8Q2O.js → ilamy-view-D7DQZ577.js} +2 -2
  13. package/dist/assets/index-CpRTFlxk.js +22 -0
  14. package/dist/assets/index-Le8YFirR.css +2 -0
  15. package/dist/assets/{list-cache-DOhsI_p2.js → list-cache-wPeWyKg1.js} +1 -1
  16. package/dist/assets/{registration-BBxYynR4.js → registration-43gjHJ3X.js} +1 -1
  17. package/dist/assets/settings-BEzSaRjz.js +1 -0
  18. package/dist/assets/{shelf-Cj_pNvd-.js → shelf-DjiUBfgQ.js} +1 -1
  19. package/dist/assets/{src-Q4BhkNtH.js → src-B-FFwJ-G.js} +1 -1
  20. package/dist/assets/{src-C46sbhiF.js → src-B1LWYTOR.js} +1 -1
  21. package/dist/assets/{src-B2aXBzDf.js → src-B7dY0wwO.js} +2 -2
  22. package/dist/assets/{src-Bhz_DXRd.js → src-BDP8FIN_.js} +1 -1
  23. package/dist/assets/{src-DnN2GqEI.js → src-BPuTgDYD.js} +1 -1
  24. package/dist/assets/{src-Bl8rYgUt2.js → src-BRP-DLVM2.js} +1 -1
  25. package/dist/assets/src-BU56fYCH2.js +1 -0
  26. package/dist/assets/{src-qJ0szNVM.js → src-BmgYgIDb.js} +1 -1
  27. package/dist/assets/{src-BrHtOaqX.js → src-C06O0ceD.js} +1 -1
  28. package/dist/assets/src-CCeQIMl_.js +1 -0
  29. package/dist/assets/{src-CQOQ3BNT.js → src-CgXkpslu.js} +1 -1
  30. package/dist/assets/src-CheiTWox.js +7 -0
  31. package/dist/assets/src-CjPxrk6V.js +1 -0
  32. package/dist/assets/{src-BHz-TcxU.js → src-Co7xh07B.js} +1 -1
  33. package/dist/assets/{src-tKMBP4Dv.js → src-CtQWxdaS.js} +1 -1
  34. package/dist/assets/src-CwyJPFKQ.js +1 -0
  35. package/dist/assets/src-DDtMlZ03.js +1 -0
  36. package/dist/assets/{src-rMuD7zD4.js → src-DNx0vmvI.js} +1 -1
  37. package/dist/assets/{src-4bmZI2h_.js → src-DjrjxzQu.js} +1 -1
  38. package/dist/assets/{src-CE1TPDES.js → src-Dsh4Yd_x.js} +1 -1
  39. package/dist/assets/{src-xh_qAK43.js → src-Du26RLvk.js} +1 -1
  40. package/dist/assets/src-G94LYhEo.js +1 -0
  41. package/dist/assets/{src-BmyfVP9z.js → src-aPsTM6Fr.js} +1 -1
  42. package/dist/assets/{src-0TBpEeKK.js → src-iJXhTwKd.js} +1 -1
  43. package/dist/assets/{src-Dr_dOgc9.js → src-rXsbV4Ce.js} +1 -1
  44. package/dist/assets/{ui-D0o4fruq.js → ui-BLiPhfyz.js} +1 -1
  45. package/dist/assets/{ui-CZNm-1na.js → ui-DL6R5B56.js} +2 -2
  46. package/dist/assets/{ui-BpQAH_5F.js → ui-jz6tZ6GD.js} +1 -1
  47. package/dist/assets/ui-mefYc6et.js +2 -0
  48. package/dist/index.html +9 -9
  49. package/dist-vendor/web-ui.js +8626 -8597
  50. package/package.json +1 -1
  51. package/dist/assets/SettingsPage-BmyDzHcF.js +0 -3
  52. package/dist/assets/index-Brc5FUYA.css +0 -2
  53. package/dist/assets/index-VReUcCHo.js +0 -22
  54. package/dist/assets/settings-Bo5IOwVg.js +0 -1
  55. package/dist/assets/src-BZK1QVol.js +0 -1
  56. package/dist/assets/src-CD1zBxk2.js +0 -1
  57. package/dist/assets/src-D14fQdLH.js +0 -1
  58. package/dist/assets/src-DgQcfYnz.js +0 -1
  59. package/dist/assets/src-Ds6m7Evp2.js +0 -1
  60. package/dist/assets/src-Mln-mCD3.js +0 -1
  61. package/dist/assets/src-r8PGv9_a.js +0 -7
  62. package/dist/assets/ui-CPQ5ERi6.js +0 -2
@@ -0,0 +1 @@
1
+ import{n as e}from"./fields-Ce51pRua.js";import{a as t}from"./shelf-DjiUBfgQ.js";import{i as n,n as r}from"./plugin-Cjr7lgQH.js";var i=t({shelf:`bus_route`,library:`transit`,label:`transit.bus_route.label`,icon:`lucide:bus`,views:{list:[`route_number`,`from`,`to`]},fields:{name:e.title({label:`core.fields.name`}),route:e.stats({fields:{route_number:e.int({label:`transit.bus_route.fields.route_number`}),from:e.string({label:`transit.bus_route.fields.from`,rules:{max:100}}),to:e.string({label:`transit.bus_route.fields.to`,rules:{max:100}}),stop:e.string({label:`transit.bus_route.fields.stop`,rules:{max:200}})}}),hairline:e.divider({}),description:e.text({label:`transit.bus_route.fields.description`,rules:{max:1e3}}),weekday_times:e.timetable({label:`transit.bus_route.fields.weekday_times`,ui:{span:12}}),saturday_times:e.timetable({label:`transit.bus_route.fields.saturday_times`,ui:{span:6}}),sunday_times:e.timetable({label:`transit.bus_route.fields.sunday_times`,ui:{span:6}}),tags:e.tags({label:`transit.bus_route.fields.tags`}),notes:e.text({label:`transit.bus_route.fields.notes`,rules:{max:500}})}}),a=r({id:`transit`,version:`1.0.0`,dependsOn:[`dav`],label:`transit.plugin.label`,description:`transit.plugin.description`,libraries:[{meta:n({id:`transit`,label:`transit.library.label`,icon:`lucide:bus`,agent:{description:`Local bus routes and their departure schedules (bus_route).`,instructions:`bus_route: weekday_times/saturday_times/sunday_times — departure schedule. When the schedule changes, update *_times via update_record.`},starterHint:`the next departures on the saved routes`}),shelves:[i]}]});export{a as default};
@@ -1 +1 @@
1
- import{n as e,r as t}from"./fields-CV3RQg0Y.js";import{a as n}from"./shelf-Cj_pNvd-.js";import{i as r,n as i}from"./plugin-Cjr7lgQH.js";import{t as a}from"./extend-yQ8zoqGc.js";import{n as o}from"./src-DgQcfYnz.js";import{t as s}from"./settings-Bo5IOwVg.js";import{t as c}from"./src-BrHtOaqX.js";import{t as l}from"./src-tKMBP4Dv.js";var u=n({shelf:`field_demo`,library:`lab`,label:`lab.field_demo.label`,icon:`lucide:flask-conical`,views:{inline:[`name`,`select`],listKind:`map`,list:[`place`,`text_minmax`,`integer`,`boolean`,`select`,`rating_5`,`measured_currency`]},fields:{name:e.title({label:`core.fields.name`}),image:e.cover({label:`lab.field_demo.fields.image`}),avatar:e.avatar({label:`lab.field_demo.fields.avatar`}),info:e.info(`lab.field_demo.info.intro`),button:e.button({label:`lab.field_demo.fields.button_demo`,value:`lab.demoAction`,icon:`lucide:zap`,variant:`outline`}),properties:e.properties({label:`lab.field_demo.groups.properties_inspector`,icon:`lucide:sliders-horizontal`,columns:4,fields:{demo_status:e.string({label:`lab.field_demo.fields.demo_status`,ui:{span:3}}),demo_author:e.string({label:`lab.field_demo.fields.demo_author`,ui:{span:3}}),demo_prop_rating:e.rating({label:`lab.field_demo.fields.rating_5`,ui:{span:3}}),demo_prop_date:e.date({label:`lab.field_demo.fields.date`,ui:{span:3}})}}),stack:e.stack({label:`lab.field_demo.groups.vertical_stack`,icon:`lucide:layers`,fields:{stack_note_1:e.string({label:`lab.field_demo.fields.stack_note_1`}),stack_note_2:e.string({label:`lab.field_demo.fields.stack_note_2`})}}),group:e.group({label:`lab.field_demo.groups.embeds`,icon:`lucide:tv`,scope:`hoist`,fields:{embed_wide:e.embed({label:`lab.field_demo.fields.embed_wide`,multiple:!0}),embed_narrow:e.embed({label:`lab.field_demo.fields.embed_narrow`,multiple:!0})}}),group2:e.group({label:`lab.field_demo.groups.text_pattern`,icon:`lucide:type`,scope:`hoist`,fields:{text_pattern:e.string({label:`lab.field_demo.fields.text_pattern`,rules:{pattern:`^[A-Za-z]+$`,messageKey:`lab.field_demo.validation.letters_only`}})}}),group3:e.group({label:`lab.field_demo.groups.text_email`,icon:`lucide:mail`,scope:`hoist`,fields:{text_emails:e.email({label:`lab.field_demo.fields.text_emails`,multiple:!0})}}),group4:e.group({label:`lab.field_demo.groups.text_url`,icon:`lucide:link`,scope:`hoist`,fields:{text_url:e.url({label:`lab.field_demo.fields.text_url`})}}),group5:e.group({label:`lab.field_demo.groups.text_password`,icon:`lucide:key-round`,scope:`hoist`,fields:{text_password:e.password({label:`lab.field_demo.fields.text_password`})}}),group6:e.group({label:`lab.field_demo.groups.slug_link`,icon:`lucide:link-2`,scope:`hoist`,fields:{demo_slug:e.slug({label:`lab.field_demo.fields.demo_slug`}),demo_link:e.link({label:`lab.field_demo.fields.demo_link`})}}),group7:e.group({label:`lab.field_demo.groups.string_mask`,icon:`lucide:credit-card`,scope:`hoist`,fields:{demo_mask_card:e.string({label:`lab.field_demo.fields.demo_mask_card`,rules:{pattern:`^\\d{4} \\d{4} \\d{4} \\d{4}$`}})}}),group8:e.group({label:`lab.field_demo.groups.percent_year`,icon:`lucide:percent`,scope:`hoist`,fields:{demo_percent:e.percent({label:`lab.field_demo.fields.demo_percent`}),demo_year:e.year({label:`lab.field_demo.fields.demo_year`})}}),group9:e.group({label:`lab.field_demo.groups.local_paths`,icon:`lucide:folder-tree`,scope:`hoist`,fields:{demo_local_dir:e.localDir({label:`lab.field_demo.fields.demo_local_dir`}),demo_local_file:e.localFile({label:`lab.field_demo.fields.demo_local_file`})}}),group10:e.group({label:`lab.field_demo.groups.tag_i18n`,icon:`lucide:tags`,scope:`hoist`,fields:{demo_tag:e.tag({label:`lab.field_demo.fields.demo_tag`,options:[`new`,`sale`,`featured`]}),demo_i18n:e.i18n({label:`lab.field_demo.fields.demo_i18n`})}}),group11:e.group({label:`lab.field_demo.groups.source_poster`,icon:`lucide:file-code`,scope:`hoist`,fields:{demo_source:e.source({label:`lab.field_demo.fields.demo_source`}),demo_poster:e.poster({label:`lab.field_demo.fields.demo_poster`})}}),group12:e.group({label:`lab.field_demo.groups.ranges`,icon:`lucide:chevrons-left-right`,scope:`hoist`,fields:{demo_number_range:e.numberRange({label:`lab.field_demo.fields.demo_number_range`}),demo_real_range:e.realRange({label:`lab.field_demo.fields.demo_real_range`})}}),group13:e.group({label:`lab.field_demo.groups.date_month`,icon:`lucide:calendar`,scope:`hoist`,fields:{demo_month:e.date({label:`lab.field_demo.fields.demo_month`,rules:{granularity:`month`}})}}),group14:e.group({label:`lab.field_demo.groups.ratings`,icon:`lucide:star`,scope:`hoist`,fields:{rating_5:e.rating({label:`lab.field_demo.fields.rating_5`}),rating_10:e.rating({label:`lab.field_demo.fields.rating_10`,rules:{max:10}})}}),group15:e.group({label:`lab.field_demo.groups.hostname`,icon:`lucide:globe`,scope:`hoist`,fields:{demo_hostname:c.hostname({label:`lab.field_demo.fields.demo_hostname`})}}),group16:e.group({label:`lab.field_demo.groups.unit_amount`,icon:`lucide:calculator`,scope:`hoist`,fields:{demo_unit:e.unit({label:`lab.field_demo.fields.demo_unit`,options:`weight`}),demo_amount:e.amount({label:`lab.field_demo.fields.demo_amount`,unitFrom:`demo_unit`})}}),group17:e.group({label:`lab.field_demo.groups.datetimes`,icon:`lucide:calendar-clock`,scope:`hoist`,fields:{datetimes_multi:e.datetime({label:`lab.field_demo.fields.datetimes_multi`,multiple:!0})}}),group18:e.group({label:`lab.field_demo.groups.times_multi`,icon:`lucide:alarm-clock`,scope:`hoist`,fields:{times_multi:e.time({label:`lab.field_demo.fields.times_multi`,multiple:!0})}}),group18b:e.group({label:`lab.field_demo.groups.recurrence`,icon:`lucide:repeat`,scope:`hoist`,fields:{demo_recurrence:o.recurrence({label:`lab.field_demo.fields.demo_recurrence`,exdates:`demo_exdates`}),demo_exdates:e.datetime({label:`lab.field_demo.fields.demo_exdates`,multiple:!0})}}),sheet:e.sheet({label:`lab.field_demo.fields.demo_sheet`,icon:`lucide:grid-2x2`,fields:{row1:{sheet_a1:e.string({label:`lab.field_demo.fields.sheet_a1`}),sheet_b1:e.string({label:`lab.field_demo.fields.sheet_b1`})},row2:{sheet_a2:e.string({label:`lab.field_demo.fields.sheet_a2`}),sheet_b2:e.string({label:`lab.field_demo.fields.sheet_b2`})}}}),demo_table_specs:e.row({scope:`nest`,multiple:!0,label:`lab.field_demo.fields.demo_table_specs`,icon:`lucide:table`,fields:{param:e.string({label:`lab.field_demo.per_row.param`}),val:e.string({label:`lab.field_demo.per_row.val`})}}),demo_check_multi:e.check({label:`lab.field_demo.fields.demo_check_multi`,multiple:!0}),demo_check_stages:e.check({label:`lab.field_demo.fields.demo_check_stages`,slots:[`lab.field_demo.fields.stage_ordered`,`lab.field_demo.fields.stage_paid`,`lab.field_demo.fields.stage_shipped`],multiple:!0}),demo_stepper:e.stepper({label:`lab.field_demo.fields.demo_stepper`,options:[{value:`ordered`,title:`lab.field_demo.options.stage.ordered`},{value:`packed`,title:`lab.field_demo.options.stage.packed`},{value:`shipped`,title:`lab.field_demo.options.stage.shipped`},{value:`delivered`,title:`lab.field_demo.options.stage.delivered`}]}),divider:e.divider({label:`lab.field_demo.blocks.divider`}),bento:e.bento({label:`lab.field_demo.blocks.bento`,icon:`lucide:layout-grid`,fields:{number_int:{span:`2x1`,el:e.int({label:`lab.field_demo.fields.number_int`,rules:{min:0,max:100}})},color_multi:e.color({label:`lab.field_demo.fields.color_multi`,multiple:!0}),numbers_multi:e.real({label:`lab.field_demo.fields.numbers_multi`,multiple:!0}),dates_multi:{span:`2x1`,el:e.date({label:`lab.field_demo.fields.dates_multi`,multiple:!0})}}}),group19:e.group({label:`lab.field_demo.groups.split_rating`,icon:`lucide:columns-2`,fields:{split:e.split({ratio:[1,1],columns:[{rating_split_5:e.rating({label:`lab.field_demo.fields.rating_split_5`})},{rating_split_10:e.rating({label:`lab.field_demo.fields.rating_split_10`,rules:{max:10}})}]})},scope:`hoist`}),grid:e.grid({label:`lab.field_demo.blocks.grid`,icon:`lucide:clock`,columns:2,fields:{time_field:e.time({label:`lab.field_demo.fields.time_field`})}}),group20:e.group({label:`lab.field_demo.groups.spread`,icon:`lucide:newspaper`,fields:{spread:e.spread({visual:{cover:e.cover({label:`lab.field_demo.fields.cover`})},quote:{nolabel_note:e.string({ui:{noEditControl:!0}})},facts:{origin:e.country({label:`lab.field_demo.fields.origin`}),tags_field:e.tags({label:`lab.field_demo.fields.tags_field`,options:[`alpha`,`beta`,`gamma`,`delta`]})}})},scope:`hoist`}),group21:e.group({label:`lab.field_demo.groups.aside`,icon:`lucide:panel-right`,scope:`hoist`,fields:{aside:e.aside({fields:{demo_weight:e.weight({label:`lab.field_demo.fields.demo_weight`})},aside:{demo_dimensions:e.dimensions({label:`lab.field_demo.fields.demo_dimensions`})}})}}),tabs:e.tabs({tabs:[{name:`tab1`,label:`lab.field_demo.blocks.tab1`,fields:{demo_datasize:c.dataSize({label:`lab.field_demo.fields.demo_datasize`}),demo_ram:c.ram({label:`lab.field_demo.fields.demo_ram`})}},{name:`tab2`,label:`lab.field_demo.blocks.tab2`,fields:{demo_disk:c.diskSize({label:`lab.field_demo.fields.demo_disk`}),ip_addr:c.ip({label:`lab.field_demo.fields.ip_addr`})}}]}),accordion:e.accordion({sections:[{name:`section1`,label:`lab.field_demo.blocks.section1`,open:!0,fields:{demo_weekday:e.string({label:`lab.field_demo.fields.demo_weekday`,options:`weekdays`,strict:!0,noSearch:!0}),demo_weekdays:e.string({label:`lab.field_demo.fields.demo_weekdays`,options:`weekdays`,multiple:!0,strict:!0,noSearch:!0})}},{name:`section2`,label:`lab.field_demo.blocks.section2`,fields:{cidr_subnet:c.cidr({label:`lab.field_demo.fields.cidr_subnet`}),ip_addrs:c.ip({label:`lab.field_demo.fields.ip_addrs`,multiple:!0})}}]}),divider2:e.divider({label:`lab.field_demo.blocks.leaves`}),prose:e.prose({label:`lab.field_demo.blocks.prose`,icon:`lucide:file-text`,dropCap:`markdown`,fields:{markdown:e.markdown({label:`lab.field_demo.fields.markdown`,rules:{max:5e3}}),text_multiline:e.text({label:`lab.field_demo.fields.text_multiline`,rules:{max:500}})}}),plaque:e.plaque({label:`lab.field_demo.blocks.plaque`,icon:`lucide:cpu`,title:{mac:c.mac({label:`lab.field_demo.fields.mac`})},subtitle:{imei:c.imei({label:`lab.field_demo.fields.imei`})}}),ledger:e.ledger({label:`lab.field_demo.blocks.ledger`,icon:`lucide:list`,fields:{duration_short:e.duration({label:`lab.field_demo.fields.duration_short`,rules:{max:28800,step:300}}),measured_weight:e.measured({label:`lab.field_demo.fields.measured_weight`,units:`weight`})}}),stats:e.stats({label:`lab.field_demo.blocks.stats`,icon:`lucide:thermometer`,fields:{tempRange:e.realRange({label:`lab.field_demo.fields.tempRange`})}}),facets:e.facets({label:`lab.field_demo.blocks.facets`,icon:`lucide:sun-medium`,fields:{day_period:e.string({label:`lab.field_demo.fields.day_period`,options:`day-periods`,strict:!0,noSearch:!0})}}),terminal:e.terminal({label:`lab.field_demo.blocks.terminal`,icon:`lucide:terminal`,caption:`lab.field_demo.blocks.terminal_caption`,fields:{code:e.snippet({label:`lab.field_demo.fields.code`,rules:{language:`yaml`,max:5e3}})}}),callout:e.callout({label:`lab.field_demo.blocks.callout`,icon:`lucide:shield-check`,tone:`warn`,fields:{agree:e.triState({label:`lab.field_demo.fields.agree`}),boolean:e.boolean({label:`lab.field_demo.fields.boolean`})}}),compare:e.compare({label:`lab.field_demo.blocks.compare`,icon:`lucide:git-compare`,leftLabel:`lab.field_demo.blocks.compare_left`,rightLabel:`lab.field_demo.blocks.compare_right`,left:{country_multi:e.string({label:`lab.field_demo.fields.country_multi`,options:`countries`,multiple:!0,strict:!0,noSearch:!0})},right:{demo_check:e.check({label:`lab.field_demo.fields.demo_check`}),select_multi:e.string({label:`lab.field_demo.fields.select_multi`,multiple:!0,strict:!0,noSearch:!0,options:[{value:`red`,title:`lab.field_demo.options.select.red`},{value:`green`,title:`lab.field_demo.options.select.green`},{value:`blue`,title:`lab.field_demo.options.select.blue`}]})}}),group22:e.group({label:`lab.field_demo.groups.figure`,icon:`lucide:image`,fields:{figure:e.figure({image:{image_gallery:e.image({label:`lab.field_demo.fields.image_gallery`,multiple:!0})},caption:{small_text:e.smallText({label:`lab.field_demo.fields.small_text`,rules:{max:500}})}})},scope:`hoist`}),group23:e.group({label:`lab.field_demo.groups.illustrated`,icon:`lucide:image`,scope:`hoist`,fields:{illustrated_one:e.illustrated({label:`lab.field_demo.fields.illustrated_one`}),illustrated_many:e.illustrated({label:`lab.field_demo.fields.illustrated_many`,multiple:!0,fields:{text:e.markdown({}),image:e.image({})}})}}),group24:e.group({label:`lab.field_demo.groups.epigraph`,icon:`lucide:quote`,fields:{epigraph:e.epigraph({source:{textarea:e.text({label:`lab.field_demo.fields.textarea`,rules:{max:1e3},ui:{noLabel:!0}})},attribution:{compact_note:e.string({label:`lab.field_demo.fields.compact_note`,ui:{noEditControl:!0}})}})},scope:`hoist`}),group25:e.group({label:`lab.field_demo.groups.masthead`,icon:`lucide:calendar-days`,fields:{masthead:e.masthead({overline:{day_period_multi:e.string({label:`lab.field_demo.fields.day_period_multi`,options:`day-periods`,multiple:!0,strict:!0,noSearch:!0})},title:{birthYear:e.date({label:`lab.field_demo.fields.birthYear`,rules:{granularity:`year`}})}})},scope:`hoist`}),divider3:e.divider({label:`lab.field_demo.blocks.domain`}),group26:e.group({label:`lab.field_demo.groups.timeline`,icon:`lucide:history`,fields:{timeline:e.timeline({fields:{date_future:e.date({label:`lab.field_demo.fields.date_future`,rules:{min:`today`}}),demo_reminder:e.reminder({label:`lab.field_demo.fields.demo_reminder`,rules:{lead:14}})}})},scope:`hoist`}),group27:e.group({label:`lab.field_demo.groups.countdown`,icon:`lucide:timer`,fields:{countdown:e.countdown({source:{datetime:e.datetime({label:`lab.field_demo.fields.datetime`})},caption:`lab.field_demo.blocks.countdown_caption`})},scope:`hoist`}),group28:e.group({label:`lab.field_demo.groups.deck`,icon:`lucide:layers`,fields:{deck:e.deck({source:{relation_multi:e.relation({label:`lab.field_demo.fields.relation_multi`,options:t({library:`lab`,shelf:`field_demo_child`}),multiple:!0})}})},scope:`hoist`}),group29:e.group({label:`lab.field_demo.groups.people`,icon:`lucide:user`,fields:{people:e.people({source:{relation_single:e.relation({label:`lab.field_demo.fields.relation_single`,options:t({library:`lab`,shelf:`field_demo_child`})})}})},scope:`hoist`}),group30:e.group({label:`lab.field_demo.groups.identity`,icon:`lucide:contact`,fields:{identity:e.identity({name:{text_plain:e.string({label:`lab.field_demo.fields.text_plain`,rules:{max:200}})},role:{text_minmax:e.string({label:`lab.field_demo.fields.text_minmax`,rules:{min:3,max:20}})},channels:{text_tel:e.tel({label:`lab.field_demo.fields.text_tel`}),text_email:e.email({label:`lab.field_demo.fields.text_email`})}})},scope:`hoist`}),group31:e.group({label:`lab.field_demo.groups.score`,icon:`lucide:gauge`,fields:{score:e.score({source:{integer:e.int({label:`lab.field_demo.fields.integer`,rules:{min:1,max:12}})},max:12})},scope:`hoist`}),group32:e.group({label:`lab.field_demo.groups.status`,icon:`lucide:check-circle`,fields:{status:e.status({source:{select:e.string({label:`lab.field_demo.fields.select`,strict:!0,noSearch:!0,options:[{value:`red`,title:`lab.field_demo.options.select.red`},{value:`green`,title:`lab.field_demo.options.select.green`},{value:`blue`,title:`lab.field_demo.options.select.blue`}]})}})},scope:`hoist`}),group33:e.group({label:`lab.field_demo.groups.meter`,icon:`lucide:sliders-horizontal`,fields:{meter:e.meter({source:{meter_value:e.int({label:`lab.field_demo.fields.meter_value`,rules:{min:0,max:50}})},min:0,max:50})},scope:`hoist`}),group34:e.group({label:`lab.field_demo.groups.receipt`,icon:`lucide:receipt`,scope:`hoist`,fields:{receipt:e.receipt({fields:{number_decimal:e.real({label:`lab.field_demo.fields.number_decimal`,rules:{min:0,max:1e3}})},total:{price:e.money({label:`lab.field_demo.fields.price`})}}),currency:e.currency({label:`core.fields.currency`,default:`UAH`})}}),group35:e.group({label:`lab.field_demo.groups.balance`,icon:`lucide:scale`,fields:{balance:e.balance({source:{measured_currency:e.measured({label:`lab.field_demo.fields.measured_currency`,units:`currency`})},caption:`lab.field_demo.blocks.balance_caption`})},scope:`hoist`}),group36:e.group({label:`lab.field_demo.groups.route`,icon:`lucide:map-pin`,fields:{route:e.route({from:{country:e.string({label:`lab.field_demo.fields.country`,options:`countries`,strict:!0,noSearch:!0})},to:{place:e.geo({label:`lab.field_demo.fields.place`})}})},scope:`hoist`}),calendar:e.calendar({source:{calendar_dates:e.group({scope:`nest`,label:`lab.field_demo.fields.calendar_dates`,icon:`lucide:calendar`,multiple:!0,fields:{occurs_on:e.date({label:`lab.field_demo.per_row.occurs_on`})}})},date:`occurs_on`}),journal:e.journal({source:{journal_log:e.group({scope:`nest`,label:`lab.field_demo.fields.journal_log`,icon:`lucide:book-open`,multiple:!0,fields:{logged_at:e.date({label:`lab.field_demo.per_row.logged_at`}),entry:e.text({label:`lab.field_demo.per_row.entry`,rules:{max:500}})}})},date:`logged_at`,text:`entry`}),group37:e.group({label:`lab.field_demo.groups.nutrition`,icon:`lucide:flame`,scope:`hoist`,fields:{nutrition:e.nutrition({energy:{ageRange:e.numberRange({label:`lab.field_demo.fields.ageRange`,rules:{min:0,max:120}})},fields:{measured_custom:e.measured({label:`lab.field_demo.fields.measured_custom`,units:[{value:`shot`,label:`lab.field_demo.units.shot`},{value:`scoop`,label:`lab.field_demo.units.scoop`}]})}})}}),group38:e.group({label:`lab.field_demo.groups.specimen`,icon:`lucide:palette`,fields:{specimen:e.specimen({title:{color_name:e.string({label:`lab.field_demo.fields.color_name`,options:`colors`,strict:!0,noSearch:!0})},subtitle:{color_hex:e.color({label:`lab.field_demo.fields.color_hex`})}})},scope:`hoist`}),manifest:e.manifest({source:{row_ingredients:e.group({scope:`nest`,label:`lab.field_demo.fields.row_ingredients`,icon:`lucide:carrot`,multiple:!0,rules:{unique:[`product`]},fields:{product:e.relation({label:`lab.field_demo.per_row.product`,options:t({library:`kitchen`,shelf:`food_item`})}),amount:e.real({label:`lab.field_demo.per_row.amount`,rules:{min:0}}),stock:e.measured({label:`lab.field_demo.per_row.stock`,units:`cooking`,cache:0,value:async e=>(await e.ref?.(`product`))?.quantity??null})}})},quantity:`amount`,item:`product`}),table:e.table({label:`lab.field_demo.fields.demo_table`,source:{demo_table_rows:e.row({scope:`nest`,label:`lab.field_demo.fields.demo_table`,multiple:!0,fields:{part:e.string({label:`lab.field_demo.table.part`}),vendor:e.string({label:`lab.field_demo.table.vendor`}),qty:e.int({label:`lab.field_demo.table.qty`})}})},sort:`qty`,dir:`desc`,groupBy:`vendor`,totals:{qty:`sum`},numbered:!0}),group39:e.group({label:`lab.field_demo.groups.idcard`,icon:`lucide:credit-card`,fields:{idcard:e.idcard({number:{iban:l.iban({label:`lab.field_demo.fields.iban`})},meta:{date:e.date({label:`lab.field_demo.fields.date`})}})},scope:`hoist`}),divider4:e.divider({label:`lab.field_demo.blocks.computed`}),chart:e.chart({source:{chart_readings:e.group({scope:`nest`,label:`lab.field_demo.fields.chart_readings`,icon:`lucide:trending-up`,multiple:!0,fields:{measured_on:e.date({label:`lab.field_demo.per_row.measured_on`}),reading:e.real({label:`lab.field_demo.per_row.reading`})}})},value:`reading`,date:`measured_on`,delta:!0}),heatmap:e.heatmap({source:{heatmap_sessions:e.group({scope:`nest`,label:`lab.field_demo.fields.heatmap_sessions`,icon:`lucide:calendar-check`,multiple:!0,fields:{happened_on:e.date({label:`lab.field_demo.per_row.happened_on`})}})},date:`happened_on`}),divider5:e.divider(),group40:e.group({label:`lab.field_demo.groups.periods`,icon:`lucide:calendar-range`,scope:`hoist`,fields:{periods:e.period({label:`lab.field_demo.fields.periods`,multiple:!0})}}),group41:e.group({label:`lab.field_demo.groups.json`,icon:`lucide:code-2`,scope:`hoist`,fields:{json:e.json({label:`lab.field_demo.fields.json`,ui:{emphasis:`muted`}})}}),row_single:e.group({scope:`nest`,label:`lab.field_demo.fields.row_single`,icon:`lucide:rows-3`,fields:{env:e.string({label:`lab.field_demo.per_row.env`,strict:!0,noSearch:!0,options:[{value:`dev`,title:`lab.field_demo.options.env.dev`},{value:`prod`,title:`lab.field_demo.options.env.prod`}]}),url:e.url({label:`lab.field_demo.per_row.url`}),token:e.password({label:`lab.field_demo.per_row.token`})}}),variants:e.keyed({label:`lab.field_demo.fields.variants`,icon:`lucide:languages`,fields:{lang:e.string({label:`lab.field_demo.per_row.lang`,options:`languages`,strict:!0,noSearch:!0}),name:e.string({label:`lab.field_demo.per_row.name`}),surname:e.string({label:`lab.field_demo.per_row.surname`})},by:`lang`}),perkey_fixed:e.keyed({label:`lab.field_demo.fields.perkey_fixed`,icon:`lucide:key`,fixed:!0,fields:{size:e.string({label:`lab.field_demo.per_row.size`,strict:!0,noSearch:!0,options:[{value:`s`,title:`lab.field_demo.options.size.s`},{value:`m`,title:`lab.field_demo.options.size.m`},{value:`l`,title:`lab.field_demo.options.size.l`}]}),qty:e.int({label:`lab.field_demo.per_row.qty`,rules:{min:0}})},by:`size`}),coll_text:e.group({scope:`nest`,label:`lab.field_demo.fields.coll_text`,icon:`lucide:type`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.string({label:`lab.field_demo.fields.pp_value`})}}),coll_integer:e.group({scope:`nest`,label:`lab.field_demo.fields.coll_integer`,icon:`lucide:hash`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.int({label:`lab.field_demo.fields.pp_value`})}}),coll_select:e.group({scope:`nest`,label:`lab.field_demo.fields.coll_select`,icon:`lucide:list-checks`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.string({label:`lab.field_demo.fields.pp_value`,strict:!0,noSearch:!0,options:[{value:`s`,title:`lab.field_demo.options.pp_select.s`},{value:`m`,title:`lab.field_demo.options.pp_select.m`},{value:`l`,title:`lab.field_demo.options.pp_select.l`}]})}}),group42:e.group({label:`lab.field_demo.groups.per_weekday`,icon:`lucide:calendar-days`,scope:`hoist`,fields:{per_weekday:e.perWeekday({label:`lab.field_demo.fields.per_weekday`,rules:{min:0,max:5,step:.5}})}}),per_weekday_per_person:e.group({scope:`nest`,label:`lab.field_demo.fields.per_weekday_per_person`,icon:`lucide:users`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.perWeekday({label:`lab.field_demo.fields.pp_value`,rules:{min:0,max:10,step:1}})}}),group43:e.group({label:`lab.field_demo.groups.media_carousel`,icon:`lucide:images`,scope:`hoist`,fields:{avatar_row:e.avatar({label:`lab.field_demo.fields.avatar_row`,multiple:!0}),cover_carousel:e.cover({label:`lab.field_demo.fields.cover_carousel`,multiple:!0})}}),group44:e.group({label:`lab.field_demo.groups.files`,icon:`lucide:paperclip`,scope:`hoist`,fields:{attachment:e.file({label:`lab.field_demo.fields.attachment`}),doc:e.document({label:`lab.field_demo.fields.doc`}),voice:e.audio({label:`lab.field_demo.fields.voice`}),clip:e.video({label:`lab.field_demo.fields.clip`}),gallery:e.media({label:`lab.field_demo.fields.gallery`,multiple:!0}),attachment_one:e.attachment({label:`lab.field_demo.fields.attachment_one`}),attachment_many:e.attachment({label:`lab.field_demo.fields.attachment_many`,multiple:!0,fields:{file:e.document({})}})}}),group45:e.group({label:`lab.field_demo.groups.key_value`,icon:`lucide:key-round`,scope:`hoist`,fields:{key_value:e.keyValue({label:`lab.field_demo.fields.key_value`,multiple:!0}),key_value_secret:e.keyValue({label:`lab.field_demo.fields.key_value_secret`,fields:{value:e.password({label:``})}})}}),services_bylist:e.group({scope:`nest`,label:`lab.field_demo.fields.services_bylist`,icon:`lucide:server`,multiple:!0,fields:{type:e.string({label:`devices.service.type`,options:`service-types`,strict:!0,noSearch:!0}),url:e.url({label:`devices.service.url`}),login:e.string({label:`devices.service.login`}),password:e.password({label:`devices.service.password`,ui:{emphasis:`muted`}}),token:e.password({label:`devices.service.token`})}}),group47:e.group({label:`lab.field_demo.groups.catalogue_gap`,icon:`lucide:scan-line`,scope:`hoist`,fields:{identifier:e.identifier({label:`lab.field_demo.fields.identifier`,rules:{max:50},ui:{span:4}}),colorname:e.colorname({label:`lab.field_demo.fields.colorname`,ui:{span:4}}),age:e.age({label:`lab.field_demo.fields.age`,rules:{min:`1900-01-01`,max:`today`},ui:{span:4}}),path:e.path({label:`lab.field_demo.fields.path`,rules:{max:120},ui:{span:6}}),mrz:e.mrz({label:`lab.field_demo.fields.mrz`,rules:{max:200},ui:{span:6}}),timetable:e.timetable({label:`lab.field_demo.fields.timetable`,ui:{span:12}})}}),assay:e.assay({label:`lab.field_demo.groups.assay`,icon:`lucide:activity`,analyte:`analyte`,value:`value`,unit:`unit`,low:`low`,high:`high`,source:{readings:e.group({scope:`nest`,multiple:!0,fields:{analyte:e.string({label:`lab.field_demo.fields.analyte`,rules:{max:100}}),value:e.real({label:`lab.field_demo.fields.value`}),unit:e.string({label:`lab.field_demo.fields.unit`,rules:{max:20}}),low:e.real({label:`lab.field_demo.fields.low`}),high:e.real({label:`lab.field_demo.fields.high`})}})}}),flow:e.flow({amount:{flow_amount:e.money({label:`lab.field_demo.fields.flow_amount`})},from:{flow_from:e.relation({label:`lab.field_demo.fields.flow_from`,options:t({library:`lab`,shelf:`field_demo_child`})})},to:{flow_to:e.relation({label:`lab.field_demo.fields.flow_to`,options:t({library:`lab`,shelf:`field_demo_child`})})}}),children:e.backrefs({label:`lab.field_demo.fields.children`,from:{library:`lab`,shelf:`field_demo_child`,field:`demo_id`}}),group46:e.group({label:`lab.field_demo.groups.classifier`,icon:`lucide:toggle-right`,scope:`hoist`,fields:{type:e.string({label:`lab.field_demo.fields.type`,strict:!0,noSearch:!0,options:[{value:`basic`,title:`lab.field_demo.options.type.basic`},{value:`advanced`,title:`lab.field_demo.options.type.advanced`}]})}})}}),d=n({shelf:`field_demo_child`,library:`lab`,label:`lab.field_demo_child.label`,icon:`lucide:link`,standalone:!1,fields:{name:e.title({label:`core.fields.name`}),demo_id:e.relation({label:`lab.field_demo_child.fields.demo_id`,options:t({library:`lab`,shelf:`field_demo`})}),notes:e.text({label:`lab.field_demo_child.fields.notes`,rules:{max:500}})}}),f=a({id:`demo_extra`,label:`lab.demo_extra.label`,icon:`lucide:plus`,attachTo:[{library:`lab`,shelf:`field_demo`}],showWhen:{type:`advanced`},fields:{extra_text:e.string({label:`lab.demo_extra.fields.extra_text`,rules:{max:200}}),extra_number:e.int({label:`lab.demo_extra.fields.extra_number`,rules:{min:0}}),extra_flag:e.boolean({label:`lab.demo_extra.fields.extra_flag`})}}),p=i({id:`lab`,version:`1.0.0`,dependsOn:[`people`,`kitchen`,`devices`,`finance`,`geo`,`calendar`],label:`lab.plugin.label`,description:`lab.plugin.description`,settings:s({label:`lab.settings.label`,icon:`lucide:flask-conical`,fields:{info:e.info(`lab.settings.intro`),greeting:e.string({label:`lab.settings.fields.greeting`,rules:{max:80}}),enabled:e.boolean({label:`lab.settings.fields.enabled`}),mode:e.string({label:`lab.settings.fields.mode`,strict:!0,noSearch:!0,options:[{value:`fast`,title:`lab.settings.modes.fast`},{value:`safe`,title:`lab.settings.modes.safe`},{value:`debug`,title:`lab.settings.modes.debug`}]}),retries:e.int({label:`lab.settings.fields.retries`,rules:{min:0,max:10}}),divider:e.divider(),info2:e.info(`lab.settings.actions_info`),button:e.button({label:`lab.settings.run_button`,value:`lab.demoAction`,icon:`lucide:play`}),button2:e.button({label:`lab.settings.fail_button`,value:`lab.demoFail`,icon:`lucide:bug`,variant:`destructive`}),button3:e.button({label:`lab.settings.variants.default`,value:`lab.demoAction`,icon:`lucide:check`,variant:`default`}),button4:e.button({label:`lab.settings.variants.secondary`,value:`lab.demoAction`,icon:`lucide:settings`,variant:`secondary`}),button5:e.button({label:`lab.settings.variants.ghost`,value:`lab.demoAction`,icon:`lucide:ghost`,variant:`ghost`}),button6:e.button({label:`lab.settings.variants.link`,value:`lab.demoAction`,icon:`lucide:link`,variant:`link`})}}),libraries:[{meta:r({id:`lab`,label:`lab.library.label`,icon:`lucide:flask-conical`,agent:`Developer demo of field types — not real household data; ignore unless explicitly asked.`}),shelves:[u,d]}],extends_:[f]});export{p as default};
1
+ import{n as e,r as t}from"./fields-Ce51pRua.js";import{a as n}from"./shelf-DjiUBfgQ.js";import{i as r,n as i}from"./plugin-Cjr7lgQH.js";import{t as a}from"./extend-CHOe1AVl.js";import{n as o}from"./src-CwyJPFKQ.js";import{t as s}from"./settings-BEzSaRjz.js";import{t as c}from"./src-C06O0ceD.js";import{t as l}from"./src-CtQWxdaS.js";var u=n({shelf:`field_demo`,library:`lab`,label:`lab.field_demo.label`,icon:`lucide:flask-conical`,views:{inline:[`name`,`select`],listKind:`map`,list:[`place`,`text_minmax`,`integer`,`boolean`,`select`,`rating_5`,`measured_currency`]},fields:{name:e.title({label:`core.fields.name`}),image:e.cover({label:`lab.field_demo.fields.image`}),avatar:e.avatar({label:`lab.field_demo.fields.avatar`}),info:e.info(`lab.field_demo.info.intro`),button:e.button({label:`lab.field_demo.fields.button_demo`,value:`lab.demoAction`,icon:`lucide:zap`,variant:`outline`}),properties:e.properties({label:`lab.field_demo.groups.properties_inspector`,icon:`lucide:sliders-horizontal`,columns:4,fields:{demo_status:e.string({label:`lab.field_demo.fields.demo_status`,ui:{span:3}}),demo_author:e.string({label:`lab.field_demo.fields.demo_author`,ui:{span:3}}),demo_prop_rating:e.rating({label:`lab.field_demo.fields.rating_5`,ui:{span:3}}),demo_prop_date:e.date({label:`lab.field_demo.fields.date`,ui:{span:3}})}}),stack:e.stack({label:`lab.field_demo.groups.vertical_stack`,icon:`lucide:layers`,fields:{stack_note_1:e.string({label:`lab.field_demo.fields.stack_note_1`}),stack_note_2:e.string({label:`lab.field_demo.fields.stack_note_2`})}}),group:e.group({label:`lab.field_demo.groups.embeds`,icon:`lucide:tv`,scope:`hoist`,fields:{embed_wide:e.embed({label:`lab.field_demo.fields.embed_wide`,multiple:!0}),embed_narrow:e.embed({label:`lab.field_demo.fields.embed_narrow`,multiple:!0})}}),group2:e.group({label:`lab.field_demo.groups.text_pattern`,icon:`lucide:type`,scope:`hoist`,fields:{text_pattern:e.string({label:`lab.field_demo.fields.text_pattern`,rules:{pattern:`^[A-Za-z]+$`,messageKey:`lab.field_demo.validation.letters_only`}})}}),group3:e.group({label:`lab.field_demo.groups.text_email`,icon:`lucide:mail`,scope:`hoist`,fields:{text_emails:e.email({label:`lab.field_demo.fields.text_emails`,multiple:!0})}}),group4:e.group({label:`lab.field_demo.groups.text_url`,icon:`lucide:link`,scope:`hoist`,fields:{text_url:e.url({label:`lab.field_demo.fields.text_url`})}}),group5:e.group({label:`lab.field_demo.groups.text_password`,icon:`lucide:key-round`,scope:`hoist`,fields:{text_password:e.password({label:`lab.field_demo.fields.text_password`})}}),group6:e.group({label:`lab.field_demo.groups.slug_link`,icon:`lucide:link-2`,scope:`hoist`,fields:{demo_slug:e.slug({label:`lab.field_demo.fields.demo_slug`}),demo_link:e.link({label:`lab.field_demo.fields.demo_link`})}}),group7:e.group({label:`lab.field_demo.groups.string_mask`,icon:`lucide:credit-card`,scope:`hoist`,fields:{demo_mask_card:e.string({label:`lab.field_demo.fields.demo_mask_card`,rules:{pattern:`^\\d{4} \\d{4} \\d{4} \\d{4}$`}})}}),group8:e.group({label:`lab.field_demo.groups.percent_year`,icon:`lucide:percent`,scope:`hoist`,fields:{demo_percent:e.percent({label:`lab.field_demo.fields.demo_percent`}),demo_year:e.year({label:`lab.field_demo.fields.demo_year`})}}),group9:e.group({label:`lab.field_demo.groups.local_paths`,icon:`lucide:folder-tree`,scope:`hoist`,fields:{demo_local_dir:e.localDir({label:`lab.field_demo.fields.demo_local_dir`}),demo_local_file:e.localFile({label:`lab.field_demo.fields.demo_local_file`})}}),group10:e.group({label:`lab.field_demo.groups.tag_i18n`,icon:`lucide:tags`,scope:`hoist`,fields:{demo_tag:e.tag({label:`lab.field_demo.fields.demo_tag`,options:[`new`,`sale`,`featured`]}),demo_i18n:e.i18n({label:`lab.field_demo.fields.demo_i18n`})}}),group11:e.group({label:`lab.field_demo.groups.source_poster`,icon:`lucide:file-code`,scope:`hoist`,fields:{demo_source:e.source({label:`lab.field_demo.fields.demo_source`}),demo_poster:e.poster({label:`lab.field_demo.fields.demo_poster`})}}),group12:e.group({label:`lab.field_demo.groups.ranges`,icon:`lucide:chevrons-left-right`,scope:`hoist`,fields:{demo_number_range:e.numberRange({label:`lab.field_demo.fields.demo_number_range`}),demo_real_range:e.realRange({label:`lab.field_demo.fields.demo_real_range`})}}),group13:e.group({label:`lab.field_demo.groups.date_month`,icon:`lucide:calendar`,scope:`hoist`,fields:{demo_month:e.date({label:`lab.field_demo.fields.demo_month`,rules:{granularity:`month`}})}}),group14:e.group({label:`lab.field_demo.groups.ratings`,icon:`lucide:star`,scope:`hoist`,fields:{rating_5:e.rating({label:`lab.field_demo.fields.rating_5`}),rating_10:e.rating({label:`lab.field_demo.fields.rating_10`,rules:{max:10}})}}),group15:e.group({label:`lab.field_demo.groups.hostname`,icon:`lucide:globe`,scope:`hoist`,fields:{demo_hostname:c.hostname({label:`lab.field_demo.fields.demo_hostname`})}}),group16:e.group({label:`lab.field_demo.groups.unit_amount`,icon:`lucide:calculator`,scope:`hoist`,fields:{demo_unit:e.unit({label:`lab.field_demo.fields.demo_unit`,options:`weight`}),demo_amount:e.amount({label:`lab.field_demo.fields.demo_amount`,unitFrom:`demo_unit`})}}),group17:e.group({label:`lab.field_demo.groups.datetimes`,icon:`lucide:calendar-clock`,scope:`hoist`,fields:{datetimes_multi:e.datetime({label:`lab.field_demo.fields.datetimes_multi`,multiple:!0})}}),group18:e.group({label:`lab.field_demo.groups.times_multi`,icon:`lucide:alarm-clock`,scope:`hoist`,fields:{times_multi:e.time({label:`lab.field_demo.fields.times_multi`,multiple:!0})}}),group18b:e.group({label:`lab.field_demo.groups.recurrence`,icon:`lucide:repeat`,scope:`hoist`,fields:{demo_recurrence:o.recurrence({label:`lab.field_demo.fields.demo_recurrence`,exdates:`demo_exdates`}),demo_exdates:e.datetime({label:`lab.field_demo.fields.demo_exdates`,multiple:!0})}}),sheet:e.sheet({label:`lab.field_demo.fields.demo_sheet`,icon:`lucide:grid-2x2`,fields:{row1:{sheet_a1:e.string({label:`lab.field_demo.fields.sheet_a1`}),sheet_b1:e.string({label:`lab.field_demo.fields.sheet_b1`})},row2:{sheet_a2:e.string({label:`lab.field_demo.fields.sheet_a2`}),sheet_b2:e.string({label:`lab.field_demo.fields.sheet_b2`})}}}),demo_table_specs:e.row({scope:`nest`,multiple:!0,label:`lab.field_demo.fields.demo_table_specs`,icon:`lucide:table`,fields:{param:e.string({label:`lab.field_demo.per_row.param`}),val:e.string({label:`lab.field_demo.per_row.val`})}}),demo_check_multi:e.check({label:`lab.field_demo.fields.demo_check_multi`,multiple:!0}),demo_check_stages:e.check({label:`lab.field_demo.fields.demo_check_stages`,slots:[`lab.field_demo.fields.stage_ordered`,`lab.field_demo.fields.stage_paid`,`lab.field_demo.fields.stage_shipped`],multiple:!0}),demo_stepper:e.stepper({label:`lab.field_demo.fields.demo_stepper`,options:[{value:`ordered`,title:`lab.field_demo.options.stage.ordered`},{value:`packed`,title:`lab.field_demo.options.stage.packed`},{value:`shipped`,title:`lab.field_demo.options.stage.shipped`},{value:`delivered`,title:`lab.field_demo.options.stage.delivered`}]}),divider:e.divider({label:`lab.field_demo.blocks.divider`}),bento:e.bento({label:`lab.field_demo.blocks.bento`,icon:`lucide:layout-grid`,fields:{number_int:{span:`2x1`,el:e.int({label:`lab.field_demo.fields.number_int`,rules:{min:0,max:100}})},color_multi:e.color({label:`lab.field_demo.fields.color_multi`,multiple:!0}),numbers_multi:e.real({label:`lab.field_demo.fields.numbers_multi`,multiple:!0}),dates_multi:{span:`2x1`,el:e.date({label:`lab.field_demo.fields.dates_multi`,multiple:!0})}}}),group19:e.group({label:`lab.field_demo.groups.split_rating`,icon:`lucide:columns-2`,fields:{split:e.split({ratio:[1,1],columns:[{rating_split_5:e.rating({label:`lab.field_demo.fields.rating_split_5`})},{rating_split_10:e.rating({label:`lab.field_demo.fields.rating_split_10`,rules:{max:10}})}]})},scope:`hoist`}),grid:e.grid({label:`lab.field_demo.blocks.grid`,icon:`lucide:clock`,columns:2,fields:{time_field:e.time({label:`lab.field_demo.fields.time_field`})}}),group20:e.group({label:`lab.field_demo.groups.spread`,icon:`lucide:newspaper`,fields:{spread:e.spread({visual:{cover:e.cover({label:`lab.field_demo.fields.cover`})},quote:{nolabel_note:e.string({ui:{noEditControl:!0}})},facts:{origin:e.country({label:`lab.field_demo.fields.origin`}),tags_field:e.tags({label:`lab.field_demo.fields.tags_field`,options:[`alpha`,`beta`,`gamma`,`delta`]})}})},scope:`hoist`}),group21:e.group({label:`lab.field_demo.groups.aside`,icon:`lucide:panel-right`,scope:`hoist`,fields:{aside:e.aside({fields:{demo_weight:e.weight({label:`lab.field_demo.fields.demo_weight`})},aside:{demo_dimensions:e.dimensions({label:`lab.field_demo.fields.demo_dimensions`})}})}}),tabs:e.tabs({tabs:[{name:`tab1`,label:`lab.field_demo.blocks.tab1`,fields:{demo_datasize:c.dataSize({label:`lab.field_demo.fields.demo_datasize`}),demo_ram:c.ram({label:`lab.field_demo.fields.demo_ram`})}},{name:`tab2`,label:`lab.field_demo.blocks.tab2`,fields:{demo_disk:c.diskSize({label:`lab.field_demo.fields.demo_disk`}),ip_addr:c.ip({label:`lab.field_demo.fields.ip_addr`})}}]}),accordion:e.accordion({sections:[{name:`section1`,label:`lab.field_demo.blocks.section1`,open:!0,fields:{demo_weekday:e.string({label:`lab.field_demo.fields.demo_weekday`,options:`weekdays`,strict:!0,noSearch:!0}),demo_weekdays:e.string({label:`lab.field_demo.fields.demo_weekdays`,options:`weekdays`,multiple:!0,strict:!0,noSearch:!0})}},{name:`section2`,label:`lab.field_demo.blocks.section2`,fields:{cidr_subnet:c.cidr({label:`lab.field_demo.fields.cidr_subnet`}),ip_addrs:c.ip({label:`lab.field_demo.fields.ip_addrs`,multiple:!0})}}]}),divider2:e.divider({label:`lab.field_demo.blocks.leaves`}),prose:e.prose({label:`lab.field_demo.blocks.prose`,icon:`lucide:file-text`,dropCap:`markdown`,fields:{markdown:e.markdown({label:`lab.field_demo.fields.markdown`,rules:{max:5e3}}),text_multiline:e.text({label:`lab.field_demo.fields.text_multiline`,rules:{max:500}})}}),plaque:e.plaque({label:`lab.field_demo.blocks.plaque`,icon:`lucide:cpu`,title:{mac:c.mac({label:`lab.field_demo.fields.mac`})},subtitle:{imei:c.imei({label:`lab.field_demo.fields.imei`})}}),ledger:e.ledger({label:`lab.field_demo.blocks.ledger`,icon:`lucide:list`,fields:{duration_short:e.duration({label:`lab.field_demo.fields.duration_short`,rules:{max:28800,step:300}}),measured_weight:e.measured({label:`lab.field_demo.fields.measured_weight`,units:`weight`})}}),stats:e.stats({label:`lab.field_demo.blocks.stats`,icon:`lucide:thermometer`,fields:{tempRange:e.realRange({label:`lab.field_demo.fields.tempRange`})}}),facets:e.facets({label:`lab.field_demo.blocks.facets`,icon:`lucide:sun-medium`,fields:{day_period:e.string({label:`lab.field_demo.fields.day_period`,options:`day-periods`,strict:!0,noSearch:!0})}}),terminal:e.terminal({label:`lab.field_demo.blocks.terminal`,icon:`lucide:terminal`,caption:`lab.field_demo.blocks.terminal_caption`,fields:{code:e.snippet({label:`lab.field_demo.fields.code`,rules:{language:`yaml`,max:5e3}})}}),callout:e.callout({label:`lab.field_demo.blocks.callout`,icon:`lucide:shield-check`,tone:`warn`,fields:{agree:e.triState({label:`lab.field_demo.fields.agree`}),boolean:e.boolean({label:`lab.field_demo.fields.boolean`})}}),compare:e.compare({label:`lab.field_demo.blocks.compare`,icon:`lucide:git-compare`,leftLabel:`lab.field_demo.blocks.compare_left`,rightLabel:`lab.field_demo.blocks.compare_right`,left:{country_multi:e.string({label:`lab.field_demo.fields.country_multi`,options:`countries`,multiple:!0,strict:!0,noSearch:!0})},right:{demo_check:e.check({label:`lab.field_demo.fields.demo_check`}),select_multi:e.string({label:`lab.field_demo.fields.select_multi`,multiple:!0,strict:!0,noSearch:!0,options:[{value:`red`,title:`lab.field_demo.options.select.red`},{value:`green`,title:`lab.field_demo.options.select.green`},{value:`blue`,title:`lab.field_demo.options.select.blue`}]})}}),group22:e.group({label:`lab.field_demo.groups.figure`,icon:`lucide:image`,fields:{figure:e.figure({image:{image_gallery:e.image({label:`lab.field_demo.fields.image_gallery`,multiple:!0})},caption:{small_text:e.smallText({label:`lab.field_demo.fields.small_text`,rules:{max:500}})}})},scope:`hoist`}),group23:e.group({label:`lab.field_demo.groups.illustrated`,icon:`lucide:image`,scope:`hoist`,fields:{illustrated_one:e.illustrated({label:`lab.field_demo.fields.illustrated_one`}),illustrated_many:e.illustrated({label:`lab.field_demo.fields.illustrated_many`,multiple:!0,fields:{text:e.markdown({}),image:e.image({})}})}}),group24:e.group({label:`lab.field_demo.groups.epigraph`,icon:`lucide:quote`,fields:{epigraph:e.epigraph({source:{textarea:e.text({label:`lab.field_demo.fields.textarea`,rules:{max:1e3},ui:{noLabel:!0}})},attribution:{compact_note:e.string({label:`lab.field_demo.fields.compact_note`,ui:{noEditControl:!0}})}})},scope:`hoist`}),group25:e.group({label:`lab.field_demo.groups.masthead`,icon:`lucide:calendar-days`,fields:{masthead:e.masthead({overline:{day_period_multi:e.string({label:`lab.field_demo.fields.day_period_multi`,options:`day-periods`,multiple:!0,strict:!0,noSearch:!0})},title:{birthYear:e.date({label:`lab.field_demo.fields.birthYear`,rules:{granularity:`year`}})}})},scope:`hoist`}),divider3:e.divider({label:`lab.field_demo.blocks.domain`}),group26:e.group({label:`lab.field_demo.groups.timeline`,icon:`lucide:history`,fields:{timeline:e.timeline({fields:{date_future:e.date({label:`lab.field_demo.fields.date_future`,rules:{min:`today`}}),demo_reminder:e.reminder({label:`lab.field_demo.fields.demo_reminder`,rules:{lead:14}})}})},scope:`hoist`}),group27:e.group({label:`lab.field_demo.groups.countdown`,icon:`lucide:timer`,fields:{countdown:e.countdown({source:{datetime:e.datetime({label:`lab.field_demo.fields.datetime`})},caption:`lab.field_demo.blocks.countdown_caption`})},scope:`hoist`}),group28:e.group({label:`lab.field_demo.groups.deck`,icon:`lucide:layers`,fields:{deck:e.deck({source:{relation_multi:e.relation({label:`lab.field_demo.fields.relation_multi`,options:t({library:`lab`,shelf:`field_demo_child`}),multiple:!0})}})},scope:`hoist`}),group29:e.group({label:`lab.field_demo.groups.people`,icon:`lucide:user`,fields:{people:e.people({source:{relation_single:e.relation({label:`lab.field_demo.fields.relation_single`,options:t({library:`lab`,shelf:`field_demo_child`})})}})},scope:`hoist`}),group30:e.group({label:`lab.field_demo.groups.identity`,icon:`lucide:contact`,fields:{identity:e.identity({name:{text_plain:e.string({label:`lab.field_demo.fields.text_plain`,rules:{max:200}})},role:{text_minmax:e.string({label:`lab.field_demo.fields.text_minmax`,rules:{min:3,max:20}})},channels:{text_tel:e.tel({label:`lab.field_demo.fields.text_tel`}),text_email:e.email({label:`lab.field_demo.fields.text_email`})}})},scope:`hoist`}),group31:e.group({label:`lab.field_demo.groups.score`,icon:`lucide:gauge`,fields:{score:e.score({source:{integer:e.int({label:`lab.field_demo.fields.integer`,rules:{min:1,max:12}})},max:12})},scope:`hoist`}),group48:e.group({label:`lab.field_demo.groups.media_rating`,icon:`lucide:bar-chart-horizontal`,fields:{media_rating:e.mediaRating({source:{imdb_rating:e.real({label:`lab.field_demo.fields.imdb_rating`,rules:{min:0,max:10}}),tmdb_rating:e.real({label:`lab.field_demo.fields.tmdb_rating`,rules:{min:0,max:10}})},max:10})},scope:`hoist`}),group32:e.group({label:`lab.field_demo.groups.status`,icon:`lucide:check-circle`,fields:{status:e.status({source:{select:e.string({label:`lab.field_demo.fields.select`,strict:!0,noSearch:!0,options:[{value:`red`,title:`lab.field_demo.options.select.red`},{value:`green`,title:`lab.field_demo.options.select.green`},{value:`blue`,title:`lab.field_demo.options.select.blue`}]})}})},scope:`hoist`}),group33:e.group({label:`lab.field_demo.groups.meter`,icon:`lucide:sliders-horizontal`,fields:{meter:e.meter({source:{meter_value:e.int({label:`lab.field_demo.fields.meter_value`,rules:{min:0,max:50}})},min:0,max:50})},scope:`hoist`}),group34:e.group({label:`lab.field_demo.groups.receipt`,icon:`lucide:receipt`,scope:`hoist`,fields:{receipt:e.receipt({fields:{number_decimal:e.real({label:`lab.field_demo.fields.number_decimal`,rules:{min:0,max:1e3}})},total:{price:e.money({label:`lab.field_demo.fields.price`})}}),currency:e.currency({label:`core.fields.currency`,default:`UAH`})}}),group35:e.group({label:`lab.field_demo.groups.balance`,icon:`lucide:scale`,fields:{balance:e.balance({source:{measured_currency:e.measured({label:`lab.field_demo.fields.measured_currency`,units:`currency`})},caption:`lab.field_demo.blocks.balance_caption`})},scope:`hoist`}),group36:e.group({label:`lab.field_demo.groups.route`,icon:`lucide:map-pin`,fields:{route:e.route({from:{country:e.string({label:`lab.field_demo.fields.country`,options:`countries`,strict:!0,noSearch:!0})},to:{place:e.geo({label:`lab.field_demo.fields.place`})}})},scope:`hoist`}),calendar:e.calendar({source:{calendar_dates:e.group({scope:`nest`,label:`lab.field_demo.fields.calendar_dates`,icon:`lucide:calendar`,multiple:!0,fields:{occurs_on:e.date({label:`lab.field_demo.per_row.occurs_on`})}})},date:`occurs_on`}),journal:e.journal({source:{journal_log:e.group({scope:`nest`,label:`lab.field_demo.fields.journal_log`,icon:`lucide:book-open`,multiple:!0,fields:{logged_at:e.date({label:`lab.field_demo.per_row.logged_at`}),entry:e.text({label:`lab.field_demo.per_row.entry`,rules:{max:500}})}})},date:`logged_at`,text:`entry`}),group37:e.group({label:`lab.field_demo.groups.nutrition`,icon:`lucide:flame`,scope:`hoist`,fields:{nutrition:e.nutrition({energy:{ageRange:e.numberRange({label:`lab.field_demo.fields.ageRange`,rules:{min:0,max:120}})},fields:{measured_custom:e.measured({label:`lab.field_demo.fields.measured_custom`,units:[{value:`shot`,label:`lab.field_demo.units.shot`},{value:`scoop`,label:`lab.field_demo.units.scoop`}]})}})}}),group38:e.group({label:`lab.field_demo.groups.specimen`,icon:`lucide:palette`,fields:{specimen:e.specimen({title:{color_name:e.string({label:`lab.field_demo.fields.color_name`,options:`colors`,strict:!0,noSearch:!0})},subtitle:{color_hex:e.color({label:`lab.field_demo.fields.color_hex`})}})},scope:`hoist`}),manifest:e.manifest({source:{row_ingredients:e.group({scope:`nest`,label:`lab.field_demo.fields.row_ingredients`,icon:`lucide:carrot`,multiple:!0,rules:{unique:[`product`]},fields:{product:e.relation({label:`lab.field_demo.per_row.product`,options:t({library:`kitchen`,shelf:`food_item`})}),amount:e.real({label:`lab.field_demo.per_row.amount`,rules:{min:0}}),stock:e.measured({label:`lab.field_demo.per_row.stock`,units:`cooking`,cache:0,value:async e=>(await e.ref?.(`product`))?.quantity??null})}})},quantity:`amount`,item:`product`}),table:e.table({label:`lab.field_demo.fields.demo_table`,source:{demo_table_rows:e.row({scope:`nest`,label:`lab.field_demo.fields.demo_table`,multiple:!0,fields:{part:e.string({label:`lab.field_demo.table.part`}),vendor:e.string({label:`lab.field_demo.table.vendor`}),qty:e.int({label:`lab.field_demo.table.qty`})}})},sort:`qty`,dir:`desc`,groupBy:`vendor`,totals:{qty:`sum`},numbered:!0}),group39:e.group({label:`lab.field_demo.groups.idcard`,icon:`lucide:credit-card`,fields:{idcard:e.idcard({number:{iban:l.iban({label:`lab.field_demo.fields.iban`})},meta:{date:e.date({label:`lab.field_demo.fields.date`})}})},scope:`hoist`}),divider4:e.divider({label:`lab.field_demo.blocks.computed`}),chart:e.chart({source:{chart_readings:e.group({scope:`nest`,label:`lab.field_demo.fields.chart_readings`,icon:`lucide:trending-up`,multiple:!0,fields:{measured_on:e.date({label:`lab.field_demo.per_row.measured_on`}),reading:e.real({label:`lab.field_demo.per_row.reading`})}})},value:`reading`,date:`measured_on`,delta:!0}),heatmap:e.heatmap({source:{heatmap_sessions:e.group({scope:`nest`,label:`lab.field_demo.fields.heatmap_sessions`,icon:`lucide:calendar-check`,multiple:!0,fields:{happened_on:e.date({label:`lab.field_demo.per_row.happened_on`})}})},date:`happened_on`}),divider5:e.divider(),group40:e.group({label:`lab.field_demo.groups.periods`,icon:`lucide:calendar-range`,scope:`hoist`,fields:{periods:e.period({label:`lab.field_demo.fields.periods`,multiple:!0})}}),group41:e.group({label:`lab.field_demo.groups.json`,icon:`lucide:code-2`,scope:`hoist`,fields:{json:e.json({label:`lab.field_demo.fields.json`,ui:{emphasis:`muted`}})}}),row_single:e.group({scope:`nest`,label:`lab.field_demo.fields.row_single`,icon:`lucide:rows-3`,fields:{env:e.string({label:`lab.field_demo.per_row.env`,strict:!0,noSearch:!0,options:[{value:`dev`,title:`lab.field_demo.options.env.dev`},{value:`prod`,title:`lab.field_demo.options.env.prod`}]}),url:e.url({label:`lab.field_demo.per_row.url`}),token:e.password({label:`lab.field_demo.per_row.token`})}}),variants:e.keyed({label:`lab.field_demo.fields.variants`,icon:`lucide:languages`,fields:{lang:e.string({label:`lab.field_demo.per_row.lang`,options:`languages`,strict:!0,noSearch:!0}),name:e.string({label:`lab.field_demo.per_row.name`}),surname:e.string({label:`lab.field_demo.per_row.surname`})},by:`lang`}),perkey_fixed:e.keyed({label:`lab.field_demo.fields.perkey_fixed`,icon:`lucide:key`,fixed:!0,fields:{size:e.string({label:`lab.field_demo.per_row.size`,strict:!0,noSearch:!0,options:[{value:`s`,title:`lab.field_demo.options.size.s`},{value:`m`,title:`lab.field_demo.options.size.m`},{value:`l`,title:`lab.field_demo.options.size.l`}]}),qty:e.int({label:`lab.field_demo.per_row.qty`,rules:{min:0}})},by:`size`}),coll_text:e.group({scope:`nest`,label:`lab.field_demo.fields.coll_text`,icon:`lucide:type`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.string({label:`lab.field_demo.fields.pp_value`})}}),coll_integer:e.group({scope:`nest`,label:`lab.field_demo.fields.coll_integer`,icon:`lucide:hash`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.int({label:`lab.field_demo.fields.pp_value`})}}),coll_select:e.group({scope:`nest`,label:`lab.field_demo.fields.coll_select`,icon:`lucide:list-checks`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.string({label:`lab.field_demo.fields.pp_value`,strict:!0,noSearch:!0,options:[{value:`s`,title:`lab.field_demo.options.pp_select.s`},{value:`m`,title:`lab.field_demo.options.pp_select.m`},{value:`l`,title:`lab.field_demo.options.pp_select.l`}]})}}),group42:e.group({label:`lab.field_demo.groups.per_weekday`,icon:`lucide:calendar-days`,scope:`hoist`,fields:{per_weekday:e.perWeekday({label:`lab.field_demo.fields.per_weekday`,rules:{min:0,max:5,step:.5}})}}),per_weekday_per_person:e.group({scope:`nest`,label:`lab.field_demo.fields.per_weekday_per_person`,icon:`lucide:users`,multiple:!0,fields:{person:e.relation({label:`lab.field_demo.fields.pp_person`,options:t({library:`people`,shelf:`person`})}),value:e.perWeekday({label:`lab.field_demo.fields.pp_value`,rules:{min:0,max:10,step:1}})}}),group43:e.group({label:`lab.field_demo.groups.media_carousel`,icon:`lucide:images`,scope:`hoist`,fields:{avatar_row:e.avatar({label:`lab.field_demo.fields.avatar_row`,multiple:!0}),cover_carousel:e.cover({label:`lab.field_demo.fields.cover_carousel`,multiple:!0})}}),group44:e.group({label:`lab.field_demo.groups.files`,icon:`lucide:paperclip`,scope:`hoist`,fields:{attachment:e.file({label:`lab.field_demo.fields.attachment`}),doc:e.document({label:`lab.field_demo.fields.doc`}),voice:e.audio({label:`lab.field_demo.fields.voice`}),clip:e.video({label:`lab.field_demo.fields.clip`}),gallery:e.media({label:`lab.field_demo.fields.gallery`,multiple:!0}),attachment_one:e.attachment({label:`lab.field_demo.fields.attachment_one`}),attachment_many:e.attachment({label:`lab.field_demo.fields.attachment_many`,multiple:!0,fields:{file:e.document({})}})}}),group45:e.group({label:`lab.field_demo.groups.key_value`,icon:`lucide:key-round`,scope:`hoist`,fields:{key_value:e.keyValue({label:`lab.field_demo.fields.key_value`,multiple:!0}),key_value_secret:e.keyValue({label:`lab.field_demo.fields.key_value_secret`,fields:{value:e.password({label:``})}})}}),services_bylist:e.group({scope:`nest`,label:`lab.field_demo.fields.services_bylist`,icon:`lucide:server`,multiple:!0,fields:{type:e.string({label:`devices.service.type`,options:`service-types`,strict:!0,noSearch:!0}),url:e.url({label:`devices.service.url`}),login:e.string({label:`devices.service.login`}),password:e.password({label:`devices.service.password`,ui:{emphasis:`muted`}}),token:e.password({label:`devices.service.token`})}}),group47:e.group({label:`lab.field_demo.groups.catalogue_gap`,icon:`lucide:scan-line`,scope:`hoist`,fields:{identifier:e.identifier({label:`lab.field_demo.fields.identifier`,rules:{max:50},ui:{span:4}}),colorname:e.colorname({label:`lab.field_demo.fields.colorname`,ui:{span:4}}),age:e.age({label:`lab.field_demo.fields.age`,rules:{min:`1900-01-01`,max:`today`},ui:{span:4}}),path:e.path({label:`lab.field_demo.fields.path`,rules:{max:120},ui:{span:6}}),mrz:e.mrz({label:`lab.field_demo.fields.mrz`,rules:{max:200},ui:{span:6}}),timetable:e.timetable({label:`lab.field_demo.fields.timetable`,ui:{span:12}})}}),assay:e.assay({label:`lab.field_demo.groups.assay`,icon:`lucide:activity`,analyte:`analyte`,value:`value`,unit:`unit`,low:`low`,high:`high`,source:{readings:e.group({scope:`nest`,multiple:!0,fields:{analyte:e.string({label:`lab.field_demo.fields.analyte`,rules:{max:100}}),value:e.real({label:`lab.field_demo.fields.value`}),unit:e.string({label:`lab.field_demo.fields.unit`,rules:{max:20}}),low:e.real({label:`lab.field_demo.fields.low`}),high:e.real({label:`lab.field_demo.fields.high`})}})}}),flow:e.flow({amount:{flow_amount:e.money({label:`lab.field_demo.fields.flow_amount`})},from:{flow_from:e.relation({label:`lab.field_demo.fields.flow_from`,options:t({library:`lab`,shelf:`field_demo_child`})})},to:{flow_to:e.relation({label:`lab.field_demo.fields.flow_to`,options:t({library:`lab`,shelf:`field_demo_child`})})}}),children:e.backrefs({label:`lab.field_demo.fields.children`,from:{library:`lab`,shelf:`field_demo_child`,field:`demo_id`}}),group46:e.group({label:`lab.field_demo.groups.classifier`,icon:`lucide:toggle-right`,scope:`hoist`,fields:{type:e.string({label:`lab.field_demo.fields.type`,strict:!0,noSearch:!0,options:[{value:`basic`,title:`lab.field_demo.options.type.basic`},{value:`advanced`,title:`lab.field_demo.options.type.advanced`}]})}})}}),d=n({shelf:`field_demo_child`,library:`lab`,label:`lab.field_demo_child.label`,icon:`lucide:link`,standalone:!1,fields:{name:e.title({label:`core.fields.name`}),demo_id:e.relation({label:`lab.field_demo_child.fields.demo_id`,options:t({library:`lab`,shelf:`field_demo`})}),notes:e.text({label:`lab.field_demo_child.fields.notes`,rules:{max:500}})}}),f=a({id:`demo_extra`,label:`lab.demo_extra.label`,icon:`lucide:plus`,attachTo:[{library:`lab`,shelf:`field_demo`}],showWhen:{type:`advanced`},fields:{extra_text:e.string({label:`lab.demo_extra.fields.extra_text`,rules:{max:200}}),extra_number:e.int({label:`lab.demo_extra.fields.extra_number`,rules:{min:0}}),extra_flag:e.boolean({label:`lab.demo_extra.fields.extra_flag`})}}),p=i({id:`lab`,version:`1.0.0`,dependsOn:[`people`,`kitchen`,`devices`,`finance`,`geo`,`calendar`],label:`lab.plugin.label`,description:`lab.plugin.description`,settings:s({label:`lab.settings.label`,icon:`lucide:flask-conical`,fields:{info:e.info(`lab.settings.intro`),greeting:e.string({label:`lab.settings.fields.greeting`,rules:{max:80}}),enabled:e.boolean({label:`lab.settings.fields.enabled`}),mode:e.string({label:`lab.settings.fields.mode`,strict:!0,noSearch:!0,options:[{value:`fast`,title:`lab.settings.modes.fast`},{value:`safe`,title:`lab.settings.modes.safe`},{value:`debug`,title:`lab.settings.modes.debug`}]}),retries:e.int({label:`lab.settings.fields.retries`,rules:{min:0,max:10}}),divider:e.divider(),info2:e.info(`lab.settings.actions_info`),button:e.button({label:`lab.settings.run_button`,value:`lab.demoAction`,icon:`lucide:play`}),button2:e.button({label:`lab.settings.fail_button`,value:`lab.demoFail`,icon:`lucide:bug`,variant:`destructive`}),button3:e.button({label:`lab.settings.variants.default`,value:`lab.demoAction`,icon:`lucide:check`,variant:`default`}),button4:e.button({label:`lab.settings.variants.secondary`,value:`lab.demoAction`,icon:`lucide:settings`,variant:`secondary`}),button5:e.button({label:`lab.settings.variants.ghost`,value:`lab.demoAction`,icon:`lucide:ghost`,variant:`ghost`}),button6:e.button({label:`lab.settings.variants.link`,value:`lab.demoAction`,icon:`lucide:link`,variant:`link`})}}),libraries:[{meta:r({id:`lab`,label:`lab.library.label`,icon:`lucide:flask-conical`,agent:`Developer demo of field types — not real household data; ignore unless explicitly asked.`}),shelves:[u,d]}],extends_:[f]});export{p as default};
@@ -1,4 +1,4 @@
1
- import{D as e,R as t,T as n,j as r,k as i,n as a,r as o}from"./fields-CV3RQg0Y.js";import{a as s}from"./shelf-Cj_pNvd-.js";import{i as c,n as l}from"./plugin-Cjr7lgQH.js";import{t as u}from"./extend-yQ8zoqGc.js";import{t as d}from"./settings-Bo5IOwVg.js";var f=/^[A-Za-z]{2}\d{2}[A-Za-z0-9]{11,30}$/;function p(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 m(a){let o=t().regex(f,{message:r(`pattern`,{messageKey:`core.presets.iban`})}).refine(p,{message:r(`pattern`,{messageKey:`core.presets.iban`})});return e(void 0,a,n({kind:`text`,label:a.label??``,prim:`text`,column:`text`,hints:{mask:`iban`,maskStore:`unmasked`},zod:i(o)},a.multiple??!1))}var h=/^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;function g(a){let o=t().regex(h,{message:r(`pattern`,{messageKey:`finance.presets.bic`})});return e(void 0,a,n({kind:`text`,label:a.label??``,prim:`text`,column:`text`,hints:{},zod:i(o)},a.multiple??!1))}var _=s({shelf:`account`,library:`finance`,label:`finance.account.label`,icon:`lucide:landmark`,agent:`Firefly III account (read-only mirror). kind — account type.
1
+ import{D as e,R as t,T as n,j as r,k as i,n as a,r as o}from"./fields-Ce51pRua.js";import{a as s}from"./shelf-DjiUBfgQ.js";import{i as c,n as l}from"./plugin-Cjr7lgQH.js";import{t as u}from"./extend-CHOe1AVl.js";import{t as d}from"./settings-BEzSaRjz.js";var f=/^[A-Za-z]{2}\d{2}[A-Za-z0-9]{11,30}$/;function p(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 m(a){let o=t().regex(f,{message:r(`pattern`,{messageKey:`core.presets.iban`})}).refine(p,{message:r(`pattern`,{messageKey:`core.presets.iban`})});return e(void 0,a,n({kind:`text`,label:a.label??``,prim:`text`,column:`text`,hints:{mask:`iban`,maskStore:`unmasked`},zod:i(o)},a.multiple??!1))}var h=/^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;function g(a){let o=t().regex(h,{message:r(`pattern`,{messageKey:`finance.presets.bic`})});return e(void 0,a,n({kind:`text`,label:a.label??``,prim:`text`,column:`text`,hints:{},zod:i(o)},a.multiple??!1))}var _=s({shelf:`account`,library:`finance`,label:`finance.account.label`,icon:`lucide:landmark`,agent:`Firefly III account (read-only mirror). kind — account type.
2
2
  current_balance — current balance. firefly_id — external key (do not edit).`,views:{list:[`kind`,`currency`,`current_balance`]},fields:{name:a.title({label:`core.fields.name`}),description:a.text({label:`finance.account.fields.description`,rules:{max:1e3}}),balance:a.balance({source:{current_balance:a.money({label:`finance.account.fields.current_balance`})}}),status:a.status({source:{kind:a.string({label:`finance.account.fields.kind`,strict:!0,noSearch:!0,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`}]})}}),sheet:a.sheet({fields:{account:{currency:a.currency({label:`finance.account.fields.currency`}),iban:m({label:`finance.account.fields.iban`})},bank:{bank:a.string({label:`finance.account.fields.bank`,rules:{max:120}}),bic:g({label:`finance.account.fields.bic`})}}}),firefly_id:a.string({label:`finance.account.fields.firefly_id`,rules:{max:32}}),notes:a.text({label:`finance.account.fields.notes`,rules:{max:2e3}})}}),v=s({shelf:`transaction`,library:`finance`,label:`finance.transaction.label`,icon:`lucide:arrow-left-right`,agent:`Firefly III transaction (read-only). Each split = a separate record.
3
3
  source/destination — accounts. firefly_id — split journal id (do not edit).`,views:{list:[`date`,`amount`,`kind`]},fields:{description:a.title({label:`finance.transaction.fields.description`}),flow:a.flow({amount:{amount:a.money({label:`finance.transaction.fields.amount`})},from:{source:a.relation({label:`finance.transaction.fields.source`,options:o({library:`finance`,shelf:`account`})})},to:{destination:a.relation({label:`finance.transaction.fields.destination`,options:o({library:`finance`,shelf:`account`})})},meta:{date:a.date({label:`finance.transaction.fields.date`,ui:{span:3}}),kind:a.string({label:`finance.transaction.fields.kind`,strict:!0,noSearch:!0,ui:{span:3},options:[{value:`withdrawal`,title:`finance.transaction.options.withdrawal`},{value:`deposit`,title:`finance.transaction.options.deposit`,tone:`success`},{value:`transfer`,title:`finance.transaction.options.transfer`}]}),category:a.string({label:`finance.transaction.fields.category`,rules:{max:100},ui:{span:3}}),currency:a.currency({label:`core.fields.currency`,ui:{span:3}})}}),firefly_id:a.string({label:`finance.transaction.fields.firefly_id`,rules:{max:32}}),notes:a.text({label:`finance.transaction.fields.notes`,rules:{max:2e3}})}}),y=s({shelf:`bill`,library:`finance`,label:`finance.bill.label`,icon:`lucide:receipt`,agent:`Recurring Firefly III payment (Bill = subscription, read-only).
4
4
  repeat — recurrence. next_expected — next expected date. firefly_id — do not edit.`,views:{list:[`amount_min`,`repeat`,`next_expected`,`active`]},fields:{name:a.title({label:`core.fields.name`}),description:a.text({label:`finance.bill.fields.description`,rules:{max:1e3}}),currency:a.currency({label:`core.fields.currency`}),sheet:a.sheet({fields:{amount:{amount_min:a.money({label:`finance.bill.fields.amount_min`}),amount_max:a.money({label:`finance.bill.fields.amount_max`})},schedule:{repeat:a.string({label:`finance.bill.fields.repeat`,strict:!0,noSearch:!0,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`}]})}}}),countdown:a.countdown({source:{next_expected:a.date({label:`finance.bill.fields.next_expected`})},caption:`units.days`}),active:a.boolean({label:`finance.bill.fields.active`}),firefly_id:a.string({label:`finance.bill.fields.firefly_id`,rules:{max:32}}),notes:a.text({label:`finance.bill.fields.notes`,rules:{max:2e3}})}}),b=e=>typeof e==`number`&&Number.isFinite(e)?e:Number.isFinite(Number(e))&&e!==null&&e!==``?Number(e):null,x=u({id:`item_financing`,label:`finance.item_financing.label`,icon:`lucide:credit-card`,attachTo:[{library:`things`,shelf:`item`}],showWhen:{paymentStatus:{$in:[`installment`,`credit`]}},agent:`Installment/credit details for an item. creditor — who is owed (bank/store).
@@ -0,0 +1 @@
1
+ import{D as e,N as t,R as n,j as r,k as i,n as a,w as o}from"./fields-Ce51pRua.js";import{a as s}from"./shelf-DjiUBfgQ.js";import{i as c,n as l}from"./plugin-Cjr7lgQH.js";import{t as u}from"./extend-CHOe1AVl.js";import{i as d}from"./ical-FRtCagm-.js";function f(a){if(a.multiple)throw Error("cal.recurrence: `multiple` is not supported — a record holds one series");let s=o(a),c=n().superRefine((e,n)=>{d(e)&&n.addIssue({code:t.custom,message:r(`pattern`,{messageKey:`calendar.validation.rrule`})})});return e(void 0,s,{kind:`recurrence`,label:s.label??``,prim:`recurrence`,column:`text`,hints:{...a.exdates?{exdates:a.exdates}:{},...a.overrides?{overrides:a.overrides}:{},...a.allDay?{allDay:a.allDay}:{}},zod:i(c)})}var p={recurrence:f},m=s({shelf:`entry`,library:`calendar`,label:`calendar.entry.label`,icon:`lucide:calendar-days`,agent:"An event or a task on the household calendar. `type` decides which: an event has a start and an end in `when`; a task has its due date in `when.until` and priority/percent/completed in its task_details extend. Recurrence is an RRULE in `recurrence` with exceptions in `exdates`. The shelf is served to phones over CalDAV at /dav/calendars/entry/. Leave `uid` and `ics` alone: they belong to the sync.",views:{listKind:`calendar-ilamy`,list:[`when`,`type`,`location`,`status`],inline:[`summary`,`when`],groupBy:[`type`,`status`],defaultGroupBy:`type`},fields:{summary:a.title({label:`calendar.entry.fields.summary`}),description:a.text({label:`calendar.entry.fields.description`,rules:{max:5e3}}),when:a.period({label:`calendar.entry.fields.when`,rules:{granularity:`datetime`}}),recurrence:p.recurrence({label:`calendar.entry.fields.recurrence`,exdates:`exdates`}),location:a.string({label:`calendar.entry.fields.location`,rules:{max:300}}),exdates:a.datetime({label:`calendar.entry.fields.exdates`,multiple:!0}),type:a.string({label:`core.fields.type`,strict:!0,noSearch:!0,default:`event`,options:[{value:`event`,title:`calendar.entry.options.type.event`},{value:`task`,title:`calendar.entry.options.type.task`}]}),status:a.string({label:`calendar.entry.fields.status`,strict:!0,noSearch:!0,options:[{value:`tentative`,title:`calendar.entry.options.status.tentative`,when:{type:`event`}},{value:`confirmed`,title:`calendar.entry.options.status.confirmed`,when:{type:`event`}},{value:`needs-action`,title:`calendar.entry.options.status.needs_action`,when:{type:`task`}},{value:`in-process`,title:`calendar.entry.options.status.in_process`,when:{type:`task`}},{value:`completed`,title:`calendar.entry.options.status.completed`,when:{type:`task`}},{value:`cancelled`,title:`calendar.entry.options.status.cancelled`}]}),uid:a.string({label:`calendar.entry.fields.uid`,rules:{max:255},ui:{emphasis:`muted`}}),ics:a.source({label:`calendar.entry.fields.ics`,rules:{ext:`ics`},ui:{emphasis:`muted`}}),tags:a.tags({label:`calendar.entry.fields.tags`}),notes:a.text({label:`calendar.entry.fields.notes`,rules:{max:2e3}})}}),h=u({id:`task_details`,label:`calendar.task_details.label`,icon:`lucide:check-square`,attachTo:[{library:`calendar`,shelf:`entry`}],showWhen:{type:`task`},fields:{priority:a.int({label:`calendar.task_details.fields.priority`,rules:{min:0,max:9}}),percent:a.percent({label:`calendar.task_details.fields.percent`}),completed:a.datetime({label:`calendar.task_details.fields.completed`})}}),g=l({id:`calendar`,version:`1.0.0`,dependsOn:[`dav`],label:`calendar.plugin.label`,description:`calendar.plugin.description`,libraries:[{meta:c({id:`calendar`,label:`calendar.library.label`,icon:`lucide:calendar-days`,agent:`The household calendar: events and tasks, also served to phones over CalDAV.`}),shelves:[m]}],extends_:[h]});export{p as n,f as r,g as t};
@@ -0,0 +1 @@
1
+ import{i as e,r as t,s as n}from"./data-size-CO-LGHbN.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-C06O0ceD.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{n as e,r as t}from"./fields-CV3RQg0Y.js";import{a as n}from"./shelf-Cj_pNvd-.js";import{i as r,n as i}from"./plugin-Cjr7lgQH.js";var a=(e,t)=>(e??[]).reduce((e,n)=>{let r=n?.[t];return e+(Number(r&&typeof r==`object`?r.value:r)||0)},0),o=e=>e&&typeof e==`object`?e.unit??null:null,s=()=>e.string({options:`cooking`,value:({record:e})=>o(e.quantity),strict:!0}),c=(e,t)=>(e??[]).map(e=>e?.[t]==null?``:String(e[t])).filter(e=>e!==``).sort()[0]??null,l=e=>{let t=e?.value;return typeof t==`number`&&Number.isFinite(t)?t:null},u=n({shelf:`food_item`,library:`kitchen`,label:`kitchen.food_item.label`,icon:`lucide:soup`,agent:'A kitchen product is generic (buckwheat, milk), and its `variants` rows are the actual goods on the shelf. The unit is declared once on the product, inside its stock: `quantity` is written as `{"unit": "<unit>"}` — the unit alone, never a value. Every amount below it — `minQuantity`, each variant row\'s `quantity` — is written as `{"value": <number>}` alone, on that scale. Do NOT send a unit inside those amounts: the server fills it in from the product\'s `quantity.unit` and discards anything you put there. Reads hand them back as `{"value": …, "unit": …}`, which you may echo unchanged. The `value` of the product\'s `quantity`, and `expires`, are computed from the variants and MUST NOT be written — to record a purchase or a write-off, change the `quantity` of the relevant variant row, or add a variant row for a good that is not there yet. A variant with quantity 0 means "this good is known, none in stock" and is a shopping-list candidate, so do not delete it.',views:{list:[`subcategory`,`quantity`,`expires`]},fields:{name:e.title({label:`core.fields.name`}),stock:e.stats({fields:{quantity:e.measured({label:`kitchen.food_item.fields.quantity`,units:`cooking`,rules:{min:0},fields:{value:e.real({value:({record:e})=>a(e.variants,`quantity`),mutate:[`stockState`]}),unit:e.string({options:`cooking`,strict:!0,mutate:[`minQuantity.unit`,`variants.quantity.unit`]})}}),status:e.status({source:{stockState:e.string({label:`kitchen.food_item.fields.stockState`,value:({record:e})=>{let t=l(e.minQuantity);return t==null?`ok`:(l(e.quantity)??0)<t?`low`:`ok`},strict:!0,noSearch:!0,options:[{value:`ok`,title:`kitchen.food_item.options.stockState.ok`,tone:`success`},{value:`low`,title:`kitchen.food_item.options.stockState.low`,tone:`danger`}]})}}),minQuantity:e.measured({label:`kitchen.food_item.fields.minQuantity`,units:`cooking`,rules:{min:0},fields:{unit:s(),value:e.real({rules:{min:0},mutate:[`stockState`]})}}),expires:e.reminder({label:`kitchen.food_item.fields.expires`,rules:{lead:14},value:({record:e})=>c(e.variants,`expires`)})}}),hairline:e.divider({}),about:e.illustrated({label:`kitchen.food_item.fields.about`,fields:{image:e.avatar({}),text:e.text({rules:{max:1e3}})}}),photos:e.image({label:`kitchen.food_item.fields.photos`,multiple:!0}),variants:e.row({scope:`nest`,multiple:!0,label:`kitchen.food_item.fields.variants`,icon:`lucide:package`,fields:{name:e.string({label:`kitchen.food_item.variant.name`,rules:{max:200}}),quantity:e.measured({label:`kitchen.food_item.variant.quantity`,units:`cooking`,rules:{min:0},fields:{unit:s(),value:e.real({rules:{min:0},mutate:[`quantity.value`]})}}),expires:e.reminder({label:`kitchen.food_item.variant.expires`,rules:{lead:14},mutate:[`expires`]}),location:e.relation({label:`kitchen.food_item.variant.location`,options:t({library:`things`,shelf:`storage_location`})}),shops:e.link({label:`kitchen.food_item.variant.shops`,multiple:!0}),photo:e.image({label:`kitchen.food_item.variant.photo`})}}),subcategory:e.string({label:`kitchen.food_item.fields.subcategory`,rules:{max:100}}),tags:e.tags({label:`kitchen.food_item.fields.tags`}),notes:e.text({label:`kitchen.food_item.fields.notes`,rules:{max:2e3}})}}),d=async({ref:e})=>{let t=(await e?.(`product`))?.quantity;return t&&typeof t==`object`?t.unit??null:null},f=e=>{let t=e?.value;return typeof t==`number`&&Number.isFinite(t)?t:null},p=async({ref:e})=>(await e?.(`product`))?.quantity??null,m=n({shelf:`food_recipe`,library:`kitchen`,label:`kitchen.food_recipe.label`,icon:`lucide:clipboard-list`,views:{list:[`category`,`description`,`prep_time`,`cook_time`]},fields:{name:e.title({label:`core.fields.name`}),cooking:e.stats({fields:{status:e.status({source:{readiness:e.string({label:`kitchen.food_recipe.fields.readiness`,value:({record:e})=>(e.ingredients??[]).filter(e=>!e.optional).every(e=>e.stock_state===`enough`)?`ready`:`not_ready`,strict:!0,noSearch:!0,options:[{value:`ready`,title:`kitchen.food_recipe.options.readiness.ready`,tone:`success`},{value:`not_ready`,title:`kitchen.food_recipe.options.readiness.not_ready`,tone:`danger`}]})}}),servings:e.int({label:`kitchen.food_recipe.fields.servings`,rules:{min:1,max:100}}),prep_time:e.duration({label:`kitchen.food_recipe.fields.prep_time`}),cook_time:e.duration({label:`kitchen.food_recipe.fields.cook_time`})}}),hairline:e.divider({}),description:e.text({label:`kitchen.food_recipe.fields.description`,rules:{max:500}}),images:e.image({label:`kitchen.food_recipe.fields.images`,multiple:!0}),ingredients:e.row({scope:`nest`,multiple:!0,label:`kitchen.food_recipe.fields.ingredients`,icon:`lucide:carrot`,rules:{unique:[`product`]},fields:{product:e.relation({label:`kitchen.food_recipe.ingredient.product`,options:t({library:`kitchen`,shelf:`food_item`})}),amount:e.measured({label:`kitchen.food_recipe.ingredient.amount`,units:`cooking`,rules:{min:0},fields:{unit:e.string({options:`cooking`,value:d,strict:!0,cache:0}),value:e.real({rules:{min:0},mutate:[`.stock_state`]})}}),optional:e.boolean({label:`kitchen.food_recipe.ingredient.optional`,mutate:[`readiness`]}),stock:e.measured({label:`kitchen.food_recipe.ingredient.stock`,units:`cooking`,cache:0,value:p}),stock_state:e.string({label:`kitchen.food_recipe.ingredient.stock_state`,cache:0,value:async e=>{let t=f(await p(e));if(t==null)return null;let n=f(e.parent?.amount);return n==null?t>0?null:`missing`:t>=n?`enough`:t>0?`partial`:`missing`},mutate:[`readiness`],strict:!0,noSearch:!0,options:[{value:`enough`,title:`kitchen.food_recipe.options.stock_state.enough`,icon:{kind:`icon`,value:`lucide:check`},tone:`success`},{value:`partial`,title:`kitchen.food_recipe.options.stock_state.partial`,icon:{kind:`icon`,value:`lucide:minus`},tone:`danger`},{value:`missing`,title:`kitchen.food_recipe.options.stock_state.missing`,icon:{kind:`icon`,value:`lucide:x`},tone:`danger`}]})}}),ingredients_free:e.row({scope:`nest`,multiple:!0,label:`kitchen.food_recipe.fields.ingredients_free`,icon:`lucide:list`,rules:{unique:[`product`]},fields:{product:e.string({label:`kitchen.food_recipe.ingredient_free.product`,rules:{max:200}}),unit:e.unit({label:`kitchen.food_recipe.ingredient_free.unit`,options:`cooking`}),amount:e.amount({label:`kitchen.food_recipe.ingredient_free.amount`,unitFrom:`unit`,rules:{min:0}}),optional:e.boolean({label:`kitchen.food_recipe.ingredient_free.optional`})}}),prose:e.prose({label:`kitchen.food_recipe.fields.steps`,icon:`lucide:chef-hat`,fields:{steps:e.markdown({label:`kitchen.food_recipe.fields.steps_body`,rules:{max:5e3}})}}),properties:e.properties({columns:2,fields:{category:e.string({label:`kitchen.food_recipe.fields.category`,multiple:!0,strict:!0,noSearch:!0,ui:{span:6},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`}]}),difficulty:e.string({label:`kitchen.food_recipe.fields.difficulty`,strict:!0,noSearch:!0,ui:{span:6},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`}]})}}),tags:e.tags({label:`kitchen.food_recipe.fields.tags`}),notes:e.text({label:`kitchen.food_recipe.fields.notes`,rules:{max:1e3}})}}),h=n({shelf:`preferences`,library:`kitchen`,label:`kitchen.preferences.label`,icon:`lucide:notebook-pen`,single:!0,agent:`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:{preferences:e.markdown({label:`kitchen.preferences.fields.preferences`,rules:{max:1e4}}),shops:e.markdown({label:`kitchen.preferences.fields.shops`,rules:{max:1e4}}),equipment:e.markdown({label:`kitchen.preferences.fields.equipment`,rules:{max:1e4}}),notes:e.text({label:`kitchen.preferences.fields.notes`,rules:{max:1e4}})}}),g=i({id:`kitchen`,version:`1.0.0`,dependsOn:[`things`],label:`kitchen.plugin.label`,description:`kitchen.plugin.description`,libraries:[{meta:r({id:`kitchen`,label:`kitchen.library.label`,icon:`lucide:cooking-pot`,agent:{description:`Food inventory and recipes — what is in stock, what is expiring, what can be cooked.`,instructions:`Read kitchen/preferences before creating, merging or renaming a product: it records how this household splits products from variants, which units each family of goods uses, and why. It governs — these rules are the mechanics, that record is the intent.`},starterHint:`what's expiring soon, or what can be cooked from what's in stock`}),shelves:[u,m,h]}],fieldContribs:[{library:`things`,shelf:`item`,field:`type`,options:[{value:`kitchenware`,title:`kitchen.contrib.type.kitchenware`}]}]});export{g as default};
1
+ import{n as e,r as t}from"./fields-Ce51pRua.js";import{a as n}from"./shelf-DjiUBfgQ.js";import{i as r,n as i}from"./plugin-Cjr7lgQH.js";var a=(e,t)=>(e??[]).reduce((e,n)=>{let r=n?.[t];return e+(Number(r&&typeof r==`object`?r.value:r)||0)},0),o=e=>e&&typeof e==`object`?e.unit??null:null,s=()=>e.string({options:`cooking`,value:({record:e})=>o(e.quantity),strict:!0}),c=(e,t)=>(e??[]).map(e=>e?.[t]==null?``:String(e[t])).filter(e=>e!==``).sort()[0]??null,l=e=>{let t=e?.value;return typeof t==`number`&&Number.isFinite(t)?t:null},u=n({shelf:`food_item`,library:`kitchen`,label:`kitchen.food_item.label`,icon:`lucide:soup`,agent:'A kitchen product is generic (buckwheat, milk), and its `variants` rows are the actual goods on the shelf. The unit is declared once on the product, inside its stock: `quantity` is written as `{"unit": "<unit>"}` — the unit alone, never a value. Every amount below it — `minQuantity`, each variant row\'s `quantity` — is written as `{"value": <number>}` alone, on that scale. Do NOT send a unit inside those amounts: the server fills it in from the product\'s `quantity.unit` and discards anything you put there. Reads hand them back as `{"value": …, "unit": …}`, which you may echo unchanged. The `value` of the product\'s `quantity`, and `expires`, are computed from the variants and MUST NOT be written — to record a purchase or a write-off, change the `quantity` of the relevant variant row, or add a variant row for a good that is not there yet. A variant with quantity 0 means "this good is known, none in stock" and is a shopping-list candidate, so do not delete it.',views:{list:[`subcategory`,`quantity`,`expires`]},fields:{name:e.title({label:`core.fields.name`}),stock:e.stats({fields:{quantity:e.measured({label:`kitchen.food_item.fields.quantity`,units:`cooking`,rules:{min:0},fields:{value:e.real({value:({record:e})=>a(e.variants,`quantity`),mutate:[`stockState`]}),unit:e.string({options:`cooking`,strict:!0,mutate:[`minQuantity.unit`,`variants.quantity.unit`]})}}),status:e.status({source:{stockState:e.string({label:`kitchen.food_item.fields.stockState`,value:({record:e})=>{let t=l(e.minQuantity);return t==null?`ok`:(l(e.quantity)??0)<t?`low`:`ok`},strict:!0,noSearch:!0,options:[{value:`ok`,title:`kitchen.food_item.options.stockState.ok`,tone:`success`},{value:`low`,title:`kitchen.food_item.options.stockState.low`,tone:`danger`}]})}}),minQuantity:e.measured({label:`kitchen.food_item.fields.minQuantity`,units:`cooking`,rules:{min:0},fields:{unit:s(),value:e.real({rules:{min:0},mutate:[`stockState`]})}}),expires:e.reminder({label:`kitchen.food_item.fields.expires`,rules:{lead:14},value:({record:e})=>c(e.variants,`expires`)})}}),hairline:e.divider({}),about:e.illustrated({label:`kitchen.food_item.fields.about`,fields:{image:e.avatar({}),text:e.text({rules:{max:1e3}})}}),photos:e.image({label:`kitchen.food_item.fields.photos`,multiple:!0}),variants:e.row({scope:`nest`,multiple:!0,label:`kitchen.food_item.fields.variants`,icon:`lucide:package`,fields:{name:e.string({label:`kitchen.food_item.variant.name`,rules:{max:200}}),quantity:e.measured({label:`kitchen.food_item.variant.quantity`,units:`cooking`,rules:{min:0},fields:{unit:s(),value:e.real({rules:{min:0},mutate:[`quantity.value`]})}}),expires:e.reminder({label:`kitchen.food_item.variant.expires`,rules:{lead:14},mutate:[`expires`]}),location:e.relation({label:`kitchen.food_item.variant.location`,options:t({library:`things`,shelf:`storage_location`})}),shops:e.link({label:`kitchen.food_item.variant.shops`,multiple:!0}),photo:e.image({label:`kitchen.food_item.variant.photo`})}}),subcategory:e.string({label:`kitchen.food_item.fields.subcategory`,rules:{max:100}}),tags:e.tags({label:`kitchen.food_item.fields.tags`}),notes:e.text({label:`kitchen.food_item.fields.notes`,rules:{max:2e3}})}}),d=async({ref:e})=>{let t=(await e?.(`product`))?.quantity;return t&&typeof t==`object`?t.unit??null:null},f=e=>{let t=e?.value;return typeof t==`number`&&Number.isFinite(t)?t:null},p=async({ref:e})=>(await e?.(`product`))?.quantity??null,m=n({shelf:`food_recipe`,library:`kitchen`,label:`kitchen.food_recipe.label`,icon:`lucide:clipboard-list`,views:{list:[`category`,`description`,`prep_time`,`cook_time`]},fields:{name:e.title({label:`core.fields.name`}),cooking:e.stats({fields:{status:e.status({source:{readiness:e.string({label:`kitchen.food_recipe.fields.readiness`,value:({record:e})=>(e.ingredients??[]).filter(e=>!e.optional).every(e=>e.stock_state===`enough`)?`ready`:`not_ready`,strict:!0,noSearch:!0,options:[{value:`ready`,title:`kitchen.food_recipe.options.readiness.ready`,tone:`success`},{value:`not_ready`,title:`kitchen.food_recipe.options.readiness.not_ready`,tone:`danger`}]})}}),servings:e.int({label:`kitchen.food_recipe.fields.servings`,rules:{min:1,max:100}}),prep_time:e.duration({label:`kitchen.food_recipe.fields.prep_time`}),cook_time:e.duration({label:`kitchen.food_recipe.fields.cook_time`})}}),hairline:e.divider({}),description:e.text({label:`kitchen.food_recipe.fields.description`,rules:{max:500}}),images:e.image({label:`kitchen.food_recipe.fields.images`,multiple:!0}),ingredients:e.row({scope:`nest`,multiple:!0,label:`kitchen.food_recipe.fields.ingredients`,icon:`lucide:carrot`,rules:{unique:[`product`]},fields:{product:e.relation({label:`kitchen.food_recipe.ingredient.product`,options:t({library:`kitchen`,shelf:`food_item`})}),amount:e.measured({label:`kitchen.food_recipe.ingredient.amount`,units:`cooking`,rules:{min:0},fields:{unit:e.string({options:`cooking`,value:d,strict:!0,cache:0}),value:e.real({rules:{min:0},mutate:[`.stock_state`]})}}),optional:e.boolean({label:`kitchen.food_recipe.ingredient.optional`,mutate:[`readiness`]}),stock:e.measured({label:`kitchen.food_recipe.ingredient.stock`,units:`cooking`,cache:0,value:p}),stock_state:e.string({label:`kitchen.food_recipe.ingredient.stock_state`,cache:0,value:async e=>{let t=f(await p(e));if(t==null)return null;let n=f(e.parent?.amount);return n==null?t>0?null:`missing`:t>=n?`enough`:t>0?`partial`:`missing`},mutate:[`readiness`],strict:!0,noSearch:!0,options:[{value:`enough`,title:`kitchen.food_recipe.options.stock_state.enough`,icon:{kind:`icon`,value:`lucide:check`},tone:`success`},{value:`partial`,title:`kitchen.food_recipe.options.stock_state.partial`,icon:{kind:`icon`,value:`lucide:minus`},tone:`danger`},{value:`missing`,title:`kitchen.food_recipe.options.stock_state.missing`,icon:{kind:`icon`,value:`lucide:x`},tone:`danger`}]})}}),ingredients_free:e.row({scope:`nest`,multiple:!0,label:`kitchen.food_recipe.fields.ingredients_free`,icon:`lucide:list`,rules:{unique:[`product`]},fields:{product:e.string({label:`kitchen.food_recipe.ingredient_free.product`,rules:{max:200}}),unit:e.unit({label:`kitchen.food_recipe.ingredient_free.unit`,options:`cooking`}),amount:e.amount({label:`kitchen.food_recipe.ingredient_free.amount`,unitFrom:`unit`,rules:{min:0}}),optional:e.boolean({label:`kitchen.food_recipe.ingredient_free.optional`})}}),prose:e.prose({label:`kitchen.food_recipe.fields.steps`,icon:`lucide:chef-hat`,fields:{steps:e.markdown({label:`kitchen.food_recipe.fields.steps_body`,rules:{max:5e3}})}}),properties:e.properties({columns:2,fields:{category:e.string({label:`kitchen.food_recipe.fields.category`,multiple:!0,strict:!0,noSearch:!0,ui:{span:6},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`}]}),difficulty:e.string({label:`kitchen.food_recipe.fields.difficulty`,strict:!0,noSearch:!0,ui:{span:6},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`}]})}}),tags:e.tags({label:`kitchen.food_recipe.fields.tags`}),notes:e.text({label:`kitchen.food_recipe.fields.notes`,rules:{max:1e3}})}}),h=n({shelf:`preferences`,library:`kitchen`,label:`kitchen.preferences.label`,icon:`lucide:notebook-pen`,single:!0,agent:`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:{preferences:e.markdown({label:`kitchen.preferences.fields.preferences`,rules:{max:1e4}}),shops:e.markdown({label:`kitchen.preferences.fields.shops`,rules:{max:1e4}}),equipment:e.markdown({label:`kitchen.preferences.fields.equipment`,rules:{max:1e4}}),notes:e.text({label:`kitchen.preferences.fields.notes`,rules:{max:1e4}})}}),g=i({id:`kitchen`,version:`1.0.0`,dependsOn:[`things`],label:`kitchen.plugin.label`,description:`kitchen.plugin.description`,libraries:[{meta:r({id:`kitchen`,label:`kitchen.library.label`,icon:`lucide:cooking-pot`,agent:{description:`Food inventory and recipes — what is in stock, what is expiring, what can be cooked.`,instructions:`Read kitchen/preferences before creating, merging or renaming a product: it records how this household splits products from variants, which units each family of goods uses, and why. It governs — these rules are the mechanics, that record is the intent.`},starterHint:`what's expiring soon, or what can be cooked from what's in stock`}),shelves:[u,m,h]}],fieldContribs:[{library:`things`,shelf:`item`,field:`type`,options:[{value:`kitchenware`,title:`kitchen.contrib.type.kitchenware`}]}]});export{g as default};
@@ -1 +1 @@
1
- import{n as e}from"./fields-CV3RQg0Y.js";import{n as t}from"./plugin-Cjr7lgQH.js";import{t as n}from"./settings-Bo5IOwVg.js";var r=t({id:`console`,version:`1.0.0`,dependsOn:[],label:`console.plugin.label`,description:`console.plugin.description`,settings:n({label:`console.settings.label`,icon:`lucide:terminal`,fields:{info:e.info(`console.settings.intro`),divider:e.divider(),info2:e.info(`console.settings.claude`),divider2:e.divider(),info3:e.info(`console.settings.codex`),divider3:e.divider(),info4:e.info(`console.settings.skills`)}})});export{r as default};
1
+ import{n as e}from"./fields-Ce51pRua.js";import{n as t}from"./plugin-Cjr7lgQH.js";import{t as n}from"./settings-BEzSaRjz.js";var r=t({id:`console`,version:`1.0.0`,dependsOn:[],label:`console.plugin.label`,description:`console.plugin.description`,settings:n({label:`console.settings.label`,icon:`lucide:terminal`,fields:{info:e.info(`console.settings.intro`),divider:e.divider(),info2:e.info(`console.settings.claude`),divider2:e.divider(),info3:e.info(`console.settings.codex`),divider3:e.divider(),info4:e.info(`console.settings.skills`)}})});export{r as default};
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./fields-CV3RQg0Y.js";import{a as n}from"./shelf-Cj_pNvd-.js";import{i as r,n as i}from"./plugin-Cjr7lgQH.js";var a=n({shelf:`item`,library:`things`,label:`things.item.label`,icon:`lucide:package`,agent:`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`,`tags`]},fields:{name:e.title({label:`core.fields.name`}),about:e.illustrated({label:`things.item.fields.about`,fields:{image:e.avatar({}),text:e.text({rules:{max:1e3}})}}),properties:e.properties({columns:4,fields:{type:e.string({label:`core.fields.type`,options:[{value:`clothing`,title:`things.item.options.type.clothing`},{value:`bag`,title:`things.item.options.type.bag`},{value:`cable`,title:`things.item.options.type.cable`},{value:`tool`,title:`things.item.options.type.tool`},{value:`furniture`,title:`things.item.options.type.furniture`},{value:`appliance`,title:`things.item.options.type.appliance`},{value:`household`,title:`things.item.options.type.household`},{value:`consumable`,title:`things.item.options.type.consumable`},{value:`personal_care`,title:`things.item.options.type.personal_care`},{value:`sports`,title:`things.item.options.type.sports`},{value:`hobby`,title:`things.item.options.type.hobby`},{value:`hardware`,title:`things.item.options.type.hardware`},{value:`decor`,title:`things.item.options.type.decor`},{value:`stationery`,title:`things.item.options.type.stationery`},{value:`other`,title:`things.item.options.type.other`}],strict:!0,noSearch:!0,ui:{span:3}}),subtype:e.string({label:`core.fields.subtype`,options:[],strict:!0,noSearch:!0,ui:{span:3}}),status:e.status({source:{condition:e.string({label:`things.item.fields.condition`,strict:!0,noSearch:!0,ui:{span:3},options:[{value:`new`,title:`things.item.options.condition.new`},{value:`good`,title:`things.item.options.condition.good`},{value:`fair`,title:`things.item.options.condition.fair`},{value:`poor`,title:`things.item.options.condition.poor`}]})}}),quantity:e.int({label:`things.item.fields.quantity`,rules:{min:0},ui:{span:3}}),owner:e.relation({label:`things.item.fields.owner`,options:t({library:`people`,shelf:`person`}),ui:{span:3}}),location:e.relation({label:`things.item.fields.location`,options:t({library:`things`,shelf:`storage_location`}),ui:{span:3}}),brand:e.string({label:`things.item.fields.brand`,rules:{max:100},ui:{span:3}}),model:e.string({label:`things.item.fields.model`,rules:{max:100},ui:{span:3}})}}),warrantyExpires:e.reminder({label:`things.item.fields.warrantyExpires`,rules:{lead:30},agent:`When the warranty EXPIRES — not when the item was bought.`}),group:e.group({label:`things.item.groups.specs`,icon:`lucide:ruler`,scope:`hoist`,fields:{serialNumber:e.identifier({label:`things.item.fields.serialNumber`,rules:{max:80},ui:{span:4}}),weight:e.weight({label:`things.item.fields.weight`,ui:{span:4}}),dimensions:e.dimensions({label:`things.item.fields.dimensions`,ui:{span:4}}),color:e.string({label:`things.item.fields.color`,rules:{max:120},ui:{span:4}}),material:e.string({label:`things.item.fields.material`,rules:{max:80},ui:{span:4}}),madeIn:e.country({label:`things.item.fields.madeIn`,ui:{span:4}})}}),group2:e.group({label:`things.item.groups.purchase`,icon:`lucide:shopping-cart`,scope:`hoist`,fields:{purchaseDate:e.date({label:`things.item.fields.purchaseDate`,ui:{span:4}}),purchasePrice:e.money({label:`things.item.fields.purchasePrice`,ui:{span:2}}),currency:e.currency({label:`core.fields.currency`,default:`UAH`,ui:{span:2}}),paymentStatus:e.string({label:`things.item.fields.paymentStatus`,strict:!0,noSearch:!0,ui:{span:4},options:[{value:`bought`,title:`things.item.options.paymentStatus.bought`},{value:`installment`,title:`things.item.options.paymentStatus.installment`},{value:`credit`,title:`things.item.options.paymentStatus.credit`}]}),store:e.relation({label:`things.item.fields.store`,options:t({library:`things`,shelf:`store`}),ui:{span:6}}),store_legacy:e.string({label:`things.item.fields.store_legacy`,ui:{hidden:!0},rules:{max:100}}),orderNumber:e.string({label:`things.item.fields.orderNumber`,rules:{max:100},ui:{span:6}}),link:e.link({label:`things.item.fields.link`,ui:{span:12}}),receipt:e.image({label:`things.item.fields.receipt`})}}),group3:e.group({label:`things.item.groups.media`,icon:`lucide:images`,scope:`hoist`,fields:{manual:e.document({label:`things.item.fields.manual`,ui:{span:6}}),photos:e.image({label:`things.item.fields.photos`,multiple:!0})}}),tags:e.tags({label:`things.item.fields.tags`}),notes:e.text({label:`things.item.fields.notes`,rules:{max:2e3}})}}),o=n({shelf:`storage_location`,library:`things`,label:`things.storage_location.label`,icon:`lucide:map-pin`,agent:`A storage location for items. name — what we call the place. path — hierarchy levels in order (room, furniture, shelf, container), free-form.`,views:{list:[`path`]},fields:{name:e.title({label:`core.fields.name`}),description:e.text({label:`things.storage_location.fields.description`,rules:{max:1e3}}),path:e.path({label:`things.storage_location.fields.path`,rules:{max:120}}),contents:e.backrefs({label:`things.storage_location.fields.contents`,from:{library:`things`,shelf:`item`,field:`location`}}),notes:e.text({label:`things.storage_location.fields.notes`,rules:{max:2e3}})}}),s=n({shelf:`store`,library:`things`,label:`things.store.label`,icon:`lucide:store`,agent:`A shop, marketplace or seller a thing was bought from; things/item.store points here.
1
+ import{n as e,r as t}from"./fields-Ce51pRua.js";import{a as n}from"./shelf-DjiUBfgQ.js";import{i as r,n as i}from"./plugin-Cjr7lgQH.js";var a=n({shelf:`item`,library:`things`,label:`things.item.label`,icon:`lucide:package`,agent:`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`,`tags`]},fields:{name:e.title({label:`core.fields.name`}),about:e.illustrated({label:`things.item.fields.about`,fields:{image:e.avatar({}),text:e.text({rules:{max:1e3}})}}),properties:e.properties({columns:4,fields:{type:e.string({label:`core.fields.type`,options:[{value:`clothing`,title:`things.item.options.type.clothing`},{value:`bag`,title:`things.item.options.type.bag`},{value:`cable`,title:`things.item.options.type.cable`},{value:`tool`,title:`things.item.options.type.tool`},{value:`furniture`,title:`things.item.options.type.furniture`},{value:`appliance`,title:`things.item.options.type.appliance`},{value:`household`,title:`things.item.options.type.household`},{value:`consumable`,title:`things.item.options.type.consumable`},{value:`personal_care`,title:`things.item.options.type.personal_care`},{value:`sports`,title:`things.item.options.type.sports`},{value:`hobby`,title:`things.item.options.type.hobby`},{value:`hardware`,title:`things.item.options.type.hardware`},{value:`decor`,title:`things.item.options.type.decor`},{value:`stationery`,title:`things.item.options.type.stationery`},{value:`other`,title:`things.item.options.type.other`}],strict:!0,noSearch:!0,ui:{span:3}}),subtype:e.string({label:`core.fields.subtype`,options:[],strict:!0,noSearch:!0,ui:{span:3}}),status:e.status({source:{condition:e.string({label:`things.item.fields.condition`,strict:!0,noSearch:!0,ui:{span:3},options:[{value:`new`,title:`things.item.options.condition.new`},{value:`good`,title:`things.item.options.condition.good`},{value:`fair`,title:`things.item.options.condition.fair`},{value:`poor`,title:`things.item.options.condition.poor`}]})}}),quantity:e.int({label:`things.item.fields.quantity`,rules:{min:0},ui:{span:3}}),owner:e.relation({label:`things.item.fields.owner`,options:t({library:`people`,shelf:`person`}),ui:{span:3}}),location:e.relation({label:`things.item.fields.location`,options:t({library:`things`,shelf:`storage_location`}),ui:{span:3}}),brand:e.string({label:`things.item.fields.brand`,rules:{max:100},ui:{span:3}}),model:e.string({label:`things.item.fields.model`,rules:{max:100},ui:{span:3}})}}),warrantyExpires:e.reminder({label:`things.item.fields.warrantyExpires`,rules:{lead:30},agent:`When the warranty EXPIRES — not when the item was bought.`}),group:e.group({label:`things.item.groups.specs`,icon:`lucide:ruler`,scope:`hoist`,fields:{serialNumber:e.identifier({label:`things.item.fields.serialNumber`,rules:{max:80},ui:{span:4}}),weight:e.weight({label:`things.item.fields.weight`,ui:{span:4}}),dimensions:e.dimensions({label:`things.item.fields.dimensions`,ui:{span:4}}),color:e.string({label:`things.item.fields.color`,rules:{max:120},ui:{span:4}}),material:e.string({label:`things.item.fields.material`,rules:{max:80},ui:{span:4}}),madeIn:e.country({label:`things.item.fields.madeIn`,ui:{span:4}})}}),group2:e.group({label:`things.item.groups.purchase`,icon:`lucide:shopping-cart`,scope:`hoist`,fields:{purchaseDate:e.date({label:`things.item.fields.purchaseDate`,ui:{span:4}}),purchasePrice:e.money({label:`things.item.fields.purchasePrice`,ui:{span:2}}),currency:e.currency({label:`core.fields.currency`,default:`UAH`,ui:{span:2}}),paymentStatus:e.string({label:`things.item.fields.paymentStatus`,strict:!0,noSearch:!0,ui:{span:4},options:[{value:`bought`,title:`things.item.options.paymentStatus.bought`},{value:`installment`,title:`things.item.options.paymentStatus.installment`},{value:`credit`,title:`things.item.options.paymentStatus.credit`}]}),store:e.relation({label:`things.item.fields.store`,options:t({library:`things`,shelf:`store`}),ui:{span:6}}),store_legacy:e.string({label:`things.item.fields.store_legacy`,ui:{hidden:!0},rules:{max:100}}),orderNumber:e.string({label:`things.item.fields.orderNumber`,rules:{max:100},ui:{span:6}}),link:e.link({label:`things.item.fields.link`,ui:{span:12}}),receipt:e.image({label:`things.item.fields.receipt`})}}),group3:e.group({label:`things.item.groups.media`,icon:`lucide:images`,scope:`hoist`,fields:{manual:e.document({label:`things.item.fields.manual`,ui:{span:6}}),photos:e.image({label:`things.item.fields.photos`,multiple:!0})}}),tags:e.tags({label:`things.item.fields.tags`}),notes:e.text({label:`things.item.fields.notes`,rules:{max:2e3}})}}),o=n({shelf:`storage_location`,library:`things`,label:`things.storage_location.label`,icon:`lucide:map-pin`,agent:`A storage location for items. name — what we call the place. path — hierarchy levels in order (room, furniture, shelf, container), free-form.`,views:{list:[`path`]},fields:{name:e.title({label:`core.fields.name`}),description:e.text({label:`things.storage_location.fields.description`,rules:{max:1e3}}),path:e.path({label:`things.storage_location.fields.path`,rules:{max:120}}),contents:e.backrefs({label:`things.storage_location.fields.contents`,from:{library:`things`,shelf:`item`,field:`location`}}),notes:e.text({label:`things.storage_location.fields.notes`,rules:{max:2e3}})}}),s=n({shelf:`store`,library:`things`,label:`things.store.label`,icon:`lucide:store`,agent:`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
@@ -1 +1 @@
1
- import{n as e}from"./fields-CV3RQg0Y.js";import{n as t}from"./plugin-Cjr7lgQH.js";import{t as n}from"./settings-Bo5IOwVg.js";var r=t({id:`telegram`,version:`1.0.0`,dependsOn:[],label:`telegram.plugin.label`,description:`telegram.plugin.description`,settings:n({label:`telegram.settings.label`,fields:{api_id:e.int({label:`telegram.settings.api_id`}),api_hash:e.password({label:`telegram.settings.api_hash`}),bot_token:e.password({label:`telegram.settings.bot_token`}),phone:e.tel({label:`telegram.settings.phone`}),reasoning_display:e.string({label:`telegram.settings.reasoning_display`,default:`collapsible`,strict:!0,noSearch:!0,options:[{value:`off`,title:`telegram.settings.reasoning_display_off`},{value:`collapsible`,title:`telegram.settings.reasoning_display_collapsible`},{value:`separate`,title:`telegram.settings.reasoning_display_separate`}]})}})});export{r as default};
1
+ import{n as e}from"./fields-Ce51pRua.js";import{n as t}from"./plugin-Cjr7lgQH.js";import{t as n}from"./settings-BEzSaRjz.js";var r=t({id:`telegram`,version:`1.0.0`,dependsOn:[],label:`telegram.plugin.label`,description:`telegram.plugin.description`,settings:n({label:`telegram.settings.label`,fields:{api_id:e.int({label:`telegram.settings.api_id`}),api_hash:e.password({label:`telegram.settings.api_hash`}),bot_token:e.password({label:`telegram.settings.bot_token`}),phone:e.tel({label:`telegram.settings.phone`}),reasoning_display:e.string({label:`telegram.settings.reasoning_display`,default:`collapsible`,strict:!0,noSearch:!0,options:[{value:`off`,title:`telegram.settings.reasoning_display_off`},{value:`collapsible`,title:`telegram.settings.reasoning_display_collapsible`},{value:`separate`,title:`telegram.settings.reasoning_display_separate`}]})}})});export{r as default};
@@ -0,0 +1 @@
1
+ import{n as e,r as t,t as n}from"./src-CwyJPFKQ.js";export{e as cal,n as default,t as recurrence};
@@ -1 +1 @@
1
- import{n as e}from"./fields-CV3RQg0Y.js";import{n as t}from"./plugin-Cjr7lgQH.js";import{t as n}from"./settings-Bo5IOwVg.js";var r=t({id:`webchat`,version:`1.0.0`,dependsOn:[],label:`webchat.plugin.label`,description:`webchat.plugin.description`,settings:n({label:`webchat.settings.label`,fields:{reasoning_display:e.string({label:`webchat.settings.reasoning_display`,default:`live`,strict:!0,noSearch:!0,options:[{value:`live`,title:`webchat.settings.reasoning_display_live`},{value:`off`,title:`webchat.settings.reasoning_display_off`}]})}})});export{r as default};
1
+ import{n as e}from"./fields-Ce51pRua.js";import{n as t}from"./plugin-Cjr7lgQH.js";import{t as n}from"./settings-BEzSaRjz.js";var r=t({id:`webchat`,version:`1.0.0`,dependsOn:[],label:`webchat.plugin.label`,description:`webchat.plugin.description`,settings:n({label:`webchat.settings.label`,fields:{reasoning_display:e.string({label:`webchat.settings.reasoning_display`,default:`live`,strict:!0,noSearch:!0,options:[{value:`live`,title:`webchat.settings.reasoning_display_live`},{value:`off`,title:`webchat.settings.reasoning_display_off`}]})}})});export{r as default};
@@ -1 +1 @@
1
- import{n as e,r as t}from"./fields-CV3RQg0Y.js";import{a as n}from"./shelf-Cj_pNvd-.js";import{i as r,n as i}from"./plugin-Cjr7lgQH.js";var a=[`accommodations`,`activities`,`insurances`],o=e=>{let t=typeof e==`string`&&e!==``?Number(e):e;return typeof t==`number`&&Number.isFinite(t)?t:null},s=({record:e})=>{let t=Date.parse(String(e.date_from??``)),n=Date.parse(String(e.date_to??``));return Number.isNaN(t)||Number.isNaN(n)||n<t?null:Math.round((n-t)/864e5)+1},c=({record:e})=>{let t=0,n=!1;for(let r of a){let i=e[r];if(Array.isArray(i))for(let e of i){let r=o(e?.cost);r!=null&&(t+=r,n=!0)}}return n?Math.round(t*100)/100:null},l=n({shelf:`trip`,library:`travel`,label:`travel.trip.label`,icon:`lucide:plane`,views:{list:[`destination`,`date_from`,`date_to`,`status`]},fields:{name:e.title({label:`core.fields.name`}),trip:e.stats({fields:{destination:e.string({label:`travel.trip.fields.destination`,rules:{max:200}}),countdown:e.countdown({source:{date_from:e.date({label:`travel.trip.fields.date_from`,mutate:[`days`]})},caption:`units.days`}),date_to:e.date({label:`travel.trip.fields.date_to`,mutate:[`days`]}),status:e.status({source:{status:e.string({label:`travel.trip.fields.status`,strict:!0,noSearch:!0,options:[{value:`planned`,title:`travel.trip.options.status.planned`},{value:`active`,title:`travel.trip.options.status.active`},{value:`completed`,title:`travel.trip.options.status.completed`},{value:`cancelled`,title:`travel.trip.options.status.cancelled`,tone:`danger`}]})}})}}),ledger:e.stats({fields:{people:e.people({source:{participants:e.relation({label:`travel.trip.fields.participants`,options:t({library:`people`,shelf:`person`}),multiple:!0})}}),days:e.int({label:`travel.trip.fields.days`,value:s}),budget_meter:e.meter({source:{spent:e.money({label:`travel.trip.fields.spent`,value:c,currencyFrom:`currency`,mutate:[`budget_state`]})},of:{budget:e.money({label:`travel.trip.fields.budget`,currencyFrom:`currency`,mutate:[`budget_state`]})},direction:`ceiling`}),budget_state:e.string({label:`travel.trip.fields.budget_state`,value:e=>{let t=o(e.record.budget),n=o(c(e));return t==null||t<=0||n==null?null:n>t?`over`:`within`},strict:!0,noSearch:!0,options:[{value:`within`,title:`travel.trip.options.budget_state.within`,icon:{kind:`icon`,value:`lucide:check`},tone:`success`},{value:`over`,title:`travel.trip.options.budget_state.over`,icon:{kind:`icon`,value:`lucide:x`},tone:`danger`}]})}}),hairline:e.divider({}),description:e.text({label:`travel.trip.fields.description`,rules:{max:2e3}}),currency:e.currency({label:`core.fields.currency`,default:`UAH`}),photos:e.image({label:`travel.trip.fields.photos`,multiple:!0}),packing_items:e.check({label:`travel.trip.fields.packing_items`,slots:[`travel.trip.packing.prepared`,`travel.trip.packing.packed`,`travel.trip.packing.packed_back`],fields:{item:e.relation({label:`travel.trip.packing.item`,options:t({library:`things`,shelf:`item`})})},multiple:!0}),packing_list:e.check({label:`travel.trip.fields.packing_list`,slots:[`travel.trip.packing.prepared`,`travel.trip.packing.packed`,`travel.trip.packing.packed_back`],multiple:!0}),legs:e.group({scope:`nest`,label:`travel.trip.fields.legs`,icon:`lucide:route`,ui:{title:[`date`,`leg_type`]},multiple:!0,fields:{route:e.route({from:{origin_code:e.string({label:`travel.trip.leg.origin_code`,rules:{max:10}})},to:{destination_code:e.string({label:`travel.trip.leg.destination_code`,rules:{max:10}})},depart:{departure_time:e.time({label:`travel.trip.leg.departure_time`})},arrive:{arrival_time:e.time({label:`travel.trip.leg.arrival_time`})},duration:{duration:e.duration({label:`travel.trip.leg.duration`})}}),date:e.date({label:`travel.trip.leg.date`}),leg_type:e.string({label:`travel.trip.leg.leg_type`,strict:!0,noSearch:!0,options:[{value:`flight`,title:`travel.trip.leg_opt.leg_type.flight`},{value:`train`,title:`travel.trip.leg_opt.leg_type.train`},{value:`bus`,title:`travel.trip.leg_opt.leg_type.bus`},{value:`car`,title:`travel.trip.leg_opt.leg_type.car`},{value:`ferry`,title:`travel.trip.leg_opt.leg_type.ferry`},{value:`other`,title:`travel.trip.leg_opt.leg_type.other`}]}),operator:e.string({label:`travel.trip.leg.operator`,rules:{max:100}}),number:e.string({label:`travel.trip.leg.number`,rules:{max:20}}),seat:e.string({label:`travel.trip.leg.seat`,rules:{max:10}}),class:e.string({label:`travel.trip.leg.class`,strict:!0,noSearch:!0,options:[{value:`economy`,title:`travel.trip.leg_opt.class.economy`},{value:`business`,title:`travel.trip.leg_opt.class.business`},{value:`first`,title:`travel.trip.leg_opt.class.first`}]}),booking_ref:e.string({label:`travel.trip.leg.booking_ref`,rules:{max:50}}),terminal:e.string({label:`travel.trip.leg.terminal`,rules:{max:20}}),gate:e.string({label:`travel.trip.leg.gate`,rules:{max:20}}),origin_city:e.string({label:`travel.trip.leg.origin_city`,rules:{max:100}}),destination_city:e.string({label:`travel.trip.leg.destination_city`,rules:{max:100}}),checked_in:e.boolean({label:`travel.trip.leg.checked_in`}),documents:e.document({label:`travel.trip.leg.documents`,multiple:!0}),notes:e.text({label:`travel.trip.leg.notes`,rules:{max:2e3}})}}),accommodations:e.group({scope:`nest`,label:`travel.trip.fields.accommodations`,icon:`lucide:bed`,ui:{title:[`check_in`,`accom_type`]},multiple:!0,fields:{accom_type:e.string({label:`travel.trip.accom.accom_type`,strict:!0,noSearch:!0,options:[{value:`hotel`,title:`travel.trip.accom_opt.accom_type.hotel`},{value:`apartment`,title:`travel.trip.accom_opt.accom_type.apartment`},{value:`hostel`,title:`travel.trip.accom_opt.accom_type.hostel`},{value:`other`,title:`travel.trip.accom_opt.accom_type.other`}]}),location:e.string({label:`travel.trip.accom.location`,rules:{max:300}}),address:e.string({label:`travel.trip.accom.address`,rules:{max:300}}),rating:e.rating({label:`travel.trip.accom.rating`,rules:{max:5}}),breakfast:e.boolean({label:`travel.trip.accom.breakfast`}),check_in:e.date({label:`travel.trip.accom.check_in`}),check_out:e.date({label:`travel.trip.accom.check_out`}),booking_ref:e.string({label:`travel.trip.accom.booking_ref`,rules:{max:100}}),cost:e.money({label:`travel.trip.accom.cost`,currencyFrom:`parent:currency`,mutate:[`spent`]}),documents:e.document({label:`travel.trip.accom.documents`,multiple:!0}),notes:e.text({label:`travel.trip.accom.notes`,rules:{max:2e3}})}}),insurances:e.group({scope:`nest`,label:`travel.trip.fields.insurances`,icon:`lucide:shield-check`,ui:{title:[`insurer`]},multiple:!0,fields:{insurer:e.string({label:`travel.trip.insur.insurer`,rules:{max:200}}),policy_number:e.string({label:`travel.trip.insur.policy_number`,rules:{max:100}}),coverage:e.text({label:`travel.trip.insur.coverage`,rules:{max:1e3}}),cost:e.money({label:`travel.trip.insur.cost`,currencyFrom:`parent:currency`,mutate:[`spent`]}),valid_from:e.date({label:`travel.trip.insur.valid_from`}),valid_until:e.reminder({label:`travel.trip.insur.valid_until`,rules:{lead:14}}),emergency_phone:e.string({label:`travel.trip.insur.emergency_phone`,rules:{max:50}}),documents:e.document({label:`travel.trip.insur.documents`,multiple:!0}),notes:e.text({label:`travel.trip.insur.notes`,rules:{max:2e3}})}}),activities:e.group({scope:`nest`,label:`travel.trip.fields.activities`,icon:`lucide:ticket`,ui:{title:[`date`,`activity_type`]},multiple:!0,fields:{activity_type:e.string({label:`travel.trip.act.activity_type`,strict:!0,noSearch:!0,options:[{value:`sightseeing`,title:`travel.trip.act_opt.activity_type.sightseeing`},{value:`museum`,title:`travel.trip.act_opt.activity_type.museum`},{value:`beach`,title:`travel.trip.act_opt.activity_type.beach`},{value:`nature`,title:`travel.trip.act_opt.activity_type.nature`},{value:`restaurant`,title:`travel.trip.act_opt.activity_type.restaurant`},{value:`tour`,title:`travel.trip.act_opt.activity_type.tour`},{value:`shopping`,title:`travel.trip.act_opt.activity_type.shopping`},{value:`entertainment`,title:`travel.trip.act_opt.activity_type.entertainment`},{value:`other`,title:`travel.trip.act_opt.activity_type.other`}]}),date:e.date({label:`travel.trip.act.date`}),time_start:e.time({label:`travel.trip.act.time_start`}),time_end:e.time({label:`travel.trip.act.time_end`}),location:e.string({label:`travel.trip.act.location`,rules:{max:300}}),booking_ref:e.string({label:`travel.trip.act.booking_ref`,rules:{max:100}}),cost:e.money({label:`travel.trip.act.cost`,currencyFrom:`parent:currency`,mutate:[`spent`]}),documents:e.document({label:`travel.trip.act.documents`,multiple:!0}),notes:e.text({label:`travel.trip.act.notes`,rules:{max:2e3}})}}),tags:e.tags({label:`travel.trip.fields.tags`}),notes:e.text({label:`travel.trip.fields.notes`,rules:{max:3e3}})}}),u=i({id:`travel`,version:`1.0.0`,dependsOn:[`people`,`things`],label:`travel.plugin.label`,description:`travel.plugin.description`,libraries:[{meta:r({id:`travel`,label:`travel.library.label`,icon:`lucide:plane`,agent:{description:`Trips (trip) with legs, lodging, insurance, activities, and packing lists.`,instructions:`trip: status + date range (date_from/date_to). Nested collections: legs (transport), accommodations (lodging), insurances, activities, packing_items (linked things), packing_list (free text). When a trip/booking status changes — update trip.status and the relevant fields via update_record.`}}),shelves:[l]}]});export{u as default};
1
+ import{n as e,r as t}from"./fields-Ce51pRua.js";import{a as n}from"./shelf-DjiUBfgQ.js";import{i as r,n as i}from"./plugin-Cjr7lgQH.js";var a=[`accommodations`,`activities`,`insurances`],o=e=>{let t=typeof e==`string`&&e!==``?Number(e):e;return typeof t==`number`&&Number.isFinite(t)?t:null},s=({record:e})=>{let t=Date.parse(String(e.date_from??``)),n=Date.parse(String(e.date_to??``));return Number.isNaN(t)||Number.isNaN(n)||n<t?null:Math.round((n-t)/864e5)+1},c=({record:e})=>{let t=0,n=!1;for(let r of a){let i=e[r];if(Array.isArray(i))for(let e of i){let r=o(e?.cost);r!=null&&(t+=r,n=!0)}}return n?Math.round(t*100)/100:null},l=n({shelf:`trip`,library:`travel`,label:`travel.trip.label`,icon:`lucide:plane`,views:{list:[`destination`,`date_from`,`date_to`,`status`]},fields:{name:e.title({label:`core.fields.name`}),trip:e.stats({fields:{destination:e.string({label:`travel.trip.fields.destination`,rules:{max:200}}),countdown:e.countdown({source:{date_from:e.date({label:`travel.trip.fields.date_from`,mutate:[`days`]})},caption:`units.days`}),date_to:e.date({label:`travel.trip.fields.date_to`,mutate:[`days`]}),status:e.status({source:{status:e.string({label:`travel.trip.fields.status`,strict:!0,noSearch:!0,options:[{value:`planned`,title:`travel.trip.options.status.planned`},{value:`active`,title:`travel.trip.options.status.active`},{value:`completed`,title:`travel.trip.options.status.completed`},{value:`cancelled`,title:`travel.trip.options.status.cancelled`,tone:`danger`}]})}})}}),ledger:e.stats({fields:{people:e.people({source:{participants:e.relation({label:`travel.trip.fields.participants`,options:t({library:`people`,shelf:`person`}),multiple:!0})}}),days:e.int({label:`travel.trip.fields.days`,value:s}),budget_meter:e.meter({source:{spent:e.money({label:`travel.trip.fields.spent`,value:c,currencyFrom:`currency`,mutate:[`budget_state`]})},of:{budget:e.money({label:`travel.trip.fields.budget`,currencyFrom:`currency`,mutate:[`budget_state`]})},direction:`ceiling`}),budget_state:e.string({label:`travel.trip.fields.budget_state`,value:e=>{let t=o(e.record.budget),n=o(c(e));return t==null||t<=0||n==null?null:n>t?`over`:`within`},strict:!0,noSearch:!0,options:[{value:`within`,title:`travel.trip.options.budget_state.within`,icon:{kind:`icon`,value:`lucide:check`},tone:`success`},{value:`over`,title:`travel.trip.options.budget_state.over`,icon:{kind:`icon`,value:`lucide:x`},tone:`danger`}]})}}),hairline:e.divider({}),description:e.text({label:`travel.trip.fields.description`,rules:{max:2e3}}),currency:e.currency({label:`core.fields.currency`,default:`UAH`}),photos:e.image({label:`travel.trip.fields.photos`,multiple:!0}),packing_items:e.check({label:`travel.trip.fields.packing_items`,slots:[`travel.trip.packing.prepared`,`travel.trip.packing.packed`,`travel.trip.packing.packed_back`],fields:{item:e.relation({label:`travel.trip.packing.item`,options:t({library:`things`,shelf:`item`})})},multiple:!0}),packing_list:e.check({label:`travel.trip.fields.packing_list`,slots:[`travel.trip.packing.prepared`,`travel.trip.packing.packed`,`travel.trip.packing.packed_back`],multiple:!0}),legs:e.group({scope:`nest`,label:`travel.trip.fields.legs`,icon:`lucide:route`,ui:{title:[`date`,`leg_type`]},multiple:!0,fields:{route:e.route({from:{origin_code:e.string({label:`travel.trip.leg.origin_code`,rules:{max:10}})},to:{destination_code:e.string({label:`travel.trip.leg.destination_code`,rules:{max:10}})},depart:{departure_time:e.time({label:`travel.trip.leg.departure_time`})},arrive:{arrival_time:e.time({label:`travel.trip.leg.arrival_time`})},duration:{duration:e.duration({label:`travel.trip.leg.duration`})}}),date:e.date({label:`travel.trip.leg.date`}),leg_type:e.string({label:`travel.trip.leg.leg_type`,strict:!0,noSearch:!0,options:[{value:`flight`,title:`travel.trip.leg_opt.leg_type.flight`},{value:`train`,title:`travel.trip.leg_opt.leg_type.train`},{value:`bus`,title:`travel.trip.leg_opt.leg_type.bus`},{value:`car`,title:`travel.trip.leg_opt.leg_type.car`},{value:`ferry`,title:`travel.trip.leg_opt.leg_type.ferry`},{value:`other`,title:`travel.trip.leg_opt.leg_type.other`}]}),operator:e.string({label:`travel.trip.leg.operator`,rules:{max:100}}),number:e.string({label:`travel.trip.leg.number`,rules:{max:20}}),seat:e.string({label:`travel.trip.leg.seat`,rules:{max:10}}),class:e.string({label:`travel.trip.leg.class`,strict:!0,noSearch:!0,options:[{value:`economy`,title:`travel.trip.leg_opt.class.economy`},{value:`business`,title:`travel.trip.leg_opt.class.business`},{value:`first`,title:`travel.trip.leg_opt.class.first`}]}),booking_ref:e.string({label:`travel.trip.leg.booking_ref`,rules:{max:50}}),terminal:e.string({label:`travel.trip.leg.terminal`,rules:{max:20}}),gate:e.string({label:`travel.trip.leg.gate`,rules:{max:20}}),origin_city:e.string({label:`travel.trip.leg.origin_city`,rules:{max:100}}),destination_city:e.string({label:`travel.trip.leg.destination_city`,rules:{max:100}}),checked_in:e.boolean({label:`travel.trip.leg.checked_in`}),documents:e.document({label:`travel.trip.leg.documents`,multiple:!0}),notes:e.text({label:`travel.trip.leg.notes`,rules:{max:2e3}})}}),accommodations:e.group({scope:`nest`,label:`travel.trip.fields.accommodations`,icon:`lucide:bed`,ui:{title:[`check_in`,`accom_type`]},multiple:!0,fields:{accom_type:e.string({label:`travel.trip.accom.accom_type`,strict:!0,noSearch:!0,options:[{value:`hotel`,title:`travel.trip.accom_opt.accom_type.hotel`},{value:`apartment`,title:`travel.trip.accom_opt.accom_type.apartment`},{value:`hostel`,title:`travel.trip.accom_opt.accom_type.hostel`},{value:`other`,title:`travel.trip.accom_opt.accom_type.other`}]}),location:e.string({label:`travel.trip.accom.location`,rules:{max:300}}),address:e.string({label:`travel.trip.accom.address`,rules:{max:300}}),rating:e.rating({label:`travel.trip.accom.rating`,rules:{max:5}}),breakfast:e.boolean({label:`travel.trip.accom.breakfast`}),check_in:e.date({label:`travel.trip.accom.check_in`}),check_out:e.date({label:`travel.trip.accom.check_out`}),booking_ref:e.string({label:`travel.trip.accom.booking_ref`,rules:{max:100}}),cost:e.money({label:`travel.trip.accom.cost`,currencyFrom:`parent:currency`,mutate:[`spent`]}),documents:e.document({label:`travel.trip.accom.documents`,multiple:!0}),notes:e.text({label:`travel.trip.accom.notes`,rules:{max:2e3}})}}),insurances:e.group({scope:`nest`,label:`travel.trip.fields.insurances`,icon:`lucide:shield-check`,ui:{title:[`insurer`]},multiple:!0,fields:{insurer:e.string({label:`travel.trip.insur.insurer`,rules:{max:200}}),policy_number:e.string({label:`travel.trip.insur.policy_number`,rules:{max:100}}),coverage:e.text({label:`travel.trip.insur.coverage`,rules:{max:1e3}}),cost:e.money({label:`travel.trip.insur.cost`,currencyFrom:`parent:currency`,mutate:[`spent`]}),valid_from:e.date({label:`travel.trip.insur.valid_from`}),valid_until:e.reminder({label:`travel.trip.insur.valid_until`,rules:{lead:14}}),emergency_phone:e.string({label:`travel.trip.insur.emergency_phone`,rules:{max:50}}),documents:e.document({label:`travel.trip.insur.documents`,multiple:!0}),notes:e.text({label:`travel.trip.insur.notes`,rules:{max:2e3}})}}),activities:e.group({scope:`nest`,label:`travel.trip.fields.activities`,icon:`lucide:ticket`,ui:{title:[`date`,`activity_type`]},multiple:!0,fields:{activity_type:e.string({label:`travel.trip.act.activity_type`,strict:!0,noSearch:!0,options:[{value:`sightseeing`,title:`travel.trip.act_opt.activity_type.sightseeing`},{value:`museum`,title:`travel.trip.act_opt.activity_type.museum`},{value:`beach`,title:`travel.trip.act_opt.activity_type.beach`},{value:`nature`,title:`travel.trip.act_opt.activity_type.nature`},{value:`restaurant`,title:`travel.trip.act_opt.activity_type.restaurant`},{value:`tour`,title:`travel.trip.act_opt.activity_type.tour`},{value:`shopping`,title:`travel.trip.act_opt.activity_type.shopping`},{value:`entertainment`,title:`travel.trip.act_opt.activity_type.entertainment`},{value:`other`,title:`travel.trip.act_opt.activity_type.other`}]}),date:e.date({label:`travel.trip.act.date`}),time_start:e.time({label:`travel.trip.act.time_start`}),time_end:e.time({label:`travel.trip.act.time_end`}),location:e.string({label:`travel.trip.act.location`,rules:{max:300}}),booking_ref:e.string({label:`travel.trip.act.booking_ref`,rules:{max:100}}),cost:e.money({label:`travel.trip.act.cost`,currencyFrom:`parent:currency`,mutate:[`spent`]}),documents:e.document({label:`travel.trip.act.documents`,multiple:!0}),notes:e.text({label:`travel.trip.act.notes`,rules:{max:2e3}})}}),tags:e.tags({label:`travel.trip.fields.tags`}),notes:e.text({label:`travel.trip.fields.notes`,rules:{max:3e3}})}}),u=i({id:`travel`,version:`1.0.0`,dependsOn:[`people`,`things`],label:`travel.plugin.label`,description:`travel.plugin.description`,libraries:[{meta:r({id:`travel`,label:`travel.library.label`,icon:`lucide:plane`,agent:{description:`Trips (trip) with legs, lodging, insurance, activities, and packing lists.`,instructions:`trip: status + date range (date_from/date_to). Nested collections: legs (transport), accommodations (lodging), insurances, activities, packing_items (linked things), packing_list (free text). When a trip/booking status changes — update trip.status and the relevant fields via update_record.`}}),shelves:[l]}]});export{u as default};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./fields-CV3RQg0Y.js";import{a as t}from"./shelf-Cj_pNvd-.js";import{i as n,n as r}from"./plugin-Cjr7lgQH.js";function i(e,t){if(typeof e!=`string`||!e)return null;let n=Number(t);if(!Number.isFinite(n)||n<=0)return null;let r=Date.parse(e);return Number.isNaN(r)?null:new Date(r+n*864e5).toISOString().slice(0,10)}var a=(e,t)=>({record:n})=>i(n[e],n[t]),o=t({shelf:`plant`,library:`garden`,label:`garden.plant.label`,icon:`lucide:sprout`,agent:`A houseplant. title — name. variety — cultivar/subspecies. location — where it stands.
1
+ import{n as e}from"./fields-Ce51pRua.js";import{a as t}from"./shelf-DjiUBfgQ.js";import{i as n,n as r}from"./plugin-Cjr7lgQH.js";function i(e,t){if(typeof e!=`string`||!e)return null;let n=Number(t);if(!Number.isFinite(n)||n<=0)return null;let r=Date.parse(e);return Number.isNaN(r)?null:new Date(r+n*864e5).toISOString().slice(0,10)}var a=(e,t)=>({record:n})=>i(n[e],n[t]),o=t({shelf:`plant`,library:`garden`,label:`garden.plant.label`,icon:`lucide:sprout`,agent:`A houseplant. title — name. variety — cultivar/subspecies. location — where it stands.
2
2
  wateringDays — watering interval (days). lastWatered — date of last watering.
3
3
  fertilizerDays — fertilizing interval. lastFertilized — last date.
4
4
  planted — date planted/acquired.
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ScanSummary-xxY2oZVM.js","assets/react-vendor-CzSUaSLk.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.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{p as n,t as r}from"./react-vendor-CzSUaSLk.js";import{Bn as i,H as a,Hn as o,Pt as s,Q as c,Vn as l,ni as u}from"./src-r8PGv9_a.js";import{t as d}from"./input-BFMNMo6y.js";import{a as f,c as p,n as m,o as h,t as g}from"./data-size-BMG0D59K.js";var _=e(t(),1);function v(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 y(e){return e.v===4?e.a.join(`.`):e.a.map(e=>e.toString(16)).join(`:`)}function b(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=v(n);if(!a||isNaN(i))return null;let o=a.v===4?32:128;return i<0||i>o?null:{...a,p:i}}function x(e){return`${y(e)}/${e.p}`}var S=r(),C=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-devices/src/fields/ui.tsx`;function w({value:e,onChange:t,parse:n,format:r,placeholder:i}){let a=(0,_.useMemo)(()=>{if(e&&typeof e==`object`)return e;if(typeof e!=`string`)return null;try{return JSON.parse(e)}catch{return null}},[e]),o=typeof e==`string`?e:``,[s,c]=(0,_.useState)(a?r(a):o);(0,_.useEffect)(()=>{c(a?r(a):o)},[o,a]);let l=e=>{let r=e.trim(),i=n(r);t(i?JSON.stringify(i):r)};return(0,S.jsxDEV)(d,{value:s,placeholder:i,onChange:e=>c(e.target.value),onBlur:()=>l(s),onKeyDown:e=>{e.key===`Enter`&&l(s)}},void 0,!1,{fileName:C,lineNumber:67,columnNumber:5},this)}function T(e,t){return(0,S.jsxDEV)(o,{items:s(e,[]),content:e=>{let n=typeof e==`string`?s(e,null):e;return n&&typeof n==`object`?t(n):String(e)}},void 0,!1,{fileName:C,lineNumber:84,columnNumber:5},this)}function E(e,t){let n=typeof e==`string`?s(e,null):e??null;if(n&&typeof n==`object`)return(0,S.jsxDEV)(`code`,{className:`font-mono text-sm`,children:t(n)},void 0,!1,{fileName:C,lineNumber:103,columnNumber:46},this);let r=String(e??``);return r?(0,S.jsxDEV)(`span`,{className:`text-muted-foreground`,children:r},void 0,!1,{fileName:C,lineNumber:105,columnNumber:16},this):(0,S.jsxDEV)(l,{},void 0,!1,{fileName:C,lineNumber:105,columnNumber:71},this)}function D({value:e}){return E(e,y)}function O({value:e}){return E(e,x)}function k(e){return(0,S.jsxDEV)(a,{field:e.field,value:e.value,label:e.label,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>e.field.hints.multiple===!0?T(t,e=>y(e)):(()=>{let e=s(t,null);if(e)return(0,S.jsxDEV)(`code`,{className:`font-mono text-sm`,children:y(e)},void 0,!1,{fileName:C,lineNumber:131,columnNumber:34},this);let n=String(t??``);return n?(0,S.jsxDEV)(`span`,{className:`text-muted-foreground`,children:n},void 0,!1,{fileName:C,lineNumber:133,columnNumber:28},this):(0,S.jsxDEV)(l,{},void 0,!1,{fileName:C,lineNumber:133,columnNumber:83},this)})(),edit:(t,n)=>e.field.hints.multiple===!0?(0,S.jsxDEV)(c,{value:String(t),onChange:n,validate:e=>v(e.trim())!==null,serialize:e=>{let t=v(e.trim());return t?JSON.stringify(t):null},display:e=>{try{return y(JSON.parse(e))}catch{return e}},renderInput:(e,t,n)=>(0,S.jsxDEV)(d,{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:C,lineNumber:154,columnNumber:15},this)},void 0,!1,{fileName:C,lineNumber:138,columnNumber:11},this):(0,S.jsxDEV)(w,{value:t,onChange:n,parse:v,format:y,placeholder:`192.168.1.1`},void 0,!1,{fileName:C,lineNumber:169,columnNumber:11},this)},void 0,!1,{fileName:C,lineNumber:118,columnNumber:5},this)}function A({value:e}){let t=null;try{t=y(JSON.parse(String(e)))}catch{t=null}return t===null?(0,S.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:C,lineNumber:191,columnNumber:26},this):(0,S.jsxDEV)(`span`,{className:`truncate font-mono`,children:t},void 0,!1,{fileName:C,lineNumber:191,columnNumber:64},this)}var j={kinds:[`ip`],voice:`data`,Page:k,Inline:A,Value:D};function M(e){return(0,S.jsxDEV)(a,{field:e.field,value:e.value,label:e.label,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>e.field.hints.multiple===!0?T(t,e=>x(e)):(()=>{let e=s(t,null);if(e)return(0,S.jsxDEV)(`code`,{className:`font-mono text-sm`,children:x(e)},void 0,!1,{fileName:C,lineNumber:220,columnNumber:34},this);let n=String(t??``);return n?(0,S.jsxDEV)(`span`,{className:`text-muted-foreground`,children:n},void 0,!1,{fileName:C,lineNumber:222,columnNumber:28},this):(0,S.jsxDEV)(l,{},void 0,!1,{fileName:C,lineNumber:222,columnNumber:83},this)})(),edit:(t,n)=>e.field.hints.multiple===!0?(0,S.jsxDEV)(c,{value:String(t),onChange:n,validate:e=>b(e.trim())!==null,serialize:e=>{let t=b(e.trim());return t?JSON.stringify(t):null},display:e=>{try{return x(JSON.parse(e))}catch{return e}},renderInput:(e,t,n)=>(0,S.jsxDEV)(d,{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:C,lineNumber:243,columnNumber:15},this)},void 0,!1,{fileName:C,lineNumber:227,columnNumber:11},this):(0,S.jsxDEV)(w,{value:t,onChange:n,parse:b,format:x,placeholder:`192.168.1.0/24`},void 0,!1,{fileName:C,lineNumber:258,columnNumber:11},this)},void 0,!1,{fileName:C,lineNumber:207,columnNumber:5},this)}function N({value:e}){let t=null;try{t=x(JSON.parse(String(e)))}catch{t=null}return t===null?(0,S.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:C,lineNumber:280,columnNumber:26},this):(0,S.jsxDEV)(`span`,{className:`truncate font-mono`,children:t},void 0,!1,{fileName:C,lineNumber:280,columnNumber:64},this)}var P={kinds:[`cidr`],voice:`data`,Page:M,Inline:N,Value:O};function F({field:e,value:t,onChange:n}){let r=p(e),a=t===``?``:Number(t),[o,s]=(0,_.useState)(()=>a!==``&&Number(a)>0?m(Number(a),r)[0]:e.hints.unit??`GB`),c=f(r,o),l=a===``?``:Number((Number(a)/c).toFixed(4)),u=e=>Math.round(e*c);return(0,S.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,S.jsxDEV)(d,{type:`number`,className:`flex-1 min-w-0`,min:0,value:l,onChange:e=>n(e.target.value===``?``:String(u(Number(e.target.value))))},void 0,!1,{fileName:C,lineNumber:304,columnNumber:7},this),(0,S.jsxDEV)(i,{value:o,onChange:s,items:g[r].map(([e])=>({value:e,title:e})),triggerClassName:`w-24 justify-between gap-1 px-2 font-normal`},void 0,!1,{fileName:C,lineNumber:311,columnNumber:7},this)]},void 0,!0,{fileName:C,lineNumber:303,columnNumber:5},this)}function I({value:e,system:t}){let n=h(e,t);return n?(0,S.jsxDEV)(`span`,{children:n},void 0,!1,{fileName:C,lineNumber:326,columnNumber:14},this):(0,S.jsxDEV)(l,{},void 0,!1,{fileName:C,lineNumber:326,columnNumber:33},this)}function L(e){let t=p(e.field);return(0,S.jsxDEV)(a,{field:e.field,value:e.value,label:e.label,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>(0,S.jsxDEV)(I,{value:e,system:t},void 0,!1,{fileName:C,lineNumber:341,columnNumber:20},this),edit:(t,n)=>(0,S.jsxDEV)(F,{field:e.field,value:String(t??``),onChange:n},void 0,!1,{fileName:C,lineNumber:343,columnNumber:9},this)},void 0,!1,{fileName:C,lineNumber:332,columnNumber:5},this)}function R({field:e,value:t}){return(0,S.jsxDEV)(I,{value:t,system:p(e)},void 0,!1,{fileName:C,lineNumber:350,columnNumber:10},this)}var z=u({shelf:{library:`devices`,shelf:`network`},renderers:[j,P,{kinds:[`dataSize`],Page:L,Inline:R}],templates:{"devices.scan.summary":()=>n(()=>import(`./ScanSummary-xxY2oZVM.js`),__vite__mapDeps([0,1,2,3]))}});export{z as default};
2
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t}from"./i18n-vendor-T6EnJ_TL.js";import{p as n,t as r}from"./react-vendor-CzSUaSLk.js";import{Bn as i,H as a,Pt as o,Q as s,Vn as c,Zr as l,zn as u}from"./src-CheiTWox.js";import{t as d}from"./input-BFMNMo6y.js";import{a as f,c as p,n as m,o as h,t as g}from"./data-size-CO-LGHbN.js";var _=e(t(),1);function v(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 y(e){return e.v===4?e.a.join(`.`):e.a.map(e=>e.toString(16)).join(`:`)}function b(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=v(n);if(!a||isNaN(i))return null;let o=a.v===4?32:128;return i<0||i>o?null:{...a,p:i}}function x(e){return`${y(e)}/${e.p}`}var S=r(),C=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-devices/src/fields/ui.tsx`;function w({value:e,onChange:t,parse:n,format:r,placeholder:i}){let a=(0,_.useMemo)(()=>{if(e&&typeof e==`object`)return e;if(typeof e!=`string`)return null;try{return JSON.parse(e)}catch{return null}},[e]),o=typeof e==`string`?e:``,[s,c]=(0,_.useState)(a?r(a):o);(0,_.useEffect)(()=>{c(a?r(a):o)},[o,a]);let l=e=>{let r=e.trim(),i=n(r);t(i?JSON.stringify(i):r)};return(0,S.jsxDEV)(d,{value:s,placeholder:i,onChange:e=>c(e.target.value),onBlur:()=>l(s),onKeyDown:e=>{e.key===`Enter`&&l(s)}},void 0,!1,{fileName:C,lineNumber:67,columnNumber:5},this)}function T(e,t){return(0,S.jsxDEV)(c,{items:o(e,[]),content:e=>{let n=typeof e==`string`?o(e,null):e;return n&&typeof n==`object`?t(n):String(e)}},void 0,!1,{fileName:C,lineNumber:84,columnNumber:5},this)}function E(e,t){let n=typeof e==`string`?o(e,null):e??null;if(n&&typeof n==`object`)return(0,S.jsxDEV)(`code`,{className:`font-mono text-sm`,children:t(n)},void 0,!1,{fileName:C,lineNumber:103,columnNumber:46},this);let r=String(e??``);return r?(0,S.jsxDEV)(`span`,{className:`text-muted-foreground`,children:r},void 0,!1,{fileName:C,lineNumber:105,columnNumber:16},this):(0,S.jsxDEV)(i,{},void 0,!1,{fileName:C,lineNumber:105,columnNumber:71},this)}function D({value:e}){return E(e,y)}function O({value:e}){return E(e,x)}function k(e){return(0,S.jsxDEV)(a,{field:e.field,value:e.value,label:e.label,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>e.field.hints.multiple===!0?T(t,e=>y(e)):(()=>{let e=o(t,null);if(e)return(0,S.jsxDEV)(`code`,{className:`font-mono text-sm`,children:y(e)},void 0,!1,{fileName:C,lineNumber:131,columnNumber:34},this);let n=String(t??``);return n?(0,S.jsxDEV)(`span`,{className:`text-muted-foreground`,children:n},void 0,!1,{fileName:C,lineNumber:133,columnNumber:28},this):(0,S.jsxDEV)(i,{},void 0,!1,{fileName:C,lineNumber:133,columnNumber:83},this)})(),edit:(t,n)=>e.field.hints.multiple===!0?(0,S.jsxDEV)(s,{value:String(t),onChange:n,validate:e=>v(e.trim())!==null,serialize:e=>{let t=v(e.trim());return t?JSON.stringify(t):null},display:e=>{try{return y(JSON.parse(e))}catch{return e}},renderInput:(e,t,n)=>(0,S.jsxDEV)(d,{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:C,lineNumber:154,columnNumber:15},this)},void 0,!1,{fileName:C,lineNumber:138,columnNumber:11},this):(0,S.jsxDEV)(w,{value:t,onChange:n,parse:v,format:y,placeholder:`192.168.1.1`},void 0,!1,{fileName:C,lineNumber:169,columnNumber:11},this)},void 0,!1,{fileName:C,lineNumber:118,columnNumber:5},this)}function A({value:e}){let t=null;try{t=y(JSON.parse(String(e)))}catch{t=null}return t===null?(0,S.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:C,lineNumber:191,columnNumber:26},this):(0,S.jsxDEV)(`span`,{className:`truncate font-mono`,children:t},void 0,!1,{fileName:C,lineNumber:191,columnNumber:64},this)}var j={kinds:[`ip`],voice:`data`,Page:k,Inline:A,Value:D};function M(e){return(0,S.jsxDEV)(a,{field:e.field,value:e.value,label:e.label,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>e.field.hints.multiple===!0?T(t,e=>x(e)):(()=>{let e=o(t,null);if(e)return(0,S.jsxDEV)(`code`,{className:`font-mono text-sm`,children:x(e)},void 0,!1,{fileName:C,lineNumber:220,columnNumber:34},this);let n=String(t??``);return n?(0,S.jsxDEV)(`span`,{className:`text-muted-foreground`,children:n},void 0,!1,{fileName:C,lineNumber:222,columnNumber:28},this):(0,S.jsxDEV)(i,{},void 0,!1,{fileName:C,lineNumber:222,columnNumber:83},this)})(),edit:(t,n)=>e.field.hints.multiple===!0?(0,S.jsxDEV)(s,{value:String(t),onChange:n,validate:e=>b(e.trim())!==null,serialize:e=>{let t=b(e.trim());return t?JSON.stringify(t):null},display:e=>{try{return x(JSON.parse(e))}catch{return e}},renderInput:(e,t,n)=>(0,S.jsxDEV)(d,{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:C,lineNumber:243,columnNumber:15},this)},void 0,!1,{fileName:C,lineNumber:227,columnNumber:11},this):(0,S.jsxDEV)(w,{value:t,onChange:n,parse:b,format:x,placeholder:`192.168.1.0/24`},void 0,!1,{fileName:C,lineNumber:258,columnNumber:11},this)},void 0,!1,{fileName:C,lineNumber:207,columnNumber:5},this)}function N({value:e}){let t=null;try{t=x(JSON.parse(String(e)))}catch{t=null}return t===null?(0,S.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:C,lineNumber:280,columnNumber:26},this):(0,S.jsxDEV)(`span`,{className:`truncate font-mono`,children:t},void 0,!1,{fileName:C,lineNumber:280,columnNumber:64},this)}var P={kinds:[`cidr`],voice:`data`,Page:M,Inline:N,Value:O};function F({field:e,value:t,onChange:n}){let r=p(e),i=t===``?``:Number(t),[a,o]=(0,_.useState)(()=>i!==``&&Number(i)>0?m(Number(i),r)[0]:e.hints.unit??`GB`),s=f(r,a),c=i===``?``:Number((Number(i)/s).toFixed(4)),l=e=>Math.round(e*s);return(0,S.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,S.jsxDEV)(d,{type:`number`,className:`flex-1 min-w-0`,min:0,value:c,onChange:e=>n(e.target.value===``?``:String(l(Number(e.target.value))))},void 0,!1,{fileName:C,lineNumber:304,columnNumber:7},this),(0,S.jsxDEV)(u,{value:a,onChange:o,items:g[r].map(([e])=>({value:e,title:e})),triggerClassName:`w-24 justify-between gap-1 px-2 font-normal`},void 0,!1,{fileName:C,lineNumber:311,columnNumber:7},this)]},void 0,!0,{fileName:C,lineNumber:303,columnNumber:5},this)}function I({value:e,system:t}){let n=h(e,t);return n?(0,S.jsxDEV)(`span`,{children:n},void 0,!1,{fileName:C,lineNumber:326,columnNumber:14},this):(0,S.jsxDEV)(i,{},void 0,!1,{fileName:C,lineNumber:326,columnNumber:33},this)}function L(e){let t=p(e.field);return(0,S.jsxDEV)(a,{field:e.field,value:e.value,label:e.label,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>(0,S.jsxDEV)(I,{value:e,system:t},void 0,!1,{fileName:C,lineNumber:341,columnNumber:20},this),edit:(t,n)=>(0,S.jsxDEV)(F,{field:e.field,value:String(t??``),onChange:n},void 0,!1,{fileName:C,lineNumber:343,columnNumber:9},this)},void 0,!1,{fileName:C,lineNumber:332,columnNumber:5},this)}function R({field:e,value:t}){return(0,S.jsxDEV)(I,{value:t,system:p(e)},void 0,!1,{fileName:C,lineNumber:350,columnNumber:10},this)}var z=l({shelf:{library:`devices`,shelf:`network`},renderers:[j,P,{kinds:[`dataSize`],Page:L,Inline:R}],templates:{"devices.scan.summary":()=>n(()=>import(`./ScanSummary-xxY2oZVM.js`),__vite__mapDeps([0,1,2,3]))}});export{z as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ilamy-view-Dddf8Q2O.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-CzSUaSLk.js","assets/src-r8PGv9_a.js","assets/countries-CoGvAZ5u.js","assets/fields-CV3RQg0Y.js","assets/input-BFMNMo6y.js","assets/phone-input-8QtHMHO_.js","assets/ui-vendor-ByG3otld.js","assets/icons-0CjpO0K1.js","assets/popover-UkAmHo3Y.js","assets/condition-B5taAXkb.js","assets/shelf-Cj_pNvd-.js","assets/markdown-vendor-WSL3P01P.js","assets/development-ChLInqDF.js","assets/registration-BBxYynR4.js","assets/ical-FRtCagm-.js"])))=>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,p as i,r as a,t as o,u as s}from"./react-vendor-CzSUaSLk.js";import{Ct as c,H as l,Ur as u,Ut as d,Wr as f,ni as p,t as m}from"./src-r8PGv9_a.js";import{l as h}from"./phone-input-8QtHMHO_.js";import{s as ee}from"./shelf-Cj_pNvd-.js";import{_ as te,a as g,b as ne,c as _,d as v,f as y,g as b,h as x,i as S,l as re,m as C,o as w,p as T,r as E,s as D,t as O,u as k,v as ie,y as A}from"./registration-BBxYynR4.js";import{r as j}from"./ical-FRtCagm-.js";var M=e(t(),1),N={uk:{calendar:{plugin:{label:`Календар`,description:`Календарі, події та завдання.`},library:{label:`Календар`},entry:{label:`Календар`,fields:{summary:`Назва`,description:`Опис`,when:`Коли`,allDay:`Увесь день`,location:`Місце`,recurrence:`Повторення`,exdates:`Пропущені дати`,master:`Серія`,recurrenceId:`Замінює екземпляр`,status:`Статус`,uid:`Ідентифікатор синхронізації`,ics:`Дані клієнта`,tags:`Теги`,notes:`Нотатки`},options:{type:{event:`Подія`,task:`Завдання`},status:{tentative:`Попередньо`,confirmed:`Підтверджено`,needs_action:`Треба зробити`,in_process:`У процесі`,completed:`Виконано`,cancelled:`Скасовано`}}},task_details:{label:`Завдання`,fields:{priority:`Пріоритет`,percent:`Прогрес`,completed:`Виконано о`}},validation:{rrule:`Некоректне правило повторення`},view:{today:`Сьогодні`,prev:{day:`Попередній день`,week:`Попередній тиждень`,month:`Попередній місяць`,year:`Попередній рік`},next:{day:`Наступний день`,week:`Наступний тиждень`,month:`Наступний місяць`,year:`Наступний рік`},scale:{day:`День`,week:`Тиждень`,month:`Місяць`,year:`Рік`},lib:{previous:`Назад`,next:`Вперед`,new:`Новий запис`,event:`подія`,events:`події`,more:`ще`},more:`+{{count}}`,withoutDate:`Без дати`,allDay:`увесь день`,createTitle:`Новий запис`,createElsewhere:`Нові записи створюються зі списку, а не тут.`},recurrence:{never:`Не повторюється`,freq:`Повторювати`,daily:`Щодня`,weekly:`Щотижня`,monthly:`Щомісяця`,yearly:`Щороку`,interval:`Кожні`,ends:`Закінчується`,endsNever:`Ніколи`,endsAfter:`Після`,endsOn:`На дату`,times:`разів`,raw:`Правило (RRULE)`,exceptions:`Винятки`,sentence:{every:{daily_one:`Щодня`,daily_few:`Кожні {{count}} дні`,daily_many:`Кожні {{count}} днів`,daily_other:`Кожні {{count}} днів`,weekly_one:`Щотижня`,weekly_few:`Кожні {{count}} тижні`,weekly_many:`Кожні {{count}} тижнів`,weekly_other:`Кожні {{count}} тижнів`,monthly_one:`Щомісяця`,monthly_few:`Кожні {{count}} місяці`,monthly_many:`Кожні {{count}} місяців`,monthly_other:`Кожні {{count}} місяців`,yearly_one:`Щороку`,yearly_few:`Кожні {{count}} роки`,yearly_many:`Кожні {{count}} років`,yearly_other:`Кожні {{count}} років`},on:`{{every}} у {{days}}`,times_one:`{{count}} раз`,times_few:`{{count}} рази`,times_many:`{{count}} разів`,times_other:`{{count}} разів`,until:`до {{date}}`}},daysShort:{mo:`Пн`,tu:`Вт`,we:`Ср`,th:`Чт`,fr:`Пт`,sa:`Сб`,su:`Нд`},daysIn:{mo:`понеділок`,tu:`вівторок`,we:`середу`,th:`четвер`,fr:`п'ятницю`,sa:`суботу`,su:`неділю`},days:{mo:`Понеділок`,tu:`Вівторок`,we:`Середа`,th:`Четвер`,fr:`П'ятниця`,sa:`Субота`,su:`Неділя`}}},ru:{calendar:{plugin:{label:`Календарь`,description:`Календари, события и задачи.`},library:{label:`Календарь`},entry:{label:`Календарь`,fields:{summary:`Название`,description:`Описание`,when:`Когда`,allDay:`Весь день`,location:`Место`,recurrence:`Повторение`,exdates:`Пропущенные даты`,master:`Серия`,recurrenceId:`Заменяет экземпляр`,status:`Статус`,uid:`Идентификатор синхронизации`,ics:`Данные клиента`,tags:`Теги`,notes:`Заметки`},options:{type:{event:`Событие`,task:`Задача`},status:{tentative:`Предварительно`,confirmed:`Подтверждено`,needs_action:`Нужно сделать`,in_process:`В процессе`,completed:`Выполнено`,cancelled:`Отменено`}}},task_details:{label:`Задача`,fields:{priority:`Приоритет`,percent:`Прогресс`,completed:`Выполнено в`}},validation:{rrule:`Некорректное правило повторения`},view:{today:`Сегодня`,prev:{day:`Предыдущий день`,week:`Предыдущая неделя`,month:`Предыдущий месяц`,year:`Предыдущий год`},next:{day:`Следующий день`,week:`Следующая неделя`,month:`Следующий месяц`,year:`Следующий год`},scale:{day:`День`,week:`Неделя`,month:`Месяц`,year:`Год`},lib:{previous:`Назад`,next:`Вперёд`,new:`Новая запись`,event:`событие`,events:`события`,more:`ещё`},more:`+{{count}}`,withoutDate:`Без даты`,allDay:`весь день`,createTitle:`Новая запись`,createElsewhere:`Новые записи создаются из списка, а не здесь.`},recurrence:{never:`Не повторяется`,freq:`Повторять`,daily:`Ежедневно`,weekly:`Еженедельно`,monthly:`Ежемесячно`,yearly:`Ежегодно`,interval:`Каждые`,ends:`Заканчивается`,endsNever:`Никогда`,endsAfter:`После`,endsOn:`В дату`,times:`раз`,raw:`Правило (RRULE)`,exceptions:`Исключения`,sentence:{every:{daily_one:`Каждый день`,daily_few:`Каждые {{count}} дня`,daily_many:`Каждые {{count}} дней`,daily_other:`Каждые {{count}} дней`,weekly_one:`Каждую неделю`,weekly_few:`Каждые {{count}} недели`,weekly_many:`Каждые {{count}} недель`,weekly_other:`Каждые {{count}} недель`,monthly_one:`Каждый месяц`,monthly_few:`Каждые {{count}} месяца`,monthly_many:`Каждые {{count}} месяцев`,monthly_other:`Каждые {{count}} месяцев`,yearly_one:`Каждый год`,yearly_few:`Каждые {{count}} года`,yearly_many:`Каждые {{count}} лет`,yearly_other:`Каждые {{count}} лет`},on:`{{every}} в {{days}}`,times_one:`{{count}} раз`,times_few:`{{count}} раза`,times_many:`{{count}} раз`,times_other:`{{count}} раз`,until:`до {{date}}`}},daysShort:{mo:`Пн`,tu:`Вт`,we:`Ср`,th:`Чт`,fr:`Пт`,sa:`Сб`,su:`Вс`},daysIn:{mo:`понедельник`,tu:`вторник`,we:`среду`,th:`четверг`,fr:`пятницу`,sa:`субботу`,su:`воскресенье`},days:{mo:`Понедельник`,tu:`Вторник`,we:`Среда`,th:`Четверг`,fr:`Пятница`,sa:`Суббота`,su:`Воскресенье`}}},en:{calendar:{plugin:{label:`Calendar`,description:`Calendars, events and tasks.`},library:{label:`Calendar`},entry:{label:`Calendar`,fields:{summary:`Title`,description:`Description`,when:`When`,allDay:`All day`,location:`Location`,recurrence:`Repeats`,exdates:`Skipped dates`,master:`Series`,recurrenceId:`Replaces the instance of`,status:`Status`,uid:`Sync id`,ics:`Client data`,tags:`Tags`,notes:`Notes`},options:{type:{event:`Event`,task:`Task`},status:{tentative:`Tentative`,confirmed:`Confirmed`,needs_action:`To do`,in_process:`In progress`,completed:`Done`,cancelled:`Cancelled`}}},task_details:{label:`Task`,fields:{priority:`Priority`,percent:`Progress`,completed:`Completed at`}},validation:{rrule:`Not a valid repeat rule`},view:{today:`Today`,prev:{day:`Previous day`,week:`Previous week`,month:`Previous month`,year:`Previous year`},next:{day:`Next day`,week:`Next week`,month:`Next month`,year:`Next year`},scale:{day:`Day`,week:`Week`,month:`Month`,year:`Year`},lib:{previous:`Previous`,next:`Next`,new:`New entry`,event:`event`,events:`events`,more:`more`},more:`+{{count}}`,withoutDate:`Without a date`,allDay:`all day`,createTitle:`New entry`,createElsewhere:`New records are created from the list, not here.`},recurrence:{never:`Does not repeat`,freq:`Repeat`,daily:`Daily`,weekly:`Weekly`,monthly:`Monthly`,yearly:`Yearly`,interval:`Every`,ends:`Ends`,endsNever:`Never`,endsAfter:`After`,endsOn:`On`,times:`times`,raw:`Rule (RRULE)`,exceptions:`Exceptions`,sentence:{every:{daily_one:`Every day`,daily_other:`Every {{count}} days`,weekly_one:`Every week`,weekly_other:`Every {{count}} weeks`,monthly_one:`Every month`,monthly_other:`Every {{count}} months`,yearly_one:`Every year`,yearly_other:`Every {{count}} years`},on:`{{every}} on {{days}}`,times_one:`{{count}} time`,times_other:`{{count}} times`,until:`until {{date}}`}},daysShort:{mo:`Mo`,tu:`Tu`,we:`We`,th:`Th`,fr:`Fr`,sa:`Sa`,su:`Su`},daysIn:{mo:`Monday`,tu:`Tuesday`,we:`Wednesday`,th:`Thursday`,fr:`Friday`,sa:`Saturday`,su:`Sunday`},days:{mo:`Monday`,tu:`Tuesday`,we:`Wednesday`,th:`Thursday`,fr:`Friday`,sa:`Saturday`,su:`Sunday`}}}},P=new Set([`FREQ`,`INTERVAL`,`BYDAY`,`COUNT`,`UNTIL`]);function F(e){if(!e)return null;let t=Object.fromEntries(e.split(`;`).map(e=>e.split(`=`)));if(Object.keys(t).some(e=>!P.has(e)))return null;let n=t.FREQ;if(!n||![`DAILY`,`WEEKLY`,`MONTHLY`,`YEARLY`].includes(n))return null;let r=(t.BYDAY??``).split(`,`).filter(Boolean);if(r.some(e=>!/^(MO|TU|WE|TH|FR|SA|SU)$/.test(e)))return null;let i={freq:n,interval:Number(t.INTERVAL??1),byDay:r,ends:`never`};return t.COUNT?(i.ends=`count`,i.count=Number(t.COUNT)):t.UNTIL&&(i.ends=`until`,i.until=`${t.UNTIL.slice(0,4)}-${t.UNTIL.slice(4,6)}-${t.UNTIL.slice(6,8)}`),i}function I(e){let t=[`FREQ=${e.freq}`];return e.interval>1&&t.push(`INTERVAL=${e.interval}`),e.byDay.length&&t.push(`BYDAY=${e.byDay.join(`,`)}`),e.ends===`count`&&e.count&&t.push(`COUNT=${e.count}`),e.ends===`until`&&e.until&&t.push(`UNTIL=${e.until.replace(/-/g,``)}`),t.join(`;`)}var L=o(),R=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/recurrence/renderer.tsx`,z=[`MO`,`TU`,`WE`,`TH`,`FR`,`SA`,`SU`],ae={freq:`WEEKLY`,interval:1,byDay:[],ends:`never`};function oe(){let e=new Date,t=String(e.getMonth()+1).padStart(2,`0`),n=String(e.getDate()).padStart(2,`0`);return`${e.getFullYear()}-${t}-${n}`}function se(e,t){let n=j(e);if(!n)return e;let r=t(`calendar.recurrence.sentence.every.${n.freq.toLowerCase()}`,{count:n.interval}),i=n.days.map(e=>t(`calendar.daysIn.${e.toLowerCase()}`)).join(`, `),a=[];return n.count&&a.push(t(`calendar.recurrence.sentence.times`,{count:n.count})),n.until&&a.push(t(`calendar.recurrence.sentence.until`,{date:n.until})),[i?t(`calendar.recurrence.sentence.on`,{every:r,days:i}):r,...a].join(`, `)}function ce({value:e}){let{t}=n(),r=typeof e==`string`?e:``;return r?(0,L.jsxDEV)(`span`,{children:se(r,t)},void 0,!1,{fileName:R,lineNumber:53,columnNumber:10},this):(0,L.jsxDEV)(`span`,{className:`text-muted-foreground`,children:t(`calendar.recurrence.never`)},void 0,!1,{fileName:R,lineNumber:52,columnNumber:21},this)}function le({value:e,onChange:t}){let{t:r}=n(),i=typeof e==`string`?e:``,a=F(i),o=a??ae,s=i===``||a!==null,c=e=>t(I(e));return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[(0,L.jsxDEV)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`w-24 text-muted-foreground`,children:r(`calendar.recurrence.freq`)},void 0,!1,{fileName:R,lineNumber:77,columnNumber:9},this),(0,L.jsxDEV)(`select`,{"aria-label":r(`calendar.recurrence.freq`),value:i?o.freq:``,disabled:!s,onChange:e=>e.target.value?c({...o,freq:e.target.value}):t(``),className:`rounded-md border border-border bg-background px-2 py-1`,children:[(0,L.jsxDEV)(`option`,{value:``,children:r(`calendar.recurrence.never`)},void 0,!1,{fileName:R,lineNumber:87,columnNumber:11},this),[`DAILY`,`WEEKLY`,`MONTHLY`,`YEARLY`].map(e=>(0,L.jsxDEV)(`option`,{value:e,children:r(`calendar.recurrence.${e.toLowerCase()}`)},e,!1,{fileName:R,lineNumber:89,columnNumber:13},this))]},void 0,!0,{fileName:R,lineNumber:78,columnNumber:9},this)]},void 0,!0,{fileName:R,lineNumber:76,columnNumber:7},this),i&&s&&(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`w-24 text-muted-foreground`,children:r(`calendar.recurrence.interval`)},void 0,!1,{fileName:R,lineNumber:98,columnNumber:13},this),(0,L.jsxDEV)(`input`,{type:`number`,min:1,"aria-label":r(`calendar.recurrence.interval`),value:o.interval,onChange:e=>c({...o,interval:Math.max(1,Number(e.target.value))}),className:`w-20 rounded-md border border-border bg-background px-2 py-1`},void 0,!1,{fileName:R,lineNumber:99,columnNumber:13},this)]},void 0,!0,{fileName:R,lineNumber:97,columnNumber:11},this),o.freq===`WEEKLY`&&(0,L.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:z.map(e=>(0,L.jsxDEV)(`label`,{className:`cursor-pointer rounded-md border px-2 py-0.5 text-xs ${o.byDay.includes(e)?`border-ring text-primary`:`border-border text-muted-foreground`}`,children:[(0,L.jsxDEV)(`input`,{type:`checkbox`,className:`sr-only`,"aria-label":r(`calendar.days.${e.toLowerCase()}`),checked:o.byDay.includes(e),onChange:t=>c({...o,byDay:t.target.checked?z.filter(t=>t===e||o.byDay.includes(t)):o.byDay.filter(t=>t!==e)})},void 0,!1,{fileName:R,lineNumber:115,columnNumber:19},this),r(`calendar.daysShort.${e.toLowerCase()}`)]},e,!0,{fileName:R,lineNumber:111,columnNumber:17},this))},void 0,!1,{fileName:R,lineNumber:109,columnNumber:13},this),(0,L.jsxDEV)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`w-24 text-muted-foreground`,children:r(`calendar.recurrence.ends`)},void 0,!1,{fileName:R,lineNumber:135,columnNumber:13},this),(0,L.jsxDEV)(`select`,{"aria-label":r(`calendar.recurrence.ends`),value:o.ends,onChange:e=>{let t=e.target.value;c(t===`count`?{...o,ends:t,count:o.count??1}:t===`until`?{...o,ends:t,until:o.until??oe()}:{...o,ends:t,count:void 0,until:void 0})},className:`rounded-md border border-border bg-background px-2 py-1`,children:[(0,L.jsxDEV)(`option`,{value:`never`,children:r(`calendar.recurrence.endsNever`)},void 0,!1,{fileName:R,lineNumber:153,columnNumber:15},this),(0,L.jsxDEV)(`option`,{value:`count`,children:r(`calendar.recurrence.endsAfter`)},void 0,!1,{fileName:R,lineNumber:154,columnNumber:15},this),(0,L.jsxDEV)(`option`,{value:`until`,children:r(`calendar.recurrence.endsOn`)},void 0,!1,{fileName:R,lineNumber:155,columnNumber:15},this)]},void 0,!0,{fileName:R,lineNumber:136,columnNumber:13},this),o.ends===`count`&&(0,L.jsxDEV)(`input`,{type:`number`,min:1,"aria-label":r(`calendar.recurrence.times`),value:o.count??1,onChange:e=>c({...o,count:Math.max(1,Number(e.target.value))}),className:`w-20 rounded-md border border-border bg-background px-2 py-1`},void 0,!1,{fileName:R,lineNumber:158,columnNumber:15},this),o.ends===`until`&&(0,L.jsxDEV)(`input`,{type:`date`,"aria-label":r(`calendar.recurrence.endsOn`),value:o.until??``,onChange:e=>c({...o,until:e.target.value}),className:`rounded-md border border-border bg-background px-2 py-1`},void 0,!1,{fileName:R,lineNumber:168,columnNumber:15},this)]},void 0,!0,{fileName:R,lineNumber:134,columnNumber:11},this)]},void 0,!0,{fileName:R,lineNumber:96,columnNumber:9},this),(0,L.jsxDEV)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`w-24 text-muted-foreground`,children:r(`calendar.recurrence.raw`)},void 0,!1,{fileName:R,lineNumber:180,columnNumber:9},this),(0,L.jsxDEV)(`input`,{type:`text`,"aria-label":r(`calendar.recurrence.raw`),value:i,onChange:e=>t(e.target.value),className:`flex-1 rounded-md border border-border bg-background px-2 py-1 font-mono text-xs`},void 0,!1,{fileName:R,lineNumber:181,columnNumber:9},this)]},void 0,!0,{fileName:R,lineNumber:179,columnNumber:7},this)]},void 0,!0,{fileName:R,lineNumber:75,columnNumber:5},this)}function ue(e){return(0,L.jsxDEV)(l,{field:e.field,value:e.value,label:e.label,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:e=>(0,L.jsxDEV)(ce,{value:e},void 0,!1,{fileName:R,lineNumber:203,columnNumber:20},this),edit:(e,t)=>(0,L.jsxDEV)(le,{value:e,onChange:t},void 0,!1,{fileName:R,lineNumber:204,columnNumber:30},this)},void 0,!1,{fileName:R,lineNumber:195,columnNumber:5},this)}function de({draft:e,setDraft:t}){return(0,L.jsxDEV)(le,{value:e,onChange:t},void 0,!1,{fileName:R,lineNumber:219,columnNumber:10},this)}var fe={kinds:[`recurrence`],layout:`block`,Page:ue,Picker:de,pickerSize:`large`,Inline:({value:e})=>(0,L.jsxDEV)(ce,{value:e},void 0,!1,{fileName:R,lineNumber:238,columnNumber:26},void 0)},B=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/month-grid.tsx`,V=3;function pe({anchor:e,occurrences:t,selected:r,onSelectDay:i,onPick:a,compact:o}){let{t:s,i18n:c}=n(),{y:l,m:u}=S(e),f=new Map;for(let e of t){let t=e.start.slice(0,10);f.set(t,[...f.get(t)??[],e])}let p=Array.from({length:7},(e,t)=>new Date(2026,8,7+t).toLocaleDateString(c.language,{weekday:`short`})),m=T();return(0,L.jsxDEV)(`div`,{className:`grid grid-cols-7 gap-px rounded-lg border border-border bg-border overflow-hidden`,children:[p.map(e=>(0,L.jsxDEV)(`div`,{className:`bg-background px-1 py-1 text-center ${d}`,children:e},e,!1,{fileName:B,lineNumber:27,columnNumber:9},this)),D(l,u).map((e,t)=>{let n=e.date?f.get(e.date)??[]:[],c=e.date===m,l=e.date===r;return(0,L.jsxDEV)(`div`,{"data-testid":`calendar-cell`,role:e.date?`button`:void 0,tabIndex:e.date?0:-1,onClick:()=>e.date&&i(e.date),className:`min-h-16 bg-background p-1 text-xs ${e.date?`cursor-pointer hover:bg-muted`:``} ${l?`border-l-2 border-ring`:``}`,children:[e.date&&(0,L.jsxDEV)(`div`,{className:`mb-0.5 text-right ${c?`font-semibold text-primary`:`text-muted-foreground`}`,children:S(e.date).d},void 0,!1,{fileName:B,lineNumber:45,columnNumber:15},this),o?n.length>0&&(0,L.jsxDEV)(`div`,{className:`flex justify-center gap-0.5`,children:n.slice(0,V).map((e,t)=>(0,L.jsxDEV)(`span`,{className:`h-1.5 w-1.5 rounded-full`,style:{background:`var(--accent)`}},t,!1,{fileName:B,lineNumber:53,columnNumber:21},this))},void 0,!1,{fileName:B,lineNumber:51,columnNumber:17},this):(0,L.jsxDEV)(L.Fragment,{children:[n.slice(0,V).map((e,t)=>(0,L.jsxDEV)(`button`,{type:`button`,title:e.title,onClick:t=>{t.stopPropagation(),a(e)},className:`mb-0.5 block w-full truncate rounded border-l-2 bg-background pl-1 text-left text-foreground hover:bg-muted`,style:{borderColor:`var(--accent)`},children:[!e.allDay&&(0,L.jsxDEV)(`span`,{className:`mr-1 text-muted-foreground`,children:e.start.slice(11,16)},void 0,!1,{fileName:B,lineNumber:71,columnNumber:35},this),e.title]},t,!0,{fileName:B,lineNumber:60,columnNumber:19},this)),n.length>V&&(0,L.jsxDEV)(`div`,{className:`text-muted-foreground`,children:s(`calendar.view.more`,{count:n.length-V})},void 0,!1,{fileName:B,lineNumber:76,columnNumber:19},this)]},void 0,!0,{fileName:B,lineNumber:58,columnNumber:15},this)]},t,!0,{fileName:B,lineNumber:36,columnNumber:11},this)})]},void 0,!0,{fileName:B,lineNumber:21,columnNumber:5},this)}var me=1440;function H(e){return e.length<16?0:Number(e.slice(11,13))*60+Number(e.slice(14,16))}function U(e){let t=e.start.slice(0,10);if(!e.end)return t;let n=e.end.slice(0,10),r=e.allDay||H(e.end)===0?k(n,-1):n;return r<t?t:r}function he(e){return e.allDay||U(e)!==e.start.slice(0,10)}function ge(e,t){let n=t[0],r=t[t.length-1],i=[],a=t.map(()=>[]);for(let o of e){if(he(o)){let e=o.start.slice(0,10)<n?n:o.start.slice(0,10),a=U(o)>r?r:U(o);if(e>a||a<n||e>r)continue;let s=t.indexOf(e),c=t.indexOf(a);if(s<0||c<0)continue;i.push({o,fromCol:s,span:c-s+1});continue}let e=t.indexOf(o.start.slice(0,10));e>=0&&a[e].push(o)}return{banners:i,timed:a}}function _e(e){let t=e.map(e=>{let t=H(e.start),n=e.end?U(e)===e.start.slice(0,10)?H(e.end):me:t;return{o:e,topMin:t,endMin:Math.max(n,t+20)}}).sort((e,t)=>e.topMin-t.topMin||t.endMin-e.endMin),n=[],r=[],i=-1,a=()=>{let e=r.reduce((e,t)=>Math.max(e,t.col+1),0);for(let t of r)n.push({o:t.o,topMin:t.topMin,heightMin:t.endMin-t.topMin,col:t.col,cols:e});r=[],i=-1};for(let e of t){r.length>0&&e.topMin>=i&&a();let t=[];for(let e of r)t[e.col]=Math.max(t[e.col]??-1,e.endMin);let n=t.findIndex(t=>t<=e.topMin);n<0&&(n=t.length),r.push({...e,col:n}),i=Math.max(i,e.endMin)}return r.length>0&&a(),n}var W=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/week-grid.tsx`,G=3,K=60;K/G;var q=36,ve=100,J=Array.from({length:24/G},(e,t)=>String(t*G).padStart(2,`0`)),Y=`repeat(7, minmax(${ve}px, 1fr))`,ye=`block w-full truncate rounded border-l-2 bg-background px-1 text-left text-xs text-foreground hover:bg-muted`;function be({anchor:e,occurrences:t,onPick:r}){let{i18n:i}=n(),a=C(e),o=T(),{banners:s,timed:c}=ge(t,a),l=(e,t)=>g(e,i.language,t);return(0,L.jsxDEV)(`div`,{"data-testid":`week-scroll`,className:`overflow-x-auto rounded-lg border border-border`,children:(0,L.jsxDEV)(`div`,{style:{minWidth:736},children:[(0,L.jsxDEV)(`div`,{className:`bg-background`,children:[(0,L.jsxDEV)(`div`,{className:`flex border-b border-border`,children:[(0,L.jsxDEV)(`div`,{className:`sticky left-0 z-10 shrink-0 bg-background`,style:{width:q}},void 0,!1,{fileName:W,lineNumber:77,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`grid flex-1`,style:{gridTemplateColumns:Y},children:a.map(e=>(0,L.jsxDEV)(`div`,{className:`px-2 py-1 text-center`,children:[(0,L.jsxDEV)(`div`,{className:d,children:l(e,{weekday:`short`})},void 0,!1,{fileName:W,lineNumber:81,columnNumber:19},this),(0,L.jsxDEV)(`div`,{className:`text-sm ${e===o?`font-semibold text-primary`:`text-muted-foreground`}`,children:S(e).d},void 0,!1,{fileName:W,lineNumber:82,columnNumber:19},this)]},e,!0,{fileName:W,lineNumber:80,columnNumber:17},this))},void 0,!1,{fileName:W,lineNumber:78,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:76,columnNumber:11},this),s.length>0&&(0,L.jsxDEV)(`div`,{className:`flex border-b border-border py-1`,children:[(0,L.jsxDEV)(`div`,{className:`sticky left-0 z-10 shrink-0 bg-background`,style:{width:q}},void 0,!1,{fileName:W,lineNumber:91,columnNumber:15},this),(0,L.jsxDEV)(`div`,{className:`grid flex-1`,style:{gridTemplateColumns:Y},children:s.map((e,t)=>(0,L.jsxDEV)(`button`,{type:`button`,"data-testid":`week-banner`,title:e.o.title,onClick:()=>r(e.o),className:ye,style:{gridColumn:`${e.fromCol+1} / span ${e.span}`,borderColor:`var(--accent)`},children:e.o.title},t,!1,{fileName:W,lineNumber:99,columnNumber:19},this))},void 0,!1,{fileName:W,lineNumber:97,columnNumber:15},this)]},void 0,!0,{fileName:W,lineNumber:90,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:75,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`flex`,children:[(0,L.jsxDEV)(`div`,{className:`sticky left-0 z-10 shrink-0 bg-background`,style:{width:q},children:J.map(e=>(0,L.jsxDEV)(`div`,{"data-testid":`week-hour`,className:`pr-2 text-right ${d}`,style:{height:K},children:e},e,!1,{fileName:W,lineNumber:125,columnNumber:15},this))},void 0,!1,{fileName:W,lineNumber:123,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`grid flex-1`,style:{gridTemplateColumns:Y},children:a.map((e,t)=>(0,L.jsxDEV)(`div`,{"data-testid":`week-day-col`,className:`relative border-l border-border`,style:{height:480},children:[J.map((e,t)=>(0,L.jsxDEV)(`div`,{className:`absolute inset-x-0 border-t border-border/60`,style:{top:t*K}},e,!1,{fileName:W,lineNumber:144,columnNumber:19},this)),_e(c[t]).map((e,t)=>(0,L.jsxDEV)(`button`,{type:`button`,"data-testid":`week-block`,title:`${e.o.start.slice(11,16)} ${e.o.title}`,onClick:()=>r(e.o),className:`absolute ${ye}`,style:{top:e.topMin/60*20,height:e.heightMin/60*20,left:`${e.col/e.cols*100}%`,width:`${1/e.cols*100}%`,borderColor:`var(--accent)`},children:[(0,L.jsxDEV)(`span`,{className:`mr-1 text-muted-foreground`,children:e.o.start.slice(11,16)},void 0,!1,{fileName:W,lineNumber:162,columnNumber:21},this),e.o.title]},t,!0,{fileName:W,lineNumber:147,columnNumber:19},this))]},e,!0,{fileName:W,lineNumber:137,columnNumber:15},this))},void 0,!1,{fileName:W,lineNumber:135,columnNumber:11},this)]},void 0,!0,{fileName:W,lineNumber:117,columnNumber:9},this)]},void 0,!0,{fileName:W,lineNumber:74,columnNumber:7},this)},void 0,!1,{fileName:W,lineNumber:73,columnNumber:5},this)}var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/mini-month.tsx`;function xe({year:e,month:t,weekdays:r,marked:i,selected:a,onSelectDay:o,onPickMonth:s}){let{i18n:c}=n(),l=T(),u=new Date(e,t,1).toLocaleDateString(c.language,{month:`long`}),f=(0,M.useMemo)(()=>D(e,t),[e,t]);return(0,L.jsxDEV)(`div`,{"data-testid":`mini-month`,className:`rounded-lg border border-border p-2`,children:[(0,L.jsxDEV)(`button`,{type:`button`,"data-testid":`mini-month-name`,onClick:()=>s(w(e,t,1)),className:`mb-1 block w-full text-left text-sm font-semibold text-foreground hover:text-primary`,children:u},void 0,!1,{fileName:X,lineNumber:38,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`grid grid-cols-7 gap-px`,children:[r.map((e,t)=>(0,L.jsxDEV)(`div`,{className:`text-center ${d}`,children:e},t,!1,{fileName:X,lineNumber:48,columnNumber:11},this)),f.map((e,t)=>e.date?(0,L.jsxDEV)(`button`,{type:`button`,"data-testid":`mini-day`,onClick:()=>o(e.date),className:`rounded py-0.5 text-center text-xs hover:bg-muted ${e.date===l?`font-semibold text-primary`:`text-foreground`} ${e.date===a?`border-l-2 border-ring`:``}`,children:[S(e.date).d,i.has(e.date)&&(0,L.jsxDEV)(`span`,{"data-testid":`mini-dot`,className:`mx-auto mt-0.5 block h-1 w-1 rounded-full`,style:{background:`var(--accent)`}},void 0,!1,{fileName:X,lineNumber:65,columnNumber:17},this)]},t,!0,{fileName:X,lineNumber:54,columnNumber:13},this):(0,L.jsxDEV)(`div`,{},t,!1,{fileName:X,lineNumber:73,columnNumber:13},this))]},void 0,!0,{fileName:X,lineNumber:46,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:37,columnNumber:5},this)}var Se=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/year-grid.tsx`;function Ce({anchor:e,occurrences:t,selected:r,onSelectDay:i,onPickMonth:a}){let{i18n:o}=n(),{y:s}=S(e),c=(0,M.useMemo)(()=>new Set(t.map(e=>e.start.slice(0,10))),[t]),l=(0,M.useMemo)(()=>Array.from({length:7},(e,t)=>new Date(2026,8,7+t).toLocaleDateString(o.language,{weekday:`narrow`})),[o.language]);return(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4`,children:Array.from({length:12},(e,t)=>(0,L.jsxDEV)(xe,{year:s,month:t,weekdays:l,marked:c,selected:r,onSelectDay:i,onPickMonth:a},t,!1,{fileName:Se,lineNumber:38,columnNumber:9},this))},void 0,!1,{fileName:Se,lineNumber:36,columnNumber:5},this)}var we=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/scale.tsx`;function Te(e,t){let n=C(e),r=S(n[0]),i=S(n[6]);return E(new Intl.DateTimeFormat(t,{day:`numeric`,month:`long`,year:`numeric`}).formatRange(new Date(r.y,r.m,r.d),new Date(i.y,i.m,i.d)))}var Z={week:{range:x,step:(e,t)=>k(e,t*7),heading:Te,Grid:({anchor:e,occurrences:t,onPick:n})=>(0,L.jsxDEV)(be,{anchor:e,occurrences:t,onPick:n},void 0,!1,{fileName:we,lineNumber:67,columnNumber:48},void 0),dayTable:!1},month:{range:_,step:(e,t)=>v(e,t),heading:(e,t)=>E(g(e,t,{month:`long`,year:`numeric`})),Grid:pe,dayTable:!0},year:{range:b,step:(e,t)=>y(e,t),heading:e=>String(S(e).y),Grid:({anchor:e,occurrences:t,selected:n,onSelectDay:r,onZoom:i})=>(0,L.jsxDEV)(Ce,{anchor:e,occurrences:t,selected:n,onSelectDay:r,onPickMonth:e=>i(`month`,e)},void 0,!1,{fileName:we,lineNumber:82,columnNumber:7},void 0),dayTable:!0}};function Ee(e){return e!==null&&e in Z?e:`month`}var Q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/calendar-view.tsx`,De=Object.keys(Z);function Oe(e){let{rows:t,shelf:i,keys:o,hrefBase:l}=e,{t:d,i18n:p}=n(),_=s(),[v,y]=r(),b=Ee(v.get(`cv`)),x=re(v.get(`d`)),S=Z[b],[C,w]=(0,M.useState)(null);(0,M.useEffect)(()=>w(null),[b,x]);let D=!c(`panel`,1e3),O=(0,M.useMemo)(()=>ee(i.fields),[i.fields]),k=ne(i,o),A=S.range(x),j=(0,M.useMemo)(()=>te(t,i,o,l,A.from,A.to),[t,i,o,l,A.from,A.to]),N=(0,M.useMemo)(()=>ie(t,O,k),[t,O,k]),P=(0,M.useMemo)(()=>{if(!C)return[];let e=new Set(j.filter(e=>e.start.slice(0,10)===C).map(e=>e.id));return t.filter(t=>e.has(String(t.id)))},[C,j,t]),F=(e,t)=>{w(null),v.set(`cv`,e),v.set(`d`,t),y(v,{replace:!0})},I={...e,scrollKey:void 0,embedded:!0},R=C?E(g(C,p.language,{weekday:`long`,day:`numeric`,month:`long`})):``;return(0,L.jsxDEV)(`div`,{className:`p-4 pb-24`,children:[(0,L.jsxDEV)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2`,children:[(0,L.jsxDEV)(h,{variant:`outline`,size:`icon`,"aria-label":d(`calendar.view.prev.${b}`),onClick:()=>F(b,S.step(x,-1)),children:(0,L.jsxDEV)(f,{size:16},void 0,!1,{fileName:Q,lineNumber:88,columnNumber:11},this)},void 0,!1,{fileName:Q,lineNumber:82,columnNumber:9},this),(0,L.jsxDEV)(`h2`,{className:`min-w-40 text-center text-sm font-semibold`,children:S.heading(x,p.language)},void 0,!1,{fileName:Q,lineNumber:90,columnNumber:9},this),(0,L.jsxDEV)(h,{variant:`outline`,size:`icon`,"aria-label":d(`calendar.view.next.${b}`),onClick:()=>F(b,S.step(x,1)),children:(0,L.jsxDEV)(u,{size:16},void 0,!1,{fileName:Q,lineNumber:97,columnNumber:11},this)},void 0,!1,{fileName:Q,lineNumber:91,columnNumber:9},this),(0,L.jsxDEV)(h,{variant:`outline`,onClick:()=>F(b,T()),children:d(`calendar.view.today`)},void 0,!1,{fileName:Q,lineNumber:99,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`ml-auto flex items-center gap-1`,children:De.map(e=>(0,L.jsxDEV)(h,{size:`sm`,variant:e===b?`default`:`outline`,"aria-pressed":e===b,onClick:()=>F(e,x),children:d(`calendar.view.scale.${e}`)},e,!1,{fileName:Q,lineNumber:104,columnNumber:13},this))},void 0,!1,{fileName:Q,lineNumber:102,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:81,columnNumber:7},this),(0,L.jsxDEV)(S.Grid,{anchor:x,occurrences:j,selected:C,compact:D,onSelectDay:e=>w(t=>t===e?null:e),onPick:e=>_(e.href),onZoom:F},void 0,!1,{fileName:Q,lineNumber:118,columnNumber:7},this),S.dayTable&&C&&(0,L.jsxDEV)(`section`,{children:[(0,L.jsxDEV)(`h3`,{className:`mt-4 mb-1 text-sm font-semibold`,children:R},void 0,!1,{fileName:Q,lineNumber:129,columnNumber:11},this),P.length===0?(0,L.jsxDEV)(a,{to:`${l}/new`,className:`text-sm text-muted-foreground hover:text-primary`,children:d(`actions.new`)},void 0,!1,{fileName:Q,lineNumber:131,columnNumber:13},this):(0,L.jsxDEV)(m,{...I,rows:P},void 0,!1,{fileName:Q,lineNumber:135,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:128,columnNumber:9},this),N.length>0&&(0,L.jsxDEV)(`section`,{children:[(0,L.jsxDEV)(`h3`,{className:`mt-4 mb-1 text-sm font-semibold`,children:d(`calendar.view.withoutDate`)},void 0,!1,{fileName:Q,lineNumber:141,columnNumber:11},this),(0,L.jsxDEV)(m,{...I,rows:N},void 0,!1,{fileName:Q,lineNumber:142,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:140,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:80,columnNumber:5},this)}var ke={kind:`calendar`,View:Oe,check:A},$=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/ui.tsx`,Ae=(0,M.lazy)(()=>i(()=>import(`./ilamy-view-Dddf8Q2O.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]))),je=e=>(0,L.jsxDEV)(M.Suspense,{fallback:null,children:(0,L.jsxDEV)(Ae,{...e},void 0,!1,{fileName:$,lineNumber:29,columnNumber:5},void 0)},void 0,!1,{fileName:$,lineNumber:28,columnNumber:3},void 0),Me={...O,View:je},Ne=p({translations:N,renderers:[fe],listViews:[ke,Me]});export{Ne as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ilamy-view-D7DQZ577.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-CzSUaSLk.js","assets/src-CheiTWox.js","assets/countries-CoGvAZ5u.js","assets/fields-Ce51pRua.js","assets/input-BFMNMo6y.js","assets/phone-input-8QtHMHO_.js","assets/ui-vendor-ByG3otld.js","assets/icons-0CjpO0K1.js","assets/popover-UkAmHo3Y.js","assets/condition-B5taAXkb.js","assets/shelf-DjiUBfgQ.js","assets/markdown-vendor-WSL3P01P.js","assets/development-ChLInqDF.js","assets/registration-43gjHJ3X.js","assets/ical-FRtCagm-.js"])))=>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,p as i,r as a,t as o,u as s}from"./react-vendor-CzSUaSLk.js";import{Ct as c,H as l,Rr as u,Ut as d,Zr as f,t as p,zr as m}from"./src-CheiTWox.js";import{l as h}from"./phone-input-8QtHMHO_.js";import{s as ee}from"./shelf-DjiUBfgQ.js";import{_ as te,a as g,b as ne,c as _,d as v,f as y,g as b,h as x,i as S,l as re,m as C,o as w,p as T,r as E,s as D,t as O,u as k,v as ie,y as A}from"./registration-43gjHJ3X.js";import{r as j}from"./ical-FRtCagm-.js";var M=e(t(),1),N={uk:{calendar:{plugin:{label:`Календар`,description:`Календарі, події та завдання.`},library:{label:`Календар`},entry:{label:`Календар`,fields:{summary:`Назва`,description:`Опис`,when:`Коли`,allDay:`Увесь день`,location:`Місце`,recurrence:`Повторення`,exdates:`Пропущені дати`,master:`Серія`,recurrenceId:`Замінює екземпляр`,status:`Статус`,uid:`Ідентифікатор синхронізації`,ics:`Дані клієнта`,tags:`Теги`,notes:`Нотатки`},options:{type:{event:`Подія`,task:`Завдання`},status:{tentative:`Попередньо`,confirmed:`Підтверджено`,needs_action:`Треба зробити`,in_process:`У процесі`,completed:`Виконано`,cancelled:`Скасовано`}}},task_details:{label:`Завдання`,fields:{priority:`Пріоритет`,percent:`Прогрес`,completed:`Виконано о`}},validation:{rrule:`Некоректне правило повторення`},view:{today:`Сьогодні`,prev:{day:`Попередній день`,week:`Попередній тиждень`,month:`Попередній місяць`,year:`Попередній рік`},next:{day:`Наступний день`,week:`Наступний тиждень`,month:`Наступний місяць`,year:`Наступний рік`},scale:{day:`День`,week:`Тиждень`,month:`Місяць`,year:`Рік`},lib:{previous:`Назад`,next:`Вперед`,new:`Новий запис`,event:`подія`,events:`події`,more:`ще`},more:`+{{count}}`,withoutDate:`Без дати`,allDay:`увесь день`,createTitle:`Новий запис`,createElsewhere:`Нові записи створюються зі списку, а не тут.`},recurrence:{never:`Не повторюється`,freq:`Повторювати`,daily:`Щодня`,weekly:`Щотижня`,monthly:`Щомісяця`,yearly:`Щороку`,interval:`Кожні`,ends:`Закінчується`,endsNever:`Ніколи`,endsAfter:`Після`,endsOn:`На дату`,times:`разів`,raw:`Правило (RRULE)`,exceptions:`Винятки`,sentence:{every:{daily_one:`Щодня`,daily_few:`Кожні {{count}} дні`,daily_many:`Кожні {{count}} днів`,daily_other:`Кожні {{count}} днів`,weekly_one:`Щотижня`,weekly_few:`Кожні {{count}} тижні`,weekly_many:`Кожні {{count}} тижнів`,weekly_other:`Кожні {{count}} тижнів`,monthly_one:`Щомісяця`,monthly_few:`Кожні {{count}} місяці`,monthly_many:`Кожні {{count}} місяців`,monthly_other:`Кожні {{count}} місяців`,yearly_one:`Щороку`,yearly_few:`Кожні {{count}} роки`,yearly_many:`Кожні {{count}} років`,yearly_other:`Кожні {{count}} років`},on:`{{every}} у {{days}}`,times_one:`{{count}} раз`,times_few:`{{count}} рази`,times_many:`{{count}} разів`,times_other:`{{count}} разів`,until:`до {{date}}`}},daysShort:{mo:`Пн`,tu:`Вт`,we:`Ср`,th:`Чт`,fr:`Пт`,sa:`Сб`,su:`Нд`},daysIn:{mo:`понеділок`,tu:`вівторок`,we:`середу`,th:`четвер`,fr:`п'ятницю`,sa:`суботу`,su:`неділю`},days:{mo:`Понеділок`,tu:`Вівторок`,we:`Середа`,th:`Четвер`,fr:`П'ятниця`,sa:`Субота`,su:`Неділя`}}},ru:{calendar:{plugin:{label:`Календарь`,description:`Календари, события и задачи.`},library:{label:`Календарь`},entry:{label:`Календарь`,fields:{summary:`Название`,description:`Описание`,when:`Когда`,allDay:`Весь день`,location:`Место`,recurrence:`Повторение`,exdates:`Пропущенные даты`,master:`Серия`,recurrenceId:`Заменяет экземпляр`,status:`Статус`,uid:`Идентификатор синхронизации`,ics:`Данные клиента`,tags:`Теги`,notes:`Заметки`},options:{type:{event:`Событие`,task:`Задача`},status:{tentative:`Предварительно`,confirmed:`Подтверждено`,needs_action:`Нужно сделать`,in_process:`В процессе`,completed:`Выполнено`,cancelled:`Отменено`}}},task_details:{label:`Задача`,fields:{priority:`Приоритет`,percent:`Прогресс`,completed:`Выполнено в`}},validation:{rrule:`Некорректное правило повторения`},view:{today:`Сегодня`,prev:{day:`Предыдущий день`,week:`Предыдущая неделя`,month:`Предыдущий месяц`,year:`Предыдущий год`},next:{day:`Следующий день`,week:`Следующая неделя`,month:`Следующий месяц`,year:`Следующий год`},scale:{day:`День`,week:`Неделя`,month:`Месяц`,year:`Год`},lib:{previous:`Назад`,next:`Вперёд`,new:`Новая запись`,event:`событие`,events:`события`,more:`ещё`},more:`+{{count}}`,withoutDate:`Без даты`,allDay:`весь день`,createTitle:`Новая запись`,createElsewhere:`Новые записи создаются из списка, а не здесь.`},recurrence:{never:`Не повторяется`,freq:`Повторять`,daily:`Ежедневно`,weekly:`Еженедельно`,monthly:`Ежемесячно`,yearly:`Ежегодно`,interval:`Каждые`,ends:`Заканчивается`,endsNever:`Никогда`,endsAfter:`После`,endsOn:`В дату`,times:`раз`,raw:`Правило (RRULE)`,exceptions:`Исключения`,sentence:{every:{daily_one:`Каждый день`,daily_few:`Каждые {{count}} дня`,daily_many:`Каждые {{count}} дней`,daily_other:`Каждые {{count}} дней`,weekly_one:`Каждую неделю`,weekly_few:`Каждые {{count}} недели`,weekly_many:`Каждые {{count}} недель`,weekly_other:`Каждые {{count}} недель`,monthly_one:`Каждый месяц`,monthly_few:`Каждые {{count}} месяца`,monthly_many:`Каждые {{count}} месяцев`,monthly_other:`Каждые {{count}} месяцев`,yearly_one:`Каждый год`,yearly_few:`Каждые {{count}} года`,yearly_many:`Каждые {{count}} лет`,yearly_other:`Каждые {{count}} лет`},on:`{{every}} в {{days}}`,times_one:`{{count}} раз`,times_few:`{{count}} раза`,times_many:`{{count}} раз`,times_other:`{{count}} раз`,until:`до {{date}}`}},daysShort:{mo:`Пн`,tu:`Вт`,we:`Ср`,th:`Чт`,fr:`Пт`,sa:`Сб`,su:`Вс`},daysIn:{mo:`понедельник`,tu:`вторник`,we:`среду`,th:`четверг`,fr:`пятницу`,sa:`субботу`,su:`воскресенье`},days:{mo:`Понедельник`,tu:`Вторник`,we:`Среда`,th:`Четверг`,fr:`Пятница`,sa:`Суббота`,su:`Воскресенье`}}},en:{calendar:{plugin:{label:`Calendar`,description:`Calendars, events and tasks.`},library:{label:`Calendar`},entry:{label:`Calendar`,fields:{summary:`Title`,description:`Description`,when:`When`,allDay:`All day`,location:`Location`,recurrence:`Repeats`,exdates:`Skipped dates`,master:`Series`,recurrenceId:`Replaces the instance of`,status:`Status`,uid:`Sync id`,ics:`Client data`,tags:`Tags`,notes:`Notes`},options:{type:{event:`Event`,task:`Task`},status:{tentative:`Tentative`,confirmed:`Confirmed`,needs_action:`To do`,in_process:`In progress`,completed:`Done`,cancelled:`Cancelled`}}},task_details:{label:`Task`,fields:{priority:`Priority`,percent:`Progress`,completed:`Completed at`}},validation:{rrule:`Not a valid repeat rule`},view:{today:`Today`,prev:{day:`Previous day`,week:`Previous week`,month:`Previous month`,year:`Previous year`},next:{day:`Next day`,week:`Next week`,month:`Next month`,year:`Next year`},scale:{day:`Day`,week:`Week`,month:`Month`,year:`Year`},lib:{previous:`Previous`,next:`Next`,new:`New entry`,event:`event`,events:`events`,more:`more`},more:`+{{count}}`,withoutDate:`Without a date`,allDay:`all day`,createTitle:`New entry`,createElsewhere:`New records are created from the list, not here.`},recurrence:{never:`Does not repeat`,freq:`Repeat`,daily:`Daily`,weekly:`Weekly`,monthly:`Monthly`,yearly:`Yearly`,interval:`Every`,ends:`Ends`,endsNever:`Never`,endsAfter:`After`,endsOn:`On`,times:`times`,raw:`Rule (RRULE)`,exceptions:`Exceptions`,sentence:{every:{daily_one:`Every day`,daily_other:`Every {{count}} days`,weekly_one:`Every week`,weekly_other:`Every {{count}} weeks`,monthly_one:`Every month`,monthly_other:`Every {{count}} months`,yearly_one:`Every year`,yearly_other:`Every {{count}} years`},on:`{{every}} on {{days}}`,times_one:`{{count}} time`,times_other:`{{count}} times`,until:`until {{date}}`}},daysShort:{mo:`Mo`,tu:`Tu`,we:`We`,th:`Th`,fr:`Fr`,sa:`Sa`,su:`Su`},daysIn:{mo:`Monday`,tu:`Tuesday`,we:`Wednesday`,th:`Thursday`,fr:`Friday`,sa:`Saturday`,su:`Sunday`},days:{mo:`Monday`,tu:`Tuesday`,we:`Wednesday`,th:`Thursday`,fr:`Friday`,sa:`Saturday`,su:`Sunday`}}}},P=new Set([`FREQ`,`INTERVAL`,`BYDAY`,`COUNT`,`UNTIL`]);function F(e){if(!e)return null;let t=Object.fromEntries(e.split(`;`).map(e=>e.split(`=`)));if(Object.keys(t).some(e=>!P.has(e)))return null;let n=t.FREQ;if(!n||![`DAILY`,`WEEKLY`,`MONTHLY`,`YEARLY`].includes(n))return null;let r=(t.BYDAY??``).split(`,`).filter(Boolean);if(r.some(e=>!/^(MO|TU|WE|TH|FR|SA|SU)$/.test(e)))return null;let i={freq:n,interval:Number(t.INTERVAL??1),byDay:r,ends:`never`};return t.COUNT?(i.ends=`count`,i.count=Number(t.COUNT)):t.UNTIL&&(i.ends=`until`,i.until=`${t.UNTIL.slice(0,4)}-${t.UNTIL.slice(4,6)}-${t.UNTIL.slice(6,8)}`),i}function I(e){let t=[`FREQ=${e.freq}`];return e.interval>1&&t.push(`INTERVAL=${e.interval}`),e.byDay.length&&t.push(`BYDAY=${e.byDay.join(`,`)}`),e.ends===`count`&&e.count&&t.push(`COUNT=${e.count}`),e.ends===`until`&&e.until&&t.push(`UNTIL=${e.until.replace(/-/g,``)}`),t.join(`;`)}var L=o(),R=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/recurrence/renderer.tsx`,z=[`MO`,`TU`,`WE`,`TH`,`FR`,`SA`,`SU`],ae={freq:`WEEKLY`,interval:1,byDay:[],ends:`never`};function oe(){let e=new Date,t=String(e.getMonth()+1).padStart(2,`0`),n=String(e.getDate()).padStart(2,`0`);return`${e.getFullYear()}-${t}-${n}`}function se(e,t){let n=j(e);if(!n)return e;let r=t(`calendar.recurrence.sentence.every.${n.freq.toLowerCase()}`,{count:n.interval}),i=n.days.map(e=>t(`calendar.daysIn.${e.toLowerCase()}`)).join(`, `),a=[];return n.count&&a.push(t(`calendar.recurrence.sentence.times`,{count:n.count})),n.until&&a.push(t(`calendar.recurrence.sentence.until`,{date:n.until})),[i?t(`calendar.recurrence.sentence.on`,{every:r,days:i}):r,...a].join(`, `)}function ce({value:e}){let{t}=n(),r=typeof e==`string`?e:``;return r?(0,L.jsxDEV)(`span`,{children:se(r,t)},void 0,!1,{fileName:R,lineNumber:53,columnNumber:10},this):(0,L.jsxDEV)(`span`,{className:`text-muted-foreground`,children:t(`calendar.recurrence.never`)},void 0,!1,{fileName:R,lineNumber:52,columnNumber:21},this)}function le({value:e,onChange:t}){let{t:r}=n(),i=typeof e==`string`?e:``,a=F(i),o=a??ae,s=i===``||a!==null,c=e=>t(I(e));return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[(0,L.jsxDEV)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`w-24 text-muted-foreground`,children:r(`calendar.recurrence.freq`)},void 0,!1,{fileName:R,lineNumber:77,columnNumber:9},this),(0,L.jsxDEV)(`select`,{"aria-label":r(`calendar.recurrence.freq`),value:i?o.freq:``,disabled:!s,onChange:e=>e.target.value?c({...o,freq:e.target.value}):t(``),className:`rounded-md border border-border bg-background px-2 py-1`,children:[(0,L.jsxDEV)(`option`,{value:``,children:r(`calendar.recurrence.never`)},void 0,!1,{fileName:R,lineNumber:87,columnNumber:11},this),[`DAILY`,`WEEKLY`,`MONTHLY`,`YEARLY`].map(e=>(0,L.jsxDEV)(`option`,{value:e,children:r(`calendar.recurrence.${e.toLowerCase()}`)},e,!1,{fileName:R,lineNumber:89,columnNumber:13},this))]},void 0,!0,{fileName:R,lineNumber:78,columnNumber:9},this)]},void 0,!0,{fileName:R,lineNumber:76,columnNumber:7},this),i&&s&&(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`w-24 text-muted-foreground`,children:r(`calendar.recurrence.interval`)},void 0,!1,{fileName:R,lineNumber:98,columnNumber:13},this),(0,L.jsxDEV)(`input`,{type:`number`,min:1,"aria-label":r(`calendar.recurrence.interval`),value:o.interval,onChange:e=>c({...o,interval:Math.max(1,Number(e.target.value))}),className:`w-20 rounded-md border border-border bg-background px-2 py-1`},void 0,!1,{fileName:R,lineNumber:99,columnNumber:13},this)]},void 0,!0,{fileName:R,lineNumber:97,columnNumber:11},this),o.freq===`WEEKLY`&&(0,L.jsxDEV)(`div`,{className:`flex flex-wrap gap-1`,children:z.map(e=>(0,L.jsxDEV)(`label`,{className:`cursor-pointer rounded-md border px-2 py-0.5 text-xs ${o.byDay.includes(e)?`border-ring text-primary`:`border-border text-muted-foreground`}`,children:[(0,L.jsxDEV)(`input`,{type:`checkbox`,className:`sr-only`,"aria-label":r(`calendar.days.${e.toLowerCase()}`),checked:o.byDay.includes(e),onChange:t=>c({...o,byDay:t.target.checked?z.filter(t=>t===e||o.byDay.includes(t)):o.byDay.filter(t=>t!==e)})},void 0,!1,{fileName:R,lineNumber:115,columnNumber:19},this),r(`calendar.daysShort.${e.toLowerCase()}`)]},e,!0,{fileName:R,lineNumber:111,columnNumber:17},this))},void 0,!1,{fileName:R,lineNumber:109,columnNumber:13},this),(0,L.jsxDEV)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`w-24 text-muted-foreground`,children:r(`calendar.recurrence.ends`)},void 0,!1,{fileName:R,lineNumber:135,columnNumber:13},this),(0,L.jsxDEV)(`select`,{"aria-label":r(`calendar.recurrence.ends`),value:o.ends,onChange:e=>{let t=e.target.value;c(t===`count`?{...o,ends:t,count:o.count??1}:t===`until`?{...o,ends:t,until:o.until??oe()}:{...o,ends:t,count:void 0,until:void 0})},className:`rounded-md border border-border bg-background px-2 py-1`,children:[(0,L.jsxDEV)(`option`,{value:`never`,children:r(`calendar.recurrence.endsNever`)},void 0,!1,{fileName:R,lineNumber:153,columnNumber:15},this),(0,L.jsxDEV)(`option`,{value:`count`,children:r(`calendar.recurrence.endsAfter`)},void 0,!1,{fileName:R,lineNumber:154,columnNumber:15},this),(0,L.jsxDEV)(`option`,{value:`until`,children:r(`calendar.recurrence.endsOn`)},void 0,!1,{fileName:R,lineNumber:155,columnNumber:15},this)]},void 0,!0,{fileName:R,lineNumber:136,columnNumber:13},this),o.ends===`count`&&(0,L.jsxDEV)(`input`,{type:`number`,min:1,"aria-label":r(`calendar.recurrence.times`),value:o.count??1,onChange:e=>c({...o,count:Math.max(1,Number(e.target.value))}),className:`w-20 rounded-md border border-border bg-background px-2 py-1`},void 0,!1,{fileName:R,lineNumber:158,columnNumber:15},this),o.ends===`until`&&(0,L.jsxDEV)(`input`,{type:`date`,"aria-label":r(`calendar.recurrence.endsOn`),value:o.until??``,onChange:e=>c({...o,until:e.target.value}),className:`rounded-md border border-border bg-background px-2 py-1`},void 0,!1,{fileName:R,lineNumber:168,columnNumber:15},this)]},void 0,!0,{fileName:R,lineNumber:134,columnNumber:11},this)]},void 0,!0,{fileName:R,lineNumber:96,columnNumber:9},this),(0,L.jsxDEV)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`w-24 text-muted-foreground`,children:r(`calendar.recurrence.raw`)},void 0,!1,{fileName:R,lineNumber:180,columnNumber:9},this),(0,L.jsxDEV)(`input`,{type:`text`,"aria-label":r(`calendar.recurrence.raw`),value:i,onChange:e=>t(e.target.value),className:`flex-1 rounded-md border border-border bg-background px-2 py-1 font-mono text-xs`},void 0,!1,{fileName:R,lineNumber:181,columnNumber:9},this)]},void 0,!0,{fileName:R,lineNumber:179,columnNumber:7},this)]},void 0,!0,{fileName:R,lineNumber:75,columnNumber:5},this)}function ue(e){return(0,L.jsxDEV)(l,{field:e.field,value:e.value,label:e.label,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:e=>(0,L.jsxDEV)(ce,{value:e},void 0,!1,{fileName:R,lineNumber:203,columnNumber:20},this),edit:(e,t)=>(0,L.jsxDEV)(le,{value:e,onChange:t},void 0,!1,{fileName:R,lineNumber:204,columnNumber:30},this)},void 0,!1,{fileName:R,lineNumber:195,columnNumber:5},this)}function de({draft:e,setDraft:t}){return(0,L.jsxDEV)(le,{value:e,onChange:t},void 0,!1,{fileName:R,lineNumber:219,columnNumber:10},this)}var fe={kinds:[`recurrence`],layout:`scalar`,Page:ue,Picker:de,pickerSize:`large`,Inline:({value:e})=>(0,L.jsxDEV)(ce,{value:e},void 0,!1,{fileName:R,lineNumber:238,columnNumber:26},void 0)},B=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/month-grid.tsx`,V=3;function pe({anchor:e,occurrences:t,selected:r,onSelectDay:i,onPick:a,compact:o}){let{t:s,i18n:c}=n(),{y:l,m:u}=S(e),f=new Map;for(let e of t){let t=e.start.slice(0,10);f.set(t,[...f.get(t)??[],e])}let p=Array.from({length:7},(e,t)=>new Date(2026,8,7+t).toLocaleDateString(c.language,{weekday:`short`})),m=T();return(0,L.jsxDEV)(`div`,{className:`grid grid-cols-7 gap-px rounded-lg border border-border bg-border overflow-hidden`,children:[p.map(e=>(0,L.jsxDEV)(`div`,{className:`bg-background px-1 py-1 text-center ${d}`,children:e},e,!1,{fileName:B,lineNumber:27,columnNumber:9},this)),D(l,u).map((e,t)=>{let n=e.date?f.get(e.date)??[]:[],c=e.date===m,l=e.date===r;return(0,L.jsxDEV)(`div`,{"data-testid":`calendar-cell`,role:e.date?`button`:void 0,tabIndex:e.date?0:-1,onClick:()=>e.date&&i(e.date),className:`min-h-16 bg-background p-1 text-xs ${e.date?`cursor-pointer hover:bg-muted`:``} ${l?`border-l-2 border-ring`:``}`,children:[e.date&&(0,L.jsxDEV)(`div`,{className:`mb-0.5 text-right ${c?`font-semibold text-primary`:`text-muted-foreground`}`,children:S(e.date).d},void 0,!1,{fileName:B,lineNumber:45,columnNumber:15},this),o?n.length>0&&(0,L.jsxDEV)(`div`,{className:`flex justify-center gap-0.5`,children:n.slice(0,V).map((e,t)=>(0,L.jsxDEV)(`span`,{className:`h-1.5 w-1.5 rounded-full`,style:{background:`var(--accent)`}},t,!1,{fileName:B,lineNumber:53,columnNumber:21},this))},void 0,!1,{fileName:B,lineNumber:51,columnNumber:17},this):(0,L.jsxDEV)(L.Fragment,{children:[n.slice(0,V).map((e,t)=>(0,L.jsxDEV)(`button`,{type:`button`,title:e.title,onClick:t=>{t.stopPropagation(),a(e)},className:`mb-0.5 block w-full truncate rounded border-l-2 bg-background pl-1 text-left text-foreground hover:bg-muted`,style:{borderColor:`var(--accent)`},children:[!e.allDay&&(0,L.jsxDEV)(`span`,{className:`mr-1 text-muted-foreground`,children:e.start.slice(11,16)},void 0,!1,{fileName:B,lineNumber:71,columnNumber:35},this),e.title]},t,!0,{fileName:B,lineNumber:60,columnNumber:19},this)),n.length>V&&(0,L.jsxDEV)(`div`,{className:`text-muted-foreground`,children:s(`calendar.view.more`,{count:n.length-V})},void 0,!1,{fileName:B,lineNumber:76,columnNumber:19},this)]},void 0,!0,{fileName:B,lineNumber:58,columnNumber:15},this)]},t,!0,{fileName:B,lineNumber:36,columnNumber:11},this)})]},void 0,!0,{fileName:B,lineNumber:21,columnNumber:5},this)}var me=1440;function H(e){return e.length<16?0:Number(e.slice(11,13))*60+Number(e.slice(14,16))}function U(e){let t=e.start.slice(0,10);if(!e.end)return t;let n=e.end.slice(0,10),r=e.allDay||H(e.end)===0?k(n,-1):n;return r<t?t:r}function he(e){return e.allDay||U(e)!==e.start.slice(0,10)}function ge(e,t){let n=t[0],r=t[t.length-1],i=[],a=t.map(()=>[]);for(let o of e){if(he(o)){let e=o.start.slice(0,10)<n?n:o.start.slice(0,10),a=U(o)>r?r:U(o);if(e>a||a<n||e>r)continue;let s=t.indexOf(e),c=t.indexOf(a);if(s<0||c<0)continue;i.push({o,fromCol:s,span:c-s+1});continue}let e=t.indexOf(o.start.slice(0,10));e>=0&&a[e].push(o)}return{banners:i,timed:a}}function _e(e){let t=e.map(e=>{let t=H(e.start),n=e.end?U(e)===e.start.slice(0,10)?H(e.end):me:t;return{o:e,topMin:t,endMin:Math.max(n,t+20)}}).sort((e,t)=>e.topMin-t.topMin||t.endMin-e.endMin),n=[],r=[],i=-1,a=()=>{let e=r.reduce((e,t)=>Math.max(e,t.col+1),0);for(let t of r)n.push({o:t.o,topMin:t.topMin,heightMin:t.endMin-t.topMin,col:t.col,cols:e});r=[],i=-1};for(let e of t){r.length>0&&e.topMin>=i&&a();let t=[];for(let e of r)t[e.col]=Math.max(t[e.col]??-1,e.endMin);let n=t.findIndex(t=>t<=e.topMin);n<0&&(n=t.length),r.push({...e,col:n}),i=Math.max(i,e.endMin)}return r.length>0&&a(),n}var W=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/week-grid.tsx`,G=3,K=60;K/G;var q=36,ve=100,J=Array.from({length:24/G},(e,t)=>String(t*G).padStart(2,`0`)),Y=`repeat(7, minmax(${ve}px, 1fr))`,ye=`block w-full truncate rounded border-l-2 bg-background px-1 text-left text-xs text-foreground hover:bg-muted`;function be({anchor:e,occurrences:t,onPick:r}){let{i18n:i}=n(),a=C(e),o=T(),{banners:s,timed:c}=ge(t,a),l=(e,t)=>g(e,i.language,t);return(0,L.jsxDEV)(`div`,{"data-testid":`week-scroll`,className:`overflow-x-auto rounded-lg border border-border`,children:(0,L.jsxDEV)(`div`,{style:{minWidth:736},children:[(0,L.jsxDEV)(`div`,{className:`bg-background`,children:[(0,L.jsxDEV)(`div`,{className:`flex border-b border-border`,children:[(0,L.jsxDEV)(`div`,{className:`sticky left-0 z-10 shrink-0 bg-background`,style:{width:q}},void 0,!1,{fileName:W,lineNumber:77,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`grid flex-1`,style:{gridTemplateColumns:Y},children:a.map(e=>(0,L.jsxDEV)(`div`,{className:`px-2 py-1 text-center`,children:[(0,L.jsxDEV)(`div`,{className:d,children:l(e,{weekday:`short`})},void 0,!1,{fileName:W,lineNumber:81,columnNumber:19},this),(0,L.jsxDEV)(`div`,{className:`text-sm ${e===o?`font-semibold text-primary`:`text-muted-foreground`}`,children:S(e).d},void 0,!1,{fileName:W,lineNumber:82,columnNumber:19},this)]},e,!0,{fileName:W,lineNumber:80,columnNumber:17},this))},void 0,!1,{fileName:W,lineNumber:78,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:76,columnNumber:11},this),s.length>0&&(0,L.jsxDEV)(`div`,{className:`flex border-b border-border py-1`,children:[(0,L.jsxDEV)(`div`,{className:`sticky left-0 z-10 shrink-0 bg-background`,style:{width:q}},void 0,!1,{fileName:W,lineNumber:91,columnNumber:15},this),(0,L.jsxDEV)(`div`,{className:`grid flex-1`,style:{gridTemplateColumns:Y},children:s.map((e,t)=>(0,L.jsxDEV)(`button`,{type:`button`,"data-testid":`week-banner`,title:e.o.title,onClick:()=>r(e.o),className:ye,style:{gridColumn:`${e.fromCol+1} / span ${e.span}`,borderColor:`var(--accent)`},children:e.o.title},t,!1,{fileName:W,lineNumber:99,columnNumber:19},this))},void 0,!1,{fileName:W,lineNumber:97,columnNumber:15},this)]},void 0,!0,{fileName:W,lineNumber:90,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:75,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`flex`,children:[(0,L.jsxDEV)(`div`,{className:`sticky left-0 z-10 shrink-0 bg-background`,style:{width:q},children:J.map(e=>(0,L.jsxDEV)(`div`,{"data-testid":`week-hour`,className:`pr-2 text-right ${d}`,style:{height:K},children:e},e,!1,{fileName:W,lineNumber:125,columnNumber:15},this))},void 0,!1,{fileName:W,lineNumber:123,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`grid flex-1`,style:{gridTemplateColumns:Y},children:a.map((e,t)=>(0,L.jsxDEV)(`div`,{"data-testid":`week-day-col`,className:`relative border-l border-border`,style:{height:480},children:[J.map((e,t)=>(0,L.jsxDEV)(`div`,{className:`absolute inset-x-0 border-t border-border/60`,style:{top:t*K}},e,!1,{fileName:W,lineNumber:144,columnNumber:19},this)),_e(c[t]).map((e,t)=>(0,L.jsxDEV)(`button`,{type:`button`,"data-testid":`week-block`,title:`${e.o.start.slice(11,16)} ${e.o.title}`,onClick:()=>r(e.o),className:`absolute ${ye}`,style:{top:e.topMin/60*20,height:e.heightMin/60*20,left:`${e.col/e.cols*100}%`,width:`${1/e.cols*100}%`,borderColor:`var(--accent)`},children:[(0,L.jsxDEV)(`span`,{className:`mr-1 text-muted-foreground`,children:e.o.start.slice(11,16)},void 0,!1,{fileName:W,lineNumber:162,columnNumber:21},this),e.o.title]},t,!0,{fileName:W,lineNumber:147,columnNumber:19},this))]},e,!0,{fileName:W,lineNumber:137,columnNumber:15},this))},void 0,!1,{fileName:W,lineNumber:135,columnNumber:11},this)]},void 0,!0,{fileName:W,lineNumber:117,columnNumber:9},this)]},void 0,!0,{fileName:W,lineNumber:74,columnNumber:7},this)},void 0,!1,{fileName:W,lineNumber:73,columnNumber:5},this)}var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/mini-month.tsx`;function xe({year:e,month:t,weekdays:r,marked:i,selected:a,onSelectDay:o,onPickMonth:s}){let{i18n:c}=n(),l=T(),u=new Date(e,t,1).toLocaleDateString(c.language,{month:`long`}),f=(0,M.useMemo)(()=>D(e,t),[e,t]);return(0,L.jsxDEV)(`div`,{"data-testid":`mini-month`,className:`rounded-lg border border-border p-2`,children:[(0,L.jsxDEV)(`button`,{type:`button`,"data-testid":`mini-month-name`,onClick:()=>s(w(e,t,1)),className:`mb-1 block w-full text-left text-sm font-semibold text-foreground hover:text-primary`,children:u},void 0,!1,{fileName:X,lineNumber:38,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`grid grid-cols-7 gap-px`,children:[r.map((e,t)=>(0,L.jsxDEV)(`div`,{className:`text-center ${d}`,children:e},t,!1,{fileName:X,lineNumber:48,columnNumber:11},this)),f.map((e,t)=>e.date?(0,L.jsxDEV)(`button`,{type:`button`,"data-testid":`mini-day`,onClick:()=>o(e.date),className:`rounded py-0.5 text-center text-xs hover:bg-muted ${e.date===l?`font-semibold text-primary`:`text-foreground`} ${e.date===a?`border-l-2 border-ring`:``}`,children:[S(e.date).d,i.has(e.date)&&(0,L.jsxDEV)(`span`,{"data-testid":`mini-dot`,className:`mx-auto mt-0.5 block h-1 w-1 rounded-full`,style:{background:`var(--accent)`}},void 0,!1,{fileName:X,lineNumber:65,columnNumber:17},this)]},t,!0,{fileName:X,lineNumber:54,columnNumber:13},this):(0,L.jsxDEV)(`div`,{},t,!1,{fileName:X,lineNumber:73,columnNumber:13},this))]},void 0,!0,{fileName:X,lineNumber:46,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:37,columnNumber:5},this)}var Se=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/year-grid.tsx`;function Ce({anchor:e,occurrences:t,selected:r,onSelectDay:i,onPickMonth:a}){let{i18n:o}=n(),{y:s}=S(e),c=(0,M.useMemo)(()=>new Set(t.map(e=>e.start.slice(0,10))),[t]),l=(0,M.useMemo)(()=>Array.from({length:7},(e,t)=>new Date(2026,8,7+t).toLocaleDateString(o.language,{weekday:`narrow`})),[o.language]);return(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4`,children:Array.from({length:12},(e,t)=>(0,L.jsxDEV)(xe,{year:s,month:t,weekdays:l,marked:c,selected:r,onSelectDay:i,onPickMonth:a},t,!1,{fileName:Se,lineNumber:38,columnNumber:9},this))},void 0,!1,{fileName:Se,lineNumber:36,columnNumber:5},this)}var we=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/scale.tsx`;function Te(e,t){let n=C(e),r=S(n[0]),i=S(n[6]);return E(new Intl.DateTimeFormat(t,{day:`numeric`,month:`long`,year:`numeric`}).formatRange(new Date(r.y,r.m,r.d),new Date(i.y,i.m,i.d)))}var Z={week:{range:x,step:(e,t)=>k(e,t*7),heading:Te,Grid:({anchor:e,occurrences:t,onPick:n})=>(0,L.jsxDEV)(be,{anchor:e,occurrences:t,onPick:n},void 0,!1,{fileName:we,lineNumber:67,columnNumber:48},void 0),dayTable:!1},month:{range:_,step:(e,t)=>v(e,t),heading:(e,t)=>E(g(e,t,{month:`long`,year:`numeric`})),Grid:pe,dayTable:!0},year:{range:b,step:(e,t)=>y(e,t),heading:e=>String(S(e).y),Grid:({anchor:e,occurrences:t,selected:n,onSelectDay:r,onZoom:i})=>(0,L.jsxDEV)(Ce,{anchor:e,occurrences:t,selected:n,onSelectDay:r,onPickMonth:e=>i(`month`,e)},void 0,!1,{fileName:we,lineNumber:82,columnNumber:7},void 0),dayTable:!0}};function Ee(e){return e!==null&&e in Z?e:`month`}var Q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/calendar-view/calendar-view.tsx`,De=Object.keys(Z);function Oe(e){let{rows:t,shelf:i,keys:o,hrefBase:l}=e,{t:d,i18n:f}=n(),_=s(),[v,y]=r(),b=Ee(v.get(`cv`)),x=re(v.get(`d`)),S=Z[b],[C,w]=(0,M.useState)(null);(0,M.useEffect)(()=>w(null),[b,x]);let D=!c(`panel`,1e3),O=(0,M.useMemo)(()=>ee(i.fields),[i.fields]),k=ne(i,o),A=S.range(x),j=(0,M.useMemo)(()=>te(t,i,o,l,A.from,A.to),[t,i,o,l,A.from,A.to]),N=(0,M.useMemo)(()=>ie(t,O,k),[t,O,k]),P=(0,M.useMemo)(()=>{if(!C)return[];let e=new Set(j.filter(e=>e.start.slice(0,10)===C).map(e=>e.id));return t.filter(t=>e.has(String(t.id)))},[C,j,t]),F=(e,t)=>{w(null),v.set(`cv`,e),v.set(`d`,t),y(v,{replace:!0})},I={...e,scrollKey:void 0,embedded:!0},R=C?E(g(C,f.language,{weekday:`long`,day:`numeric`,month:`long`})):``;return(0,L.jsxDEV)(`div`,{className:`p-4 pb-24`,children:[(0,L.jsxDEV)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2`,children:[(0,L.jsxDEV)(h,{variant:`outline`,size:`icon`,"aria-label":d(`calendar.view.prev.${b}`),onClick:()=>F(b,S.step(x,-1)),children:(0,L.jsxDEV)(m,{size:16},void 0,!1,{fileName:Q,lineNumber:88,columnNumber:11},this)},void 0,!1,{fileName:Q,lineNumber:82,columnNumber:9},this),(0,L.jsxDEV)(`h2`,{className:`min-w-40 text-center text-sm font-semibold`,children:S.heading(x,f.language)},void 0,!1,{fileName:Q,lineNumber:90,columnNumber:9},this),(0,L.jsxDEV)(h,{variant:`outline`,size:`icon`,"aria-label":d(`calendar.view.next.${b}`),onClick:()=>F(b,S.step(x,1)),children:(0,L.jsxDEV)(u,{size:16},void 0,!1,{fileName:Q,lineNumber:97,columnNumber:11},this)},void 0,!1,{fileName:Q,lineNumber:91,columnNumber:9},this),(0,L.jsxDEV)(h,{variant:`outline`,onClick:()=>F(b,T()),children:d(`calendar.view.today`)},void 0,!1,{fileName:Q,lineNumber:99,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`ml-auto flex items-center gap-1`,children:De.map(e=>(0,L.jsxDEV)(h,{size:`sm`,variant:e===b?`default`:`outline`,"aria-pressed":e===b,onClick:()=>F(e,x),children:d(`calendar.view.scale.${e}`)},e,!1,{fileName:Q,lineNumber:104,columnNumber:13},this))},void 0,!1,{fileName:Q,lineNumber:102,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:81,columnNumber:7},this),(0,L.jsxDEV)(S.Grid,{anchor:x,occurrences:j,selected:C,compact:D,onSelectDay:e=>w(t=>t===e?null:e),onPick:e=>_(e.href),onZoom:F},void 0,!1,{fileName:Q,lineNumber:118,columnNumber:7},this),S.dayTable&&C&&(0,L.jsxDEV)(`section`,{children:[(0,L.jsxDEV)(`h3`,{className:`mt-4 mb-1 text-sm font-semibold`,children:R},void 0,!1,{fileName:Q,lineNumber:129,columnNumber:11},this),P.length===0?(0,L.jsxDEV)(a,{to:`${l}/new`,className:`text-sm text-muted-foreground hover:text-primary`,children:d(`actions.new`)},void 0,!1,{fileName:Q,lineNumber:131,columnNumber:13},this):(0,L.jsxDEV)(p,{...I,rows:P},void 0,!1,{fileName:Q,lineNumber:135,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:128,columnNumber:9},this),N.length>0&&(0,L.jsxDEV)(`section`,{children:[(0,L.jsxDEV)(`h3`,{className:`mt-4 mb-1 text-sm font-semibold`,children:d(`calendar.view.withoutDate`)},void 0,!1,{fileName:Q,lineNumber:141,columnNumber:11},this),(0,L.jsxDEV)(p,{...I,rows:N},void 0,!1,{fileName:Q,lineNumber:142,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:140,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:80,columnNumber:5},this)}var ke={kind:`calendar`,View:Oe,check:A},$=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-calendar/src/ui.tsx`,Ae=(0,M.lazy)(()=>i(()=>import(`./ilamy-view-D7DQZ577.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]))),je=e=>(0,L.jsxDEV)(M.Suspense,{fallback:null,children:(0,L.jsxDEV)(Ae,{...e},void 0,!1,{fileName:$,lineNumber:29,columnNumber:5},void 0)},void 0,!1,{fileName:$,lineNumber:28,columnNumber:3},void 0),Me={...O,View:je},Ne=f({translations:N,renderers:[fe],listViews:[ke,Me]});export{Ne as default};