admin-ui-starter-kit 0.4.2 → 0.4.3
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/.agents/skills/component-library-rules/SKILL.md +7 -1
- package/.agents/skills/component-library-rules/references/base-wrapper.md +24 -4
- package/.agents/skills/component-library-rules/references/components/INDEX.json +4 -3
- package/.agents/skills/component-library-rules/references/components/INDEX.md +4 -3
- package/.agents/skills/component-library-rules/references/components/ui__inputs.md +117 -18
- package/.agents/skills/component-library-rules/references/components/ui__layout-primitives.md +71 -0
- package/.agents/skills/component-library-rules/references/components/ui__menus.md +125 -43
- package/.agents/skills/component-library-rules/references/components/ui__overlays.md +117 -42
- package/AGENTS.md +7 -4
- package/README.md +28 -4
- package/dist/_shared/{header-BUAddfdE.js → header-CyBTcM-L.js} +9 -9
- package/dist/_shared/header-CyBTcM-L.js.map +1 -0
- package/dist/_shared/header-kwvkesfq.cjs +2 -0
- package/dist/_shared/header-kwvkesfq.cjs.map +1 -0
- package/dist/_shared/{sidebar-Bl_KRk-S.cjs → sidebar-B_L_dnAe.cjs} +2 -2
- package/dist/_shared/{sidebar-Bl_KRk-S.cjs.map → sidebar-B_L_dnAe.cjs.map} +1 -1
- package/dist/_shared/{sidebar-ux-yk-Ph.js → sidebar-C5DApiDy.js} +26 -19
- package/dist/_shared/{sidebar-ux-yk-Ph.js.map → sidebar-C5DApiDy.js.map} +1 -1
- package/dist/_shared/{sidebar-BML5ZZ5s.js → sidebar-CIlGkVbF.js} +156 -155
- package/dist/_shared/sidebar-CIlGkVbF.js.map +1 -0
- package/dist/_shared/sidebar-D3sK9otF.cjs +2 -0
- package/dist/_shared/sidebar-D3sK9otF.cjs.map +1 -0
- package/dist/components/base/sidebar/index.cjs +1 -1
- package/dist/components/base/sidebar/index.js +2 -2
- package/dist/components/base/sidebar/sidebar.d.ts +5 -3
- package/dist/components/base/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/layout/header/index.cjs +1 -1
- package/dist/components/layout/header/index.js +1 -1
- package/dist/components/layout/header/partials/header-search.d.ts.map +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +2 -2
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts.map +1 -1
- package/dist/components/layout/sidebar/index.cjs +1 -1
- package/dist/components/layout/sidebar/index.js +1 -1
- package/dist/components/ui/alert-dialog.d.ts +19 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +5 -0
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/carousel.d.ts +29 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/direction.d.ts +2 -0
- package/dist/components/ui/direction.d.ts.map +1 -0
- package/dist/components/ui/drawer.d.ts +14 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/field.d.ts +25 -0
- package/dist/components/ui/field.d.ts.map +1 -0
- package/dist/components/ui/input-otp.d.ts +12 -0
- package/dist/components/ui/input-otp.d.ts.map +1 -0
- package/dist/components/ui/kbd.d.ts +4 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/label.d.ts +4 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/menubar.d.ts +30 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/native-select.d.ts +9 -0
- package/dist/components/ui/native-select.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +12 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/resizable.d.ts +8 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/showcase/assets/{AreaChart-DUe3j5uB.js → AreaChart-BkAbL-UV.js} +1 -1
- package/dist/showcase/assets/CSPContext-B11tftuK.js +1 -0
- package/dist/showcase/assets/CompositeItem-Dzu0MfUC.js +1 -0
- package/dist/showcase/assets/CompositeRoot-CQvQ_uj2.js +1 -0
- package/dist/showcase/assets/DialogTrigger-BxVhSw4D.js +1 -0
- package/dist/showcase/assets/FieldItemContext-BSFHjS7g.js +1 -0
- package/dist/showcase/assets/LabelableContext-DapqaNeY.js +1 -0
- package/dist/showcase/assets/{PreviewLayout-BG1B5TzA.js → PreviewLayout-CGEkbS-i.js} +1 -1
- package/dist/showcase/assets/RadioGroup-DBA3iBQw.js +1 -0
- package/dist/showcase/assets/Separator-BEMr82IS.js +1 -0
- package/dist/showcase/assets/ToolbarRootContext-xN-ruoGR.js +1 -0
- package/dist/showcase/assets/{accordion-BWkuKg77.js → accordion-B-Iy0jKu.js} +3 -3
- package/dist/showcase/assets/accordion-variants-B9GD0oBE.js +1 -0
- package/dist/showcase/assets/{action-menu-BOUHlGba.js → action-menu-CMUF6gPp.js} +1 -1
- package/dist/showcase/assets/{activities-DMDQje7Y.js → activities-C1P9bsJm.js} +2 -2
- package/dist/showcase/assets/{activities-feed-card-B8wpu4F3.js → activities-feed-card-WZUuGHmT.js} +1 -1
- package/dist/showcase/assets/{activity-B-FxNryB.js → activity-BVP5C805.js} +1 -1
- package/dist/showcase/assets/{admin-CAhEeKt_.js → admin-DWOK4sj4.js} +2 -2
- package/dist/showcase/assets/{ai-UioEgJ90.js → ai-Dteb3y6G.js} +2 -2
- package/dist/showcase/assets/{ai-artifact-CUAlhcSX.js → ai-artifact-B0d7GveY.js} +2 -2
- package/dist/showcase/assets/{ai-chat-C_w2PSmy.js → ai-chat-IJ0b2FOw.js} +7 -7
- package/dist/showcase/assets/{ai-elements-DmxqXR6H.js → ai-elements-Cr8GgtEV.js} +3 -3
- package/dist/showcase/assets/{ai-new-PG02TWQq.js → ai-new-BJN9wNvX.js} +2 -2
- package/dist/showcase/assets/{ai-tool-call-BaJx1rR4.js → ai-tool-call-BqlQuR1P.js} +1 -1
- package/dist/showcase/assets/{alert-DIelf1qF.js → alert-2_0J7Vv6.js} +1 -1
- package/dist/showcase/assets/{alert-D7n-kQoO.js → alert-7wEOpEor.js} +1 -1
- package/dist/showcase/assets/{alert-TQCZEcn-.js → alert-C_FOBilU.js} +2 -2
- package/dist/showcase/assets/{api-key-list-CSt4trYG.js → api-key-list-CGV1k52v.js} +2 -2
- package/dist/showcase/assets/app-sidebar-S6oUYO4h.js +1 -0
- package/dist/showcase/assets/arrow-down-VNr82bS3.js +1 -0
- package/dist/showcase/assets/arrow-left-BSVeKWNq.js +1 -0
- package/dist/showcase/assets/arrow-right-D6hTB0Bd.js +1 -0
- package/dist/showcase/assets/arrow-up-p9oA4cIz.js +1 -0
- package/dist/showcase/assets/arrow-up-right-BtlQ62bc.js +1 -0
- package/dist/showcase/assets/{avatar-DLpnivU0.js → avatar-BxcQUuh0.js} +1 -1
- package/dist/showcase/assets/avatar-LGWm52rv.js +1 -0
- package/dist/showcase/assets/{badge-yFoRqbiq.js → badge-COn5psy3.js} +2 -2
- package/dist/showcase/assets/{badge-check-BRAVo7dA.js → badge-check-D2C2BPUT.js} +1 -1
- package/dist/showcase/assets/{bell-Dt3Nz2y2.js → bell-C80n9VRl.js} +1 -1
- package/dist/showcase/assets/{bot-5Ro5Dayc.js → bot-C83bUUi9.js} +1 -1
- package/dist/showcase/assets/{box-mt6TbZO6.js → box-rZ0pA-02.js} +1 -1
- package/dist/showcase/assets/{brain-736080Wh.js → brain-BJtktdVu.js} +1 -1
- package/dist/showcase/assets/{brand-4K8xsJ91.js → brand-CxdIBpyJ.js} +1 -1
- package/dist/showcase/assets/{breadcrumb-CAlApdCw.js → breadcrumb-BZsr_A8k.js} +1 -1
- package/dist/showcase/assets/{breadcrumb-DHeGqoTD.js → breadcrumb-CSU8FvWB.js} +1 -1
- package/dist/showcase/assets/{breadcrumbs-D_lniGJs.js → breadcrumbs-BUm4gHzL.js} +1 -1
- package/dist/showcase/assets/{briefcase-B_Uti-Iu.js → briefcase-0WhUdLn5.js} +1 -1
- package/dist/showcase/assets/{building-2-zgcwuzxP.js → building-2-1D6zVdCI.js} +1 -1
- package/dist/showcase/assets/{button-PmqgeJKm.js → button-C22Gs6y0.js} +2 -2
- package/dist/showcase/assets/{button-group-DAOmmujV.js → button-group-C0Ts4-x3.js} +1 -1
- package/dist/showcase/assets/{buttons-PtpR_v16.js → buttons-Dfn6hmwe.js} +3 -3
- package/dist/showcase/assets/{calendar-DTgagmt7.js → calendar-7a4yQlzJ.js} +1 -1
- package/dist/showcase/assets/{calendar-BiOGjB7a.js → calendar-Bo17POsN.js} +1 -1
- package/dist/showcase/assets/{calendar-C1A98cz0.js → calendar-D6XNDRVQ.js} +1 -1
- package/dist/showcase/assets/{calendar-days-pr8kXiTx.js → calendar-days-C4mG2tOe.js} +1 -1
- package/dist/showcase/assets/{camera-CGKLOOep.js → camera-C16z6v0m.js} +1 -1
- package/dist/showcase/assets/{card-CFIG8Dgg.js → card-BjqRQxxz.js} +1 -1
- package/dist/showcase/assets/{card-CRd07Iun.js → card-IzYmUTpI.js} +2 -2
- package/dist/showcase/assets/{card-primitives-YgCOqVDI.js → card-primitives-BDj4DtS8.js} +1 -1
- package/dist/showcase/assets/{card-radio-group-Du6yaMZ-.js → card-radio-group-7GU9AtWs.js} +1 -1
- package/dist/showcase/assets/{cards-H7ywhTNM.js → cards-DAqpr8CM.js} +8 -8
- package/dist/showcase/assets/{carousel-Dwll5oz1.js → carousel-D1n4Kkoo.js} +4 -4
- package/dist/showcase/assets/{chart-BWnVf-d-.js → chart-D2EGeI3b.js} +5 -5
- package/dist/showcase/assets/{chart-column-DjAyOA-t.js → chart-column-DKcP77Dx.js} +1 -1
- package/dist/showcase/assets/checkbox-BI3gcjED.js +1 -0
- package/dist/showcase/assets/chevron-down-ByPPEdNm.js +1 -0
- package/dist/showcase/assets/chevron-left-BNByuq3g.js +1 -0
- package/dist/showcase/assets/chevron-right-D4pIMCh9.js +1 -0
- package/dist/showcase/assets/chevron-up-Cha879Nz.js +1 -0
- package/dist/showcase/assets/chevrons-up-down-eAgHau5X.js +1 -0
- package/dist/showcase/assets/circle-V5hdlsIn.js +1 -0
- package/dist/showcase/assets/{circle-alert-ysbx8rsZ.js → circle-alert-BW-Btwgh.js} +1 -1
- package/dist/showcase/assets/circle-check-1MSds3Vu.js +1 -0
- package/dist/showcase/assets/circle-check-big-vBWkmhCZ.js +1 -0
- package/dist/showcase/assets/circle-dot-CsD5uXwH.js +1 -0
- package/dist/showcase/assets/{circle-question-mark-Dbi-WTYN.js → circle-question-mark-xYn9p1nL.js} +1 -1
- package/dist/showcase/assets/{circle-x-c5z6-eYV.js → circle-x-VSqZOeGt.js} +1 -1
- package/dist/showcase/assets/clock-3-CP_t59kW.js +1 -0
- package/dist/showcase/assets/clock-9xbB7EnW.js +1 -0
- package/dist/showcase/assets/{code-xml-SoYTMEdm.js → code-xml-CeGA85eB.js} +1 -1
- package/dist/showcase/assets/{collapsible-Cv3oGVkH.js → collapsible-C2W51-wl.js} +2 -2
- package/dist/showcase/assets/collapsible-C4eof15p.js +1 -0
- package/dist/showcase/assets/{combobox-CPC4a_MH.js → combobox-i8o4u6Q0.js} +4 -4
- package/dist/showcase/assets/{command-C37Q471b.js → command-C4F78Ppy.js} +1 -1
- package/dist/showcase/assets/command-wjOXUieO.js +1 -0
- package/dist/showcase/assets/{comment-composer-W0xfh_HP.js → comment-composer-DeURrlgL.js} +1 -1
- package/dist/showcase/assets/comment-item-D07Qk-Nt.js +1 -0
- package/dist/showcase/assets/{comments-BODDdRry.js → comments-Bo-lZU18.js} +2 -2
- package/dist/showcase/assets/{commerce-extras-DsgnTkBH.js → commerce-extras-Cio3xn_B.js} +2 -2
- package/dist/showcase/assets/{commerce-B9MICTY2.js → commerce-jqA58sCZ.js} +2 -2
- package/dist/showcase/assets/{composite-B-19wwf9.js → composite-BQFpnmS9.js} +1 -1
- package/dist/showcase/assets/{contact-card-CqP3YxTq.js → contact-card-4ajPhcd_.js} +2 -2
- package/dist/showcase/assets/{content-container-x2tsQKwH.js → content-container-B83BnjFb.js} +1 -1
- package/dist/showcase/assets/{copyable-DH0w0i_h.js → copyable-DKkroGJ3.js} +3 -3
- package/dist/showcase/assets/{course-card-qpC4JUUM.js → course-card-DShYl03k.js} +2 -2
- package/dist/showcase/assets/{cpu-DjJeD_0Z.js → cpu-BZTsuaUu.js} +1 -1
- package/dist/showcase/assets/{credit-card-CYgRtM77.js → credit-card-CAI3F3HB.js} +1 -1
- package/dist/showcase/assets/{currency-hguqIjWU.js → currency-PXgbngHk.js} +6 -6
- package/dist/showcase/assets/{dark-surfaces-Cj34O9A0.js → dark-surfaces-pSCicdm4.js} +2 -2
- package/dist/showcase/assets/{database-BVwSMeGM.js → database-oHsxHUj-.js} +1 -1
- package/dist/showcase/assets/{date-block-LCTDXG5-.js → date-block-CvCdJr8d.js} +1 -1
- package/dist/showcase/assets/{date-picker-CbYq8wZ7.js → date-picker-Cd5vsEEd.js} +1 -1
- package/dist/showcase/assets/{date-pickers-BaSX23MK.js → date-pickers-CBK-zvSB.js} +4 -4
- package/dist/showcase/assets/{dense-info-kY1QmtaP.js → dense-info-zOdJpez6.js} +2 -2
- package/dist/showcase/assets/{dialog-B85US9Ue.js → dialog-D9-MRCRg.js} +1 -1
- package/dist/showcase/assets/{dialog-iIgfMvTJ.js → dialog-EDw9DvZs.js} +1 -1
- package/dist/showcase/assets/display-CE9JWinr.js +403 -0
- package/dist/showcase/assets/dist-CjZ6RM9v.js +45 -0
- package/dist/showcase/assets/{dollar-sign-DlK6XF_v.js → dollar-sign-BXD_x2mP.js} +1 -1
- package/dist/showcase/assets/{download-B_EY5cGA.js → download-D0ur_d_N.js} +1 -1
- package/dist/showcase/assets/dropdown-menu-Cto8-yDW.js +1 -0
- package/dist/showcase/assets/{dropzone-Bl7RO_Uk.js → dropzone-9Gb4mR4x.js} +1 -1
- package/dist/showcase/assets/{earth-C7n2JAYm.js → earth-BN1w3w7h.js} +1 -1
- package/dist/showcase/assets/{ellipsis-ntuo3ejh.js → ellipsis-DsrebD1Y.js} +1 -1
- package/dist/showcase/assets/{ellipsis-vertical-yH8S83bc.js → ellipsis-vertical-CAiMV7G2.js} +1 -1
- package/dist/showcase/assets/{empty-CY8f7iFe.js → empty-DoJF3uif.js} +1 -1
- package/dist/showcase/assets/{empty-item-Ct7uCr40.js → empty-item-zZ85qI6s.js} +2 -2
- package/dist/showcase/assets/{empty-state-IAAUTn6f.js → empty-state-CGfB7sOE.js} +1 -1
- package/dist/showcase/assets/{empty-state-DlO8SJi8.js → empty-state-Y_4qnNWt.js} +1 -1
- package/dist/showcase/assets/{enhanced-activities-DLwShhof.js → enhanced-activities-B41hAxhb.js} +2 -2
- package/dist/showcase/assets/enhanced-combobox-BOimEW-1.js +1 -0
- package/dist/showcase/assets/{event-calendar-C4KlumlG.js → event-calendar-BjcfC6fM.js} +3 -3
- package/dist/showcase/assets/{event-log-BvUU5Rj8.js → event-log-BhoMXcix.js} +2 -2
- package/dist/showcase/assets/example-Cz_880po.js +1 -0
- package/dist/showcase/assets/{external-link-DuJlM_H4.js → external-link-Cy1-PP8k.js} +1 -1
- package/dist/showcase/assets/{eye-CnRPL_H8.js → eye-C85PNNdH.js} +1 -1
- package/dist/showcase/assets/feature-announcement-_tpahla3.js +34 -0
- package/dist/showcase/assets/{file-Dc5UHkfE.js → file-C8PCBEtY.js} +1 -1
- package/dist/showcase/assets/{file-text-D3AE37vP.js → file-text-DwqbUujq.js} +1 -1
- package/dist/showcase/assets/{filters-CsovNSxS.js → filters-ChqGg_1z.js} +3 -3
- package/dist/showcase/assets/{flag-CJJ43K4x.js → flag-csHQcBml.js} +1 -1
- package/dist/showcase/assets/{folder-open-Dp0sceCi.js → folder-open-BThTng3d.js} +1 -1
- package/dist/showcase/assets/{form-field-Cxm4APa9.js → form-field-B5g_5Zjm.js} +1 -1
- package/dist/showcase/assets/{format-bDaUGCSP.js → format-DrTwpH65.js} +1 -1
- package/dist/showcase/assets/{forms-BrVikK1p.js → forms-BukyUSKs.js} +9 -9
- package/dist/showcase/assets/{frame-CkLEABTd.js → frame-BNKhZVlb.js} +4 -4
- package/dist/showcase/assets/getPseudoElementBounds-DwyQgIj-.js +1 -0
- package/dist/showcase/assets/{gift-Bx8IO1FQ.js → gift-CtM--bDo.js} +1 -1
- package/dist/showcase/assets/{giftcard-cards-CZTXBjv0.js → giftcard-cards-imm4Br0H.js} +2 -2
- package/dist/showcase/assets/{git-branch-D9jt-u1q.js → git-branch-Dl3AzbqP.js} +1 -1
- package/dist/showcase/assets/{global-search-D9XJ747r.js → global-search-Bhl7z_vN.js} +1 -1
- package/dist/showcase/assets/{global-search-C2R_3Pb3.js → global-search-C4yaPFSW.js} +1 -1
- package/dist/showcase/assets/{globe-BJHI134i.js → globe-BCikLfKc.js} +1 -1
- package/dist/showcase/assets/{gradient-card-CV8w2JG5.js → gradient-card-Dh_5ZYv0.js} +2 -2
- package/dist/showcase/assets/{hash-CtBGoIvf.js → hash-C8m0EECO.js} +1 -1
- package/dist/showcase/assets/{header-B3FSlVv4.js → header-BXjw7Lm_.js} +1 -1
- package/dist/showcase/assets/header-notifications-CShSQ8kR.js +1 -0
- package/dist/showcase/assets/{heart-BWZYF4xJ.js → heart-BJVBFZ-j.js} +1 -1
- package/dist/showcase/assets/{house-CAQOnHLO.js → house-C3fXPhlL.js} +1 -1
- package/dist/showcase/assets/{icon-badge-CxvxB8Vd.js → icon-badge-dwVx3Hxf.js} +1 -1
- package/dist/showcase/assets/{image-Byz-p7hT.js → image-gc4qX_7C.js} +1 -1
- package/dist/showcase/assets/{inbox-D4UE_W9O.js → inbox-C0GJ1KEC.js} +1 -1
- package/dist/showcase/assets/{index-Cz4UGUT2.js → index-BQIv1ffM.js} +2 -2
- package/dist/showcase/assets/index-DN3tqopz.css +2 -0
- package/dist/showcase/assets/inertValue-DeVQ2cCe.js +1 -0
- package/dist/showcase/assets/{info-DFu8OfxV.js → info-BimmreJ-.js} +1 -1
- package/dist/showcase/assets/{inline-stat-DqI70yoJ.js → inline-stat-DcNP6bcO.js} +1 -1
- package/dist/showcase/assets/input-DJAWOJEx.js +1 -0
- package/dist/showcase/assets/{input-BPDdWrB1.js → input-NIgvB9CZ.js} +1 -1
- package/dist/showcase/assets/{input-group-BYZYeQ7j.js → input-group-BmqJ20bA.js} +1 -1
- package/dist/showcase/assets/{input-group-YIWmmLJ6.js → input-group-gOUubhee.js} +1 -1
- package/dist/showcase/assets/inputs-Dk8YOVkI.js +155 -0
- package/dist/showcase/assets/{invoice-header-B00JrPAb.js → invoice-header-BnNpWej2.js} +2 -2
- package/dist/showcase/assets/{invoice-items-CUt5D3Wz.js → invoice-items-BdPmW10L.js} +2 -2
- package/dist/showcase/assets/{invoice-mini-CRoaQ9g9.js → invoice-mini-CbSYyHIb.js} +2 -2
- package/dist/showcase/assets/{invoice-table-DYNnDTQl.js → invoice-table-DjnWG3KF.js} +2 -2
- package/dist/showcase/assets/isSameDay-B2KDl_YX.js +1 -0
- package/dist/showcase/assets/isToday-CXNS7ELW.js +1 -0
- package/dist/showcase/assets/{italic-AbetEb3d.js → italic-BRS-PpYL.js} +1 -1
- package/dist/showcase/assets/{item-BJOYyqeO.js → item--6Hx9AXZ.js} +1 -1
- package/dist/showcase/assets/{item-BGA6_5Zh.js → item-BszVRzXj.js} +2 -2
- package/dist/showcase/assets/{item-CbiuwbAN.js → item-YF6wMI9W.js} +1 -1
- package/dist/showcase/assets/{kanban-Br-Yz002.js → kanban-BWBbWLVe.js} +2 -2
- package/dist/showcase/assets/{label-BlCKlLE-.js → label-BgpcD3V6.js} +1 -1
- package/dist/showcase/assets/{languages-CKcUvHnt.js → languages-DDgmIDFe.js} +1 -1
- package/dist/showcase/assets/{layers-CakZLRSD.js → layers-nkkXRmvA.js} +1 -1
- package/dist/showcase/assets/{layout-app-shell-ukDXqPxC.js → layout-app-shell-D3MbPoGC.js} +2 -2
- package/dist/showcase/assets/{layout-auth-BFza65L3.js → layout-auth-DIeRtG0B.js} +4 -4
- package/dist/showcase/assets/{layout-containers-v1jG_b7r.js → layout-containers-Dc3-IAgV.js} +2 -2
- package/dist/showcase/assets/{layout-header-CqBf9wjY.js → layout-header-Cg6GfMST.js} +2 -2
- package/dist/showcase/assets/{layout-page-WJcljCac.js → layout-page-DojPq8S6.js} +2 -2
- package/dist/showcase/assets/layout-primitives-JBSQS72B.js +34 -0
- package/dist/showcase/assets/{layout-sidebar-DL6TLuQC.js → layout-sidebar-C6jUJRhx.js} +2 -2
- package/dist/showcase/assets/{layout-users-B8qpsvV9.js → layout-users-uzPscfo7.js} +2 -2
- package/dist/showcase/assets/{layout-workspace-iOKZ4-9K.js → layout-workspace-B3leaOKl.js} +2 -2
- package/dist/showcase/assets/{lock-Dn4-vUBz.js → lock-DLIcOBUd.js} +1 -1
- package/dist/showcase/assets/{lock-keyhole-M6KZ_7RC.js → lock-keyhole-DY6aV7Mq.js} +1 -1
- package/dist/showcase/assets/{mail-w1nhszbW.js → mail-AES_tOd2.js} +1 -1
- package/dist/showcase/assets/{mail-check-DXqQwivW.js → mail-check-dJTzg2bD.js} +1 -1
- package/dist/showcase/assets/{map-CquesVXo.js → map-CZ2l0iGH.js} +1 -1
- package/dist/showcase/assets/{map-pin-DUl-Lt6t.js → map-pin-0O7GD5Dz.js} +1 -1
- package/dist/showcase/assets/{media-library-CCJBQRPu.js → media-library-CRllxSGQ.js} +3 -3
- package/dist/showcase/assets/mention-inline-suggestions-Dx2Z1GHF.js +1 -0
- package/dist/showcase/assets/{mentions-Ea4pSJqG.js → mentions-CDqqGCE4.js} +2 -2
- package/dist/showcase/assets/menus-CDgE79I5.js +165 -0
- package/dist/showcase/assets/{message-square-B0RnrJV6.js → message-square-CBNI_sf8.js} +1 -1
- package/dist/showcase/assets/{metadata-list-fm8e58ID.js → metadata-list-BoEVt7cX.js} +1 -1
- package/dist/showcase/assets/{metadata-list-DkN9yfTj.js → metadata-list-NtWuY9W8.js} +4 -4
- package/dist/showcase/assets/{metric-guQTLTAa.js → metric-Bx_LWobe.js} +1 -1
- package/dist/showcase/assets/{metric-bar-BydkmggA.js → metric-bar-BldYHNLQ.js} +1 -1
- package/dist/showcase/assets/{metric-grid-BKjrYpt9.js → metric-grid-BDw7w7d2.js} +1 -1
- package/dist/showcase/assets/{metric-trend-chip-DehaJ3nC.js → metric-trend-chip-lSjDkUEo.js} +1 -1
- package/dist/showcase/assets/{metrics-analytics-bar-YjwFT4ae.js → metrics-analytics-bar-CCFhTmQZ.js} +1 -1
- package/dist/showcase/assets/{metrics-analytics-cards-B6DspERM.js → metrics-analytics-cards-C1AjZqJU.js} +2 -2
- package/dist/showcase/assets/{metrics-comparison-Nru5wypZ.js → metrics-comparison-vEE6BtuW.js} +2 -2
- package/dist/showcase/assets/{metrics-heatmap-CcumN0Or.js → metrics-heatmap-DKkz8ibX.js} +2 -2
- package/dist/showcase/assets/{metrics-inline-badge-2WB7w9mz.js → metrics-inline-badge-CZmVnReB.js} +2 -2
- package/dist/showcase/assets/{metrics-kpi-row-jU3hsB3C.js → metrics-kpi-row-s2FYIYB1.js} +2 -2
- package/dist/showcase/assets/{metrics-micro-grid-CaJ99RXL.js → metrics-micro-grid-DDlCl9Ep.js} +2 -2
- package/dist/showcase/assets/{metrics-overview-Sa7z6jct.js → metrics-overview-BgliK2L1.js} +2 -2
- package/dist/showcase/assets/{metrics-stat-cards-PLvMkA0M.js → metrics-stat-cards-Cn5sRZsB.js} +1 -1
- package/dist/showcase/assets/minus-DByvcC8K.js +1 -0
- package/dist/showcase/assets/{money-display-23DKz-jK.js → money-display-DG4IaEaA.js} +1 -1
- package/dist/showcase/assets/{month-year-picker-oEoInnKW.js → month-year-picker-CVurc9L7.js} +1 -1
- package/dist/showcase/assets/{navigation-Dufz6qnF.js → navigation-CHYgQTsY.js} +2 -2
- package/dist/showcase/assets/{navigation-Ds60FMAs.js → navigation-C_6gS4FA.js} +3 -3
- package/dist/showcase/assets/{navigation-extras-DKufT82I.js → navigation-extras-CflOar2P.js} +2 -2
- package/dist/showcase/assets/{onboarding-checklist-DSkS2ktA.js → onboarding-checklist-CYiciKwv.js} +2 -2
- package/dist/showcase/assets/{overlays-BptoR4sm.js → overlays-HrH2wdTK.js} +2 -2
- package/dist/showcase/assets/overlays-cp7VMq3b.js +159 -0
- package/dist/showcase/assets/{package-0ZgMoFm1.js → package-CjcwDJKu.js} +1 -1
- package/dist/showcase/assets/{package-check-CT0dhSM8.js → package-check-CCH3ax-x.js} +1 -1
- package/dist/showcase/assets/{page-action-button-DrHJKFbp.js → page-action-button-Cn5j2_EP.js} +1 -1
- package/dist/showcase/assets/page-header-CkvCF1MQ.js +1 -0
- package/dist/showcase/assets/{pagination-CxuA2zkE.js → pagination-DM5QGPo2.js} +1 -1
- package/dist/showcase/assets/{pagination-DsPLs2Tx.js → pagination-DUzHnhJ6.js} +1 -1
- package/dist/showcase/assets/{paperclip-CDMZ_JAo.js → paperclip-DoqDQQVa.js} +1 -1
- package/dist/showcase/assets/{password-input-BVaUPw7a.js → password-input-CfS4sfCl.js} +1 -1
- package/dist/showcase/assets/{pencil-BouoJ5x7.js → pencil-C2OfFQMj.js} +1 -1
- package/dist/showcase/assets/{phone-DCNFH5yg.js → phone-CLvml_XI.js} +1 -1
- package/dist/showcase/assets/plus-D5swsZCz.js +1 -0
- package/dist/showcase/assets/{popover-menu-CuA8fb7i.js → popover-menu-Bu9q96nE.js} +1 -1
- package/dist/showcase/assets/{popover-CECpX3MQ.js → popover-nCGXR4Yd.js} +1 -1
- package/dist/showcase/assets/popover-xC8qczvP.js +1 -0
- package/dist/showcase/assets/{products-BJHNTW62.js → products-BbSzEFvw.js} +2 -2
- package/dist/showcase/assets/progress-DYfoy7pk.js +1 -0
- package/dist/showcase/assets/{progress-tpxRVOkp.js → progress-ENNwjW3X.js} +1 -1
- package/dist/showcase/assets/{props-table-BR-KjRNe.js → props-table-2pIZzGC-.js} +1 -1
- package/dist/showcase/assets/{props.generated-qdUud3iu.json → props.generated-DggzG-JL.json} +3 -3
- package/dist/showcase/assets/{quote-CN-Sodsj.js → quote-BO1bufuX.js} +1 -1
- package/dist/showcase/assets/{receipt-T8B9lscp.js → receipt-kIVP3kxJ.js} +1 -1
- package/dist/showcase/assets/{receipt-text-CeBruM29.js → receipt-text-BDQIvI4l.js} +1 -1
- package/dist/showcase/assets/{refresh-cw-DnxNcOMm.js → refresh-cw-UdL93poQ.js} +1 -1
- package/dist/showcase/assets/resolveAriaLabelledBy-iFo8AzEr.js +1 -0
- package/dist/showcase/assets/resolveValueLabel-DfiI3G4i.js +1 -0
- package/dist/showcase/assets/{rich-text-editor-Bha0lSKT.js → rich-text-editor-CNtfwLC2.js} +1 -1
- package/dist/showcase/assets/{rich-text-editor-NeOPmoZF.js → rich-text-editor-DB4QWptQ.js} +3 -3
- package/dist/showcase/assets/rotate-ccw-DQPoMfMY.js +1 -0
- package/dist/showcase/assets/{save-AT8JlA8E.js → save-Cd0ZM40i.js} +1 -1
- package/dist/showcase/assets/{schema-form-BpkVygoO.js → schema-form-Cyc6vCVO.js} +2 -2
- package/dist/showcase/assets/{scroll-area-B0wmaMAD.js → scroll-area-B5NZsDdi.js} +1 -1
- package/dist/showcase/assets/scroll-area-BvTq99pz.js +1 -0
- package/dist/showcase/assets/{select-t6dryszf.js → select-BRbyPtx8.js} +1 -1
- package/dist/showcase/assets/select-Dymyvyh6.js +1 -0
- package/dist/showcase/assets/{send-BzGRF4t-.js → send-BWzI7mwi.js} +1 -1
- package/dist/showcase/assets/{separator-BjGdXNcn.js → separator-BsYPzBlF.js} +1 -1
- package/dist/showcase/assets/{separator-DbiGagrP.js → separator-Osp0OJ78.js} +1 -1
- package/dist/showcase/assets/{settings-BSRT_96A.js → settings-DRmWJILI.js} +1 -1
- package/dist/showcase/assets/{sheet-CEuKOBxr.js → sheet-BKsjMYMo.js} +1 -1
- package/dist/showcase/assets/{shield-CcR2q5u_.js → shield-D1EaWJMG.js} +1 -1
- package/dist/showcase/assets/{shield-alert-DhbgXV1X.js → shield-alert-DWsbR2jn.js} +1 -1
- package/dist/showcase/assets/{shield-check-CRbBJXw2.js → shield-check-DUTAPADm.js} +1 -1
- package/dist/showcase/assets/{shopping-bag-B5BzpLV5.js → shopping-bag-XmeqUqk9.js} +1 -1
- package/dist/showcase/assets/sidebar-B5uO9sUB.js +1 -0
- package/dist/showcase/assets/{sidebar.context-BCb20eIt.js → sidebar.context-CRjgeYJL.js} +1 -1
- package/dist/showcase/assets/{skeleton-BeVdks4r.js → skeleton-BtiPkfxB.js} +1 -1
- package/dist/showcase/assets/{skeleton-DijlT51X.js → skeleton-DbybIpkV.js} +1 -1
- package/dist/showcase/assets/slider-vuwVVBby.js +1 -0
- package/dist/showcase/assets/{sliders-horizontal-C8RwUn0S.js → sliders-horizontal-BE_cwUn0.js} +1 -1
- package/dist/showcase/assets/{smart-card-B4P_C0nk.js → smart-card-Dhu_1A_u.js} +1 -1
- package/dist/showcase/assets/{sonner-CLYYRmEW.js → sonner-DZB-G4q5.js} +2 -2
- package/dist/showcase/assets/{sortable.esm-CoekVJlU.js → sortable.esm-YOwRw8Hr.js} +1 -1
- package/dist/showcase/assets/{sparkles-DFJmoAFP.js → sparkles-N8rqKQez.js} +1 -1
- package/dist/showcase/assets/{spinner-DMKANM9S.js → spinner-B5zKCNXu.js} +2 -2
- package/dist/showcase/assets/{spinner-WEI7TMVk.js → spinner-BOjRziLu.js} +1 -1
- package/dist/showcase/assets/{spinner-CeQHboSs.js → spinner-PIr8y8av.js} +1 -1
- package/dist/showcase/assets/{square-pen-CfvmmXYo.js → square-pen-ImRrVwT8.js} +1 -1
- package/dist/showcase/assets/{stacked-avatars-CcCnnUrA.js → stacked-avatars-DnIAc098.js} +1 -1
- package/dist/showcase/assets/{star-DK5onZCp.js → star-BaV-UTPq.js} +1 -1
- package/dist/showcase/assets/startOfDay-CtTeiGV0.js +1 -0
- package/dist/showcase/assets/stringifyLocale-CkHjdQTJ.js +1 -0
- package/dist/showcase/assets/{styles-BStlbPXe.js → styles-Bv0pDLVi.js} +1 -1
- package/dist/showcase/assets/{suggestions-Cd_XUmz3.js → suggestions-QnLPdgnG.js} +2 -2
- package/dist/showcase/assets/switch-DwAS_TXx.js +1 -0
- package/dist/showcase/assets/{switch-arjWj-n7.js → switch-xzxCDtyg.js} +1 -1
- package/dist/showcase/assets/{sync-DorQdMfx.js → sync-LeYxWAap.js} +2 -2
- package/dist/showcase/assets/{table-ClYkDRAk.js → table-BbEFanNu.js} +1 -1
- package/dist/showcase/assets/{table-D9q0odD8.js → table-CVVHBty6.js} +5 -5
- package/dist/showcase/assets/{table-actions-UJbkGb44.js → table-actions-DvI9U67L.js} +1 -1
- package/dist/showcase/assets/tabs-CLcyGwLd.js +1 -0
- package/dist/showcase/assets/{tabs-BENBPFif.js → tabs-ck8y1Bjr.js} +1 -1
- package/dist/showcase/assets/{tags-input-DRlg3zQH.js → tags-input-DmBY2CKI.js} +1 -1
- package/dist/showcase/assets/{text-button-CQvP6Kic.js → text-button-C54O1rZM.js} +1 -1
- package/dist/showcase/assets/{text-link-DT-nOORV.js → text-link-9_mZpq_f.js} +1 -1
- package/dist/showcase/assets/{textarea-BGHGV17m.js → textarea-CHvnWHWH.js} +1 -1
- package/dist/showcase/assets/{textarea-pstF1OBP.js → textarea-jexcMklP.js} +1 -1
- package/dist/showcase/assets/{timelines-D8y-IyxW.js → timelines-uvFVjEQv.js} +2 -2
- package/dist/showcase/assets/toggle-group-B3fORi8i.js +1 -0
- package/dist/showcase/assets/{toggles-dhLpAHSR.js → toggles-Cox6Yk2k.js} +1 -1
- package/dist/showcase/assets/{toggles-group-BJ5Jio2p.js → toggles-group-CSvSPqCB.js} +1 -1
- package/dist/showcase/assets/{trash-2-OsaEm8cc.js → trash-2-CE9bDw49.js} +1 -1
- package/dist/showcase/assets/trending-up-0iJl0XvC.js +1 -0
- package/dist/showcase/assets/{truck-CvvBxBeB.js → truck-DlhOPoCD.js} +1 -1
- package/dist/showcase/assets/{typography-D_99bjSh.js → typography-BotOITw4.js} +17 -17
- package/dist/showcase/assets/{ui-badge-C1bu7wRu.js → ui-badge-hfmO1K3-.js} +2 -2
- package/dist/showcase/assets/{ui-card-Ct1FFUxv.js → ui-card-Aigzxhn3.js} +1 -1
- package/dist/showcase/assets/{ui-table-Dxu9Jjq0.js → ui-table-CKif9sNO.js} +1 -1
- package/dist/showcase/assets/{upload-tray-BeOBVU1z.js → upload-tray-BnKDNrw9.js} +3 -3
- package/dist/showcase/assets/{use-layout-link-BK_oEoBg.js → use-layout-link-BQ6Y9z__.js} +1 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-CP1vkwD7.js +1 -0
- package/dist/showcase/assets/useAriaLabelledBy-J_Rvjwx3.js +1 -0
- package/dist/showcase/assets/useCollapsiblePanel-BwUOowW2.js +1 -0
- package/dist/showcase/assets/useCompositeItem-D3XOIML-.js +1 -0
- package/dist/showcase/assets/useCompositeListItem-BWfShNPP.js +1 -0
- package/dist/showcase/assets/useControlled-BF8maje6.js +1 -0
- package/dist/showcase/assets/useLabelableId-DxorZ3YW.js +1 -0
- package/dist/showcase/assets/useOpenInteractionType-DLUX6CcH.js +1 -0
- package/dist/showcase/assets/useRender-B9zzqKA1.js +1 -0
- package/dist/showcase/assets/useTriggerFocusGuards-BSvL8pKg.js +1 -0
- package/dist/showcase/assets/useValueChanged-DSoTBFAJ.js +1 -0
- package/dist/showcase/assets/user-BZog6aIh.js +1 -0
- package/dist/showcase/assets/{user-plus-MMxrhI4h.js → user-plus-CPxlPoxf.js} +1 -1
- package/dist/showcase/assets/{users-ERTaffcv.js → users-BgXAp2UO.js} +1 -1
- package/dist/showcase/assets/valueToPercent-gleKSaFe.js +1 -0
- package/dist/showcase/assets/{vendor-profile-BAwCE0wP.js → vendor-profile-BLYiDIrO.js} +2 -2
- package/dist/showcase/assets/{video-DJm0ubTE.js → video-YBnCbmIb.js} +1 -1
- package/dist/showcase/assets/{wrench-gaXnvr_b.js → wrench-BFTavxzg.js} +1 -1
- package/dist/showcase/assets/x-D8UN9pOu.js +1 -0
- package/dist/showcase/assets/{zap-DHBVTfYZ.js → zap-DIJUAJEb.js} +1 -1
- package/dist/showcase/index.html +2 -2
- package/dist/style.css +1 -1
- package/package.json +5 -2
- package/dist/_shared/header-BUAddfdE.js.map +0 -1
- package/dist/_shared/header-BnxWOiNm.cjs +0 -2
- package/dist/_shared/header-BnxWOiNm.cjs.map +0 -1
- package/dist/_shared/sidebar-BML5ZZ5s.js.map +0 -1
- package/dist/_shared/sidebar-C89O5ho_.cjs +0 -2
- package/dist/_shared/sidebar-C89O5ho_.cjs.map +0 -1
- package/dist/showcase/assets/CSPContext-ImKusJJ_.js +0 -1
- package/dist/showcase/assets/CompositeItem-DleE4kTc.js +0 -1
- package/dist/showcase/assets/CompositeRoot-BbNkvtLz.js +0 -1
- package/dist/showcase/assets/DialogTrigger-C0DB0bXw.js +0 -1
- package/dist/showcase/assets/FieldItemContext-CFTR-INZ.js +0 -1
- package/dist/showcase/assets/FormContext-lmjYAh4E.js +0 -1
- package/dist/showcase/assets/LabelableContext-CDv6gSfU.js +0 -1
- package/dist/showcase/assets/RadioGroup-C-0MNAYY.js +0 -1
- package/dist/showcase/assets/Separator-KsPLUEno.js +0 -1
- package/dist/showcase/assets/ToolbarRootContext-AV8xAl2m.js +0 -1
- package/dist/showcase/assets/accordion-variants-CVT_62VO.js +0 -1
- package/dist/showcase/assets/app-sidebar-DixqrLf2.js +0 -1
- package/dist/showcase/assets/arrow-down-CYh_aUsd.js +0 -1
- package/dist/showcase/assets/arrow-left-pYYsNkZE.js +0 -1
- package/dist/showcase/assets/arrow-right-Bf1Tl6D5.js +0 -1
- package/dist/showcase/assets/arrow-up-BhmQRZs9.js +0 -1
- package/dist/showcase/assets/arrow-up-right-CuAsO3-r.js +0 -1
- package/dist/showcase/assets/avatar-5EFTnHEG.js +0 -1
- package/dist/showcase/assets/checkbox-fwuAAaUZ.js +0 -1
- package/dist/showcase/assets/chevron-down-CSn8HCwf.js +0 -1
- package/dist/showcase/assets/chevron-left-Ddj6-KOu.js +0 -1
- package/dist/showcase/assets/chevron-right-d-umkBru.js +0 -1
- package/dist/showcase/assets/chevron-up-CeFY6O0I.js +0 -1
- package/dist/showcase/assets/chevrons-up-down-Ck3rUZtc.js +0 -1
- package/dist/showcase/assets/circle-Dy08kACD.js +0 -1
- package/dist/showcase/assets/circle-check-TT7cFQrr.js +0 -1
- package/dist/showcase/assets/circle-check-big-4RnJfeaC.js +0 -1
- package/dist/showcase/assets/circle-dot-CvoDXS-W.js +0 -1
- package/dist/showcase/assets/clock-3-DDEsD4Tb.js +0 -1
- package/dist/showcase/assets/clock-DuBsP5t3.js +0 -1
- package/dist/showcase/assets/collapsible-DagkA3To.js +0 -1
- package/dist/showcase/assets/command-BtaMPVtf.js +0 -45
- package/dist/showcase/assets/comment-item-Ctcpx1GX.js +0 -1
- package/dist/showcase/assets/display-DTaQWVJp.js +0 -403
- package/dist/showcase/assets/dropdown-menu-bPWrLPgm.js +0 -1
- package/dist/showcase/assets/enhanced-combobox-Cs_-wq9p.js +0 -1
- package/dist/showcase/assets/example-BIrQab7K.js +0 -1
- package/dist/showcase/assets/feature-announcement-0dOcSH7F.js +0 -34
- package/dist/showcase/assets/getPseudoElementBounds-Bznj386s.js +0 -1
- package/dist/showcase/assets/header-notifications-3VH9lzzJ.js +0 -1
- package/dist/showcase/assets/index-ADfexGMA.css +0 -2
- package/dist/showcase/assets/inertValue-BVXUUuS4.js +0 -1
- package/dist/showcase/assets/input-BzafMIDj.js +0 -1
- package/dist/showcase/assets/inputs-DjzrYJdb.js +0 -49
- package/dist/showcase/assets/isSameDay-DVNkwpSk.js +0 -1
- package/dist/showcase/assets/isToday-DZ1HTCty.js +0 -1
- package/dist/showcase/assets/mention-inline-suggestions-DyW6IwL8.js +0 -1
- package/dist/showcase/assets/menus-CJjtE4fD.js +0 -89
- package/dist/showcase/assets/minus-OyRBql2C.js +0 -1
- package/dist/showcase/assets/overlays-CVGJ_FEg.js +0 -88
- package/dist/showcase/assets/page-header-CikNDnqI.js +0 -1
- package/dist/showcase/assets/plus-DkHZm34I.js +0 -1
- package/dist/showcase/assets/popover-BSB11Qjp.js +0 -1
- package/dist/showcase/assets/progress-DGvRQyPS.js +0 -1
- package/dist/showcase/assets/resolveAriaLabelledBy-B2ZzrlGb.js +0 -1
- package/dist/showcase/assets/resolveValueLabel-CGuVi0Dj.js +0 -1
- package/dist/showcase/assets/rotate-ccw-7aUlKQpX.js +0 -1
- package/dist/showcase/assets/scroll-area-CgXTHlpJ.js +0 -1
- package/dist/showcase/assets/select-BG_Iad8E.js +0 -1
- package/dist/showcase/assets/sidebar--2nHUTn3.js +0 -1
- package/dist/showcase/assets/slider-Cp4m3NTK.js +0 -1
- package/dist/showcase/assets/startOfDay-BuizEr24.js +0 -1
- package/dist/showcase/assets/switch-5f1vwEZ7.js +0 -1
- package/dist/showcase/assets/tabs-ePpje8sU.js +0 -1
- package/dist/showcase/assets/toggle-group-BVyFo04r.js +0 -1
- package/dist/showcase/assets/trending-up-HlQQXTth.js +0 -1
- package/dist/showcase/assets/useAnchoredPopupScrollLock-DLXArfPo.js +0 -1
- package/dist/showcase/assets/useAriaLabelledBy-etINba8U.js +0 -1
- package/dist/showcase/assets/useCollapsiblePanel-BNe9r1t_.js +0 -1
- package/dist/showcase/assets/useCompositeItem-CvG1CBEV.js +0 -1
- package/dist/showcase/assets/useCompositeListItem-CcY0U1bY.js +0 -1
- package/dist/showcase/assets/useControlled-Cpg8gDqb.js +0 -1
- package/dist/showcase/assets/useLabelableId-Czdg4nY8.js +0 -1
- package/dist/showcase/assets/useOpenInteractionType-eyZ6twES.js +0 -1
- package/dist/showcase/assets/useRender-BAZlIYnj.js +0 -1
- package/dist/showcase/assets/useTriggerFocusGuards-C2I8g7TT.js +0 -1
- package/dist/showcase/assets/useValueChanged-Bz3WRSDy.js +0 -1
- package/dist/showcase/assets/user-Bqmz8M16.js +0 -1
- package/dist/showcase/assets/valueToPercent-B5BHWU68.js +0 -1
- package/dist/showcase/assets/x-BqJnRkKw.js +0 -1
|
@@ -11,7 +11,7 @@ This is a reusable component library. Code lives in many projects via this packa
|
|
|
11
11
|
|
|
12
12
|
## Goal & target distribution
|
|
13
13
|
|
|
14
|
-
This codebase is on a path to becoming a **standalone, publishable npm package** that
|
|
14
|
+
This codebase is on a path to becoming a **standalone, publishable npm package** that keeps shadcn primitives as an internal source layer and publicly re-exports the `base/` wrappers plus the `composed/`/`features/` layers — centralized so every consuming app upgrades from one place.
|
|
15
15
|
|
|
16
16
|
That goal drives every other rule:
|
|
17
17
|
- Components must be **framework-agnostic** by default (Inertia, Next.js, plain Vite, Remix, …).
|
|
@@ -129,6 +129,11 @@ The bare `@/components/ui/<primitive>` path is allowed **only** for base wrapper
|
|
|
129
129
|
|
|
130
130
|
Touching shadcn primitives directly breaks the abstraction layer and means the next shadcn upgrade overwrites your work.
|
|
131
131
|
|
|
132
|
+
Raw shadcn primitives are not public package subpaths. Do not document
|
|
133
|
+
`admin-ui-starter-kit/ui/<primitive>` imports unless the package export map is
|
|
134
|
+
intentionally changed in the same work; today consumers use the matching
|
|
135
|
+
`base/`, `layout/`, `composed/`, or `features/` entrypoint.
|
|
136
|
+
|
|
132
137
|
**Package-owned non-shadcn "primitives".** A few units of UI in this library are large, package-owned, opinionated implementations (Mapbox/Leaflet adapter, Google Places autocomplete) that are **not** shadcn primitives. They live in `src/components/base/` directly (e.g. `base/map/map.tsx`, `base/map/place-autocomplete.tsx`), not in `ui/`. They follow the same framework-agnostic / token-driven / strings-overridable rules as everything else in `base/`. Don't recreate them in `ui/` — `ui/` is shadcn-only.
|
|
133
138
|
|
|
134
139
|
## 2. The component layer order is sacred
|
|
@@ -780,6 +785,7 @@ Published package imports use exact subpaths, not broad aggregates:
|
|
|
780
785
|
- ❌ `admin-ui-starter-kit/base`
|
|
781
786
|
- ❌ `admin-ui-starter-kit/composed`
|
|
782
787
|
- ❌ `admin-ui-starter-kit/features`
|
|
788
|
+
- ❌ `admin-ui-starter-kit/ui/tabs`
|
|
783
789
|
- ❌ `admin-ui-starter-kit/base/display/metadata/metadata-list`
|
|
784
790
|
|
|
785
791
|
The root package entrypoint (`admin-ui-starter-kit`) must stay optional-peer-free:
|
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
Open this when adding a new wrapper around an `@/components/ui/<primitive>` shadcn component.
|
|
4
4
|
|
|
5
|
+
## Adding an internal shadcn primitive
|
|
6
|
+
|
|
7
|
+
Install the raw primitive with:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx shadcn@latest add <primitive>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The generated file lands in `src/components/ui/<primitive>.tsx`. Treat that
|
|
14
|
+
file as shadcn-managed output: do not restyle it to match the library voice,
|
|
15
|
+
and do not expose it as `admin-ui-starter-kit/ui/<primitive>`. Consumers get a
|
|
16
|
+
public API only after you add or update a `base/`, `layout/`, `composed/`, or
|
|
17
|
+
`features/` wrapper and wire the exact package export.
|
|
18
|
+
|
|
5
19
|
## When to wrap
|
|
6
20
|
|
|
7
21
|
Wrap a shadcn primitive in `base/` when **any** of these are true:
|
|
@@ -109,7 +123,7 @@ Before adding a new wrapper, check if one exists:
|
|
|
109
123
|
| `base/command/` | `ui/command` |
|
|
110
124
|
| `base/popover/` | `ui/popover` |
|
|
111
125
|
| `base/popover-menu/` | `popover` + `command` |
|
|
112
|
-
| `base/navigation/` | `ui/dropdown-menu`, `ui/breadcrumb`, segmented `ui/tabs
|
|
126
|
+
| `base/navigation/` | `ui/dropdown-menu`, `ui/breadcrumb`, segmented `ui/tabs` |
|
|
113
127
|
| `base/forms/` | `ui/input`, `ui/select`, `ui/textarea`, `ui/checkbox`, `ui/switch`, `ui/radio-group`, `ui/slider` |
|
|
114
128
|
| `base/date-pickers/` | `ui/calendar` |
|
|
115
129
|
| `base/toaster/` | `ui/sonner` |
|
|
@@ -117,11 +131,17 @@ Before adding a new wrapper, check if one exists:
|
|
|
117
131
|
| `base/table/` | `ui/table` |
|
|
118
132
|
| `base/event-calendar/` | `ui/calendar` (richer compositions) |
|
|
119
133
|
| `base/map/` | `ui/map` |
|
|
134
|
+
| `base/carousel/` | `ui/carousel` |
|
|
135
|
+
| `base/sheet/` | `ui/sheet` |
|
|
136
|
+
| `base/sidebar/` | `ui/sidebar` |
|
|
120
137
|
|
|
121
138
|
Currently NOT wrapped (consider adding when you encounter inlined usage in 2+ places):
|
|
122
|
-
- `ui/
|
|
123
|
-
- `ui/
|
|
124
|
-
|
|
139
|
+
- `ui/alert-dialog`, `ui/drawer` — prefer `features/overlays` for the public API.
|
|
140
|
+
- `ui/aspect-ratio`, `ui/direction`, `ui/field`, `ui/input-otp`, `ui/kbd`,
|
|
141
|
+
`ui/label`, `ui/menubar`, `ui/native-select`, `ui/navigation-menu`,
|
|
142
|
+
`ui/resizable` — installed as internal shadcn primitives; add a wrapper
|
|
143
|
+
before using them from non-`ui` layers.
|
|
144
|
+
- `ui/hover-card`, `ui/context-menu`, `ui/collapsible` — only used by other wrappers internally.
|
|
125
145
|
|
|
126
146
|
## Don'ts
|
|
127
147
|
|
|
@@ -89,9 +89,10 @@
|
|
|
89
89
|
{"id":"ui/collapsible","title":"UI · Collapsible","description":"Headless show/hide region.","layer":"ui","family":"Layout","tags":["ui","layout","collapsible","headless","show","hide","region"],"sourcePath":"src/components/ui/collapsible","publicImport":"","examples":["Default"],"doc":"./ui__collapsible.md"},
|
|
90
90
|
{"id":"ui/empty-item","title":"UI · Empty + Item","description":"Empty state and Item list-row primitives.","layer":"ui","family":"Data display","tags":["ui","data","display","empty","item","state","list"],"sourcePath":"src/components/ui","publicImport":"","examples":["EmptyState","ItemsList"],"doc":"./ui__empty-item.md"},
|
|
91
91
|
{"id":"ui/input-group","title":"UI · Input group","description":"Input with leading / trailing add-ons.","layer":"ui","family":"Forms","tags":["ui","forms","input-group","input","group","leading","trailing"],"sourcePath":"src/components/ui/input-group","publicImport":"","examples":["LeadingIcon","TrailingAddon","StackedEmailPassword"],"doc":"./ui__input-group.md"},
|
|
92
|
-
{"id":"ui/inputs","title":"UI · Inputs","description":"Input, Textarea, Select primitives.","layer":"ui","family":"Forms","tags":["ui","forms","inputs","input","textarea","select"],"sourcePath":"src/components/ui","publicImport":"","examples":["InputExample","TextareaExample","SelectExample"],"doc":"./ui__inputs.md"},
|
|
93
|
-
{"id":"ui/
|
|
94
|
-
{"id":"ui/
|
|
92
|
+
{"id":"ui/inputs","title":"UI · Inputs","description":"Input, Textarea, Select, NativeSelect, InputOTP, Field, and Kbd primitives.","layer":"ui","family":"Forms","tags":["ui","forms","inputs","input","textarea","select"],"sourcePath":"src/components/ui","publicImport":"","examples":["InputExample","TextareaExample","SelectExample","NativeSelectExample","InputOTPExample","FieldExample","KbdExample"],"doc":"./ui__inputs.md"},
|
|
93
|
+
{"id":"ui/layout-primitives","title":"UI · Layout primitives","description":"AspectRatio and Resizable primitives.","layer":"ui","family":"Layout","tags":["ui","layout","primitives","aspectratio","resizable"],"sourcePath":"src/components/ui","publicImport":"","examples":["AspectRatioExample","ResizableExample"],"doc":"./ui__layout-primitives.md"},
|
|
94
|
+
{"id":"ui/menus","title":"UI · Menus","description":"DropdownMenu, Menubar, NavigationMenu, ContextMenu, and Command palette.","layer":"ui","family":"Overlays","tags":["ui","overlays","menus","dropdownmenu","menubar","navigationmenu"],"sourcePath":"src/components/ui","publicImport":"","examples":["DropdownMenuExample","MenubarExample","NavigationMenuExample","ContextMenuRightClick","CommandPalette"],"doc":"./ui__menus.md"},
|
|
95
|
+
{"id":"ui/overlays","title":"UI · Overlays","description":"Dialog, AlertDialog, Sheet, Drawer, Popover, Tooltip, and HoverCard.","layer":"ui","family":"Overlays","tags":["ui","overlays","dialog","alertdialog","sheet","drawer"],"sourcePath":"src/components/ui","publicImport":"","examples":["DialogExample","AlertDialogExample","SheetExample","DrawerExample","PopoverExample","TooltipExample","HoverCardExample"],"doc":"./ui__overlays.md"},
|
|
95
96
|
{"id":"ui/pagination","title":"UI · Pagination","description":"Manual composition of pagination controls.","layer":"ui","family":"Navigation","tags":["ui","navigation","pagination","manual","composition","controls"],"sourcePath":"src/components/ui/pagination","publicImport":"","examples":["Default"],"doc":"./ui__pagination.md"},
|
|
96
97
|
{"id":"ui/progress","title":"UI · Progress","description":"Linear progress bar at varying values.","layer":"ui","family":"Data display","tags":["ui","data","display","progress","linear","bar","varying","values"],"sourcePath":"src/components/ui/progress","publicImport":"","examples":["Values"],"doc":"./ui__progress.md"},
|
|
97
98
|
{"id":"ui/scroll-area","title":"UI · Scroll area","description":"Custom-styled scroll viewport.","layer":"ui","family":"Layout","tags":["ui","layout","scroll-area","scroll","area","custom","styled"],"sourcePath":"src/components/ui/scroll-area","publicImport":"","examples":["Vertical","Horizontal"],"doc":"./ui__scroll-area.md"},
|
|
@@ -111,9 +111,10 @@ Agents: prefer `INDEX.json` (structured) for discovery; this file is for humans.
|
|
|
111
111
|
- [UI · Collapsible](./ui__collapsible.md) — Headless show/hide region.
|
|
112
112
|
- [UI · Empty + Item](./ui__empty-item.md) — Empty state and Item list-row primitives.
|
|
113
113
|
- [UI · Input group](./ui__input-group.md) — Input with leading / trailing add-ons.
|
|
114
|
-
- [UI · Inputs](./ui__inputs.md) — Input, Textarea, Select primitives.
|
|
115
|
-
- [UI ·
|
|
116
|
-
- [UI ·
|
|
114
|
+
- [UI · Inputs](./ui__inputs.md) — Input, Textarea, Select, NativeSelect, InputOTP, Field, and Kbd primitives.
|
|
115
|
+
- [UI · Layout primitives](./ui__layout-primitives.md) — AspectRatio and Resizable primitives.
|
|
116
|
+
- [UI · Menus](./ui__menus.md) — DropdownMenu, Menubar, NavigationMenu, ContextMenu, and Command palette.
|
|
117
|
+
- [UI · Overlays](./ui__overlays.md) — Dialog, AlertDialog, Sheet, Drawer, Popover, Tooltip, and HoverCard.
|
|
117
118
|
- [UI · Pagination](./ui__pagination.md) — Manual composition of pagination controls.
|
|
118
119
|
- [UI · Progress](./ui__progress.md) — Linear progress bar at varying values.
|
|
119
120
|
- [UI · Scroll area](./ui__scroll-area.md) — Custom-styled scroll viewport.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: ui/inputs
|
|
3
3
|
title: "UI · Inputs"
|
|
4
|
-
description: "Input, Textarea, Select primitives."
|
|
4
|
+
description: "Input, Textarea, Select, NativeSelect, InputOTP, Field, and Kbd primitives."
|
|
5
5
|
layer: ui
|
|
6
6
|
family: "Forms"
|
|
7
7
|
sourcePath: src/components/ui
|
|
@@ -9,8 +9,16 @@ examples:
|
|
|
9
9
|
- InputExample
|
|
10
10
|
- TextareaExample
|
|
11
11
|
- SelectExample
|
|
12
|
+
- NativeSelectExample
|
|
13
|
+
- InputOTPExample
|
|
14
|
+
- FieldExample
|
|
15
|
+
- KbdExample
|
|
12
16
|
imports:
|
|
17
|
+
- @/components/ui/field
|
|
13
18
|
- @/components/ui/input
|
|
19
|
+
- @/components/ui/input-otp
|
|
20
|
+
- @/components/ui/kbd
|
|
21
|
+
- @/components/ui/native-select
|
|
14
22
|
- @/components/ui/select
|
|
15
23
|
- @/components/ui/textarea
|
|
16
24
|
tags:
|
|
@@ -24,7 +32,7 @@ tags:
|
|
|
24
32
|
|
|
25
33
|
# UI · Inputs
|
|
26
34
|
|
|
27
|
-
Input, Textarea, Select primitives.
|
|
35
|
+
Input, Textarea, Select, NativeSelect, InputOTP, Field, and Kbd primitives.
|
|
28
36
|
|
|
29
37
|
**Layer:** `ui`
|
|
30
38
|
**Source:** `src/components/ui`
|
|
@@ -33,7 +41,19 @@ Input, Textarea, Select primitives.
|
|
|
33
41
|
|
|
34
42
|
```tsx
|
|
35
43
|
import { useState } from 'react';
|
|
44
|
+
import {
|
|
45
|
+
Field,
|
|
46
|
+
FieldDescription,
|
|
47
|
+
FieldError,
|
|
48
|
+
FieldGroup,
|
|
49
|
+
FieldLabel,
|
|
50
|
+
FieldLegend,
|
|
51
|
+
FieldSet,
|
|
52
|
+
} from '@/components/ui/field';
|
|
36
53
|
import { Input } from '@/components/ui/input';
|
|
54
|
+
import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from '@/components/ui/input-otp';
|
|
55
|
+
import { Kbd, KbdGroup } from '@/components/ui/kbd';
|
|
56
|
+
import { NativeSelect, NativeSelectOption } from '@/components/ui/native-select';
|
|
37
57
|
import { Textarea } from '@/components/ui/textarea';
|
|
38
58
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
|
39
59
|
import { Col } from '../../PreviewLayout';
|
|
@@ -43,11 +63,11 @@ export function InputExample() {
|
|
|
43
63
|
return (
|
|
44
64
|
<>
|
|
45
65
|
<Col>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
66
|
+
<Input placeholder="Type something…" value={text} onChange={(e) => setText(e.target.value)} />
|
|
67
|
+
<Input disabled placeholder="Disabled" />
|
|
68
|
+
<Input aria-invalid placeholder="Invalid state" />
|
|
69
|
+
<Input type="email" placeholder="email@example.com" />
|
|
70
|
+
</Col>
|
|
51
71
|
</>
|
|
52
72
|
);
|
|
53
73
|
}
|
|
@@ -66,17 +86,92 @@ export function SelectExample() {
|
|
|
66
86
|
return (
|
|
67
87
|
<>
|
|
68
88
|
<Select value={fruit} onValueChange={setFruit}>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
89
|
+
<SelectTrigger className="w-48">
|
|
90
|
+
<SelectValue placeholder="Pick a fruit" />
|
|
91
|
+
</SelectTrigger>
|
|
92
|
+
<SelectContent>
|
|
93
|
+
<SelectItem value="apple">Apple</SelectItem>
|
|
94
|
+
<SelectItem value="banana">Banana</SelectItem>
|
|
95
|
+
<SelectItem value="cherry">Cherry</SelectItem>
|
|
96
|
+
<SelectItem value="date">Date</SelectItem>
|
|
97
|
+
</SelectContent>
|
|
98
|
+
</Select>
|
|
99
|
+
<div className="mt-2 text-xs text-muted-foreground">value: {fruit || '—'}</div>
|
|
100
|
+
</>
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function NativeSelectExample() {
|
|
105
|
+
const [status, setStatus] = useState('open');
|
|
106
|
+
|
|
107
|
+
return (
|
|
108
|
+
<>
|
|
109
|
+
<NativeSelect
|
|
110
|
+
aria-label="Issue status"
|
|
111
|
+
value={status}
|
|
112
|
+
onChange={(event) => setStatus(event.target.value)}
|
|
113
|
+
>
|
|
114
|
+
<NativeSelectOption value="open">Open</NativeSelectOption>
|
|
115
|
+
<NativeSelectOption value="review">In review</NativeSelectOption>
|
|
116
|
+
<NativeSelectOption value="resolved">Resolved</NativeSelectOption>
|
|
117
|
+
</NativeSelect>
|
|
118
|
+
<div className="mt-2 text-xs text-muted-foreground">value: {status}</div>
|
|
119
|
+
</>
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export function InputOTPExample() {
|
|
124
|
+
const [code, setCode] = useState('');
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<>
|
|
128
|
+
<InputOTP maxLength={6} value={code} onChange={setCode}>
|
|
129
|
+
<InputOTPGroup>
|
|
130
|
+
<InputOTPSlot index={0} />
|
|
131
|
+
<InputOTPSlot index={1} />
|
|
132
|
+
<InputOTPSlot index={2} />
|
|
133
|
+
</InputOTPGroup>
|
|
134
|
+
<InputOTPSeparator />
|
|
135
|
+
<InputOTPGroup>
|
|
136
|
+
<InputOTPSlot index={3} />
|
|
137
|
+
<InputOTPSlot index={4} />
|
|
138
|
+
<InputOTPSlot index={5} />
|
|
139
|
+
</InputOTPGroup>
|
|
140
|
+
</InputOTP>
|
|
141
|
+
<div className="mt-2 text-xs text-muted-foreground">value: {code || 'empty'}</div>
|
|
142
|
+
</>
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export function FieldExample() {
|
|
147
|
+
return (
|
|
148
|
+
<>
|
|
149
|
+
<FieldSet className="max-w-md">
|
|
150
|
+
<FieldLegend variant="label">Notification settings</FieldLegend>
|
|
151
|
+
<FieldGroup>
|
|
152
|
+
<Field>
|
|
153
|
+
<FieldLabel htmlFor="ui-field-email">Email</FieldLabel>
|
|
154
|
+
<Input id="ui-field-email" type="email" defaultValue="kira@example.com" />
|
|
155
|
+
<FieldDescription>Used for critical account notifications.</FieldDescription>
|
|
156
|
+
</Field>
|
|
157
|
+
<Field data-invalid="true">
|
|
158
|
+
<FieldLabel htmlFor="ui-field-backup-email">Backup email</FieldLabel>
|
|
159
|
+
<Input id="ui-field-backup-email" type="email" aria-invalid defaultValue="invalid" />
|
|
160
|
+
<FieldError>Enter a valid email address.</FieldError>
|
|
161
|
+
</Field>
|
|
162
|
+
</FieldGroup>
|
|
163
|
+
</FieldSet>
|
|
164
|
+
</>
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export function KbdExample() {
|
|
169
|
+
return (
|
|
170
|
+
<>
|
|
171
|
+
<KbdGroup>
|
|
172
|
+
<Kbd>Ctrl</Kbd>
|
|
173
|
+
<Kbd>K</Kbd>
|
|
174
|
+
</KbdGroup>
|
|
80
175
|
</>
|
|
81
176
|
);
|
|
82
177
|
}
|
|
@@ -87,4 +182,8 @@ export function SelectExample() {
|
|
|
87
182
|
- `InputExample`
|
|
88
183
|
- `TextareaExample`
|
|
89
184
|
- `SelectExample`
|
|
185
|
+
- `NativeSelectExample`
|
|
186
|
+
- `InputOTPExample`
|
|
187
|
+
- `FieldExample`
|
|
188
|
+
- `KbdExample`
|
|
90
189
|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: ui/layout-primitives
|
|
3
|
+
title: "UI · Layout primitives"
|
|
4
|
+
description: "AspectRatio and Resizable primitives."
|
|
5
|
+
layer: ui
|
|
6
|
+
family: "Layout"
|
|
7
|
+
sourcePath: src/components/ui
|
|
8
|
+
examples:
|
|
9
|
+
- AspectRatioExample
|
|
10
|
+
- ResizableExample
|
|
11
|
+
imports:
|
|
12
|
+
- @/components/ui/aspect-ratio
|
|
13
|
+
- @/components/ui/resizable
|
|
14
|
+
tags:
|
|
15
|
+
- ui
|
|
16
|
+
- layout
|
|
17
|
+
- primitives
|
|
18
|
+
- aspectratio
|
|
19
|
+
- resizable
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# UI · Layout primitives
|
|
23
|
+
|
|
24
|
+
AspectRatio and Resizable primitives.
|
|
25
|
+
|
|
26
|
+
**Layer:** `ui`
|
|
27
|
+
**Source:** `src/components/ui`
|
|
28
|
+
|
|
29
|
+
## Examples
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
import { AspectRatio } from '@/components/ui/aspect-ratio';
|
|
33
|
+
import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from '@/components/ui/resizable';
|
|
34
|
+
|
|
35
|
+
export function AspectRatioExample() {
|
|
36
|
+
return (
|
|
37
|
+
<AspectRatio ratio={16 / 9} className="overflow-hidden rounded-md border border-border bg-muted/40">
|
|
38
|
+
<div className="flex size-full items-center justify-center text-sm text-muted-foreground">
|
|
39
|
+
16:9 content well
|
|
40
|
+
</div>
|
|
41
|
+
</AspectRatio>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function ResizableExample() {
|
|
46
|
+
return (
|
|
47
|
+
<ResizablePanelGroup
|
|
48
|
+
orientation="horizontal"
|
|
49
|
+
className="min-h-40 max-w-2xl rounded-md border border-border"
|
|
50
|
+
>
|
|
51
|
+
<ResizablePanel defaultSize={35}>
|
|
52
|
+
<div className="flex h-full items-center justify-center p-4 text-sm text-muted-foreground">
|
|
53
|
+
Navigation
|
|
54
|
+
</div>
|
|
55
|
+
</ResizablePanel>
|
|
56
|
+
<ResizableHandle withHandle />
|
|
57
|
+
<ResizablePanel defaultSize={65}>
|
|
58
|
+
<div className="flex h-full items-center justify-center p-4 text-sm text-muted-foreground">
|
|
59
|
+
Workspace
|
|
60
|
+
</div>
|
|
61
|
+
</ResizablePanel>
|
|
62
|
+
</ResizablePanelGroup>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Example exports
|
|
68
|
+
|
|
69
|
+
- `AspectRatioExample`
|
|
70
|
+
- `ResizableExample`
|
|
71
|
+
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: ui/menus
|
|
3
3
|
title: "UI · Menus"
|
|
4
|
-
description: "DropdownMenu, ContextMenu, Command palette."
|
|
4
|
+
description: "DropdownMenu, Menubar, NavigationMenu, ContextMenu, and Command palette."
|
|
5
5
|
layer: ui
|
|
6
6
|
family: "Overlays"
|
|
7
7
|
sourcePath: src/components/ui
|
|
8
8
|
examples:
|
|
9
9
|
- DropdownMenuExample
|
|
10
|
+
- MenubarExample
|
|
11
|
+
- NavigationMenuExample
|
|
10
12
|
- ContextMenuRightClick
|
|
11
13
|
- CommandPalette
|
|
12
14
|
imports:
|
|
@@ -14,18 +16,20 @@ imports:
|
|
|
14
16
|
- @/components/ui/command
|
|
15
17
|
- @/components/ui/context-menu
|
|
16
18
|
- @/components/ui/dropdown-menu
|
|
19
|
+
- @/components/ui/menubar
|
|
20
|
+
- @/components/ui/navigation-menu
|
|
17
21
|
tags:
|
|
18
22
|
- ui
|
|
19
23
|
- overlays
|
|
20
24
|
- menus
|
|
21
25
|
- dropdownmenu
|
|
22
|
-
-
|
|
23
|
-
-
|
|
26
|
+
- menubar
|
|
27
|
+
- navigationmenu
|
|
24
28
|
---
|
|
25
29
|
|
|
26
30
|
# UI · Menus
|
|
27
31
|
|
|
28
|
-
DropdownMenu, ContextMenu, Command palette.
|
|
32
|
+
DropdownMenu, Menubar, NavigationMenu, ContextMenu, and Command palette.
|
|
29
33
|
|
|
30
34
|
**Layer:** `ui`
|
|
31
35
|
**Source:** `src/components/ui`
|
|
@@ -33,7 +37,7 @@ DropdownMenu, ContextMenu, Command palette.
|
|
|
33
37
|
## Examples
|
|
34
38
|
|
|
35
39
|
```tsx
|
|
36
|
-
import { Edit,
|
|
40
|
+
import { Copy, Edit, ExternalLink, Trash2 } from 'lucide-react';
|
|
37
41
|
import { Button } from '@/components/ui/button';
|
|
38
42
|
import {
|
|
39
43
|
DropdownMenu,
|
|
@@ -59,21 +63,97 @@ import {
|
|
|
59
63
|
CommandItem,
|
|
60
64
|
CommandList,
|
|
61
65
|
} from '@/components/ui/command';
|
|
66
|
+
import {
|
|
67
|
+
Menubar,
|
|
68
|
+
MenubarContent,
|
|
69
|
+
MenubarItem,
|
|
70
|
+
MenubarMenu,
|
|
71
|
+
MenubarSeparator,
|
|
72
|
+
MenubarTrigger,
|
|
73
|
+
} from '@/components/ui/menubar';
|
|
74
|
+
import {
|
|
75
|
+
NavigationMenu,
|
|
76
|
+
NavigationMenuContent,
|
|
77
|
+
NavigationMenuItem,
|
|
78
|
+
NavigationMenuLink,
|
|
79
|
+
NavigationMenuList,
|
|
80
|
+
NavigationMenuTrigger,
|
|
81
|
+
} from '@/components/ui/navigation-menu';
|
|
62
82
|
|
|
63
83
|
export function DropdownMenuExample() {
|
|
64
84
|
return (
|
|
65
85
|
<>
|
|
66
86
|
<DropdownMenu>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
87
|
+
<DropdownMenuTrigger render={(p) => <Button variant="outline" {...p}>Open menu</Button>} />
|
|
88
|
+
<DropdownMenuContent>
|
|
89
|
+
<DropdownMenuLabel>Actions</DropdownMenuLabel>
|
|
90
|
+
<DropdownMenuSeparator />
|
|
91
|
+
<DropdownMenuItem><Edit className="size-3.5" /> Edit</DropdownMenuItem>
|
|
92
|
+
<DropdownMenuItem><Copy className="size-3.5" /> Duplicate</DropdownMenuItem>
|
|
93
|
+
<DropdownMenuSeparator />
|
|
94
|
+
<DropdownMenuItem variant="destructive"><Trash2 className="size-3.5" /> Delete</DropdownMenuItem>
|
|
95
|
+
</DropdownMenuContent>
|
|
96
|
+
</DropdownMenu>
|
|
97
|
+
</>
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export function MenubarExample() {
|
|
102
|
+
return (
|
|
103
|
+
<>
|
|
104
|
+
<Menubar>
|
|
105
|
+
<MenubarMenu>
|
|
106
|
+
<MenubarTrigger>File</MenubarTrigger>
|
|
107
|
+
<MenubarContent>
|
|
108
|
+
<MenubarItem>New workspace</MenubarItem>
|
|
109
|
+
<MenubarItem>Import data</MenubarItem>
|
|
110
|
+
<MenubarSeparator />
|
|
111
|
+
<MenubarItem variant="destructive">Archive</MenubarItem>
|
|
112
|
+
</MenubarContent>
|
|
113
|
+
</MenubarMenu>
|
|
114
|
+
<MenubarMenu>
|
|
115
|
+
<MenubarTrigger>View</MenubarTrigger>
|
|
116
|
+
<MenubarContent>
|
|
117
|
+
<MenubarItem>Compact rows</MenubarItem>
|
|
118
|
+
<MenubarItem>Show filters</MenubarItem>
|
|
119
|
+
</MenubarContent>
|
|
120
|
+
</MenubarMenu>
|
|
121
|
+
</Menubar>
|
|
122
|
+
</>
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export function NavigationMenuExample() {
|
|
127
|
+
return (
|
|
128
|
+
<>
|
|
129
|
+
<NavigationMenu>
|
|
130
|
+
<NavigationMenuList>
|
|
131
|
+
<NavigationMenuItem>
|
|
132
|
+
<NavigationMenuTrigger>Operations</NavigationMenuTrigger>
|
|
133
|
+
<NavigationMenuContent>
|
|
134
|
+
<div className="grid w-[360px] gap-1">
|
|
135
|
+
<NavigationMenuLink href="#orders">
|
|
136
|
+
<ExternalLink className="size-4" />
|
|
137
|
+
<div>
|
|
138
|
+
<div className="font-medium">Orders</div>
|
|
139
|
+
<div className="text-xs text-muted-foreground">Review active fulfillment queues.</div>
|
|
140
|
+
</div>
|
|
141
|
+
</NavigationMenuLink>
|
|
142
|
+
<NavigationMenuLink href="#inventory">
|
|
143
|
+
<ExternalLink className="size-4" />
|
|
144
|
+
<div>
|
|
145
|
+
<div className="font-medium">Inventory</div>
|
|
146
|
+
<div className="text-xs text-muted-foreground">Monitor low-stock and replenishment signals.</div>
|
|
147
|
+
</div>
|
|
148
|
+
</NavigationMenuLink>
|
|
149
|
+
</div>
|
|
150
|
+
</NavigationMenuContent>
|
|
151
|
+
</NavigationMenuItem>
|
|
152
|
+
<NavigationMenuItem>
|
|
153
|
+
<NavigationMenuLink href="#reports">Reports</NavigationMenuLink>
|
|
154
|
+
</NavigationMenuItem>
|
|
155
|
+
</NavigationMenuList>
|
|
156
|
+
</NavigationMenu>
|
|
77
157
|
</>
|
|
78
158
|
);
|
|
79
159
|
}
|
|
@@ -82,20 +162,20 @@ export function ContextMenuRightClick() {
|
|
|
82
162
|
return (
|
|
83
163
|
<>
|
|
84
164
|
<ContextMenu>
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
165
|
+
<ContextMenuTrigger>
|
|
166
|
+
<div className="flex h-24 w-full items-center justify-center rounded-md border border-dashed border-border text-sm text-muted-foreground">
|
|
167
|
+
Right-click here
|
|
168
|
+
</div>
|
|
169
|
+
</ContextMenuTrigger>
|
|
170
|
+
<ContextMenuContent>
|
|
171
|
+
<ContextMenuLabel>File</ContextMenuLabel>
|
|
172
|
+
<ContextMenuSeparator />
|
|
173
|
+
<ContextMenuItem><Edit className="size-3.5" /> Rename</ContextMenuItem>
|
|
174
|
+
<ContextMenuItem><Copy className="size-3.5" /> Copy</ContextMenuItem>
|
|
175
|
+
<ContextMenuSeparator />
|
|
176
|
+
<ContextMenuItem variant="destructive"><Trash2 className="size-3.5" /> Delete</ContextMenuItem>
|
|
177
|
+
</ContextMenuContent>
|
|
178
|
+
</ContextMenu>
|
|
99
179
|
</>
|
|
100
180
|
);
|
|
101
181
|
}
|
|
@@ -104,20 +184,20 @@ export function CommandPalette() {
|
|
|
104
184
|
return (
|
|
105
185
|
<>
|
|
106
186
|
<Command className="rounded-md border border-border">
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
187
|
+
<CommandInput placeholder="Type a command…" />
|
|
188
|
+
<CommandList>
|
|
189
|
+
<CommandEmpty>No results.</CommandEmpty>
|
|
190
|
+
<CommandGroup heading="Actions">
|
|
191
|
+
<CommandItem>Create order</CommandItem>
|
|
192
|
+
<CommandItem>Add customer</CommandItem>
|
|
193
|
+
<CommandItem>Generate invoice</CommandItem>
|
|
194
|
+
</CommandGroup>
|
|
195
|
+
<CommandGroup heading="Navigation">
|
|
196
|
+
<CommandItem>Go to Orders</CommandItem>
|
|
197
|
+
<CommandItem>Go to Settings</CommandItem>
|
|
198
|
+
</CommandGroup>
|
|
199
|
+
</CommandList>
|
|
200
|
+
</Command>
|
|
121
201
|
</>
|
|
122
202
|
);
|
|
123
203
|
}
|
|
@@ -126,6 +206,8 @@ export function CommandPalette() {
|
|
|
126
206
|
## Example exports
|
|
127
207
|
|
|
128
208
|
- `DropdownMenuExample`
|
|
209
|
+
- `MenubarExample`
|
|
210
|
+
- `NavigationMenuExample`
|
|
129
211
|
- `ContextMenuRightClick`
|
|
130
212
|
- `CommandPalette`
|
|
131
213
|
|