@hoardodile/ui 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-2BVZEYNW.js +97 -0
- package/dist/chunk-2BVZEYNW.js.map +1 -0
- package/dist/chunk-2DTR6CD5.js +47 -0
- package/dist/chunk-2DTR6CD5.js.map +1 -0
- package/dist/chunk-2HWSCY4T.js +20 -0
- package/dist/chunk-2HWSCY4T.js.map +1 -0
- package/dist/chunk-363CCKQ7.js +75 -0
- package/dist/chunk-363CCKQ7.js.map +1 -0
- package/dist/chunk-3ZQJWBVB.js +30 -0
- package/dist/chunk-3ZQJWBVB.js.map +1 -0
- package/dist/chunk-4D36OO5W.js +277 -0
- package/dist/chunk-4D36OO5W.js.map +1 -0
- package/dist/chunk-4UITFLIN.js +31 -0
- package/dist/chunk-4UITFLIN.js.map +1 -0
- package/dist/chunk-6HAIUXNZ.js +11 -0
- package/dist/chunk-6HAIUXNZ.js.map +1 -0
- package/dist/chunk-7JMMFY67.js +62 -0
- package/dist/chunk-7JMMFY67.js.map +1 -0
- package/dist/chunk-7MWWHI6T.js +1149 -0
- package/dist/chunk-7MWWHI6T.js.map +1 -0
- package/dist/chunk-AEHTAUAQ.js +65 -0
- package/dist/chunk-AEHTAUAQ.js.map +1 -0
- package/dist/chunk-ASRGQ5BD.js +130 -0
- package/dist/chunk-ASRGQ5BD.js.map +1 -0
- package/dist/chunk-BFGOE5AI.js +187 -0
- package/dist/chunk-BFGOE5AI.js.map +1 -0
- package/dist/chunk-BRT25IDQ.js +46 -0
- package/dist/chunk-BRT25IDQ.js.map +1 -0
- package/dist/chunk-BU5DQOPM.js +29 -0
- package/dist/chunk-BU5DQOPM.js.map +1 -0
- package/dist/chunk-BWASOT5X.js +266 -0
- package/dist/chunk-BWASOT5X.js.map +1 -0
- package/dist/chunk-F32V4Z7Q.js +26 -0
- package/dist/chunk-F32V4Z7Q.js.map +1 -0
- package/dist/chunk-F7RHDRRJ.js +24 -0
- package/dist/chunk-F7RHDRRJ.js.map +1 -0
- package/dist/chunk-FH5RNCFR.js +21 -0
- package/dist/chunk-FH5RNCFR.js.map +1 -0
- package/dist/chunk-GKSX5ULZ.js +513 -0
- package/dist/chunk-GKSX5ULZ.js.map +1 -0
- package/dist/chunk-JPFDNRCA.js +26 -0
- package/dist/chunk-JPFDNRCA.js.map +1 -0
- package/dist/chunk-KNPRUZ4H.js +13 -0
- package/dist/chunk-KNPRUZ4H.js.map +1 -0
- package/dist/chunk-KOFWEPPB.js +254 -0
- package/dist/chunk-KOFWEPPB.js.map +1 -0
- package/dist/chunk-M5OJN54O.js +10 -0
- package/dist/chunk-M5OJN54O.js.map +1 -0
- package/dist/chunk-OEVALKQ5.js +51 -0
- package/dist/chunk-OEVALKQ5.js.map +1 -0
- package/dist/chunk-OW5FWLPH.js +33 -0
- package/dist/chunk-OW5FWLPH.js.map +1 -0
- package/dist/chunk-POX7TXBH.js +41 -0
- package/dist/chunk-POX7TXBH.js.map +1 -0
- package/dist/chunk-PWJBHUM2.js +58 -0
- package/dist/chunk-PWJBHUM2.js.map +1 -0
- package/dist/chunk-QGMDWGJT.js +23 -0
- package/dist/chunk-QGMDWGJT.js.map +1 -0
- package/dist/chunk-QGTQQNUL.js +36 -0
- package/dist/chunk-QGTQQNUL.js.map +1 -0
- package/dist/chunk-SAY52ZKI.js +152 -0
- package/dist/chunk-SAY52ZKI.js.map +1 -0
- package/dist/chunk-SKDPGSRL.js +166 -0
- package/dist/chunk-SKDPGSRL.js.map +1 -0
- package/dist/chunk-T56ARCUK.js +38 -0
- package/dist/chunk-T56ARCUK.js.map +1 -0
- package/dist/chunk-TDDHQZ62.js +227 -0
- package/dist/chunk-TDDHQZ62.js.map +1 -0
- package/dist/chunk-TMQ5OMBK.js +29 -0
- package/dist/chunk-TMQ5OMBK.js.map +1 -0
- package/dist/chunk-UEVND7AS.js +23 -0
- package/dist/chunk-UEVND7AS.js.map +1 -0
- package/dist/chunk-UPWHCG4S.js +40 -0
- package/dist/chunk-UPWHCG4S.js.map +1 -0
- package/dist/chunk-VWUNF7VX.js +3 -0
- package/dist/chunk-VWUNF7VX.js.map +1 -0
- package/dist/chunk-WI6O7GZK.js +45 -0
- package/dist/chunk-WI6O7GZK.js.map +1 -0
- package/dist/chunk-WVEK3WCX.js +21 -0
- package/dist/chunk-WVEK3WCX.js.map +1 -0
- package/dist/chunk-XBPQEZES.js +48 -0
- package/dist/chunk-XBPQEZES.js.map +1 -0
- package/dist/chunk-ZYAGKKR7.js +142 -0
- package/dist/chunk-ZYAGKKR7.js.map +1 -0
- package/dist/components/alert.js +2 -21
- package/dist/components/alert.js.map +1 -1
- package/dist/components/app-dialog.js +10 -654
- package/dist/components/app-dialog.js.map +1 -1
- package/dist/components/badge.js +2 -23
- package/dist/components/badge.js.map +1 -1
- package/dist/components/breadcrumb.js +5 -504
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button.js +3 -76
- package/dist/components/button.js.map +1 -1
- package/dist/components/caption-bar.js +7 -521
- package/dist/components/caption-bar.js.map +1 -1
- package/dist/components/checkbox.js +4 -74
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/chip-button.js +4 -85
- package/dist/components/chip-button.js.map +1 -1
- package/dist/components/close-confirm-dialog.js +12 -662
- package/dist/components/close-confirm-dialog.js.map +1 -1
- package/dist/components/color-picker.js +7 -533
- package/dist/components/color-picker.js.map +1 -1
- package/dist/components/combobox.js +15 -937
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/confirm-by-typing-dialog.js +12 -669
- package/dist/components/confirm-by-typing-dialog.js.map +1 -1
- package/dist/components/confirm-dialog.js +11 -637
- package/dist/components/confirm-dialog.js.map +1 -1
- package/dist/components/count-badge.js +2 -21
- package/dist/components/count-badge.js.map +1 -1
- package/dist/components/dialog.js +8 -569
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/dropdown-menu.js +9 -1007
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/dropdown-select.js +9 -883
- package/dist/components/dropdown-select.js.map +1 -1
- package/dist/components/empty.js +2 -21
- package/dist/components/empty.js.map +1 -1
- package/dist/components/filter-rail.js +7 -145
- package/dist/components/filter-rail.js.map +1 -1
- package/dist/components/fixed-action-bar.js +2 -21
- package/dist/components/fixed-action-bar.js.map +1 -1
- package/dist/components/font-picker.js +11 -589
- package/dist/components/font-picker.js.map +1 -1
- package/dist/components/form.js +9 -66
- package/dist/components/form.js.map +1 -1
- package/dist/components/icon-tile.js +3 -43
- package/dist/components/icon-tile.js.map +1 -1
- package/dist/components/icon-toggle.js +3 -43
- package/dist/components/icon-toggle.js.map +1 -1
- package/dist/components/icon.js +3 -47
- package/dist/components/icon.js.map +1 -1
- package/dist/components/image-crop-panel.js +19 -775
- package/dist/components/image-crop-panel.js.map +1 -1
- package/dist/components/image-cropper.js +1 -164
- package/dist/components/image-cropper.js.map +1 -1
- package/dist/components/input-group.js +6 -268
- package/dist/components/input-group.js.map +1 -1
- package/dist/components/input.js +3 -58
- package/dist/components/input.js.map +1 -1
- package/dist/components/label.js +3 -38
- package/dist/components/label.js.map +1 -1
- package/dist/components/list-empty-row.js +2 -21
- package/dist/components/list-empty-row.js.map +1 -1
- package/dist/components/management-empty.js +2 -21
- package/dist/components/management-empty.js.map +1 -1
- package/dist/components/management-skeleton.js +4 -59
- package/dist/components/management-skeleton.js.map +1 -1
- package/dist/components/meta-chip.js +2 -21
- package/dist/components/meta-chip.js.map +1 -1
- package/dist/components/mobile-drawer.js +7 -268
- package/dist/components/mobile-drawer.js.map +1 -1
- package/dist/components/page-header.js +3 -42
- package/dist/components/page-header.js.map +1 -1
- package/dist/components/page-scaffold.js +5 -76
- package/dist/components/page-scaffold.js.map +1 -1
- package/dist/components/pagination-bar.js +13 -617
- package/dist/components/pagination-bar.js.map +1 -1
- package/dist/components/pagination.js +6 -684
- package/dist/components/pagination.js.map +1 -1
- package/dist/components/panel-toolbar.js +11 -716
- package/dist/components/panel-toolbar.js.map +1 -1
- package/dist/components/pill-tabs.js +2 -21
- package/dist/components/pill-tabs.js.map +1 -1
- package/dist/components/plugin-download-consent.js +13 -663
- package/dist/components/plugin-download-consent.js.map +1 -1
- package/dist/components/popover.js +5 -242
- package/dist/components/popover.js.map +1 -1
- package/dist/components/preview-card.js +2 -21
- package/dist/components/preview-card.js.map +1 -1
- package/dist/components/progress.js +2 -20
- package/dist/components/progress.js.map +1 -1
- package/dist/components/radio-group.js +2 -21
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/scroll-area.js +2 -21
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/search-field.js +6 -590
- package/dist/components/search-field.js.map +1 -1
- package/dist/components/secondary-stat.js +3 -40
- package/dist/components/secondary-stat.js.map +1 -1
- package/dist/components/section-header.js +3 -43
- package/dist/components/section-header.js.map +1 -1
- package/dist/components/section-label.js +3 -44
- package/dist/components/section-label.js.map +1 -1
- package/dist/components/section-tabs.js +2 -21
- package/dist/components/section-tabs.js.map +1 -1
- package/dist/components/separator.js +3 -47
- package/dist/components/separator.js.map +1 -1
- package/dist/components/sheet.js +8 -467
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.js +24 -1047
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/skeleton.js +3 -39
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/slider.js +2 -21
- package/dist/components/slider.js.map +1 -1
- package/dist/components/sortable-chip-list.js +2 -21
- package/dist/components/sortable-chip-list.js.map +1 -1
- package/dist/components/special-tag-surface.js +3 -531
- package/dist/components/special-tag-surface.js.map +1 -1
- package/dist/components/spinner.js +3 -63
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/surface.js +3 -49
- package/dist/components/surface.js.map +1 -1
- package/dist/components/switch.js +3 -51
- package/dist/components/switch.js.map +1 -1
- package/dist/components/table.js +2 -20
- package/dist/components/table.js.map +1 -1
- package/dist/components/tag-chip.js +6 -617
- package/dist/components/tag-chip.js.map +1 -1
- package/dist/components/textarea.js +3 -56
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/toast.js +8 -809
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle.js +2 -20
- package/dist/components/toggle.js.map +1 -1
- package/dist/components/tooltip.js +3 -80
- package/dist/components/tooltip.js.map +1 -1
- package/dist/hooks/use-dialog-footer-actions.js +1 -9
- package/dist/hooks/use-dialog-footer-actions.js.map +1 -1
- package/dist/hooks/use-form-field.js +1 -34
- package/dist/hooks/use-form-field.js.map +1 -1
- package/dist/hooks/use-mobile.js +2 -27
- package/dist/hooks/use-mobile.js.map +1 -1
- package/dist/hooks/useMobileBackToClose.js +3 -232
- package/dist/hooks/useMobileBackToClose.js.map +1 -1
- package/dist/icons/actions.js +4 -524
- package/dist/icons/actions.js.map +1 -1
- package/dist/icons/icon-style.js +1 -49
- package/dist/icons/icon-style.js.map +1 -1
- package/dist/icons/marks.js +1 -46
- package/dist/icons/marks.js.map +1 -1
- package/dist/icons/registry.js +2 -1194
- package/dist/icons/registry.js.map +1 -1
- package/dist/index.js +10 -651
- package/dist/index.js.map +1 -1
- package/dist/lib/colors.js +1 -63
- package/dist/lib/colors.js.map +1 -1
- package/dist/lib/merge-config.js +1 -18
- package/dist/lib/merge-config.js.map +1 -1
- package/dist/lib/pagination.js +1 -24
- package/dist/lib/pagination.js.map +1 -1
- package/dist/lib/tag-surface.js +5 -613
- package/dist/lib/tag-surface.js.map +1 -1
- package/dist/lib/utils.js +2 -24
- package/dist/lib/utils.js.map +1 -1
- package/dist/res-card-template/format.js +1 -21
- package/dist/res-card-template/format.js.map +1 -1
- package/dist/res-card-template/icon.js +1 -39
- package/dist/res-card-template/icon.js.map +1 -1
- package/dist/res-card-template/index.js +3 -329
- package/dist/res-card-template/index.js.map +1 -1
- package/dist/res-card-template/template.js +3 -331
- package/dist/res-card-template/template.js.map +1 -1
- package/dist/viewport.js +1 -11
- package/dist/viewport.js.map +1 -1
- package/package.json +3 -3
- package/src/components/image-crop-panel.dist.test.tsx +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/res-card-template/template.ts"],"names":[],"mappings":";;;;AAoDA,SAAS,WAAA,CACR,UACA,KAAA,EACU;AACV,EAAA,MAAM,CAAC,SAAA,EAAW,GAAG,IAAI,CAAA,GAAI,QAAA;AAC7B,EAAA,MAAM,OACL,SAAA,KAAc,MAAA,GACX,KAAA,CAAM,IAAA,GACN,cAAc,YAAA,GACb,KAAA,CAAM,UAAA,GACN,SAAA,KAAc,SACb,KAAA,CAAM,IAAA,GACN,cAAc,WAAA,GACb,KAAA,CAAM,YACN,KAAA,CAAM,MAAA;AACb,EAAA,IAAI,IAAA,KAAS,MAAA,IAAa,IAAA,KAAS,IAAA,EAAM,OAAO,MAAA;AAChD,EAAA,IAAI,OAAA,GAAmB,IAAA;AACvB,EAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACvB,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,IAAY,OAAA,KAAY,MAAM,OAAO,MAAA;AAC5D,IAAA,OAAA,GAAW,QAAoC,GAAG,CAAA;AAAA,EACnD;AACA,EAAA,OAAO,OAAA;AACR;AAUO,SAAS,mBAAA,CACf,OACA,MAAA,EACS;AACT,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,MAAM,KAAA,GAAQ,MAAM,MAAM,CAAA;AAC1B,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,KAAA;AAChC,EAAA,MAAM,OAAO,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,IAAK,MAAA;AACrC,EAAA,MAAM,OAAA,GAAU,MAAM,IAAI,CAAA;AAC1B,EAAA,IAAI,OAAA,KAAY,QAAW,OAAO,OAAA;AAClC,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,MAAA,CAAO,KAAK,EAAE,CAAC,CAAA;AACpC,EAAA,OAAO,KAAA,IAAS,EAAA;AACjB;AAIA,SAAS,kBAAA,CACR,IAAA,EACA,KAAA,EACA,GAAA,EACY;AACZ,EAAA,IAAI,IAAA,CAAK,SAAS,MAAA,EAAQ;AACzB,IAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,IAAA,CAAK,QAAA,EAAU,KAAK,CAAA;AAC9C,IAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM,OAAO,EAAA;AAClD,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,EACpB;AACA,EAAA,OAAO,aAAa,IAAA,CAAK,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,OAAO,GAAG,CAAA;AACrD;AAEA,SAAS,YAAA,CACR,IAAA,EACA,IAAA,EACA,KAAA,EACA,GAAA,EACY;AACZ,EAAA,QAAQ,IAAA;AAAM,IACb,KAAK,OAAA;AACJ,MAAA,OAAO,QAAA;AAAA,QAAS,IAAA;AAAA,QAAM,KAAA;AAAA,QAAO,GAAA;AAAA,QAAK,CAAC,KAAA,KAClC,OAAO,UAAU,QAAA,GAAW,WAAA,CAAY,KAAK,CAAA,GAAI;AAAA,OAClD;AAAA,IACD,KAAK,UAAA;AACJ,MAAA,OAAO,QAAA;AAAA,QAAS,IAAA;AAAA,QAAM,KAAA;AAAA,QAAO,GAAA;AAAA,QAAK,CAAC,KAAA,KAClC,OAAO,UAAU,QAAA,GAAW,mBAAA,CAAoB,KAAK,CAAA,GAAI;AAAA,OAC1D;AAAA,IACD,KAAK,QAAA;AACJ,MAAA,OAAO,QAAA;AAAA,QAAS,IAAA;AAAA,QAAM,KAAA;AAAA,QAAO,GAAA;AAAA,QAAK,CAAC,KAAA,KAClC,OAAO,KAAA,KAAU,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,GAC/C,KAAA,CAAM,cAAA,EAAe,GACrB;AAAA,OACJ;AAAA,IACD,KAAK,KAAA;AACJ,MAAA,OAAO,QAAA;AAAA,QAAS,IAAA;AAAA,QAAM,KAAA;AAAA,QAAO,GAAA;AAAA,QAAK,CAAC,KAAA,KAClC,OAAO,KAAA,KAAU,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,GAC/C,MAAA,CAAO,KAAA,GAAQ,CAAC,CAAA,GAChB;AAAA,OACJ;AAAA,IACD,KAAK,IAAA;AACJ,MAAA,OAAO,WAAA,CAAY,MAAM,KAAA,EAAO,GAAA,EAAK,CAAC,CAAA,EAAG,CAAA,KAAM,MAAM,CAAC,CAAA;AAAA,IACvD,KAAK,IAAA;AACJ,MAAA,OAAO,WAAA,CAAY,MAAM,KAAA,EAAO,GAAA,EAAK,CAAC,CAAA,EAAG,CAAA,KAAM,MAAM,CAAC,CAAA;AAAA,IACvD,KAAK,IAAA;AACJ,MAAA,OAAO,YAAY,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,CAAC,GAAG,CAAA,KAAM;AAC9C,QAAA,IAAI,OAAO,CAAA,KAAM,QAAA,IAAY,OAAO,CAAA,KAAM,UAAU,OAAO,KAAA;AAC3D,QAAA,OAAO,CAAA,GAAI,CAAA;AAAA,MACZ,CAAC,CAAA;AAAA,IACF,KAAK,IAAA;AACJ,MAAA,OAAO,YAAY,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,CAAC,GAAG,CAAA,KAAM;AAC9C,QAAA,IAAI,OAAO,CAAA,KAAM,QAAA,IAAY,OAAO,CAAA,KAAM,UAAU,OAAO,KAAA;AAC3D,QAAA,OAAO,CAAA,GAAI,CAAA;AAAA,MACZ,CAAC,CAAA;AAAA,IACF,KAAK,KAAA;AACJ,MAAA,OAAO,YAAY,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,CAAC,GAAG,CAAA,KAAM;AAC9C,QAAA,IAAI,OAAO,CAAA,KAAM,QAAA,IAAY,OAAO,CAAA,KAAM,UAAU,OAAO,KAAA;AAC3D,QAAA,OAAO,CAAA,IAAK,CAAA;AAAA,MACb,CAAC,CAAA;AAAA,IACF,KAAK,KAAA;AACJ,MAAA,OAAO,YAAY,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,CAAC,GAAG,CAAA,KAAM;AAC9C,QAAA,IAAI,OAAO,CAAA,KAAM,QAAA,IAAY,OAAO,CAAA,KAAM,UAAU,OAAO,KAAA;AAC3D,QAAA,OAAO,CAAA,IAAK,CAAA;AAAA,MACb,CAAC,CAAA;AAAA,IACF,KAAK,IAAA;AACJ,MAAA,OAAO,MAAA,CAAO,IAAA,EAAM,KAAA,EAAO,GAAG,CAAA;AAAA,IAC/B,KAAK,GAAA;AACJ,MAAA,OAAO,KAAA,CAAM,MAAM,GAAG,CAAA;AAAA,IACvB,KAAK,MAAA;AACJ,MAAA,OAAO,QAAA,CAAS,MAAM,GAAG,CAAA;AAAA,IAC1B,KAAK,OAAA;AACJ,MAAA,OAAO,SAAA,CAAU,MAAM,GAAG,CAAA;AAAA,IAC3B,KAAK,MAAA;AACJ,MAAA,OAAO,QAAA,CAAS,IAAA,EAAM,KAAA,EAAO,GAAG,CAAA;AAAA,IACjC,KAAK,iBAAA;AACJ,MAAA,OAAO,mBAAA,CAAoB,OAAO,GAAG,CAAA;AAAA,IACtC,KAAK,MAAA;AACJ,MAAA,OAAO,QAAA,CAAS,IAAA,EAAM,KAAA,EAAO,GAAG,CAAA;AAAA,IACjC;AACC,MAAA,OAAO,EAAA;AAAA;AAEV;AAEA,SAAS,QAAA,CACR,IAAA,EACA,KAAA,EACA,GAAA,EACA,MAAA,EACS;AACT,EAAA,MAAM,QAAQ,sBAAA,CAAuB,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,GAAG,CAAA;AACxD,EAAA,OAAO,OAAO,KAAK,CAAA;AACpB;AAEA,SAAS,KAAA,CAAM,MAAsB,GAAA,EAA8B;AAClE,EAAA,MAAM,GAAA,GAAM,mBAAA,CAAoB,IAAA,CAAK,CAAC,CAAC,CAAA;AACvC,EAAA,IAAI,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG,OAAO,EAAA;AAC7B,EAAA,MAAM,GAAA,GAAM,IAAI,QAAA,CAAS,IAAA;AACzB,EAAA,IAAI,GAAA,KAAQ,QAAW,OAAO,EAAA;AAC9B,EAAA,MAAM,KAAA,GAAQ,IAAI,GAAG,CAAA;AACrB,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,EAAA;AAChC,EAAA,OAAO,mBAAA,CAAoB,KAAA,EAAO,GAAA,CAAI,MAAM,CAAA;AAC7C;AAEA,SAAS,QAAA,CAAS,MAAsB,GAAA,EAAiC;AACxE,EAAA,MAAM,IAAA,GAAO,mBAAA,CAAoB,IAAA,CAAK,CAAC,CAAC,CAAA;AACxC,EAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAC9B,EAAA,OAAO,GAAA,CAAI,WAAW,EAAE,IAAA,EAAM,QAAQ,IAAA,EAAK,EAAG,IAAI,aAAa,CAAA;AAChE;AAEA,SAAS,SAAA,CAAU,MAAsB,GAAA,EAAiC;AACzE,EAAA,MAAM,IAAA,GAAO,mBAAA,CAAoB,IAAA,CAAK,CAAC,CAAC,CAAA;AACxC,EAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAC9B,EAAA,MAAM,MAAM,YAAA,CAAa,IAAA,EAAM,GAAA,CAAI,QAAA,EAAU,IAAI,aAAa,CAAA;AAC9D,EAAA,IAAI,GAAA,KAAQ,QAAW,OAAO,IAAA;AAC9B,EAAA,OAAO,GAAA,CAAI,UAAA,CAAW,GAAA,EAAK,GAAA,CAAI,aAAa,CAAA;AAC7C;AAEA,SAAS,QAAA,CACR,IAAA,EACA,KAAA,EACA,GAAA,EACY;AACZ,EAAA,MAAM,GAAA,GAAM,mBAAA,CAAoB,IAAA,CAAK,CAAC,CAAC,CAAA;AACvC,EAAA,IAAI,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAC7B,EAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,QAAA,CAAS,EAAA,EAAI,MAAA,EAAQ,KAAA;AACvC,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,IAAA;AAChC,EAAA,MAAM,QAAQ,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,GAAG,CAAA;AAC7C,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,CAAM,IAAA,KAAS,QAAW,OAAO,IAAA;AAC5D,EAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,KAAA,CAAM,IAAA,EAAM,OAAO,GAAG,CAAA;AAC1D,EAAA,IAAI,QAAA,KAAa,IAAA,IAAQ,QAAA,KAAa,MAAA,IAAa,QAAA,KAAa,EAAA;AAC/D,IAAA,OAAO,IAAA;AACR,EAAA,OAAO,QAAA;AACR;AAEA,SAAS,mBAAA,CACR,OACA,GAAA,EACuB;AACvB,EAAA,IACC,KAAA,CAAM,eAAe,MAAA,IACrB,KAAA,CAAM,eAAe,IAAA,IACrB,OAAO,MAAM,UAAA,KAAe,QAAA;AAE5B,IAAA,OAAO,EAAC;AACT,EAAA,MAAM,MAAA,GAAU,MAAM,UAAA,CAAuC,MAAA;AAC7D,EAAA,IAAI,MAAA,KAAW,MAAA,IAAa,OAAO,MAAA,KAAW,YAAY,MAAA,KAAW,IAAA;AACpE,IAAA,OAAO,EAAC;AACT,EAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,QAAA,CAAS,EAAA,EAAI,MAAA,EAAQ,KAAA;AACvC,EAAA,IAAI,KAAA,KAAU,MAAA,EAAW,OAAO,EAAC;AACjC,EAAA,MAAM,UAAuB,EAAC;AAC9B,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACzB,IAAA,IAAI,IAAA,CAAK,SAAS,MAAA,EAAW;AAC7B,IAAA,MAAM,MAAA,GAAU,MAAA,CAAmC,IAAA,CAAK,GAAG,CAAA;AAC3D,IAAA,IAAI,WAAW,IAAA,EAAM;AACrB,IAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,IAAA,CAAK,IAAA,EAAM,OAAO,GAAG,CAAA;AACzD,IAAA,IAAI,QAAA,KAAa,IAAA,IAAQ,QAAA,KAAa,MAAA,IAAa,aAAa,EAAA,EAAI;AACpE,IAAA,OAAA,CAAQ,KAAK,QAAQ,CAAA;AAAA,EACtB;AACA,EAAA,OAAO,OAAA;AACR;AAEA,SAAS,QAAA,CACR,IAAA,EACA,KAAA,EACA,GAAA,EACgC;AAChC,EAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG,OAAO,EAAA;AAE9B,EAAA,MAAM,SAAA,GAAY,mBAAA,CAAoB,IAAA,CAAK,CAAC,CAAC,CAAA;AAC7C,EAAA,MAAM,QAAqB,EAAC;AAC5B,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACrC,IAAA,MAAM,MAAM,WAAA,CAAY,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,GAAG,CAAA;AAC3C,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,EAAG;AACvB,MAAA,KAAA,MAAW,QAAQ,GAAA,EAAK;AACvB,QAAA,IAAI,IAAA,KAAS,IAAA,IAAQ,IAAA,KAAS,MAAA,IAAa,SAAS,EAAA,EAAI;AACvD,UAAA,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,QAChB;AAAA,MACD;AACA,MAAA;AAAA,IACD;AACA,IAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,IAAa,QAAQ,EAAA,EAAI;AACpD,MAAA,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA,IACf;AAAA,EACD;AACA,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,EAAA;AAC/B,EAAA,IAAI,MAAM,KAAA,CAAM,CAAC,SAAS,OAAO,IAAA,KAAS,QAAQ,CAAA,EAAG;AACpD,IAAA,OAAQ,KAAA,CAA4B,KAAK,SAAS,CAAA;AAAA,EACnD;AACA,EAAA,IAAI,SAAA,CAAU,MAAA,KAAW,CAAA,EAAG,OAAO,KAAA;AACnC,EAAA,MAAM,cAA2B,EAAC;AAClC,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACtC,IAAA,IAAI,CAAA,GAAI,CAAA,EAAG,WAAA,CAAY,IAAA,CAAK,SAAS,CAAA;AACrC,IAAA,WAAA,CAAY,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,EAC1B;AACA,EAAA,OAAO,WAAA;AACR;AAIA,SAAS,sBAAA,CACR,GAAA,EACA,KAAA,EACA,GAAA,EACU;AACV,EAAA,IAAI,GAAA,KAAQ,QAAW,OAAO,MAAA;AAC9B,EAAA,IAAI,GAAA,CAAI,IAAA,KAAS,QAAA,EAAU,OAAO,GAAA,CAAI,KAAA;AACtC,EAAA,IAAI,GAAA,CAAI,IAAA,CAAK,IAAA,KAAS,MAAA,EAAQ;AAC7B,IAAA,MAAM,QAAA,GAAW,IAAI,IAAA,CAAK,QAAA;AAC1B,IAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AAC1B,MAAA,MAAM,GAAA,GAAM,SAAS,CAAC,CAAA;AACtB,MAAA,MAAM,GAAA,GAAM,OAAO,GAAG,CAAA;AACtB,MAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,GAAG,GAAG,OAAO,GAAA;AAAA,IAChC;AACA,IAAA,OAAO,WAAA,CAAY,UAAU,KAAK,CAAA;AAAA,EACnC;AACA,EAAA,IAAI,GAAA,CAAI,IAAA,CAAK,IAAA,KAAS,MAAA,EAAQ;AAC7B,IAAA,MAAM,MAAA,GAAS,aAAa,GAAA,CAAI,IAAA,CAAK,MAAM,GAAA,CAAI,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,GAAG,CAAA;AACpE,IAAA,IAAI,OAAO,MAAA,KAAW,QAAA,IAAY,OAAO,MAAA,KAAW,UAAU,OAAO,MAAA;AACrE,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG,OAAO,MAAA;AAClC,IAAA,OAAO,MAAA;AAAA,EACR;AACA,EAAA,OAAO,MAAA;AACR;AAEA,SAAS,WAAA,CACR,GAAA,EACA,KAAA,EACA,GAAA,EACY;AACZ,EAAA,IAAI,GAAA,KAAQ,QAAW,OAAO,MAAA;AAC9B,EAAA,IAAI,GAAA,CAAI,IAAA,KAAS,QAAA,EAAU,OAAO,GAAA,CAAI,KAAA;AACtC,EAAA,OAAO,kBAAA,CAAmB,GAAA,CAAI,IAAA,EAAM,KAAA,EAAO,GAAG,CAAA;AAC/C;AAEA,SAAS,WAAA,CACR,IAAA,EACA,KAAA,EACA,GAAA,EACA,GAAA,EACS;AACT,EAAA,MAAM,IAAI,sBAAA,CAAuB,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,GAAG,CAAA;AACpD,EAAA,MAAM,IAAI,sBAAA,CAAuB,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,GAAG,CAAA;AACpD,EAAA,OAAO,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA,GAAI,MAAA,GAAS,EAAA;AAC7B;AAEA,SAAS,MAAA,CACR,IAAA,EACA,KAAA,EACA,GAAA,EACY;AACZ,EAAA,MAAM,OAAO,sBAAA,CAAuB,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,GAAG,CAAA;AACvD,EAAA,MAAM,MAAA,GACL,SAAS,MAAA,IACT,IAAA,KAAS,QACT,IAAA,KAAS,EAAA,IACT,IAAA,KAAS,KAAA,IACT,IAAA,KAAS,CAAA;AACV,EAAA,IAAI,MAAA,EAAQ;AACX,IAAA,MAAM,MAAM,sBAAA,CAAuB,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,GAAG,CAAA;AACtD,IAAA,IAAI,GAAA,KAAQ,QAAW,OAAO,GAAA;AAC9B,IAAA,OAAO,WAAA,CAAY,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,GAAG,CAAA;AAAA,EACvC;AACA,EAAA,IAAI,IAAA,CAAK,SAAS,CAAA,EAAG;AACpB,IAAA,MAAM,MAAM,sBAAA,CAAuB,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,GAAG,CAAA;AACtD,IAAA,IAAI,GAAA,KAAQ,QAAW,OAAO,GAAA;AAC9B,IAAA,OAAO,WAAA,CAAY,IAAA,CAAK,CAAC,CAAA,EAAG,OAAO,GAAG,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,EAAA;AACR;AAEA,SAAS,oBAAoB,GAAA,EAA8B;AAC1D,EAAA,IAAI,GAAA,KAAQ,QAAW,OAAO,EAAA;AAC9B,EAAA,IAAI,GAAA,CAAI,IAAA,KAAS,QAAA,EAAU,OAAO,GAAA,CAAI,KAAA;AACtC,EAAA,OAAO,EAAA;AACR;AASO,SAAS,kBAAA,CACf,QAAA,EACA,KAAA,EACA,GAAA,EACY;AACZ,EAAA,IAAI,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG,OAAO,EAAA;AAClC,EAAA,MAAM,SAAA,GAAY,uBAAuB,QAAQ,CAAA;AACjD,EAAA,IAAI,SAAA,CAAU,MAAA,KAAW,CAAA,EAAG,OAAO,EAAA;AAEnC,EAAA,MAAM,UAAuB,EAAC;AAC9B,EAAA,KAAA,MAAW,QAAQ,SAAA,EAAW;AAC7B,IAAA,IAAI,IAAA,CAAK,SAAS,MAAA,EAAQ;AACzB,MAAA,OAAA,CAAQ,IAAA,CAAK,KAAK,KAAK,CAAA;AACvB,MAAA;AAAA,IACD;AACA,IAAA,MAAM,IAAA,GAAO,uBAAA,CAAwB,IAAA,CAAK,MAAM,CAAA;AAChD,IAAA,IAAI,SAAS,MAAA,EAAW;AACvB,MAAA;AAAA,IACD;AACA,IAAA,MAAM,KAAA,GAAQ,kBAAA,CAAmB,IAAA,EAAM,KAAA,EAAO,GAAG,CAAA;AACjD,IAAA,IAAI,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,IAAa,UAAU,EAAA,EAAI;AAC1D,MAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,IACnB;AAAA,EACD;AAEA,EAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AACjC,EAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG,OAAO,QAAQ,CAAC,CAAA;AAC1C,EAAA,MAAM,aAAa,OAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,KAAM,OAAO,MAAM,QAAQ,CAAA;AAC7D,EAAA,IAAI,UAAA,EAAY,OAAO,OAAA,CAAQ,IAAA,CAAK,EAAE,CAAA;AACtC,EAAA,OAAO,OAAA;AACR;AAGO,SAAS,gBAAA,CACf,UAAA,EACA,KAAA,EACA,GAAA,EACuB;AACvB,EAAA,OAAO,UAAA,CACL,GAAA,CAAI,CAAC,QAAA,KAAa,kBAAA,CAAmB,QAAA,EAAU,KAAA,EAAO,GAAG,CAAC,CAAA,CAC1D,MAAA,CAAO,CAAC,CAAA,KAAqD;AAC7D,IAAA,IAAI,MAAM,IAAA,IAAQ,CAAA,KAAM,MAAA,IAAa,CAAA,KAAM,IAAI,OAAO,KAAA;AACtD,IAAA,IAAI,MAAM,OAAA,CAAQ,CAAC,KAAK,CAAA,CAAE,MAAA,KAAW,GAAG,OAAO,KAAA;AAC/C,IAAA,OAAO,IAAA;AAAA,EACR,CAAC,CAAA;AACH","file":"chunk-4D36OO5W.js","sourcesContent":["import {\n\ttype TemplateArg as Arg,\n\ttype TemplateExpr as Expr,\n\tparseTemplateExpression,\n\tparseTemplateFragments,\n} from \"@hoardodile/sdk-types/template\"\nimport type { ReactNode } from \"react\"\nimport { formatBytes, formatClockDuration } from \"./format.ts\"\nimport { parseIconRef, type RenderIcon } from \"./icon.ts\"\n\n// The template grammar (fragment splitting, tokenising, parsing) lives\n// in @hoardodile/sdk-types/template — shared verbatim with the CLI's\n// build-time template lint so the two can never drift. This module only\n// evaluates the AST. The parser is lenient: unparseable expressions\n// render as the empty string.\n\n// ── Evaluation context ───────────────────────────────────────────────────────\n\n/** How a referenced icon is drawn; the caller owns the SVG/image resolution. */\nexport type TemplateContext = {\n\treadonly locale: string\n\treadonly pluginId: string\n\treadonly manifest: {\n\t\treadonly i18n?: Record<string, string | Record<string, string>>\n\t\treadonly ui?: {\n\t\t\treadonly search?: {\n\t\t\t\treadonly kinds?: readonly {\n\t\t\t\t\treadonly key: string\n\t\t\t\t\treadonly icon?: string\n\t\t\t\t}[]\n\t\t\t}\n\t\t}\n\t}\n\treadonly iconClassName?: string\n\t/** Renders a parsed {@link IconRef} (glyph or asset) inside the template. */\n\treadonly renderIcon: RenderIcon\n\t/** Resolves a manifest-relative `asset('path')` reference to a URL. */\n\treadonly buildAssetUrl: (pluginId: string, path: string) => string\n}\n\ntype EvalValue = string | ReactNode\n\ntype TemplateScope = {\n\treadonly file: unknown\n\treadonly source: unknown\n\treadonly searchMeta?: unknown\n\treadonly data?: unknown\n\treadonly coverMeta?: unknown\n}\n\n// ── Scope resolution (paths) ─────────────────────────────────────────────────\n\nfunction resolvePath(\n\tsegments: readonly string[],\n\tscope: TemplateScope,\n): unknown {\n\tconst [namespace, ...rest] = segments\n\tconst root =\n\t\tnamespace === \"file\"\n\t\t\t? scope.file\n\t\t\t: namespace === \"searchMeta\"\n\t\t\t\t? scope.searchMeta\n\t\t\t\t: namespace === \"data\"\n\t\t\t\t\t? scope.data\n\t\t\t\t\t: namespace === \"coverMeta\"\n\t\t\t\t\t\t? scope.coverMeta\n\t\t\t\t\t\t: scope.source\n\tif (root === undefined || root === null) return undefined\n\tlet current: unknown = root\n\tfor (const key of rest) {\n\t\tif (typeof current !== \"object\" || current === null) return undefined\n\t\tcurrent = (current as Record<string, unknown>)[key]\n\t}\n\treturn current\n}\n\n// ── Locale resolution ────────────────────────────────────────────────────────\n\n/**\n * Resolve a locale-aware template value: if the value is a plain string,\n * return it directly; if it is a `Record<locale, string>`, pick the best\n * match for the current language. Falls back to the first available key\n * when nothing matches.\n */\nexport function resolveLocaleString(\n\tvalue: string | Record<string, string>,\n\tlocale: string,\n): string {\n\tif (typeof value === \"string\") return value\n\tconst exact = value[locale]\n\tif (exact !== undefined) return exact\n\tconst base = locale.split(\"-\")[0] ?? locale\n\tconst partial = value[base]\n\tif (partial !== undefined) return partial\n\tconst first = Object.values(value)[0]\n\treturn first ?? \"\"\n}\n\n// ── Expression evaluation ────────────────────────────────────────────────────\n\nfunction evaluateExpression(\n\texpr: Expr,\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n): EvalValue {\n\tif (expr.kind === \"path\") {\n\t\tconst value = resolvePath(expr.segments, scope)\n\t\tif (value === undefined || value === null) return \"\"\n\t\treturn String(value)\n\t}\n\treturn evaluateCall(expr.name, expr.args, scope, ctx)\n}\n\nfunction evaluateCall(\n\tname: string,\n\targs: readonly Arg[],\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n): EvalValue {\n\tswitch (name) {\n\t\tcase \"bytes\":\n\t\t\treturn callPipe(args, scope, ctx, (value) =>\n\t\t\t\ttypeof value === \"number\" ? formatBytes(value) : \"\",\n\t\t\t)\n\t\tcase \"duration\":\n\t\t\treturn callPipe(args, scope, ctx, (value) =>\n\t\t\t\ttypeof value === \"number\" ? formatClockDuration(value) : \"\",\n\t\t\t)\n\t\tcase \"number\":\n\t\t\treturn callPipe(args, scope, ctx, (value) =>\n\t\t\t\ttypeof value === \"number\" && Number.isFinite(value)\n\t\t\t\t\t? value.toLocaleString()\n\t\t\t\t\t: \"\",\n\t\t\t)\n\t\tcase \"inc\":\n\t\t\treturn callPipe(args, scope, ctx, (value) =>\n\t\t\t\ttypeof value === \"number\" && Number.isFinite(value)\n\t\t\t\t\t? String(value + 1)\n\t\t\t\t\t: \"\",\n\t\t\t)\n\t\tcase \"eq\":\n\t\t\treturn compareCall(args, scope, ctx, (a, b) => a === b)\n\t\tcase \"ne\":\n\t\t\treturn compareCall(args, scope, ctx, (a, b) => a !== b)\n\t\tcase \"gt\":\n\t\t\treturn compareCall(args, scope, ctx, (a, b) => {\n\t\t\t\tif (typeof a !== \"number\" || typeof b !== \"number\") return false\n\t\t\t\treturn a > b\n\t\t\t})\n\t\tcase \"lt\":\n\t\t\treturn compareCall(args, scope, ctx, (a, b) => {\n\t\t\t\tif (typeof a !== \"number\" || typeof b !== \"number\") return false\n\t\t\t\treturn a < b\n\t\t\t})\n\t\tcase \"gte\":\n\t\t\treturn compareCall(args, scope, ctx, (a, b) => {\n\t\t\t\tif (typeof a !== \"number\" || typeof b !== \"number\") return false\n\t\t\t\treturn a >= b\n\t\t\t})\n\t\tcase \"lte\":\n\t\t\treturn compareCall(args, scope, ctx, (a, b) => {\n\t\t\t\tif (typeof a !== \"number\" || typeof b !== \"number\") return false\n\t\t\t\treturn a <= b\n\t\t\t})\n\t\tcase \"if\":\n\t\t\treturn callIf(args, scope, ctx)\n\t\tcase \"t\":\n\t\t\treturn callT(args, ctx)\n\t\tcase \"icon\":\n\t\t\treturn callIcon(args, ctx)\n\t\tcase \"asset\":\n\t\t\treturn callAsset(args, ctx)\n\t\tcase \"kind\":\n\t\t\treturn callKind(args, scope, ctx)\n\t\tcase \"searchKindIcons\":\n\t\t\treturn callSearchKindIcons(scope, ctx)\n\t\tcase \"join\":\n\t\t\treturn callJoin(args, scope, ctx)\n\t\tdefault:\n\t\t\treturn \"\"\n\t}\n}\n\nfunction callPipe(\n\targs: readonly Arg[],\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n\tpipeFn: (value: unknown) => string,\n): string {\n\tconst value = evaluateArgAsPrimitive(args[0], scope, ctx)\n\treturn pipeFn(value)\n}\n\nfunction callT(args: readonly Arg[], ctx: TemplateContext): string {\n\tconst key = evaluateArgAsString(args[0])\n\tif (key.length === 0) return \"\"\n\tconst map = ctx.manifest.i18n\n\tif (map === undefined) return \"\"\n\tconst value = map[key]\n\tif (value === undefined) return \"\"\n\treturn resolveLocaleString(value, ctx.locale)\n}\n\nfunction callIcon(args: readonly Arg[], ctx: TemplateContext): ReactNode {\n\tconst name = evaluateArgAsString(args[0])\n\tif (name.length === 0) return null\n\treturn ctx.renderIcon({ kind: \"icon\", name }, ctx.iconClassName)\n}\n\nfunction callAsset(args: readonly Arg[], ctx: TemplateContext): ReactNode {\n\tconst path = evaluateArgAsString(args[0])\n\tif (path.length === 0) return null\n\tconst ref = parseIconRef(path, ctx.pluginId, ctx.buildAssetUrl)\n\tif (ref === undefined) return null\n\treturn ctx.renderIcon(ref, ctx.iconClassName)\n}\n\nfunction callKind(\n\targs: readonly Arg[],\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n): ReactNode {\n\tconst key = evaluateArgAsString(args[0])\n\tif (key.length === 0) return null\n\tconst kinds = ctx.manifest.ui?.search?.kinds\n\tif (kinds === undefined) return null\n\tconst match = kinds.find((k) => k.key === key)\n\tif (match === undefined || match.icon === undefined) return null\n\tconst rendered = renderCardTemplate(match.icon, scope, ctx)\n\tif (rendered === null || rendered === undefined || rendered === \"\")\n\t\treturn null\n\treturn rendered\n}\n\nfunction callSearchKindIcons(\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n): readonly ReactNode[] {\n\tif (\n\t\tscope.searchMeta === undefined ||\n\t\tscope.searchMeta === null ||\n\t\ttypeof scope.searchMeta !== \"object\"\n\t)\n\t\treturn []\n\tconst facets = (scope.searchMeta as Record<string, unknown>).facets\n\tif (facets === undefined || typeof facets !== \"object\" || facets === null)\n\t\treturn []\n\tconst kinds = ctx.manifest.ui?.search?.kinds\n\tif (kinds === undefined) return []\n\tconst results: ReactNode[] = []\n\tfor (const kind of kinds) {\n\t\tif (kind.icon === undefined) continue\n\t\tconst active = (facets as Record<string, boolean>)[kind.key]\n\t\tif (active !== true) continue\n\t\tconst rendered = renderCardTemplate(kind.icon, scope, ctx)\n\t\tif (rendered === null || rendered === undefined || rendered === \"\") continue\n\t\tresults.push(rendered)\n\t}\n\treturn results\n}\n\nfunction callJoin(\n\targs: readonly Arg[],\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n): string | readonly ReactNode[] {\n\tif (args.length === 0) return \"\"\n\n\tconst separator = evaluateArgAsString(args[0])\n\tconst items: ReactNode[] = []\n\tfor (let i = 1; i < args.length; i++) {\n\t\tconst val = evaluateArg(args[i], scope, ctx)\n\t\tif (Array.isArray(val)) {\n\t\t\tfor (const item of val) {\n\t\t\t\tif (item !== null && item !== undefined && item !== \"\") {\n\t\t\t\t\titems.push(item)\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif (val !== null && val !== undefined && val !== \"\") {\n\t\t\titems.push(val)\n\t\t}\n\t}\n\tif (items.length === 0) return \"\"\n\tif (items.every((item) => typeof item === \"string\")) {\n\t\treturn (items as readonly string[]).join(separator)\n\t}\n\tif (separator.length === 0) return items\n\tconst interleaved: ReactNode[] = []\n\tfor (let i = 0; i < items.length; i++) {\n\t\tif (i > 0) interleaved.push(separator)\n\t\tinterleaved.push(items[i])\n\t}\n\treturn interleaved\n}\n\n// ── Argument helpers ─────────────────────────────────────────────────────────\n\nfunction evaluateArgAsPrimitive(\n\targ: Arg | undefined,\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n): unknown {\n\tif (arg === undefined) return undefined\n\tif (arg.kind === \"string\") return arg.value\n\tif (arg.expr.kind === \"path\") {\n\t\tconst segments = arg.expr.segments\n\t\tif (segments.length === 1) {\n\t\t\tconst seg = segments[0]!\n\t\t\tconst num = Number(seg)\n\t\t\tif (!Number.isNaN(num)) return num\n\t\t}\n\t\treturn resolvePath(segments, scope)\n\t}\n\tif (arg.expr.kind === \"call\") {\n\t\tconst result = evaluateCall(arg.expr.name, arg.expr.args, scope, ctx)\n\t\tif (typeof result === \"string\" || typeof result === \"number\") return result\n\t\tif (Array.isArray(result)) return result\n\t\treturn undefined\n\t}\n\treturn undefined\n}\n\nfunction evaluateArg(\n\targ: Arg | undefined,\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n): EvalValue {\n\tif (arg === undefined) return undefined\n\tif (arg.kind === \"string\") return arg.value\n\treturn evaluateExpression(arg.expr, scope, ctx)\n}\n\nfunction compareCall(\n\targs: readonly Arg[],\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n\tcmp: (a: unknown, b: unknown) => boolean,\n): string {\n\tconst a = evaluateArgAsPrimitive(args[0], scope, ctx)\n\tconst b = evaluateArgAsPrimitive(args[1], scope, ctx)\n\treturn cmp(a, b) ? \"true\" : \"\"\n}\n\nfunction callIf(\n\targs: readonly Arg[],\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n): EvalValue {\n\tconst cond = evaluateArgAsPrimitive(args[0], scope, ctx)\n\tconst truthy =\n\t\tcond !== undefined &&\n\t\tcond !== null &&\n\t\tcond !== \"\" &&\n\t\tcond !== false &&\n\t\tcond !== 0\n\tif (truthy) {\n\t\tconst raw = evaluateArgAsPrimitive(args[1], scope, ctx)\n\t\tif (raw !== undefined) return raw as EvalValue\n\t\treturn evaluateArg(args[1], scope, ctx)\n\t}\n\tif (args.length > 2) {\n\t\tconst raw = evaluateArgAsPrimitive(args[2], scope, ctx)\n\t\tif (raw !== undefined) return raw as EvalValue\n\t\treturn evaluateArg(args[2], scope, ctx)\n\t}\n\treturn \"\"\n}\n\nfunction evaluateArgAsString(arg: Arg | undefined): string {\n\tif (arg === undefined) return \"\"\n\tif (arg.kind === \"string\") return arg.value\n\treturn \"\"\n}\n\n// ── Public API ───────────────────────────────────────────────────────────────\n\n/**\n * Render one res-card template string. Returns a ReactNode so that\n * icon-producing functions (`icon`, `asset`, `kind`) can inject\n * components inline with text.\n */\nexport function renderCardTemplate(\n\ttemplate: string,\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n): ReactNode {\n\tif (template.length === 0) return \"\"\n\tconst fragments = parseTemplateFragments(template)\n\tif (fragments.length === 0) return \"\"\n\n\tconst results: ReactNode[] = []\n\tfor (const frag of fragments) {\n\t\tif (frag.kind === \"text\") {\n\t\t\tresults.push(frag.value)\n\t\t\tcontinue\n\t\t}\n\t\tconst expr = parseTemplateExpression(frag.source)\n\t\tif (expr === undefined) {\n\t\t\tcontinue\n\t\t}\n\t\tconst value = evaluateExpression(expr, scope, ctx)\n\t\tif (value !== null && value !== undefined && value !== \"\") {\n\t\t\tresults.push(value)\n\t\t}\n\t}\n\n\tif (results.length === 0) return null\n\tif (results.length === 1) return results[0]\n\tconst allStrings = results.every((r) => typeof r === \"string\")\n\tif (allStrings) return results.join(\"\")\n\treturn results\n}\n\n/** Render every badge in a {@link CoverKindUi} slot array. */\nexport function renderSlotBadges(\n\tslotValues: readonly string[],\n\tscope: TemplateScope,\n\tctx: TemplateContext,\n): readonly ReactNode[] {\n\treturn slotValues\n\t\t.map((template) => renderCardTemplate(template, scope, ctx))\n\t\t.filter((n): n is Exclude<typeof n, null | undefined | \"\"> => {\n\t\t\tif (n === null || n === undefined || n === \"\") return false\n\t\t\tif (Array.isArray(n) && n.length === 0) return false\n\t\t\treturn true\n\t\t})\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { cn } from './chunk-M5OJN54O.js';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
function Surface({
|
|
5
|
+
as,
|
|
6
|
+
size = "default",
|
|
7
|
+
tone = "flat",
|
|
8
|
+
className,
|
|
9
|
+
...props
|
|
10
|
+
}) {
|
|
11
|
+
const Component = as || "div";
|
|
12
|
+
return /* @__PURE__ */ jsx(
|
|
13
|
+
Component,
|
|
14
|
+
{
|
|
15
|
+
"data-slot": "surface",
|
|
16
|
+
"data-size": size,
|
|
17
|
+
"data-tone": tone,
|
|
18
|
+
className: cn(
|
|
19
|
+
"rounded-md border bg-card text-card-foreground",
|
|
20
|
+
size === "default" && "p-4",
|
|
21
|
+
size === "compact" && "p-2",
|
|
22
|
+
className
|
|
23
|
+
),
|
|
24
|
+
...props
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { Surface };
|
|
30
|
+
//# sourceMappingURL=chunk-4UITFLIN.js.map
|
|
31
|
+
//# sourceMappingURL=chunk-4UITFLIN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/surface.tsx"],"names":[],"mappings":";;;AAYA,SAAS,OAAA,CAA6C;AAAA,EACrD,EAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP,IAAA,GAAO,MAAA;AAAA,EACP,SAAA;AAAA,EACA,GAAG;AACJ,CAAA,EAAoB;AACnB,EAAA,MAAM,YAAY,EAAA,IAAM,KAAA;AACxB,EAAA,uBACC,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACA,WAAA,EAAU,SAAA;AAAA,MACV,WAAA,EAAW,IAAA;AAAA,MACX,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,EAAA;AAAA,QACV,gDAAA;AAAA,QACA,SAAS,SAAA,IAAa,KAAA;AAAA,QACtB,SAAS,SAAA,IAAa,KAAA;AAAA,QACtB;AAAA,OACD;AAAA,MACC,GAAG;AAAA;AAAA,GACL;AAEF","file":"chunk-4UITFLIN.js","sourcesContent":["import { cn } from \"@hoardodile/ui/lib/utils\"\nimport type * as React from \"react\"\n\ntype SurfaceProps<C extends React.ElementType = \"div\"> = {\n\tas?: C\n\tsize?: \"default\" | \"compact\"\n\t/**\n\t * Visual tone. `flat` (default) is the hairline card\n\t */\n\ttone?: \"flat\"\n} & Omit<React.ComponentPropsWithoutRef<C>, \"as\" | \"size\" | \"tone\">\n\nfunction Surface<C extends React.ElementType = \"div\">({\n\tas,\n\tsize = \"default\",\n\ttone = \"flat\",\n\tclassName,\n\t...props\n}: SurfaceProps<C>) {\n\tconst Component = as || \"div\"\n\treturn (\n\t\t<Component\n\t\t\tdata-slot=\"surface\"\n\t\t\tdata-size={size}\n\t\t\tdata-tone={tone}\n\t\t\tclassName={cn(\n\t\t\t\t\"rounded-md border bg-card text-card-foreground\",\n\t\t\t\tsize === \"default\" && \"p-4\",\n\t\t\t\tsize === \"compact\" && \"p-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport { Surface }\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
|
|
3
|
+
// src/hooks/use-dialog-footer-actions.ts
|
|
4
|
+
var DialogFooterActionsContext = createContext(null);
|
|
5
|
+
function useDialogFooterActions() {
|
|
6
|
+
return useContext(DialogFooterActionsContext);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { DialogFooterActionsContext, useDialogFooterActions };
|
|
10
|
+
//# sourceMappingURL=chunk-6HAIUXNZ.js.map
|
|
11
|
+
//# sourceMappingURL=chunk-6HAIUXNZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-dialog-footer-actions.ts"],"names":[],"mappings":";;;AAcA,IAAM,0BAAA,GACL,cAA+C,IAAI;AAGpD,SAAS,sBAAA,GAA0D;AAClE,EAAA,OAAO,WAAW,0BAA0B,CAAA;AAC7C","file":"chunk-6HAIUXNZ.js","sourcesContent":["import { createContext, type ReactNode, useContext } from \"react\"\n\n/**\n * Footer action slot plumbing for `AppDialog` — the context shared\n * between the dialog shell (`@hoardodile/ui/components/app-dialog`) and\n * body panels that contribute their primary action through\n * `DialogFooterActions`, so action buttons land in the footer instead of\n * the body.\n */\n\ntype DialogFooterActionsValue = {\n\treadonly setFooterActions: (node: ReactNode | null) => void\n}\n\nconst DialogFooterActionsContext =\n\tcreateContext<DialogFooterActionsValue | null>(null)\n\n/** The nearest dialog's footer action slot, or null outside a dialog. */\nfunction useDialogFooterActions(): DialogFooterActionsValue | null {\n\treturn useContext(DialogFooterActionsContext)\n}\n\nexport { DialogFooterActionsContext, useDialogFooterActions }\n"]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { cn } from './chunk-M5OJN54O.js';
|
|
2
|
+
import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
function TooltipProvider({
|
|
6
|
+
delay = 0,
|
|
7
|
+
...props
|
|
8
|
+
}) {
|
|
9
|
+
return /* @__PURE__ */ jsx(
|
|
10
|
+
Tooltip$1.Provider,
|
|
11
|
+
{
|
|
12
|
+
"data-slot": "tooltip-provider",
|
|
13
|
+
delay,
|
|
14
|
+
...props
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
function Tooltip({ ...props }) {
|
|
19
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Root, { "data-slot": "tooltip", ...props });
|
|
20
|
+
}
|
|
21
|
+
function TooltipTrigger({ ...props }) {
|
|
22
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
23
|
+
}
|
|
24
|
+
function TooltipContent({
|
|
25
|
+
className,
|
|
26
|
+
side = "top",
|
|
27
|
+
sideOffset = 4,
|
|
28
|
+
align = "center",
|
|
29
|
+
alignOffset = 0,
|
|
30
|
+
children,
|
|
31
|
+
...props
|
|
32
|
+
}) {
|
|
33
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
34
|
+
Tooltip$1.Positioner,
|
|
35
|
+
{
|
|
36
|
+
align,
|
|
37
|
+
alignOffset,
|
|
38
|
+
side,
|
|
39
|
+
sideOffset,
|
|
40
|
+
className: "isolate z-50",
|
|
41
|
+
children: /* @__PURE__ */ jsxs(
|
|
42
|
+
Tooltip$1.Popup,
|
|
43
|
+
{
|
|
44
|
+
"data-slot": "tooltip-content",
|
|
45
|
+
className: cn(
|
|
46
|
+
"z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
47
|
+
className
|
|
48
|
+
),
|
|
49
|
+
...props,
|
|
50
|
+
children: [
|
|
51
|
+
children,
|
|
52
|
+
/* @__PURE__ */ jsx(Tooltip$1.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5" })
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
) });
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
61
|
+
//# sourceMappingURL=chunk-7JMMFY67.js.map
|
|
62
|
+
//# sourceMappingURL=chunk-7JMMFY67.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/tooltip.tsx"],"names":["TooltipPrimitive"],"mappings":";;;;AAIA,SAAS,eAAA,CAAgB;AAAA,EACvB,KAAA,GAAQ,CAAA;AAAA,EACR,GAAG;AACL,CAAA,EAAoC;AAClC,EAAA,uBACE,GAAA;AAAA,IAACA,SAAA,CAAiB,QAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,KAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,OAAA,CAAQ,EAAE,GAAG,KAAA,EAAM,EAAgC;AAC1D,EAAA,2BAAQA,SAAA,CAAiB,IAAA,EAAjB,EAAsB,WAAA,EAAU,SAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAC/D;AAEA,SAAS,cAAA,CAAe,EAAE,GAAG,KAAA,EAAM,EAAmC;AACpE,EAAA,2BAAQA,SAAA,CAAiB,OAAA,EAAjB,EAAyB,WAAA,EAAU,iBAAA,EAAmB,GAAG,KAAA,EAAO,CAAA;AAC1E;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,SAAA;AAAA,EACA,IAAA,GAAO,KAAA;AAAA,EACP,UAAA,GAAa,CAAA;AAAA,EACb,KAAA,GAAQ,QAAA;AAAA,EACR,WAAA,GAAc,CAAA;AAAA,EACd,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAIK;AACH,EAAA,uBACE,GAAA,CAACA,SAAA,CAAiB,MAAA,EAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,IAACA,SAAA,CAAiB,UAAA;AAAA,IAAjB;AAAA,MACC,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAU,cAAA;AAAA,MAEV,QAAA,kBAAA,IAAA;AAAA,QAACA,SAAA,CAAiB,KAAA;AAAA,QAAjB;AAAA,UACC,WAAA,EAAU,iBAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,iwBAAA;AAAA,YACA;AAAA,WACF;AAAA,UACC,GAAG,KAAA;AAAA,UAEH,QAAA,EAAA;AAAA,YAAA,QAAA;AAAA,4BACD,GAAA,CAACA,SAAA,CAAiB,KAAA,EAAjB,EAAuB,WAAU,0hBAAA,EAA2hB;AAAA;AAAA;AAAA;AAC/jB;AAAA,GACF,EACF,CAAA;AAEJ","file":"chunk-7JMMFY67.js","sourcesContent":["import { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"@hoardodile/ui/lib/utils\"\n\nfunction TooltipProvider({\n delay = 0,\n ...props\n}: TooltipPrimitive.Provider.Props) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"]}
|