@customafk/lunas-ui 0.2.8 → 0.2.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/{alert-DIC1_ymv.cjs → alert-BqJVf4wD.cjs} +1 -1
- package/dist/{alert-DIC1_ymv.cjs.map → alert-BqJVf4wD.cjs.map} +1 -1
- package/dist/{alert-CA1RS1CG.d.cts → alert-D3OOxNtK.d.mts} +6 -6
- package/dist/{alert-VP3giy31.mjs → alert-DQHE-pdI.mjs} +1 -1
- package/dist/{alert-VP3giy31.mjs.map → alert-DQHE-pdI.mjs.map} +1 -1
- package/dist/{alert-DDL82_U3.d.mts → alert-W_Q1Gsld.d.cts} +7 -7
- package/dist/{badge-BFTGDsBm.d.cts → badge-Dm1IEgtT.d.cts} +5 -5
- package/dist/{badge-Cg0e-djv.d.mts → badge-YFen8D8o.d.mts} +5 -5
- package/dist/{button-C76drZpd.d.mts → button-BnbtzQAN.d.mts} +5 -5
- package/dist/{button-Bn54lPVz.d.cts → button-Ckjev2AT.d.cts} +3 -3
- package/dist/{calendar-CyAPpT2m.cjs → calendar-B2V4Lv0T.cjs} +1 -1
- package/dist/{calendar-CyAPpT2m.cjs.map → calendar-B2V4Lv0T.cjs.map} +1 -1
- package/dist/{calendar-JKxWM6AF.mjs → calendar-Cw1G0sVL.mjs} +1 -1
- package/dist/{calendar-JKxWM6AF.mjs.map → calendar-Cw1G0sVL.mjs.map} +1 -1
- package/dist/{checkbox-RZrRNYP2.cjs → checkbox-Di7ACavC.cjs} +1 -1
- package/dist/{checkbox-RZrRNYP2.cjs.map → checkbox-Di7ACavC.cjs.map} +1 -1
- package/dist/{checkbox-DJEdYOjA.mjs → checkbox-Dzo6oI4y.mjs} +1 -1
- package/dist/{checkbox-DJEdYOjA.mjs.map → checkbox-Dzo6oI4y.mjs.map} +1 -1
- package/dist/{cms-layout-HfnOQS16.mjs → cms-layout-Bp6rU_of.mjs} +2 -2
- package/dist/{cms-layout-HfnOQS16.mjs.map → cms-layout-Bp6rU_of.mjs.map} +1 -1
- package/dist/{cms-layout-Dc4moos1.cjs → cms-layout-r9TmK6hi.cjs} +2 -2
- package/dist/{cms-layout-Dc4moos1.cjs.map → cms-layout-r9TmK6hi.cjs.map} +1 -1
- package/dist/data-display/country.d.mts +1 -1
- package/dist/data-display/role-badge.d.mts +1 -1
- package/dist/data-display/statistic.d.cts +2 -2
- package/dist/data-display/statistic.d.mts +4 -4
- package/dist/{dialog-D6ygAOSV.d.mts → dialog-DTtlGouy.d.mts} +12 -12
- package/dist/{dialog-CNhwBcEl.d.cts → dialog-DW1Axqio.d.cts} +12 -12
- package/dist/dialogs/detail-dialog/components/sidebar.d.cts +1 -1
- package/dist/dialogs/detail-dialog/components/sidebar.d.mts +26 -26
- package/dist/features/descriptions/index.d.cts +1 -1
- package/dist/features/descriptions/index.d.mts +1 -1
- package/dist/features/search-modal/index.d.cts +2 -2
- package/dist/features/search-modal/index.d.mts +2 -2
- package/dist/features/tables/index.cjs +1 -1
- package/dist/features/tables/index.d.cts +156 -6
- package/dist/features/tables/index.d.mts +157 -7
- package/dist/features/tables/index.mjs +1 -1
- package/dist/features/tanstack-form/index.cjs +1 -1
- package/dist/features/tanstack-form/index.d.cts +1 -1
- package/dist/features/tanstack-form/index.d.mts +1 -1
- package/dist/features/tanstack-form/index.mjs +1 -1
- package/dist/{field-CppNvoxV.cjs → field-C51eJ6QN.cjs} +2 -2
- package/dist/{field-CppNvoxV.cjs.map → field-C51eJ6QN.cjs.map} +1 -1
- package/dist/{field-CXVnw75a.mjs → field-DfsTE4Ie.mjs} +2 -2
- package/dist/{field-CXVnw75a.mjs.map → field-DfsTE4Ie.mjs.map} +1 -1
- package/dist/{index-75nSAiSe.d.mts → index-BIT9bkka.d.mts} +106 -106
- package/dist/{index-aTMCQQms.d.cts → index-CO4_ENw7.d.cts} +291 -291
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +8 -8
- package/dist/index.d.mts +8 -8
- package/dist/index.mjs +1 -1
- package/dist/{input-Cd0G5y-9.mjs → input-6f9JTc79.mjs} +1 -1
- package/dist/{input-Cd0G5y-9.mjs.map → input-6f9JTc79.mjs.map} +1 -1
- package/dist/{input-Cl5VkKQh.cjs → input-BMOYFJYM.cjs} +1 -1
- package/dist/{input-Cl5VkKQh.cjs.map → input-BMOYFJYM.cjs.map} +1 -1
- package/dist/{input-D5dtkW6g.d.mts → input-BrM6EExy.d.mts} +6 -6
- package/dist/{input-t2hpPP2K.d.cts → input-CigimPoX.d.cts} +4 -4
- package/dist/{label-OmlGaZ5h.mjs → label-3vAlNtF9.mjs} +1 -1
- package/dist/{label-OmlGaZ5h.mjs.map → label-3vAlNtF9.mjs.map} +1 -1
- package/dist/{label-DkMTQ3Ch.cjs → label-zyBJYydC.cjs} +1 -1
- package/dist/{label-DkMTQ3Ch.cjs.map → label-zyBJYydC.cjs.map} +1 -1
- package/dist/layouts/cms-layout/index.cjs +1 -1
- package/dist/layouts/cms-layout/index.mjs +1 -1
- package/dist/layouts/flex.d.cts +4 -4
- package/dist/layouts/flex.d.mts +4 -4
- package/dist/layouts/payment-layout/index.cjs +1 -1
- package/dist/layouts/payment-layout/index.mjs +1 -1
- package/dist/pages/FeatureDeveloping.d.cts +2 -2
- package/dist/pages/FeatureDeveloping.d.mts +2 -2
- package/dist/pages/FeatureFixing.d.cts +2 -2
- package/dist/pages/FeatureFixing.d.mts +2 -2
- package/dist/pages/NotAuthorized.d.cts +2 -2
- package/dist/pages/NotAuthorized.d.mts +2 -2
- package/dist/pages/NotFound.d.cts +2 -2
- package/dist/pages/NotFound.d.mts +2 -2
- package/dist/{payment-layout-Da29dHJe.cjs → payment-layout-C9pP5HdT.cjs} +1 -1
- package/dist/{payment-layout-Da29dHJe.cjs.map → payment-layout-C9pP5HdT.cjs.map} +1 -1
- package/dist/{payment-layout-wN5c7MCM.mjs → payment-layout-D-69gOPJ.mjs} +1 -1
- package/dist/{payment-layout-wN5c7MCM.mjs.map → payment-layout-D-69gOPJ.mjs.map} +1 -1
- package/dist/{popover-OJXFbqJi.mjs → popover-BFJhuzW3.mjs} +1 -1
- package/dist/{popover-OJXFbqJi.mjs.map → popover-BFJhuzW3.mjs.map} +1 -1
- package/dist/{popover-AEt-aSy3.cjs → popover-CmoqhK17.cjs} +1 -1
- package/dist/{popover-AEt-aSy3.cjs.map → popover-CmoqhK17.cjs.map} +1 -1
- package/dist/progress-0cpDwgAJ.mjs +2 -0
- package/dist/progress-0cpDwgAJ.mjs.map +1 -0
- package/dist/progress-DE1FdQ1J.cjs +2 -0
- package/dist/progress-DE1FdQ1J.cjs.map +1 -0
- package/dist/{radio-group-CAgfOr7-.mjs → radio-group-D5OurBIG.mjs} +1 -1
- package/dist/{radio-group-CAgfOr7-.mjs.map → radio-group-D5OurBIG.mjs.map} +1 -1
- package/dist/{radio-group-BWLdQw7M.cjs → radio-group-DAv2EU3F.cjs} +1 -1
- package/dist/{radio-group-BWLdQw7M.cjs.map → radio-group-DAv2EU3F.cjs.map} +1 -1
- package/dist/{resizable-DWh_mp5P.mjs → resizable-C2Zl-iLF.mjs} +1 -1
- package/dist/{resizable-DWh_mp5P.mjs.map → resizable-C2Zl-iLF.mjs.map} +1 -1
- package/dist/{resizable-D6UKwvFa.cjs → resizable-DDPMwd28.cjs} +1 -1
- package/dist/{resizable-D6UKwvFa.cjs.map → resizable-DDPMwd28.cjs.map} +1 -1
- package/dist/{select-Ze8Fq88G.mjs → select-DRCKwnTV.mjs} +1 -1
- package/dist/{select-Ze8Fq88G.mjs.map → select-DRCKwnTV.mjs.map} +1 -1
- package/dist/{select-Py_t2nX1.cjs → select-DfvSMRUq.cjs} +1 -1
- package/dist/{select-Py_t2nX1.cjs.map → select-DfvSMRUq.cjs.map} +1 -1
- package/dist/{spinner-EgMJOaQi.mjs → spinner-B3F9W53l.mjs} +1 -1
- package/dist/{spinner-EgMJOaQi.mjs.map → spinner-B3F9W53l.mjs.map} +1 -1
- package/dist/{spinner-MKXqwF9G.cjs → spinner-rA8pMY6v.cjs} +1 -1
- package/dist/{spinner-MKXqwF9G.cjs.map → spinner-rA8pMY6v.cjs.map} +1 -1
- package/dist/tables-D1JyNmcV.cjs +2 -0
- package/dist/tables-D1JyNmcV.cjs.map +1 -0
- package/dist/tables-DTazQIyy.mjs +2 -0
- package/dist/tables-DTazQIyy.mjs.map +1 -0
- package/dist/{tanstack-form-BmV2BXDz.cjs → tanstack-form-Bb9JXuEq.cjs} +2 -2
- package/dist/{tanstack-form-BmV2BXDz.cjs.map → tanstack-form-Bb9JXuEq.cjs.map} +1 -1
- package/dist/{tanstack-form-CJ43hVb_.mjs → tanstack-form-BwyHENeF.mjs} +2 -2
- package/dist/{tanstack-form-CJ43hVb_.mjs.map → tanstack-form-BwyHENeF.mjs.map} +1 -1
- package/dist/{textarea-CdGSEkZB.mjs → textarea-5RD9ToTV.mjs} +1 -1
- package/dist/{textarea-CdGSEkZB.mjs.map → textarea-5RD9ToTV.mjs.map} +1 -1
- package/dist/{textarea-BsgmN4jy.cjs → textarea-CvoBIPlJ.cjs} +1 -1
- package/dist/{textarea-BsgmN4jy.cjs.map → textarea-CvoBIPlJ.cjs.map} +1 -1
- package/dist/{types-B_32Ieia.d.mts → types-CkRjAQZ2.d.mts} +1 -1
- package/dist/typography/paragraph.d.cts +4 -4
- package/dist/typography/paragraph.d.mts +4 -4
- package/dist/typography/title.d.cts +2 -2
- package/dist/typography/title.d.mts +2 -2
- package/dist/ui/alert-dialog.d.cts +12 -12
- package/dist/ui/alert-dialog.d.mts +12 -12
- package/dist/ui/alert.cjs +1 -1
- package/dist/ui/alert.d.cts +1 -1
- package/dist/ui/alert.d.mts +1 -1
- package/dist/ui/alert.mjs +1 -1
- package/dist/ui/aspect-ratio.d.cts +2 -2
- package/dist/ui/aspect-ratio.d.mts +2 -2
- package/dist/ui/avatar.d.cts +4 -4
- package/dist/ui/avatar.d.mts +4 -4
- package/dist/ui/badge.d.cts +1 -1
- package/dist/ui/badge.d.mts +1 -1
- package/dist/ui/breadcrumb.d.cts +8 -8
- package/dist/ui/breadcrumb.d.mts +8 -8
- package/dist/ui/button-group.d.cts +6 -6
- package/dist/ui/button-group.d.mts +6 -6
- package/dist/ui/button.d.cts +1 -1
- package/dist/ui/button.d.mts +1 -1
- package/dist/ui/calendar.cjs +1 -1
- package/dist/ui/calendar.d.cts +4 -4
- package/dist/ui/calendar.d.mts +4 -4
- package/dist/ui/calendar.mjs +1 -1
- package/dist/ui/card.d.cts +8 -8
- package/dist/ui/card.d.mts +8 -8
- package/dist/ui/carousel.d.cts +7 -7
- package/dist/ui/carousel.d.mts +7 -7
- package/dist/ui/checkbox.cjs +1 -1
- package/dist/ui/checkbox.d.cts +2 -2
- package/dist/ui/checkbox.d.mts +2 -2
- package/dist/ui/checkbox.mjs +1 -1
- package/dist/ui/collapsible.d.cts +4 -4
- package/dist/ui/collapsible.d.mts +4 -4
- package/dist/ui/command.d.cts +11 -11
- package/dist/ui/command.d.mts +11 -11
- package/dist/ui/context-menu.d.cts +16 -16
- package/dist/ui/context-menu.d.mts +16 -16
- package/dist/ui/dialog.d.cts +1 -1
- package/dist/ui/dialog.d.mts +1 -1
- package/dist/ui/drawer.d.cts +11 -11
- package/dist/ui/drawer.d.mts +11 -11
- package/dist/ui/dropdown-menu.d.cts +16 -16
- package/dist/ui/dropdown-menu.d.mts +16 -16
- package/dist/ui/empty.d.cts +7 -7
- package/dist/ui/empty.d.mts +9 -9
- package/dist/ui/field.cjs +1 -1
- package/dist/ui/field.d.cts +24 -24
- package/dist/ui/field.d.mts +24 -24
- package/dist/ui/field.mjs +1 -1
- package/dist/ui/file-uploader.cjs +2 -2
- package/dist/ui/file-uploader.cjs.map +1 -1
- package/dist/ui/file-uploader.d.cts +2 -2
- package/dist/ui/file-uploader.d.mts +2 -2
- package/dist/ui/file-uploader.mjs +1 -1
- package/dist/ui/file-uploader.mjs.map +1 -1
- package/dist/ui/form.cjs +1 -1
- package/dist/ui/form.d.cts +11 -11
- package/dist/ui/form.d.mts +11 -11
- package/dist/ui/form.mjs +1 -1
- package/dist/ui/hover-card.d.cts +4 -4
- package/dist/ui/hover-card.d.mts +4 -4
- package/dist/ui/input-otp.d.cts +5 -5
- package/dist/ui/input-otp.d.mts +5 -5
- package/dist/ui/input.cjs +1 -1
- package/dist/ui/input.d.cts +1 -1
- package/dist/ui/input.d.mts +1 -1
- package/dist/ui/input.mjs +1 -1
- package/dist/ui/inputs/search-input.cjs +1 -1
- package/dist/ui/inputs/search-input.d.cts +3 -3
- package/dist/ui/inputs/search-input.d.mts +3 -3
- package/dist/ui/inputs/search-input.mjs +1 -1
- package/dist/ui/item.d.cts +14 -14
- package/dist/ui/item.d.mts +11 -11
- package/dist/ui/label.cjs +1 -1
- package/dist/ui/label.d.cts +2 -2
- package/dist/ui/label.d.mts +2 -2
- package/dist/ui/label.mjs +1 -1
- package/dist/ui/menubar.d.cts +17 -17
- package/dist/ui/multi-select.d.cts +2 -2
- package/dist/ui/multi-select.d.mts +3 -3
- package/dist/ui/navigation-menu.d.cts +11 -11
- package/dist/ui/navigation-menu.d.mts +9 -9
- package/dist/ui/pagination.d.cts +9 -9
- package/dist/ui/pagination.d.mts +9 -9
- package/dist/ui/popover.cjs +1 -1
- package/dist/ui/popover.d.cts +6 -6
- package/dist/ui/popover.d.mts +6 -6
- package/dist/ui/popover.mjs +1 -1
- package/dist/ui/progress.cjs +1 -2
- package/dist/ui/progress.d.cts +2 -2
- package/dist/ui/progress.d.mts +2 -2
- package/dist/ui/progress.mjs +1 -2
- package/dist/ui/radio-group.cjs +1 -1
- package/dist/ui/radio-group.d.cts +3 -3
- package/dist/ui/radio-group.d.mts +3 -3
- package/dist/ui/radio-group.mjs +1 -1
- package/dist/ui/resizable.cjs +1 -1
- package/dist/ui/resizable.d.cts +9 -9
- package/dist/ui/resizable.d.mts +9 -9
- package/dist/ui/resizable.mjs +1 -1
- package/dist/ui/scroll-area.d.cts +6 -6
- package/dist/ui/scroll-area.d.mts +6 -6
- package/dist/ui/select.cjs +1 -1
- package/dist/ui/select.d.cts +9 -9
- package/dist/ui/select.d.mts +9 -9
- package/dist/ui/select.mjs +1 -1
- package/dist/ui/separator.d.cts +2 -2
- package/dist/ui/separator.d.mts +2 -2
- package/dist/ui/sheet.d.cts +9 -9
- package/dist/ui/sheet.d.mts +9 -9
- package/dist/ui/sidebar.cjs +1 -1
- package/dist/ui/sidebar.d.cts +28 -28
- package/dist/ui/sidebar.d.mts +26 -26
- package/dist/ui/sidebar.mjs +1 -1
- package/dist/ui/skeleton.d.cts +2 -2
- package/dist/ui/skeleton.d.mts +2 -2
- package/dist/ui/slider.d.cts +2 -2
- package/dist/ui/slider.d.mts +2 -2
- package/dist/ui/sonner.d.cts +2 -2
- package/dist/ui/sonner.d.mts +2 -2
- package/dist/ui/spinner.cjs +1 -1
- package/dist/ui/spinner.d.cts +2 -2
- package/dist/ui/spinner.d.mts +2 -2
- package/dist/ui/spinner.mjs +1 -1
- package/dist/ui/switch.d.cts +2 -2
- package/dist/ui/switch.d.mts +2 -2
- package/dist/ui/table.d.cts +18 -18
- package/dist/ui/table.d.mts +9 -9
- package/dist/ui/tabs.d.cts +5 -5
- package/dist/ui/tabs.d.mts +5 -5
- package/dist/ui/textarea.cjs +1 -1
- package/dist/ui/textarea.d.cts +2 -2
- package/dist/ui/textarea.d.mts +2 -2
- package/dist/ui/textarea.mjs +1 -1
- package/dist/ui/toggle-group.d.cts +3 -3
- package/dist/ui/toggle-group.d.mts +3 -3
- package/dist/ui/toggle.d.cts +4 -4
- package/dist/ui/toggle.d.mts +2 -2
- package/dist/ui/tooltip.d.cts +5 -5
- package/dist/ui/tooltip.d.mts +5 -5
- package/package.json +1 -1
- package/dist/tables-Cc3Wik4i.cjs +0 -2
- package/dist/tables-Cc3Wik4i.cjs.map +0 -1
- package/dist/tables-DrJKQPsT.mjs +0 -2
- package/dist/tables-DrJKQPsT.mjs.map +0 -1
- package/dist/ui/progress.cjs.map +0 -1
- package/dist/ui/progress.mjs.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`lucide-react`),n=require(`react`),r=require(`react/jsx-runtime`),i=require(`@customafk/react-toolkit/utils`),a=require(`class-variance-authority`);const o=(0,a.cva)([`relative grid w-full items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm`,`grid-cols-[0_1fr]`,`has-[>svg]:grid-cols-[24px_1fr] has-[>svg]:gap-x-3`,`[&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current`,`transition-colors duration-150`],{variants:{variant:{default:`bg-card text-text-positive-strong border-border`,destructive:`bg-danger-bg-subtle text-danger-intense border-danger-border-subtle [&>svg]:text-danger *:data-[slot=alert-description]:text-danger-strong`,warning:`bg-warning-bg-subtle text-warning-intense border-warning-border-subtle [&>svg]:text-warning *:data-[slot=alert-description]:text-warning-strong`,success:`bg-success-bg-subtle text-success-intense border-success-border-subtle [&>svg]:text-success *:data-[slot=alert-description]:text-success-strong`,info:`bg-info-bg-subtle text-info-intense border-info-border-subtle [&>svg]:text-info *:data-[slot=alert-description]:text-info-strong`}},defaultVariants:{variant:`default`}});function s({className:e,variant:a,children:s,icon:c,dismissible:l,onDismiss:u,...d}){let f=(0,n.useMemo)(()=>{if(!c)switch(a){case`destructive`:return(0,r.jsx)(t.AlertCircle,{});case`warning`:return(0,r.jsx)(t.AlertTriangle,{});case`success`:return(0,r.jsx)(t.CheckCircle,{});case`info`:return(0,r.jsx)(t.Info,{});default:return null}return c},[c,a]);return(0,r.jsxs)(`div`,{"data-slot":`alert`,role:`alert`,"data-variant":a,className:(0,i.cn)(o({variant:a}),e),...d,children:[f,s,l&&(0,r.jsx)(`button`,{type:`button`,onClick:u,"aria-label":`Close alert`,className:`absolute top-2 right-2 size-6 rounded-md p-1 opacity-70 transition-opacity duration-100 hover:opacity-100`,"data-slot":`alert-close`,children:(0,r.jsx)(t.X,{size:16})})]})}function c({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`alert-title`,className:(0,i.cn)(`col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight`,e),...t})}function l({className:e,...t}){return(0,r.jsx)(`div`,{"data-slot":`alert-description`,className:(0,i.cn)(`text-text-positive-weak col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed`,e),...t})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|
|
2
|
-
//# sourceMappingURL=alert-
|
|
2
|
+
//# sourceMappingURL=alert-BqJVf4wD.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-
|
|
1
|
+
{"version":3,"file":"alert-BqJVf4wD.cjs","names":["AlertCircle","AlertTriangle","CheckCircle","Info","X"],"sources":["../packages/components/ui/alert-variants.ts","../packages/components/ui/alert.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\n/**\n * Alert component variants for styling using class-variance-authority\n */\nexport const alertVariants = cva(\n [\n 'relative grid w-full items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm',\n 'grid-cols-[0_1fr]',\n 'has-[>svg]:grid-cols-[24px_1fr] has-[>svg]:gap-x-3',\n '[&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n 'transition-colors duration-150',\n ],\n {\n variants: {\n variant: {\n default: 'bg-card text-text-positive-strong border-border',\n destructive:\n 'bg-danger-bg-subtle text-danger-intense border-danger-border-subtle [&>svg]:text-danger *:data-[slot=alert-description]:text-danger-strong',\n warning:\n 'bg-warning-bg-subtle text-warning-intense border-warning-border-subtle [&>svg]:text-warning *:data-[slot=alert-description]:text-warning-strong',\n success:\n 'bg-success-bg-subtle text-success-intense border-success-border-subtle [&>svg]:text-success *:data-[slot=alert-description]:text-success-strong',\n info: 'bg-info-bg-subtle text-info-intense border-info-border-subtle [&>svg]:text-info *:data-[slot=alert-description]:text-info-strong',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type AlertVariantProps = VariantProps<typeof alertVariants>;\n","'use client';\n\nimport { useMemo } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { AlertCircle, AlertTriangle, CheckCircle, Info, X } from 'lucide-react';\n\nimport { type AlertVariantProps, alertVariants } from './alert-variants';\n\n/**\n * Props for the Alert component.\n */\nexport interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, Omit<AlertVariantProps, 'className'> {\n /**\n * Optional icon to display in the alert; defaults to a variant-appropriate icon when omitted.\n */\n icon?: React.ReactNode;\n /**\n * Whether the alert can be dismissed by the user.\n */\n dismissible?: boolean;\n /**\n * Callback invoked when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n}\n\n/**\n * Displays a contextual feedback message with optional icon, title, description, and dismiss button.\n *\n * @example\n * ```tsx\n * import { Alert, AlertTitle, AlertDescription } from '@customafk/lunas-ui/ui/alert';\n *\n * <Alert variant=\"success\" dismissible onDismiss={() => setOpen(false)}>\n * <AlertTitle>Saved successfully</AlertTitle>\n * <AlertDescription>Your changes have been saved.</AlertDescription>\n * </Alert>\n * ```\n */\nfunction Alert({ className, variant, children, icon, dismissible, onDismiss, ...props }: AlertProps) {\n // Default icons based on variant\n const defaultIcon = useMemo(() => {\n if (!icon) {\n switch (variant) {\n case 'destructive':\n return <AlertCircle />;\n case 'warning':\n return <AlertTriangle />;\n case 'success':\n return <CheckCircle />;\n case 'info':\n return <Info />;\n default:\n return null;\n }\n }\n return icon;\n }, [icon, variant]);\n\n return (\n <div data-slot=\"alert\" role=\"alert\" data-variant={variant} className={cn(alertVariants({ variant }), className)} {...props}>\n {defaultIcon}\n {children}\n {dismissible && (\n <button\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Close alert\"\n className=\"absolute top-2 right-2 size-6 rounded-md p-1 opacity-70 transition-opacity duration-100 hover:opacity-100\"\n data-slot=\"alert-close\"\n >\n <X size={16} />\n </button>\n )}\n </div>\n );\n}\n\n/**\n * Props for the AlertTitle component.\n */\nexport interface AlertTitleProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Title text or elements to display.\n */\n children: React.ReactNode;\n}\n\n/**\n * Renders the bold title line inside an Alert.\n */\nfunction AlertTitle({ className, ...props }: AlertTitleProps) {\n return <div data-slot=\"alert-title\" className={cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', className)} {...props} />;\n}\n\n/**\n * Props for the AlertDescription component.\n */\nexport interface AlertDescriptionProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Descriptive text or elements displayed below the title.\n */\n children: React.ReactNode;\n}\n\n/**\n * Renders the supporting body text inside an Alert.\n */\nfunction AlertDescription({ className, ...props }: AlertDescriptionProps) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn('text-text-positive-weak col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed', className)}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n"],"mappings":"0MAKA,MAAa,GAAA,EAAA,EAAA,KACX,CACE,iFACA,oBACA,qDACA,8DACA,iCACD,CACD,CACE,SAAU,CACR,QAAS,CACP,QAAS,kDACT,YACE,6IACF,QACE,kJACF,QACE,kJACF,KAAM,mIACP,CACF,CACD,gBAAiB,CACf,QAAS,UACV,CACF,CACF,CCUD,SAAS,EAAM,CAAE,YAAW,UAAS,WAAU,OAAM,cAAa,YAAW,GAAG,GAAqB,CAEnG,IAAM,GAAA,EAAA,EAAA,aAA4B,CAChC,GAAI,CAAC,EACH,OAAQ,EAAR,CACE,IAAK,cACH,OAAO,EAAA,EAAA,KAACA,EAAAA,YAAAA,EAAAA,CAAc,CACxB,IAAK,UACH,OAAO,EAAA,EAAA,KAACC,EAAAA,cAAAA,EAAAA,CAAgB,CAC1B,IAAK,UACH,OAAO,EAAA,EAAA,KAACC,EAAAA,YAAAA,EAAAA,CAAc,CACxB,IAAK,OACH,OAAO,EAAA,EAAA,KAACC,EAAAA,KAAAA,EAAAA,CAAO,CACjB,QACE,OAAO,KAGb,OAAO,GACN,CAAC,EAAM,EAAQ,CAAC,CAEnB,OACE,EAAA,EAAA,MAAC,MAAA,CAAI,YAAU,QAAQ,KAAK,QAAQ,eAAc,EAAS,WAAA,EAAA,EAAA,IAAc,EAAc,CAAE,UAAS,CAAC,CAAE,EAAU,CAAE,GAAI,YAClH,EACA,EACA,IACC,EAAA,EAAA,KAAC,SAAA,CACC,KAAK,SACL,QAAS,EACT,aAAW,cACX,UAAU,4GACV,YAAU,wBAEV,EAAA,EAAA,KAACC,EAAAA,EAAAA,CAAE,KAAM,GAAA,CAAM,EACR,GAEP,CAiBV,SAAS,EAAW,CAAE,YAAW,GAAG,GAA0B,CAC5D,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,cAAc,WAAA,EAAA,EAAA,IAAc,8DAA+D,EAAU,CAAE,GAAI,GAAS,CAgB5I,SAAS,EAAiB,CAAE,YAAW,GAAG,GAAgC,CACxE,OACE,EAAA,EAAA,KAAC,MAAA,CACC,YAAU,oBACV,WAAA,EAAA,EAAA,IAAc,mGAAoG,EAAU,CAC5H,GAAI,GACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as class_variance_authority_types13 from "class-variance-authority/types";
|
|
1
|
+
import * as react_jsx_runtime8 from "react/jsx-runtime";
|
|
3
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
|
+
import * as class_variance_authority_types13 from "class-variance-authority/types";
|
|
4
4
|
|
|
5
5
|
//#region packages/components/ui/alert-variants.d.ts
|
|
6
6
|
/**
|
|
@@ -50,7 +50,7 @@ declare function Alert({
|
|
|
50
50
|
dismissible,
|
|
51
51
|
onDismiss,
|
|
52
52
|
...props
|
|
53
|
-
}: AlertProps):
|
|
53
|
+
}: AlertProps): react_jsx_runtime8.JSX.Element;
|
|
54
54
|
/**
|
|
55
55
|
* Props for the AlertTitle component.
|
|
56
56
|
*/
|
|
@@ -66,7 +66,7 @@ interface AlertTitleProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
66
66
|
declare function AlertTitle({
|
|
67
67
|
className,
|
|
68
68
|
...props
|
|
69
|
-
}: AlertTitleProps):
|
|
69
|
+
}: AlertTitleProps): react_jsx_runtime8.JSX.Element;
|
|
70
70
|
/**
|
|
71
71
|
* Props for the AlertDescription component.
|
|
72
72
|
*/
|
|
@@ -82,7 +82,7 @@ interface AlertDescriptionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
82
82
|
declare function AlertDescription({
|
|
83
83
|
className,
|
|
84
84
|
...props
|
|
85
|
-
}: AlertDescriptionProps):
|
|
85
|
+
}: AlertDescriptionProps): react_jsx_runtime8.JSX.Element;
|
|
86
86
|
//#endregion
|
|
87
87
|
export { AlertTitle as a, AlertProps as i, AlertDescription as n, AlertTitleProps as o, AlertDescriptionProps as r, Alert as t };
|
|
88
|
-
//# sourceMappingURL=alert-
|
|
88
|
+
//# sourceMappingURL=alert-D3OOxNtK.d.mts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{AlertCircle as e,AlertTriangle as t,CheckCircle as n,Info as r,X as i}from"lucide-react";import{useMemo as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";import{cn as c}from"@customafk/react-toolkit/utils";import{cva as l}from"class-variance-authority";const u=l([`relative grid w-full items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm`,`grid-cols-[0_1fr]`,`has-[>svg]:grid-cols-[24px_1fr] has-[>svg]:gap-x-3`,`[&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current`,`transition-colors duration-150`],{variants:{variant:{default:`bg-card text-text-positive-strong border-border`,destructive:`bg-danger-bg-subtle text-danger-intense border-danger-border-subtle [&>svg]:text-danger *:data-[slot=alert-description]:text-danger-strong`,warning:`bg-warning-bg-subtle text-warning-intense border-warning-border-subtle [&>svg]:text-warning *:data-[slot=alert-description]:text-warning-strong`,success:`bg-success-bg-subtle text-success-intense border-success-border-subtle [&>svg]:text-success *:data-[slot=alert-description]:text-success-strong`,info:`bg-info-bg-subtle text-info-intense border-info-border-subtle [&>svg]:text-info *:data-[slot=alert-description]:text-info-strong`}},defaultVariants:{variant:`default`}});function d({className:l,variant:d,children:f,icon:p,dismissible:m,onDismiss:h,...g}){let _=a(()=>{if(!p)switch(d){case`destructive`:return o(e,{});case`warning`:return o(t,{});case`success`:return o(n,{});case`info`:return o(r,{});default:return null}return p},[p,d]);return s(`div`,{"data-slot":`alert`,role:`alert`,"data-variant":d,className:c(u({variant:d}),l),...g,children:[_,f,m&&o(`button`,{type:`button`,onClick:h,"aria-label":`Close alert`,className:`absolute top-2 right-2 size-6 rounded-md p-1 opacity-70 transition-opacity duration-100 hover:opacity-100`,"data-slot":`alert-close`,children:o(i,{size:16})})]})}function f({className:e,...t}){return o(`div`,{"data-slot":`alert-title`,className:c(`col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight`,e),...t})}function p({className:e,...t}){return o(`div`,{"data-slot":`alert-description`,className:c(`text-text-positive-weak col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed`,e),...t})}export{p as n,f as r,d as t};
|
|
2
|
-
//# sourceMappingURL=alert-
|
|
2
|
+
//# sourceMappingURL=alert-DQHE-pdI.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-
|
|
1
|
+
{"version":3,"file":"alert-DQHE-pdI.mjs","names":[],"sources":["../packages/components/ui/alert-variants.ts","../packages/components/ui/alert.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\n/**\n * Alert component variants for styling using class-variance-authority\n */\nexport const alertVariants = cva(\n [\n 'relative grid w-full items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm',\n 'grid-cols-[0_1fr]',\n 'has-[>svg]:grid-cols-[24px_1fr] has-[>svg]:gap-x-3',\n '[&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n 'transition-colors duration-150',\n ],\n {\n variants: {\n variant: {\n default: 'bg-card text-text-positive-strong border-border',\n destructive:\n 'bg-danger-bg-subtle text-danger-intense border-danger-border-subtle [&>svg]:text-danger *:data-[slot=alert-description]:text-danger-strong',\n warning:\n 'bg-warning-bg-subtle text-warning-intense border-warning-border-subtle [&>svg]:text-warning *:data-[slot=alert-description]:text-warning-strong',\n success:\n 'bg-success-bg-subtle text-success-intense border-success-border-subtle [&>svg]:text-success *:data-[slot=alert-description]:text-success-strong',\n info: 'bg-info-bg-subtle text-info-intense border-info-border-subtle [&>svg]:text-info *:data-[slot=alert-description]:text-info-strong',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type AlertVariantProps = VariantProps<typeof alertVariants>;\n","'use client';\n\nimport { useMemo } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { AlertCircle, AlertTriangle, CheckCircle, Info, X } from 'lucide-react';\n\nimport { type AlertVariantProps, alertVariants } from './alert-variants';\n\n/**\n * Props for the Alert component.\n */\nexport interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, Omit<AlertVariantProps, 'className'> {\n /**\n * Optional icon to display in the alert; defaults to a variant-appropriate icon when omitted.\n */\n icon?: React.ReactNode;\n /**\n * Whether the alert can be dismissed by the user.\n */\n dismissible?: boolean;\n /**\n * Callback invoked when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n}\n\n/**\n * Displays a contextual feedback message with optional icon, title, description, and dismiss button.\n *\n * @example\n * ```tsx\n * import { Alert, AlertTitle, AlertDescription } from '@customafk/lunas-ui/ui/alert';\n *\n * <Alert variant=\"success\" dismissible onDismiss={() => setOpen(false)}>\n * <AlertTitle>Saved successfully</AlertTitle>\n * <AlertDescription>Your changes have been saved.</AlertDescription>\n * </Alert>\n * ```\n */\nfunction Alert({ className, variant, children, icon, dismissible, onDismiss, ...props }: AlertProps) {\n // Default icons based on variant\n const defaultIcon = useMemo(() => {\n if (!icon) {\n switch (variant) {\n case 'destructive':\n return <AlertCircle />;\n case 'warning':\n return <AlertTriangle />;\n case 'success':\n return <CheckCircle />;\n case 'info':\n return <Info />;\n default:\n return null;\n }\n }\n return icon;\n }, [icon, variant]);\n\n return (\n <div data-slot=\"alert\" role=\"alert\" data-variant={variant} className={cn(alertVariants({ variant }), className)} {...props}>\n {defaultIcon}\n {children}\n {dismissible && (\n <button\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Close alert\"\n className=\"absolute top-2 right-2 size-6 rounded-md p-1 opacity-70 transition-opacity duration-100 hover:opacity-100\"\n data-slot=\"alert-close\"\n >\n <X size={16} />\n </button>\n )}\n </div>\n );\n}\n\n/**\n * Props for the AlertTitle component.\n */\nexport interface AlertTitleProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Title text or elements to display.\n */\n children: React.ReactNode;\n}\n\n/**\n * Renders the bold title line inside an Alert.\n */\nfunction AlertTitle({ className, ...props }: AlertTitleProps) {\n return <div data-slot=\"alert-title\" className={cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', className)} {...props} />;\n}\n\n/**\n * Props for the AlertDescription component.\n */\nexport interface AlertDescriptionProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Descriptive text or elements displayed below the title.\n */\n children: React.ReactNode;\n}\n\n/**\n * Renders the supporting body text inside an Alert.\n */\nfunction AlertDescription({ className, ...props }: AlertDescriptionProps) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn('text-text-positive-weak col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed', className)}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n"],"mappings":"qRAKA,MAAa,EAAgB,EAC3B,CACE,iFACA,oBACA,qDACA,8DACA,iCACD,CACD,CACE,SAAU,CACR,QAAS,CACP,QAAS,kDACT,YACE,6IACF,QACE,kJACF,QACE,kJACF,KAAM,mIACP,CACF,CACD,gBAAiB,CACf,QAAS,UACV,CACF,CACF,CCUD,SAAS,EAAM,CAAE,YAAW,UAAS,WAAU,OAAM,cAAa,YAAW,GAAG,GAAqB,CAEnG,IAAM,EAAc,MAAc,CAChC,GAAI,CAAC,EACH,OAAQ,EAAR,CACE,IAAK,cACH,OAAO,EAAC,EAAA,EAAA,CAAc,CACxB,IAAK,UACH,OAAO,EAAC,EAAA,EAAA,CAAgB,CAC1B,IAAK,UACH,OAAO,EAAC,EAAA,EAAA,CAAc,CACxB,IAAK,OACH,OAAO,EAAC,EAAA,EAAA,CAAO,CACjB,QACE,OAAO,KAGb,OAAO,GACN,CAAC,EAAM,EAAQ,CAAC,CAEnB,OACE,EAAC,MAAA,CAAI,YAAU,QAAQ,KAAK,QAAQ,eAAc,EAAS,UAAW,EAAG,EAAc,CAAE,UAAS,CAAC,CAAE,EAAU,CAAE,GAAI,YAClH,EACA,EACA,GACC,EAAC,SAAA,CACC,KAAK,SACL,QAAS,EACT,aAAW,cACX,UAAU,4GACV,YAAU,uBAEV,EAAC,EAAA,CAAE,KAAM,GAAA,CAAM,EACR,GAEP,CAiBV,SAAS,EAAW,CAAE,YAAW,GAAG,GAA0B,CAC5D,OAAO,EAAC,MAAA,CAAI,YAAU,cAAc,UAAW,EAAG,8DAA+D,EAAU,CAAE,GAAI,GAAS,CAgB5I,SAAS,EAAiB,CAAE,YAAW,GAAG,GAAgC,CACxE,OACE,EAAC,MAAA,CACC,YAAU,oBACV,UAAW,EAAG,mGAAoG,EAAU,CAC5H,GAAI,GACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime59 from "react/jsx-runtime";
|
|
2
|
+
import * as class_variance_authority_types13 from "class-variance-authority/types";
|
|
2
3
|
import { VariantProps } from "class-variance-authority";
|
|
3
|
-
import * as class_variance_authority_types15 from "class-variance-authority/types";
|
|
4
4
|
|
|
5
5
|
//#region packages/components/ui/alert-variants.d.ts
|
|
6
6
|
/**
|
|
@@ -8,7 +8,7 @@ import * as class_variance_authority_types15 from "class-variance-authority/type
|
|
|
8
8
|
*/
|
|
9
9
|
declare const alertVariants: (props?: ({
|
|
10
10
|
variant?: "default" | "info" | "success" | "warning" | "destructive" | null | undefined;
|
|
11
|
-
} &
|
|
11
|
+
} & class_variance_authority_types13.ClassProp) | undefined) => string;
|
|
12
12
|
type AlertVariantProps = VariantProps<typeof alertVariants>;
|
|
13
13
|
//#endregion
|
|
14
14
|
//#region packages/components/ui/alert.d.ts
|
|
@@ -50,7 +50,7 @@ declare function Alert({
|
|
|
50
50
|
dismissible,
|
|
51
51
|
onDismiss,
|
|
52
52
|
...props
|
|
53
|
-
}: AlertProps):
|
|
53
|
+
}: AlertProps): react_jsx_runtime59.JSX.Element;
|
|
54
54
|
/**
|
|
55
55
|
* Props for the AlertTitle component.
|
|
56
56
|
*/
|
|
@@ -66,7 +66,7 @@ interface AlertTitleProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
66
66
|
declare function AlertTitle({
|
|
67
67
|
className,
|
|
68
68
|
...props
|
|
69
|
-
}: AlertTitleProps):
|
|
69
|
+
}: AlertTitleProps): react_jsx_runtime59.JSX.Element;
|
|
70
70
|
/**
|
|
71
71
|
* Props for the AlertDescription component.
|
|
72
72
|
*/
|
|
@@ -82,7 +82,7 @@ interface AlertDescriptionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
82
82
|
declare function AlertDescription({
|
|
83
83
|
className,
|
|
84
84
|
...props
|
|
85
|
-
}: AlertDescriptionProps):
|
|
85
|
+
}: AlertDescriptionProps): react_jsx_runtime59.JSX.Element;
|
|
86
86
|
//#endregion
|
|
87
87
|
export { AlertTitle as a, AlertProps as i, AlertDescription as n, AlertTitleProps as o, AlertDescriptionProps as r, Alert as t };
|
|
88
|
-
//# sourceMappingURL=alert-
|
|
88
|
+
//# sourceMappingURL=alert-W_Q1Gsld.d.cts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime27 from "react/jsx-runtime";
|
|
2
|
+
import * as class_variance_authority_types1 from "class-variance-authority/types";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
|
|
5
5
|
//#region packages/components/ui/badge.d.ts
|
|
@@ -8,7 +8,7 @@ declare const badgeVariants: (props?: ({
|
|
|
8
8
|
color?: "muted" | "primary" | "secondary" | "accent" | "info" | "success" | "warning" | "danger" | null | undefined;
|
|
9
9
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
10
10
|
pill?: boolean | null | undefined;
|
|
11
|
-
} &
|
|
11
|
+
} & class_variance_authority_types1.ClassProp) | undefined) => string;
|
|
12
12
|
/**
|
|
13
13
|
* Props for the `Badge` component.
|
|
14
14
|
*
|
|
@@ -36,7 +36,7 @@ declare function Badge({
|
|
|
36
36
|
size,
|
|
37
37
|
pill,
|
|
38
38
|
...props
|
|
39
|
-
}: BadgeProps):
|
|
39
|
+
}: BadgeProps): react_jsx_runtime27.JSX.Element;
|
|
40
40
|
//#endregion
|
|
41
41
|
export { BadgeProps as n, badgeVariants as r, Badge as t };
|
|
42
|
-
//# sourceMappingURL=badge-
|
|
42
|
+
//# sourceMappingURL=badge-Dm1IEgtT.d.cts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime175 from "react/jsx-runtime";
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
|
-
import * as
|
|
3
|
+
import * as class_variance_authority_types9 from "class-variance-authority/types";
|
|
4
4
|
|
|
5
5
|
//#region packages/components/ui/badge.d.ts
|
|
6
6
|
declare const badgeVariants: (props?: ({
|
|
@@ -8,7 +8,7 @@ declare const badgeVariants: (props?: ({
|
|
|
8
8
|
color?: "muted" | "primary" | "secondary" | "accent" | "info" | "success" | "warning" | "danger" | null | undefined;
|
|
9
9
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
10
10
|
pill?: boolean | null | undefined;
|
|
11
|
-
} &
|
|
11
|
+
} & class_variance_authority_types9.ClassProp) | undefined) => string;
|
|
12
12
|
/**
|
|
13
13
|
* Props for the `Badge` component.
|
|
14
14
|
*
|
|
@@ -36,7 +36,7 @@ declare function Badge({
|
|
|
36
36
|
size,
|
|
37
37
|
pill,
|
|
38
38
|
...props
|
|
39
|
-
}: BadgeProps):
|
|
39
|
+
}: BadgeProps): react_jsx_runtime175.JSX.Element;
|
|
40
40
|
//#endregion
|
|
41
41
|
export { BadgeProps as n, badgeVariants as r, Badge as t };
|
|
42
|
-
//# sourceMappingURL=badge-
|
|
42
|
+
//# sourceMappingURL=badge-YFen8D8o.d.mts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime45 from "react/jsx-runtime";
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
|
-
import * as
|
|
3
|
+
import * as class_variance_authority_types20 from "class-variance-authority/types";
|
|
4
4
|
|
|
5
5
|
//#region packages/components/ui/button.variants.d.ts
|
|
6
6
|
|
|
@@ -11,7 +11,7 @@ declare const buttonVariants: (props?: ({
|
|
|
11
11
|
variant?: "default" | "outline" | "link" | "soft" | "ghost" | "subtle" | null | undefined;
|
|
12
12
|
color?: "muted" | "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "important" | null | undefined;
|
|
13
13
|
size?: "xs" | "sm" | "md" | "lg" | "xl" | "default" | "icon" | null | undefined;
|
|
14
|
-
} &
|
|
14
|
+
} & class_variance_authority_types20.ClassProp) | undefined) => string;
|
|
15
15
|
type ButtonVariantProps = VariantProps<typeof buttonVariants>;
|
|
16
16
|
//#endregion
|
|
17
17
|
//#region packages/components/ui/button.d.ts
|
|
@@ -168,7 +168,7 @@ declare function Button({
|
|
|
168
168
|
type,
|
|
169
169
|
innerClassName,
|
|
170
170
|
...props
|
|
171
|
-
}: ButtonProps):
|
|
171
|
+
}: ButtonProps): react_jsx_runtime45.JSX.Element;
|
|
172
172
|
//#endregion
|
|
173
173
|
export { ButtonProps as n, Button as t };
|
|
174
|
-
//# sourceMappingURL=button-
|
|
174
|
+
//# sourceMappingURL=button-BnbtzQAN.d.mts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime33 from "react/jsx-runtime";
|
|
2
2
|
import * as class_variance_authority_types14 from "class-variance-authority/types";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
|
|
@@ -168,7 +168,7 @@ declare function Button({
|
|
|
168
168
|
type,
|
|
169
169
|
innerClassName,
|
|
170
170
|
...props
|
|
171
|
-
}: ButtonProps):
|
|
171
|
+
}: ButtonProps): react_jsx_runtime33.JSX.Element;
|
|
172
172
|
//#endregion
|
|
173
173
|
export { ButtonProps as n, Button as t };
|
|
174
|
-
//# sourceMappingURL=button-
|
|
174
|
+
//# sourceMappingURL=button-Ckjev2AT.d.cts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./button.variants-tnhb123u.cjs`),n=require(`./button-CwDT3m4m.cjs`);let r=require(`lucide-react`),i=require(`react`),a=require(`react/jsx-runtime`),o=require(`@customafk/react-toolkit/utils`),s=require(`react-day-picker`);const c=({rootRef:e,className:t,...n})=>(0,a.jsx)(`div`,{"data-slot":`calendar`,ref:e,className:(0,o.cn)(t),...n}),l=e=>e.orientation===`left`?(0,a.jsx)(r.ChevronLeftIcon,{size:16,className:e.className,...e}):e.orientation===`right`?(0,a.jsx)(r.ChevronRightIcon,{size:16,className:e.className,...e}):(0,a.jsx)(r.ChevronDownIcon,{size:16,className:e.className,...e}),u=({className:e,day:t,modifiers:r,color:c,...l})=>{let u=(0,s.getDefaultClassNames)(),d=(0,i.useRef)(null);return(0,i.useEffect)(()=>{r.focused&&d.current?.focus()},[r.focused]),(0,a.jsx)(n.t,{ref:d,variant:`ghost`,color:`muted`,"data-day":t.date.toLocaleDateString(),"data-selected-single":r.selected&&!r.range_start&&!r.range_end&&!r.range_middle,"data-range-start":r.range_start,"data-range-end":r.range_end,"data-range-middle":r.range_middle,className:(0,o.cn)(`flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none`,`data-[selected-single=true]:bg-primary`,`data-[selected-single=true]:text-white`,`data-[range-middle=true]:bg-muted-muted`,`data-[range-middle=true]:text-text-positive`,`data-[range-start=true]:bg-primary-muted`,`data-[range-start=true]:text-text-positive-strong`,`data-[range-end=true]:bg-primary`,`data-[range-end=true]:text-text-positive-strong`,`group-data-[focused=true]/day:border-primary-strong`,`group-data-[focused=true]/day:relative`,`group-data-[focused=true]/day:z-10`,`data-[range-end=true]:rounded`,`data-[range-end=true]:rounded-r`,`data-[range-middle=true]:rounded-none`,`data-[range-start=true]:rounded`,`data-[range-start=true]:rounded-l`,`[&>span]:text-xs [&>span]:opacity-70`,u.day,e),...l})},d=({children:e,...t})=>(0,a.jsx)(`td`,{...t,children:(0,a.jsx)(`div`,{className:`flex size-(--cell-size) items-center justify-center text-center`,children:e})});function f({className:e,classNames:n,showOutsideDays:r=!0,captionLayout:i=`label`,buttonVariant:f=`ghost`,formatters:p,components:m,...h}){let g=(0,s.getDefaultClassNames)();return(0,a.jsx)(s.DayPicker,{showOutsideDays:r,className:(0,o.cn)(`group/calendar bg-background p-3`,`[--cell-size:--spacing(8)]`,`in-data-[slot=card-content]:bg-transparent`,`in-data-[slot=popover-content]:bg-transparent`,String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:i,formatters:{formatMonthDropdown:e=>e.toLocaleString(`default`,{month:`short`}),...p},classNames:{root:(0,o.cn)(g.root),months:(0,o.cn)(`flex gap-4 flex-col md:flex-row relative`,g.months),month:(0,o.cn)(`flex flex-col w-full gap-4`,g.month),nav:(0,o.cn)(`flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between`,g.nav),button_previous:(0,o.cn)(t.n({variant:`outline`,color:`muted`}),`size-(--cell-size) aria-disabled:opacity-50 p-0 select-none`,g.button_previous),button_next:(0,o.cn)(t.n({variant:`outline`,color:`muted`}),`size-(--cell-size) aria-disabled:opacity-50 p-0 select-none`,g.button_next),month_caption:(0,o.cn)(`flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)`,g.month_caption),dropdowns:(0,o.cn)(`w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5`,g.dropdowns),dropdown_root:(0,o.cn)(`relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded`,g.dropdown_root),dropdown:(0,o.cn)(`absolute inset-0 opacity-0`,g.dropdown),caption_label:(0,o.cn)(`select-none font-medium`,i===`label`&&`text-sm`,i!==`label`&&`rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5`,g.caption_label),table:`w-full border-collapse`,weekdays:(0,o.cn)(`flex`,g.weekdays),weekday:(0,o.cn)(`text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none`,g.weekday),week:(0,o.cn)(`flex w-full mt-2`,g.week),week_number_header:(0,o.cn)(`select-none w-(--cell-size)`,g.week_number_header),week_number:(0,o.cn)(`text-[0.8rem] select-none text-text-positive`,g.week_number),day:(0,o.cn)(`relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none`,g.day),range_start:(0,o.cn)(`rounded-l bg-muted-muted`,g.range_start),range_middle:(0,o.cn)(`rounded-none`,g.range_middle),range_end:(0,o.cn)(`rounded-r bg-muted-muted`,g.range_end),today:(0,o.cn)(`bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none`,g.today),outside:(0,o.cn)(`[&>button]:text-text-positive-muted aria-selected:text-text-positive`),disabled:(0,o.cn)(`bg-muted-muted text-text-positive opacity-50`,g.disabled),hidden:(0,o.cn)(`invisible`,g.hidden),...n},components:{Root:c,Chevron:l,DayButton:u,WeekNumber:d,...m},...h})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
|
|
2
|
-
//# sourceMappingURL=calendar-
|
|
2
|
+
//# sourceMappingURL=calendar-B2V4Lv0T.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-CyAPpT2m.cjs","names":["ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","Button","DayPicker","buttonVariants"],"sources":["../packages/components/ui/calendar.tsx"],"sourcesContent":["'use client';\nimport { type HTMLAttributes, type ThHTMLAttributes, useEffect, useRef } from 'react';\n\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { buttonVariants } from '@/components/ui/button.variants';\n\nimport { type CalendarWeek, type CustomComponents, type DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker';\n\nconst CalendarRoot = ({\n rootRef,\n className,\n ...props\n}: {\n rootRef?: React.Ref<HTMLDivElement>;\n} & HTMLAttributes<HTMLDivElement>) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />;\n};\n\nconst CalendarChevron = (props: { className?: string; size?: number; disabled?: boolean; orientation?: 'up' | 'down' | 'left' | 'right' }) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon size={16} className={props.className} {...props} />;\n }\n\n if (props.orientation === 'right') {\n return <ChevronRightIcon size={16} className={props.className} {...props} />;\n }\n\n return <ChevronDownIcon size={16} className={props.className} {...props} />;\n};\n\nconst CalendarDayButton = ({ className, day, modifiers, color: _, ...props }: React.ComponentProps<typeof DayButton>) => {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n color=\"muted\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle}\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none',\n 'data-[selected-single=true]:bg-primary',\n 'data-[selected-single=true]:text-white',\n 'data-[range-middle=true]:bg-muted-muted',\n 'data-[range-middle=true]:text-text-positive',\n 'data-[range-start=true]:bg-primary-muted',\n 'data-[range-start=true]:text-text-positive-strong',\n 'data-[range-end=true]:bg-primary',\n 'data-[range-end=true]:text-text-positive-strong',\n 'group-data-[focused=true]/day:border-primary-strong',\n 'group-data-[focused=true]/day:relative',\n 'group-data-[focused=true]/day:z-10',\n 'data-[range-end=true]:rounded',\n 'data-[range-end=true]:rounded-r',\n 'data-[range-middle=true]:rounded-none',\n 'data-[range-start=true]:rounded',\n 'data-[range-start=true]:rounded-l',\n '[&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n );\n};\n\nconst CalendarWeekNumber = ({\n children,\n ...props\n}: {\n week: CalendarWeek;\n} & ThHTMLAttributes<HTMLTableCellElement>) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">{children}</div>\n </td>\n );\n};\n\n/**\n * A fully styled date-picker calendar built on top of react-day-picker, supporting single, range, and multiple selection modes.\n *\n * @example\n * ```tsx\n * import { Calendar } from '@customafk/lunas-ui/ui/calendar';\n *\n * const [date, setDate] = React.useState<Date>();\n *\n * <Calendar\n * mode=\"single\"\n * selected={date}\n * onSelect={setDate}\n * captionLayout=\"dropdown\"\n * />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n /** Variant applied to the previous/next navigation buttons. */\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'group/calendar bg-background p-3',\n '[--cell-size:--spacing(8)]',\n 'in-data-[slot=card-content]:bg-transparent',\n 'in-data-[slot=popover-content]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: date => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn(defaultClassNames.root),\n months: cn('flex gap-4 flex-col md:flex-row relative', defaultClassNames.months),\n month: cn('flex flex-col w-full gap-4', defaultClassNames.month),\n nav: cn('flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between', defaultClassNames.nav),\n button_previous: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_next\n ),\n month_caption: cn('flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)', defaultClassNames.month_caption),\n dropdowns: cn('w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5', defaultClassNames.dropdowns),\n dropdown_root: cn(\n 'relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label' && 'text-sm',\n captionLayout !== 'label' && 'rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn('text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none', defaultClassNames.weekday),\n week: cn('flex w-full mt-2', defaultClassNames.week),\n week_number_header: cn('select-none w-(--cell-size)', defaultClassNames.week_number_header),\n week_number: cn('text-[0.8rem] select-none text-text-positive', defaultClassNames.week_number),\n day: cn(\n 'relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none',\n defaultClassNames.day\n ),\n range_start: cn('rounded-l bg-muted-muted', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('rounded-r bg-muted-muted', defaultClassNames.range_end),\n today: cn('bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none', defaultClassNames.today),\n outside: cn('[&>button]:text-text-positive-muted aria-selected:text-text-positive'),\n disabled: cn('bg-muted-muted text-text-positive opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: CalendarRoot as CustomComponents['Root'],\n Chevron: CalendarChevron as CustomComponents['Chevron'],\n DayButton: CalendarDayButton as CustomComponents['DayButton'],\n WeekNumber: CalendarWeekNumber as CustomComponents['WeekNumber'],\n ...components,\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar-B2V4Lv0T.cjs","names":["ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","Button","DayPicker","buttonVariants"],"sources":["../packages/components/ui/calendar.tsx"],"sourcesContent":["'use client';\nimport { type HTMLAttributes, type ThHTMLAttributes, useEffect, useRef } from 'react';\n\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { buttonVariants } from '@/components/ui/button.variants';\n\nimport { type CalendarWeek, type CustomComponents, type DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker';\n\nconst CalendarRoot = ({\n rootRef,\n className,\n ...props\n}: {\n rootRef?: React.Ref<HTMLDivElement>;\n} & HTMLAttributes<HTMLDivElement>) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />;\n};\n\nconst CalendarChevron = (props: { className?: string; size?: number; disabled?: boolean; orientation?: 'up' | 'down' | 'left' | 'right' }) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon size={16} className={props.className} {...props} />;\n }\n\n if (props.orientation === 'right') {\n return <ChevronRightIcon size={16} className={props.className} {...props} />;\n }\n\n return <ChevronDownIcon size={16} className={props.className} {...props} />;\n};\n\nconst CalendarDayButton = ({ className, day, modifiers, color: _, ...props }: React.ComponentProps<typeof DayButton>) => {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n color=\"muted\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle}\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none',\n 'data-[selected-single=true]:bg-primary',\n 'data-[selected-single=true]:text-white',\n 'data-[range-middle=true]:bg-muted-muted',\n 'data-[range-middle=true]:text-text-positive',\n 'data-[range-start=true]:bg-primary-muted',\n 'data-[range-start=true]:text-text-positive-strong',\n 'data-[range-end=true]:bg-primary',\n 'data-[range-end=true]:text-text-positive-strong',\n 'group-data-[focused=true]/day:border-primary-strong',\n 'group-data-[focused=true]/day:relative',\n 'group-data-[focused=true]/day:z-10',\n 'data-[range-end=true]:rounded',\n 'data-[range-end=true]:rounded-r',\n 'data-[range-middle=true]:rounded-none',\n 'data-[range-start=true]:rounded',\n 'data-[range-start=true]:rounded-l',\n '[&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n );\n};\n\nconst CalendarWeekNumber = ({\n children,\n ...props\n}: {\n week: CalendarWeek;\n} & ThHTMLAttributes<HTMLTableCellElement>) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">{children}</div>\n </td>\n );\n};\n\n/**\n * A fully styled date-picker calendar built on top of react-day-picker, supporting single, range, and multiple selection modes.\n *\n * @example\n * ```tsx\n * import { Calendar } from '@customafk/lunas-ui/ui/calendar';\n *\n * const [date, setDate] = React.useState<Date>();\n *\n * <Calendar\n * mode=\"single\"\n * selected={date}\n * onSelect={setDate}\n * captionLayout=\"dropdown\"\n * />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n /** Variant applied to the previous/next navigation buttons. */\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'group/calendar bg-background p-3',\n '[--cell-size:--spacing(8)]',\n 'in-data-[slot=card-content]:bg-transparent',\n 'in-data-[slot=popover-content]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: date => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn(defaultClassNames.root),\n months: cn('flex gap-4 flex-col md:flex-row relative', defaultClassNames.months),\n month: cn('flex flex-col w-full gap-4', defaultClassNames.month),\n nav: cn('flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between', defaultClassNames.nav),\n button_previous: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_next\n ),\n month_caption: cn('flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)', defaultClassNames.month_caption),\n dropdowns: cn('w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5', defaultClassNames.dropdowns),\n dropdown_root: cn(\n 'relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label' && 'text-sm',\n captionLayout !== 'label' && 'rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn('text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none', defaultClassNames.weekday),\n week: cn('flex w-full mt-2', defaultClassNames.week),\n week_number_header: cn('select-none w-(--cell-size)', defaultClassNames.week_number_header),\n week_number: cn('text-[0.8rem] select-none text-text-positive', defaultClassNames.week_number),\n day: cn(\n 'relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none',\n defaultClassNames.day\n ),\n range_start: cn('rounded-l bg-muted-muted', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('rounded-r bg-muted-muted', defaultClassNames.range_end),\n today: cn('bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none', defaultClassNames.today),\n outside: cn('[&>button]:text-text-positive-muted aria-selected:text-text-positive'),\n disabled: cn('bg-muted-muted text-text-positive opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: CalendarRoot as CustomComponents['Root'],\n Chevron: CalendarChevron as CustomComponents['Chevron'],\n DayButton: CalendarDayButton as CustomComponents['DayButton'],\n WeekNumber: CalendarWeekNumber as CustomComponents['WeekNumber'],\n ...components,\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{n as e}from"./button.variants-DeCyas1F.mjs";import{t}from"./button-C6ybzxxj.mjs";import{ChevronDownIcon as n,ChevronLeftIcon as r,ChevronRightIcon as i}from"lucide-react";import{useEffect as a,useRef as o}from"react";import{jsx as s}from"react/jsx-runtime";import{cn as c}from"@customafk/react-toolkit/utils";import{DayPicker as l,getDefaultClassNames as u}from"react-day-picker";const d=({rootRef:e,className:t,...n})=>s(`div`,{"data-slot":`calendar`,ref:e,className:c(t),...n}),f=e=>e.orientation===`left`?s(r,{size:16,className:e.className,...e}):e.orientation===`right`?s(i,{size:16,className:e.className,...e}):s(n,{size:16,className:e.className,...e}),p=({className:e,day:n,modifiers:r,color:i,...l})=>{let d=u(),f=o(null);return a(()=>{r.focused&&f.current?.focus()},[r.focused]),s(t,{ref:f,variant:`ghost`,color:`muted`,"data-day":n.date.toLocaleDateString(),"data-selected-single":r.selected&&!r.range_start&&!r.range_end&&!r.range_middle,"data-range-start":r.range_start,"data-range-end":r.range_end,"data-range-middle":r.range_middle,className:c(`flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none`,`data-[selected-single=true]:bg-primary`,`data-[selected-single=true]:text-white`,`data-[range-middle=true]:bg-muted-muted`,`data-[range-middle=true]:text-text-positive`,`data-[range-start=true]:bg-primary-muted`,`data-[range-start=true]:text-text-positive-strong`,`data-[range-end=true]:bg-primary`,`data-[range-end=true]:text-text-positive-strong`,`group-data-[focused=true]/day:border-primary-strong`,`group-data-[focused=true]/day:relative`,`group-data-[focused=true]/day:z-10`,`data-[range-end=true]:rounded`,`data-[range-end=true]:rounded-r`,`data-[range-middle=true]:rounded-none`,`data-[range-start=true]:rounded`,`data-[range-start=true]:rounded-l`,`[&>span]:text-xs [&>span]:opacity-70`,d.day,e),...l})},m=({children:e,...t})=>s(`td`,{...t,children:s(`div`,{className:`flex size-(--cell-size) items-center justify-center text-center`,children:e})});function h({className:t,classNames:n,showOutsideDays:r=!0,captionLayout:i=`label`,buttonVariant:a=`ghost`,formatters:o,components:h,...g}){let _=u();return s(l,{showOutsideDays:r,className:c(`group/calendar bg-background p-3`,`[--cell-size:--spacing(8)]`,`in-data-[slot=card-content]:bg-transparent`,`in-data-[slot=popover-content]:bg-transparent`,String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,t),captionLayout:i,formatters:{formatMonthDropdown:e=>e.toLocaleString(`default`,{month:`short`}),...o},classNames:{root:c(_.root),months:c(`flex gap-4 flex-col md:flex-row relative`,_.months),month:c(`flex flex-col w-full gap-4`,_.month),nav:c(`flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between`,_.nav),button_previous:c(e({variant:`outline`,color:`muted`}),`size-(--cell-size) aria-disabled:opacity-50 p-0 select-none`,_.button_previous),button_next:c(e({variant:`outline`,color:`muted`}),`size-(--cell-size) aria-disabled:opacity-50 p-0 select-none`,_.button_next),month_caption:c(`flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)`,_.month_caption),dropdowns:c(`w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5`,_.dropdowns),dropdown_root:c(`relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded`,_.dropdown_root),dropdown:c(`absolute inset-0 opacity-0`,_.dropdown),caption_label:c(`select-none font-medium`,i===`label`&&`text-sm`,i!==`label`&&`rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5`,_.caption_label),table:`w-full border-collapse`,weekdays:c(`flex`,_.weekdays),weekday:c(`text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none`,_.weekday),week:c(`flex w-full mt-2`,_.week),week_number_header:c(`select-none w-(--cell-size)`,_.week_number_header),week_number:c(`text-[0.8rem] select-none text-text-positive`,_.week_number),day:c(`relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none`,_.day),range_start:c(`rounded-l bg-muted-muted`,_.range_start),range_middle:c(`rounded-none`,_.range_middle),range_end:c(`rounded-r bg-muted-muted`,_.range_end),today:c(`bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none`,_.today),outside:c(`[&>button]:text-text-positive-muted aria-selected:text-text-positive`),disabled:c(`bg-muted-muted text-text-positive opacity-50`,_.disabled),hidden:c(`invisible`,_.hidden),...n},components:{Root:d,Chevron:f,DayButton:p,WeekNumber:m,...h},...g})}export{p as n,h as t};
|
|
2
|
-
//# sourceMappingURL=calendar-
|
|
2
|
+
//# sourceMappingURL=calendar-Cw1G0sVL.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-JKxWM6AF.mjs","names":[],"sources":["../packages/components/ui/calendar.tsx"],"sourcesContent":["'use client';\nimport { type HTMLAttributes, type ThHTMLAttributes, useEffect, useRef } from 'react';\n\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { buttonVariants } from '@/components/ui/button.variants';\n\nimport { type CalendarWeek, type CustomComponents, type DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker';\n\nconst CalendarRoot = ({\n rootRef,\n className,\n ...props\n}: {\n rootRef?: React.Ref<HTMLDivElement>;\n} & HTMLAttributes<HTMLDivElement>) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />;\n};\n\nconst CalendarChevron = (props: { className?: string; size?: number; disabled?: boolean; orientation?: 'up' | 'down' | 'left' | 'right' }) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon size={16} className={props.className} {...props} />;\n }\n\n if (props.orientation === 'right') {\n return <ChevronRightIcon size={16} className={props.className} {...props} />;\n }\n\n return <ChevronDownIcon size={16} className={props.className} {...props} />;\n};\n\nconst CalendarDayButton = ({ className, day, modifiers, color: _, ...props }: React.ComponentProps<typeof DayButton>) => {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n color=\"muted\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle}\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none',\n 'data-[selected-single=true]:bg-primary',\n 'data-[selected-single=true]:text-white',\n 'data-[range-middle=true]:bg-muted-muted',\n 'data-[range-middle=true]:text-text-positive',\n 'data-[range-start=true]:bg-primary-muted',\n 'data-[range-start=true]:text-text-positive-strong',\n 'data-[range-end=true]:bg-primary',\n 'data-[range-end=true]:text-text-positive-strong',\n 'group-data-[focused=true]/day:border-primary-strong',\n 'group-data-[focused=true]/day:relative',\n 'group-data-[focused=true]/day:z-10',\n 'data-[range-end=true]:rounded',\n 'data-[range-end=true]:rounded-r',\n 'data-[range-middle=true]:rounded-none',\n 'data-[range-start=true]:rounded',\n 'data-[range-start=true]:rounded-l',\n '[&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n );\n};\n\nconst CalendarWeekNumber = ({\n children,\n ...props\n}: {\n week: CalendarWeek;\n} & ThHTMLAttributes<HTMLTableCellElement>) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">{children}</div>\n </td>\n );\n};\n\n/**\n * A fully styled date-picker calendar built on top of react-day-picker, supporting single, range, and multiple selection modes.\n *\n * @example\n * ```tsx\n * import { Calendar } from '@customafk/lunas-ui/ui/calendar';\n *\n * const [date, setDate] = React.useState<Date>();\n *\n * <Calendar\n * mode=\"single\"\n * selected={date}\n * onSelect={setDate}\n * captionLayout=\"dropdown\"\n * />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n /** Variant applied to the previous/next navigation buttons. */\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'group/calendar bg-background p-3',\n '[--cell-size:--spacing(8)]',\n 'in-data-[slot=card-content]:bg-transparent',\n 'in-data-[slot=popover-content]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: date => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn(defaultClassNames.root),\n months: cn('flex gap-4 flex-col md:flex-row relative', defaultClassNames.months),\n month: cn('flex flex-col w-full gap-4', defaultClassNames.month),\n nav: cn('flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between', defaultClassNames.nav),\n button_previous: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_next\n ),\n month_caption: cn('flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)', defaultClassNames.month_caption),\n dropdowns: cn('w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5', defaultClassNames.dropdowns),\n dropdown_root: cn(\n 'relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label' && 'text-sm',\n captionLayout !== 'label' && 'rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn('text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none', defaultClassNames.weekday),\n week: cn('flex w-full mt-2', defaultClassNames.week),\n week_number_header: cn('select-none w-(--cell-size)', defaultClassNames.week_number_header),\n week_number: cn('text-[0.8rem] select-none text-text-positive', defaultClassNames.week_number),\n day: cn(\n 'relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none',\n defaultClassNames.day\n ),\n range_start: cn('rounded-l bg-muted-muted', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('rounded-r bg-muted-muted', defaultClassNames.range_end),\n today: cn('bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none', defaultClassNames.today),\n outside: cn('[&>button]:text-text-positive-muted aria-selected:text-text-positive'),\n disabled: cn('bg-muted-muted text-text-positive opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: CalendarRoot as CustomComponents['Root'],\n Chevron: CalendarChevron as CustomComponents['Chevron'],\n DayButton: CalendarDayButton as CustomComponents['DayButton'],\n WeekNumber: CalendarWeekNumber as CustomComponents['WeekNumber'],\n ...components,\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar-Cw1G0sVL.mjs","names":[],"sources":["../packages/components/ui/calendar.tsx"],"sourcesContent":["'use client';\nimport { type HTMLAttributes, type ThHTMLAttributes, useEffect, useRef } from 'react';\n\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '@/components/ui/button';\nimport { buttonVariants } from '@/components/ui/button.variants';\n\nimport { type CalendarWeek, type CustomComponents, type DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker';\n\nconst CalendarRoot = ({\n rootRef,\n className,\n ...props\n}: {\n rootRef?: React.Ref<HTMLDivElement>;\n} & HTMLAttributes<HTMLDivElement>) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />;\n};\n\nconst CalendarChevron = (props: { className?: string; size?: number; disabled?: boolean; orientation?: 'up' | 'down' | 'left' | 'right' }) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon size={16} className={props.className} {...props} />;\n }\n\n if (props.orientation === 'right') {\n return <ChevronRightIcon size={16} className={props.className} {...props} />;\n }\n\n return <ChevronDownIcon size={16} className={props.className} {...props} />;\n};\n\nconst CalendarDayButton = ({ className, day, modifiers, color: _, ...props }: React.ComponentProps<typeof DayButton>) => {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n color=\"muted\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle}\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'flex aspect-square size-9 flex-col rounded font-normal text-sm tabular-nums leading-none',\n 'data-[selected-single=true]:bg-primary',\n 'data-[selected-single=true]:text-white',\n 'data-[range-middle=true]:bg-muted-muted',\n 'data-[range-middle=true]:text-text-positive',\n 'data-[range-start=true]:bg-primary-muted',\n 'data-[range-start=true]:text-text-positive-strong',\n 'data-[range-end=true]:bg-primary',\n 'data-[range-end=true]:text-text-positive-strong',\n 'group-data-[focused=true]/day:border-primary-strong',\n 'group-data-[focused=true]/day:relative',\n 'group-data-[focused=true]/day:z-10',\n 'data-[range-end=true]:rounded',\n 'data-[range-end=true]:rounded-r',\n 'data-[range-middle=true]:rounded-none',\n 'data-[range-start=true]:rounded',\n 'data-[range-start=true]:rounded-l',\n '[&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n );\n};\n\nconst CalendarWeekNumber = ({\n children,\n ...props\n}: {\n week: CalendarWeek;\n} & ThHTMLAttributes<HTMLTableCellElement>) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">{children}</div>\n </td>\n );\n};\n\n/**\n * A fully styled date-picker calendar built on top of react-day-picker, supporting single, range, and multiple selection modes.\n *\n * @example\n * ```tsx\n * import { Calendar } from '@customafk/lunas-ui/ui/calendar';\n *\n * const [date, setDate] = React.useState<Date>();\n *\n * <Calendar\n * mode=\"single\"\n * selected={date}\n * onSelect={setDate}\n * captionLayout=\"dropdown\"\n * />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n /** Variant applied to the previous/next navigation buttons. */\n buttonVariant?: React.ComponentProps<typeof Button>['variant'];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'group/calendar bg-background p-3',\n '[--cell-size:--spacing(8)]',\n 'in-data-[slot=card-content]:bg-transparent',\n 'in-data-[slot=popover-content]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: date => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn(defaultClassNames.root),\n months: cn('flex gap-4 flex-col md:flex-row relative', defaultClassNames.months),\n month: cn('flex flex-col w-full gap-4', defaultClassNames.month),\n nav: cn('flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between', defaultClassNames.nav),\n button_previous: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: 'outline', color: 'muted' }),\n 'size-(--cell-size) aria-disabled:opacity-50 p-0 select-none',\n defaultClassNames.button_next\n ),\n month_caption: cn('flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)', defaultClassNames.month_caption),\n dropdowns: cn('w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5', defaultClassNames.dropdowns),\n dropdown_root: cn(\n 'relative has-focus:border-primary-strong border border-border-weak shadow-xs has-focus:ring-primary-weak has-focus:ring-[3px] rounded',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label' && 'text-sm',\n captionLayout !== 'label' && 'rounded shadow-xs px-2 flex items-center gap-0.5 text-sm h-8 [&>svg]:text-text-positive [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn('text-text-positive rounded flex-1 font-normal text-[0.8rem] select-none', defaultClassNames.weekday),\n week: cn('flex w-full mt-2', defaultClassNames.week),\n week_number_header: cn('select-none w-(--cell-size)', defaultClassNames.week_number_header),\n week_number: cn('text-[0.8rem] select-none text-text-positive', defaultClassNames.week_number),\n day: cn(\n 'relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l [&:last-child[data-selected=true]_button]:rounded-r group/day aspect-square select-none',\n defaultClassNames.day\n ),\n range_start: cn('rounded-l bg-muted-muted', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('rounded-r bg-muted-muted', defaultClassNames.range_end),\n today: cn('bg-muted-muted text-text-positive rounded data-[selected=true]:rounded-none', defaultClassNames.today),\n outside: cn('[&>button]:text-text-positive-muted aria-selected:text-text-positive'),\n disabled: cn('bg-muted-muted text-text-positive opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: CalendarRoot as CustomComponents['Root'],\n Chevron: CalendarChevron as CustomComponents['Chevron'],\n DayButton: CalendarDayButton as CustomComponents['DayButton'],\n WeekNumber: CalendarWeekNumber as CustomComponents['WeekNumber'],\n ...components,\n }}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`lucide-react`),n=require(`react/jsx-runtime`),r=require(`@customafk/react-toolkit/utils`),i=require(`radix-ui`);function a({className:e,...a}){return(0,n.jsx)(i.Checkbox.Root,{"data-slot":`checkbox`,className:(0,r.cn)(`peer border-border`,`size-4 shrink-0 cursor-pointer rounded border shadow-xs outline-none transition-all`,`disabled:cursor-not-allowed disabled:opacity-50`,`focus-visible:border-primary-strong`,`focus-visible:ring-3`,`focus-visible:ring-primary-weak`,`aria-invalid:border-danger aria-invalid:ring-danger-weak`,`aria-readonly:bg-muted-muted`,`aria-readonly:pointer-events-none`,`data-[state=checked]:aria-readonly:bg-muted-muted`,`data-[state=checked]:aria-readonly:border-border`,`data-[state=checked]:aria-readonly:text-text-positive-strong`,`data-[state=checked]:bg-primary`,`data-[state=checked]:border-primary-strong`,`data-[state=checked]:text-text-negative-strong`,e),...a,children:(0,n.jsx)(i.Checkbox.Indicator,{"data-slot":`checkbox-indicator`,className:`flex items-center justify-center text-current transition-none`,children:(0,n.jsx)(t.CheckIcon,{size:14})})})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
|
2
|
-
//# sourceMappingURL=checkbox-
|
|
2
|
+
//# sourceMappingURL=checkbox-Di7ACavC.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-
|
|
1
|
+
{"version":3,"file":"checkbox-Di7ACavC.cjs","names":["CheckboxPrimitive","CheckIcon"],"sources":["../packages/components/ui/checkbox.tsx"],"sourcesContent":["'use client';\n\nimport { CheckIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui';\n\n/**\n * Accessible checkbox input built on Radix UI's Checkbox primitive with checked, indeterminate, focus, invalid, and read-only states.\n *\n * @example\n * ```tsx\n * import { Checkbox } from '@customafk/lunas-ui/ui/checkbox';\n * import { Label } from '@customafk/lunas-ui/ui/label';\n *\n * <div className=\"flex items-center gap-2\">\n * <Checkbox id=\"terms\" />\n * <Label htmlFor=\"terms\">Accept terms and conditions</Label>\n * </div>\n * ```\n */\nfunction Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'peer border-border',\n 'size-4 shrink-0 cursor-pointer rounded border shadow-xs outline-none transition-all',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-3',\n 'focus-visible:ring-primary-weak',\n 'aria-invalid:border-danger aria-invalid:ring-danger-weak',\n 'aria-readonly:bg-muted-muted',\n 'aria-readonly:pointer-events-none',\n 'data-[state=checked]:aria-readonly:bg-muted-muted',\n 'data-[state=checked]:aria-readonly:border-border',\n 'data-[state=checked]:aria-readonly:text-text-positive-strong',\n 'data-[state=checked]:bg-primary',\n 'data-[state=checked]:border-primary-strong',\n 'data-[state=checked]:text-text-negative-strong',\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator data-slot=\"checkbox-indicator\" className=\"flex items-center justify-center text-current transition-none\">\n <CheckIcon size={14} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n"],"mappings":"uKAsBA,SAAS,EAAS,CAAE,YAAW,GAAG,GAA8D,CAC9F,OACE,EAAA,EAAA,KAACA,EAAAA,SAAkB,KAAA,CACjB,YAAU,WACV,WAAA,EAAA,EAAA,IACE,qBACA,sFACA,kDACA,sCACA,uBACA,kCACA,2DACA,+BACA,oCACA,oDACA,mDACA,+DACA,kCACA,6CACA,iDACA,EACD,CACD,GAAI,YAEJ,EAAA,EAAA,KAACA,EAAAA,SAAkB,UAAA,CAAU,YAAU,qBAAqB,UAAU,0EACpE,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,KAAM,GAAA,CAAM,EACK,EACP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{CheckIcon as e}from"lucide-react";import{jsx as t}from"react/jsx-runtime";import{cn as n}from"@customafk/react-toolkit/utils";import{Checkbox as r}from"radix-ui";function i({className:i,...a}){return t(r.Root,{"data-slot":`checkbox`,className:n(`peer border-border`,`size-4 shrink-0 cursor-pointer rounded border shadow-xs outline-none transition-all`,`disabled:cursor-not-allowed disabled:opacity-50`,`focus-visible:border-primary-strong`,`focus-visible:ring-3`,`focus-visible:ring-primary-weak`,`aria-invalid:border-danger aria-invalid:ring-danger-weak`,`aria-readonly:bg-muted-muted`,`aria-readonly:pointer-events-none`,`data-[state=checked]:aria-readonly:bg-muted-muted`,`data-[state=checked]:aria-readonly:border-border`,`data-[state=checked]:aria-readonly:text-text-positive-strong`,`data-[state=checked]:bg-primary`,`data-[state=checked]:border-primary-strong`,`data-[state=checked]:text-text-negative-strong`,i),...a,children:t(r.Indicator,{"data-slot":`checkbox-indicator`,className:`flex items-center justify-center text-current transition-none`,children:t(e,{size:14})})})}export{i as t};
|
|
2
|
-
//# sourceMappingURL=checkbox-
|
|
2
|
+
//# sourceMappingURL=checkbox-Dzo6oI4y.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-
|
|
1
|
+
{"version":3,"file":"checkbox-Dzo6oI4y.mjs","names":["Checkbox","CheckboxPrimitive"],"sources":["../packages/components/ui/checkbox.tsx"],"sourcesContent":["'use client';\n\nimport { CheckIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui';\n\n/**\n * Accessible checkbox input built on Radix UI's Checkbox primitive with checked, indeterminate, focus, invalid, and read-only states.\n *\n * @example\n * ```tsx\n * import { Checkbox } from '@customafk/lunas-ui/ui/checkbox';\n * import { Label } from '@customafk/lunas-ui/ui/label';\n *\n * <div className=\"flex items-center gap-2\">\n * <Checkbox id=\"terms\" />\n * <Label htmlFor=\"terms\">Accept terms and conditions</Label>\n * </div>\n * ```\n */\nfunction Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'peer border-border',\n 'size-4 shrink-0 cursor-pointer rounded border shadow-xs outline-none transition-all',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-3',\n 'focus-visible:ring-primary-weak',\n 'aria-invalid:border-danger aria-invalid:ring-danger-weak',\n 'aria-readonly:bg-muted-muted',\n 'aria-readonly:pointer-events-none',\n 'data-[state=checked]:aria-readonly:bg-muted-muted',\n 'data-[state=checked]:aria-readonly:border-border',\n 'data-[state=checked]:aria-readonly:text-text-positive-strong',\n 'data-[state=checked]:bg-primary',\n 'data-[state=checked]:border-primary-strong',\n 'data-[state=checked]:text-text-negative-strong',\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator data-slot=\"checkbox-indicator\" className=\"flex items-center justify-center text-current transition-none\">\n <CheckIcon size={14} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n"],"mappings":"yKAsBA,SAASA,EAAS,CAAE,YAAW,GAAG,GAA8D,CAC9F,OACE,EAACC,EAAkB,KAAA,CACjB,YAAU,WACV,UAAW,EACT,qBACA,sFACA,kDACA,sCACA,uBACA,kCACA,2DACA,+BACA,oCACA,oDACA,mDACA,+DACA,kCACA,6CACA,iDACA,EACD,CACD,GAAI,WAEJ,EAACA,EAAkB,UAAA,CAAU,YAAU,qBAAqB,UAAU,yEACpE,EAAC,EAAA,CAAU,KAAM,GAAA,CAAM,EACK,EACP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./dist-CIN9T2FB.mjs";import{t}from"./button-C6ybzxxj.mjs";import{i as n,n as r,r as i,t as a}from"./tooltip-Bj0iOG4s.mjs";import{t as o}from"./separator-BMsbHAVt.mjs";import{i as s,o as c,r as l,s as u,t as d}from"./sheet-DMIqn1iv.mjs";import{a as f,h as p,i as m,r as h,t as g}from"./dropdown-menu-DWSfXhHo.mjs";import{t as _}from"./input-Cd0G5y-9.mjs";import{EarthIcon as v,LogOutIcon as y,MenuIcon as b,ShoppingCartIcon as x}from"lucide-react";import{createContext as S,memo as C,useCallback as w,useContext as T,useEffect as E,useMemo as D,useState as O}from"react";import{jsx as k,jsxs as A}from"react/jsx-runtime";import{cn as j}from"@customafk/react-toolkit/utils";import{cva as M}from"class-variance-authority";import{useIsMobile as N}from"@customafk/react-toolkit/hooks/useMobile";const P=S(null);function F(){let e=T(P);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function I({defaultOpen:e=!0,open:t,onOpenChange:n,className:r,style:a,children:o,...s}){let c=N(),[l,u]=O(!1),[d,f]=O(e),p=t??d,m=w(e=>{let t=typeof e==`function`?e(p):e;n?n(t):f(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[n,p]),h=w(()=>c?u(e=>!e):m(e=>!e),[c,m]);E(()=>{let e=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),h())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[h]);let g=p?`expanded`:`collapsed`,_=D(()=>({state:g,open:p,setOpen:m,isMobile:c,openMobile:l,setOpenMobile:u,toggleSidebar:h}),[g,p,m,c,l,h]);return k(P.Provider,{value:_,children:k(i,{delayDuration:0,children:k(`section`,{"data-slot":`layout-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...a},className:j(`relative group/sidebar-wrapper flex h-dvh bg-sidebar`,r),...s,children:o})})})}const L=C(({side:e=`left`,variant:n=`sidebar`,collapsible:r=`offcanvas`,className:i,children:a,...o})=>{let{isMobile:f,state:p,openMobile:m,setOpenMobile:h,toggleSidebar:g}=F(),_=w(e=>{g(),e.preventDefault(),e.stopPropagation()},[g]);return r===`none`?k(`aside`,{"data-slot":`sidebar`,className:j(`flex w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,i),...o,children:a}):f?k(d,{open:m,onOpenChange:h,...o,children:A(l,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,style:{"--sidebar-width":`18rem`},side:e,className:`w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground sm:max-w-3xs [&>button]:hidden`,children:[A(c,{className:`sr-only`,children:[k(u,{children:`Sidebar`}),k(s,{children:`Displays the mobile sidebar.`})]}),A(`div`,{className:`flex size-full flex-col`,children:[A(`div`,{className:`flex flex-0 items-center gap-x-2 border-b border-border-weak p-2 pr-4`,children:[A(t,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`muted`,size:`icon`,className:j(`size-10 rounded-full`,i),onClick:_,children:[k(b,{className:`size-6!`}),k(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]}),k(`div`,{className:`ml-2 flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground`,children:k(x,{size:20})}),A(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[k(`span`,{className:`truncate font-medium`,children:`Lunas Store`}),k(`span`,{className:`truncate text-xs`,children:`Established 2023`})]})]}),k(`div`,{className:`flex flex-1 flex-col p-2`,children:a})]})]})}):A(`aside`,{className:`group peer hidden bg-card text-sidebar-foreground md:block`,"data-state":p,"data-collapsible":p===`collapsed`?r:``,"data-variant":n,"data-side":e,"data-slot":`sidebar`,children:[k(`div`,{"data-slot":`sidebar-gap`,className:j(`bg-transparent`,`transition-[width] duration-200 ease-linear`,`h-(--header-height) sm:h-[calc(var(--header-height)+0.5rem)]`,`w-(--sidebar-width)`,`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`)}),k(`div`,{"data-slot":`sidebar-container`,className:j(`hidden md:flex shadow-nav`,`fixed left-0 inset-y-0 p-2`,`top-[calc(var(--header-height)+0.5rem)] z-10`,`w-(--sidebar-width)`,`transition-all duration-200 ease-linear`,`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`,i),...o,children:k(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:`relative flex size-full flex-col`,children:a})})]})});L.displayName=`CMSLayoutSidebar`;const R=C(({className:e,children:t,...n})=>A(`main`,{"data-slot":`sidebar-inset`,className:j(`relative flex w-full flex-1 flex-col`,e),...n,children:[k(`div`,{className:`h-(--header-height) sm:h-[calc(var(--header-height)+0.5rem)]`}),k(`div`,{className:`relative flex-1 size-full overflow-auto`,children:t})]}));R.displayName=`CMSLayoutMain`;const z=C(({className:e,...t})=>k(_,{"data-slot":`sidebar-input`,"data-sidebar":`input`,className:j(`h-8 w-full bg-background shadow-none`,e),...t}));z.displayName=`SidebarInput`;const B=C(({className:e,...t})=>k(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:j(`flex flex-col gap-2 p-2`,e),...t}));B.displayName=`SidebarHeader`;const V=C(({className:e,...t})=>k(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:j(`flex flex-col gap-2`,e),...t}));V.displayName=`SidebarFooter`;const H=C(({className:e,...t})=>k(o,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:j(`mx-2 w-auto bg-sidebar-border`,e),...t}));H.displayName=`SidebarSeparator`;const U=C(({className:e,...t})=>k(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:j(`flex flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,e),...t}));U.displayName=`SidebarContent`;const W=C(({className:e,...t})=>k(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:j(`relative flex w-full flex-col`,e),...t}));W.displayName=`SidebarGroup`;const G=C(({className:t,asChild:n=!1,...r})=>k(n?e:`div`,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:j(`flex h-8 shrink-0 items-center rounded-md px-2 font-medium text-sidebar-foreground/70 text-xs outline-hidden ring-sidebar-ring transition-[margin,opacity,color] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0`,t),...r}));G.displayName=`SidebarGroupLabel`;const K=C(({className:e,...t})=>k(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:j(`w-full text-sm`,e),...t}));K.displayName=`SidebarGroupContent`;const q=C(({className:e,...t})=>k(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:j(`flex w-full min-w-0 flex-col gap-1`,e),...t}));q.displayName=`SidebarMenu`;const J=C(({className:e,...t})=>k(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:j(`group/menu-item relative`,e),...t}));J.displayName=`SidebarMenuItem`;const Y=M([`peer/menu-button`,`cursor-pointer`,`flex w-full items-center gap-2`,`overflow-hidden rounded-md p-2 outline-hidden`,`truncate text-left font-normal`,`transition-[color,background-color,width,height,padding]`,`active:bg-sidebar-accent active:text-sidebar-accent-foreground`,`disabled:pointer-events-none disabled:opacity-50`,`group-has-data-[sidebar=menu-action]/menu-item:pr-8`,`aria-disabled:pointer-events-none aria-disabled:opacity-50`,`data-[active=true]:bg-sidebar-primary-muted data-[active=true]:text-sidebar-primary`,`data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:size-12! group-data-[collapsible=icon]:p-3! group-data-[collapsible=icon]:gap-3!`,`[&>svg]:size-6 [&>svg]:shrink-0`,`[&>span:last-child]:truncate`],{variants:{variant:{default:`hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-10 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}}),X=C(({asChild:t=!1,isActive:i=!1,variant:o=`default`,size:s=`default`,tooltip:c,className:l,...u})=>{let d=t?e:`button`,{isMobile:f,state:p}=F(),m=w(e=>{u.onClick?.(),e.preventDefault(),e.stopPropagation()},[u.onClick]),h=k(d,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":s,"data-active":i,className:j(Y({variant:o,size:s}),l),onClick:m,...u});return c?(typeof c==`string`&&(c={children:c}),A(a,{children:[k(n,{asChild:!0,children:h}),k(r,{side:`right`,align:`center`,hidden:p!==`collapsed`||f,...c})]})):h});X.displayName=`SidebarMenuButton`;const Z=({i18nText:e,onChangeToEnLocale:n,onChangeToViLocale:r})=>{let{toggleSidebar:i}=F(),a=w(e=>{e.preventDefault(),e.stopPropagation(),i()},[i]),o=w(e=>{e.preventDefault(),e.stopPropagation(),n?.()},[n]),s=w(e=>{e.preventDefault(),e.stopPropagation(),r?.()},[r]);return A(`header`,{"data-slot":`cms-layout-header`,className:j(`bg-card`,`h-(--header-height)`,`sm:h-[calc(var(--header-height)+0.5rem)] sm:px-4 sm:pr-6`,`absolute inset-x-0 top-0 z-20 gap-2 px-2 pr-4.5`,`flex items-center shadow-nav`,`transition-[height] ease-linear`),children:[A(t,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`muted`,size:`icon`,className:`size-10 rounded-full transition-all hover:text-text-positive`,onClick:a,children:[k(b,{className:`size-6!`}),k(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]}),A(`div`,{className:`flex flex-1 gap-x-2 sm:ml-2.5`,children:[k(`div`,{className:`flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground`,children:k(x,{size:20})}),A(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[k(`span`,{className:`truncate font-medium`,children:`Lunas Enterprise`}),k(`span`,{className:`truncate text-xs`,children:`Established 2025`})]})]}),A(g,{children:[k(p,{asChild:!0,children:A(t,{"data-slot":`locale-trigger`,variant:`ghost`,color:`muted`,className:`gap-x-1 rounded-full transition-all hover:text-text-positive`,children:[k(v,{className:`size-6!`}),e]})}),k(h,{align:`end`,children:A(m,{children:[k(f,{onClick:o,children:`EN - English`}),k(f,{onClick:s,children:`VI - Vietnamese`})]})})]})]})},Q=C(({id:e,label:t,icon:n,activeNavItemId:r,onClick:i})=>k(J,{children:A(X,{isActive:e===r,onClick:i,children:[n,t]})}));Q.displayName=`SidebarContentGroupItem`;const $=C(({id:e,label:t,children:n})=>A(W,{children:[k(G,{children:t}),k(K,{children:k(q,{children:n})})]}));$.displayName=`SidebarContentGroup`;const ee=({i18nText:e,activeNavItemId:t,sidebar:n,children:r,onChangeToEnLocale:i,onChangeToViLocale:a,onLogout:o,logoutLabel:s=`Log out`,copyright:c=`Copyright © ${new Date().getFullYear()}, Lunas.`})=>{let l=n?.groupcontent??[];return A(I,{children:[k(Z,{i18nText:e,onChangeToEnLocale:i,onChangeToViLocale:a}),A(L,{variant:`inset`,collapsible:`icon`,children:[k(U,{children:l.map(e=>k($,{id:e.id,label:e.label,children:e.items.map(e=>k(Q,{id:e.id,activeNavItemId:t,label:e.label,icon:e.icon,onClick:e.onClick},e.id))},e.id))}),k(V,{children:A(q,{children:[k(J,{children:A(X,{className:`border border-border`,onClick:o,children:[k(y,{className:`text-text-positive-weak`}),s]})}),k(J,{className:`mt-2 border-t border-t-border`,children:k(`p`,{className:`pt-2 text-center text-xs text-text-positive-subtle`,children:c})})]})})]}),k(R,{children:r})]})};export{ee as t};
|
|
2
|
-
//# sourceMappingURL=cms-layout-
|
|
1
|
+
import{t as e}from"./dist-CIN9T2FB.mjs";import{t}from"./button-C6ybzxxj.mjs";import{i as n,n as r,r as i,t as a}from"./tooltip-Bj0iOG4s.mjs";import{t as o}from"./separator-BMsbHAVt.mjs";import{i as s,o as c,r as l,s as u,t as d}from"./sheet-DMIqn1iv.mjs";import{a as f,h as p,i as m,r as h,t as g}from"./dropdown-menu-DWSfXhHo.mjs";import{t as _}from"./input-6f9JTc79.mjs";import{EarthIcon as v,LogOutIcon as y,MenuIcon as b,ShoppingCartIcon as x}from"lucide-react";import{createContext as S,memo as C,useCallback as w,useContext as T,useEffect as E,useMemo as D,useState as O}from"react";import{jsx as k,jsxs as A}from"react/jsx-runtime";import{cn as j}from"@customafk/react-toolkit/utils";import{cva as M}from"class-variance-authority";import{useIsMobile as N}from"@customafk/react-toolkit/hooks/useMobile";const P=S(null);function F(){let e=T(P);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function I({defaultOpen:e=!0,open:t,onOpenChange:n,className:r,style:a,children:o,...s}){let c=N(),[l,u]=O(!1),[d,f]=O(e),p=t??d,m=w(e=>{let t=typeof e==`function`?e(p):e;n?n(t):f(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[n,p]),h=w(()=>c?u(e=>!e):m(e=>!e),[c,m]);E(()=>{let e=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),h())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[h]);let g=p?`expanded`:`collapsed`,_=D(()=>({state:g,open:p,setOpen:m,isMobile:c,openMobile:l,setOpenMobile:u,toggleSidebar:h}),[g,p,m,c,l,h]);return k(P.Provider,{value:_,children:k(i,{delayDuration:0,children:k(`section`,{"data-slot":`layout-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...a},className:j(`relative group/sidebar-wrapper flex h-dvh bg-sidebar`,r),...s,children:o})})})}const L=C(({side:e=`left`,variant:n=`sidebar`,collapsible:r=`offcanvas`,className:i,children:a,...o})=>{let{isMobile:f,state:p,openMobile:m,setOpenMobile:h,toggleSidebar:g}=F(),_=w(e=>{g(),e.preventDefault(),e.stopPropagation()},[g]);return r===`none`?k(`aside`,{"data-slot":`sidebar`,className:j(`flex w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,i),...o,children:a}):f?k(d,{open:m,onOpenChange:h,...o,children:A(l,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,style:{"--sidebar-width":`18rem`},side:e,className:`w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground sm:max-w-3xs [&>button]:hidden`,children:[A(c,{className:`sr-only`,children:[k(u,{children:`Sidebar`}),k(s,{children:`Displays the mobile sidebar.`})]}),A(`div`,{className:`flex size-full flex-col`,children:[A(`div`,{className:`flex flex-0 items-center gap-x-2 border-b border-border-weak p-2 pr-4`,children:[A(t,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`muted`,size:`icon`,className:j(`size-10 rounded-full`,i),onClick:_,children:[k(b,{className:`size-6!`}),k(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]}),k(`div`,{className:`ml-2 flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground`,children:k(x,{size:20})}),A(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[k(`span`,{className:`truncate font-medium`,children:`Lunas Store`}),k(`span`,{className:`truncate text-xs`,children:`Established 2023`})]})]}),k(`div`,{className:`flex flex-1 flex-col p-2`,children:a})]})]})}):A(`aside`,{className:`group peer hidden bg-card text-sidebar-foreground md:block`,"data-state":p,"data-collapsible":p===`collapsed`?r:``,"data-variant":n,"data-side":e,"data-slot":`sidebar`,children:[k(`div`,{"data-slot":`sidebar-gap`,className:j(`bg-transparent`,`transition-[width] duration-200 ease-linear`,`h-(--header-height) sm:h-[calc(var(--header-height)+0.5rem)]`,`w-(--sidebar-width)`,`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`)}),k(`div`,{"data-slot":`sidebar-container`,className:j(`hidden md:flex shadow-nav`,`fixed left-0 inset-y-0 p-2`,`top-[calc(var(--header-height)+0.5rem)] z-10`,`w-(--sidebar-width)`,`transition-all duration-200 ease-linear`,`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`,i),...o,children:k(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:`relative flex size-full flex-col`,children:a})})]})});L.displayName=`CMSLayoutSidebar`;const R=C(({className:e,children:t,...n})=>A(`main`,{"data-slot":`sidebar-inset`,className:j(`relative flex w-full flex-1 flex-col`,e),...n,children:[k(`div`,{className:`h-(--header-height) sm:h-[calc(var(--header-height)+0.5rem)]`}),k(`div`,{className:`relative flex-1 size-full overflow-auto`,children:t})]}));R.displayName=`CMSLayoutMain`;const z=C(({className:e,...t})=>k(_,{"data-slot":`sidebar-input`,"data-sidebar":`input`,className:j(`h-8 w-full bg-background shadow-none`,e),...t}));z.displayName=`SidebarInput`;const B=C(({className:e,...t})=>k(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:j(`flex flex-col gap-2 p-2`,e),...t}));B.displayName=`SidebarHeader`;const V=C(({className:e,...t})=>k(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:j(`flex flex-col gap-2`,e),...t}));V.displayName=`SidebarFooter`;const H=C(({className:e,...t})=>k(o,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:j(`mx-2 w-auto bg-sidebar-border`,e),...t}));H.displayName=`SidebarSeparator`;const U=C(({className:e,...t})=>k(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:j(`flex flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,e),...t}));U.displayName=`SidebarContent`;const W=C(({className:e,...t})=>k(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:j(`relative flex w-full flex-col`,e),...t}));W.displayName=`SidebarGroup`;const G=C(({className:t,asChild:n=!1,...r})=>k(n?e:`div`,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:j(`flex h-8 shrink-0 items-center rounded-md px-2 font-medium text-sidebar-foreground/70 text-xs outline-hidden ring-sidebar-ring transition-[margin,opacity,color] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0`,t),...r}));G.displayName=`SidebarGroupLabel`;const K=C(({className:e,...t})=>k(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:j(`w-full text-sm`,e),...t}));K.displayName=`SidebarGroupContent`;const q=C(({className:e,...t})=>k(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:j(`flex w-full min-w-0 flex-col gap-1`,e),...t}));q.displayName=`SidebarMenu`;const J=C(({className:e,...t})=>k(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:j(`group/menu-item relative`,e),...t}));J.displayName=`SidebarMenuItem`;const Y=M([`peer/menu-button`,`cursor-pointer`,`flex w-full items-center gap-2`,`overflow-hidden rounded-md p-2 outline-hidden`,`truncate text-left font-normal`,`transition-[color,background-color,width,height,padding]`,`active:bg-sidebar-accent active:text-sidebar-accent-foreground`,`disabled:pointer-events-none disabled:opacity-50`,`group-has-data-[sidebar=menu-action]/menu-item:pr-8`,`aria-disabled:pointer-events-none aria-disabled:opacity-50`,`data-[active=true]:bg-sidebar-primary-muted data-[active=true]:text-sidebar-primary`,`data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:size-12! group-data-[collapsible=icon]:p-3! group-data-[collapsible=icon]:gap-3!`,`[&>svg]:size-6 [&>svg]:shrink-0`,`[&>span:last-child]:truncate`],{variants:{variant:{default:`hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-10 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}}),X=C(({asChild:t=!1,isActive:i=!1,variant:o=`default`,size:s=`default`,tooltip:c,className:l,...u})=>{let d=t?e:`button`,{isMobile:f,state:p}=F(),m=w(e=>{u.onClick?.(),e.preventDefault(),e.stopPropagation()},[u.onClick]),h=k(d,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":s,"data-active":i,className:j(Y({variant:o,size:s}),l),onClick:m,...u});return c?(typeof c==`string`&&(c={children:c}),A(a,{children:[k(n,{asChild:!0,children:h}),k(r,{side:`right`,align:`center`,hidden:p!==`collapsed`||f,...c})]})):h});X.displayName=`SidebarMenuButton`;const Z=({i18nText:e,onChangeToEnLocale:n,onChangeToViLocale:r})=>{let{toggleSidebar:i}=F(),a=w(e=>{e.preventDefault(),e.stopPropagation(),i()},[i]),o=w(e=>{e.preventDefault(),e.stopPropagation(),n?.()},[n]),s=w(e=>{e.preventDefault(),e.stopPropagation(),r?.()},[r]);return A(`header`,{"data-slot":`cms-layout-header`,className:j(`bg-card`,`h-(--header-height)`,`sm:h-[calc(var(--header-height)+0.5rem)] sm:px-4 sm:pr-6`,`absolute inset-x-0 top-0 z-20 gap-2 px-2 pr-4.5`,`flex items-center shadow-nav`,`transition-[height] ease-linear`),children:[A(t,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`muted`,size:`icon`,className:`size-10 rounded-full transition-all hover:text-text-positive`,onClick:a,children:[k(b,{className:`size-6!`}),k(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]}),A(`div`,{className:`flex flex-1 gap-x-2 sm:ml-2.5`,children:[k(`div`,{className:`flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground`,children:k(x,{size:20})}),A(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[k(`span`,{className:`truncate font-medium`,children:`Lunas Enterprise`}),k(`span`,{className:`truncate text-xs`,children:`Established 2025`})]})]}),A(g,{children:[k(p,{asChild:!0,children:A(t,{"data-slot":`locale-trigger`,variant:`ghost`,color:`muted`,className:`gap-x-1 rounded-full transition-all hover:text-text-positive`,children:[k(v,{className:`size-6!`}),e]})}),k(h,{align:`end`,children:A(m,{children:[k(f,{onClick:o,children:`EN - English`}),k(f,{onClick:s,children:`VI - Vietnamese`})]})})]})]})},Q=C(({id:e,label:t,icon:n,activeNavItemId:r,onClick:i})=>k(J,{children:A(X,{isActive:e===r,onClick:i,children:[n,t]})}));Q.displayName=`SidebarContentGroupItem`;const $=C(({id:e,label:t,children:n})=>A(W,{children:[k(G,{children:t}),k(K,{children:k(q,{children:n})})]}));$.displayName=`SidebarContentGroup`;const ee=({i18nText:e,activeNavItemId:t,sidebar:n,children:r,onChangeToEnLocale:i,onChangeToViLocale:a,onLogout:o,logoutLabel:s=`Log out`,copyright:c=`Copyright © ${new Date().getFullYear()}, Lunas.`})=>{let l=n?.groupcontent??[];return A(I,{children:[k(Z,{i18nText:e,onChangeToEnLocale:i,onChangeToViLocale:a}),A(L,{variant:`inset`,collapsible:`icon`,children:[k(U,{children:l.map(e=>k($,{id:e.id,label:e.label,children:e.items.map(e=>k(Q,{id:e.id,activeNavItemId:t,label:e.label,icon:e.icon,onClick:e.onClick},e.id))},e.id))}),k(V,{children:A(q,{children:[k(J,{children:A(X,{className:`border border-border`,onClick:o,children:[k(y,{className:`text-text-positive-weak`}),s]})}),k(J,{className:`mt-2 border-t border-t-border`,children:k(`p`,{className:`pt-2 text-center text-xs text-text-positive-subtle`,children:c})})]})})]}),k(R,{children:r})]})};export{ee as t};
|
|
2
|
+
//# sourceMappingURL=cms-layout-Bp6rU_of.mjs.map
|