@psnext/design-system 2.4.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DESIGN.md +32 -4
- package/SKILL.md +1 -1
- package/dist/Header.cjs +3 -3
- package/dist/Header.cjs.map +1 -1
- package/dist/Header.js +3 -3
- package/dist/Header.js.map +1 -1
- package/dist/Mosaic.cjs +472 -0
- package/dist/Mosaic.cjs.map +1 -0
- package/dist/Mosaic.js +459 -0
- package/dist/Mosaic.js.map +1 -0
- package/dist/index.cjs +25 -4
- package/dist/index.d.cts +5 -5
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +10 -5
- package/dist/index10.d.cts +5 -5
- package/dist/index10.d.ts +6 -6
- package/dist/index11.d.cts +3 -3
- package/dist/index11.d.ts +3 -3
- package/dist/index12.d.cts +12 -12
- package/dist/index12.d.cts.map +1 -1
- package/dist/index12.d.ts +12 -12
- package/dist/index12.d.ts.map +1 -1
- package/dist/index13.d.cts +6 -6
- package/dist/index13.d.cts.map +1 -1
- package/dist/index13.d.ts +6 -6
- package/dist/index13.d.ts.map +1 -1
- package/dist/index14.d.cts +5 -5
- package/dist/index14.d.ts +5 -5
- package/dist/index15.d.cts +58 -23
- package/dist/index15.d.cts.map +1 -1
- package/dist/index15.d.ts +58 -23
- package/dist/index15.d.ts.map +1 -1
- package/dist/index16.d.cts +23 -32
- package/dist/index16.d.cts.map +1 -1
- package/dist/index16.d.ts +23 -32
- package/dist/index16.d.ts.map +1 -1
- package/dist/index17.d.cts +34 -15
- package/dist/index17.d.cts.map +1 -1
- package/dist/index17.d.ts +34 -15
- package/dist/index17.d.ts.map +1 -1
- package/dist/index18.d.cts +13 -67
- package/dist/index18.d.cts.map +1 -1
- package/dist/index18.d.ts +13 -67
- package/dist/index18.d.ts.map +1 -1
- package/dist/index19.d.cts +55 -48
- package/dist/index19.d.cts.map +1 -1
- package/dist/index19.d.ts +55 -48
- package/dist/index19.d.ts.map +1 -1
- package/dist/index2.d.cts +8 -8
- package/dist/index2.d.cts.map +1 -1
- package/dist/index2.d.ts +8 -8
- package/dist/index2.d.ts.map +1 -1
- package/dist/index20.d.cts +45 -75
- package/dist/index20.d.cts.map +1 -1
- package/dist/index20.d.ts +45 -75
- package/dist/index20.d.ts.map +1 -1
- package/dist/index21.d.cts +39 -28
- package/dist/index21.d.cts.map +1 -1
- package/dist/index21.d.ts +39 -28
- package/dist/index21.d.ts.map +1 -1
- package/dist/index22.d.cts +98 -44
- package/dist/index22.d.cts.map +1 -1
- package/dist/index22.d.ts +98 -44
- package/dist/index22.d.ts.map +1 -1
- package/dist/index23.d.cts +65 -68
- package/dist/index23.d.cts.map +1 -1
- package/dist/index23.d.ts +65 -68
- package/dist/index23.d.ts.map +1 -1
- package/dist/index24.d.cts +27 -42
- package/dist/index24.d.cts.map +1 -1
- package/dist/index24.d.ts +27 -42
- package/dist/index24.d.ts.map +1 -1
- package/dist/index25.d.cts +68 -11
- package/dist/index25.d.cts.map +1 -1
- package/dist/index25.d.ts +68 -11
- package/dist/index25.d.ts.map +1 -1
- package/dist/index26.d.cts +75 -56
- package/dist/index26.d.cts.map +1 -1
- package/dist/index26.d.ts +75 -56
- package/dist/index26.d.ts.map +1 -1
- package/dist/index27.d.cts +38 -60
- package/dist/index27.d.cts.map +1 -1
- package/dist/index27.d.ts +38 -60
- package/dist/index27.d.ts.map +1 -1
- package/dist/index28.d.cts +10 -30
- package/dist/index28.d.cts.map +1 -1
- package/dist/index28.d.ts +10 -30
- package/dist/index28.d.ts.map +1 -1
- package/dist/index29.d.cts +72 -17
- package/dist/index29.d.cts.map +1 -1
- package/dist/index29.d.ts +72 -17
- package/dist/index29.d.ts.map +1 -1
- package/dist/index3.d.cts +13 -13
- package/dist/index3.d.cts.map +1 -1
- package/dist/index3.d.ts +13 -13
- package/dist/index30.d.cts +46 -80
- package/dist/index30.d.cts.map +1 -1
- package/dist/index30.d.ts +46 -80
- package/dist/index30.d.ts.map +1 -1
- package/dist/index31.d.cts +64 -33
- package/dist/index31.d.cts.map +1 -1
- package/dist/index31.d.ts +64 -33
- package/dist/index31.d.ts.map +1 -1
- package/dist/index32.d.cts +29 -18
- package/dist/index32.d.cts.map +1 -1
- package/dist/index32.d.ts +29 -18
- package/dist/index32.d.ts.map +1 -1
- package/dist/index33.d.cts +17 -51
- package/dist/index33.d.cts.map +1 -1
- package/dist/index33.d.ts +17 -51
- package/dist/index33.d.ts.map +1 -1
- package/dist/index34.d.cts +81 -36
- package/dist/index34.d.cts.map +1 -1
- package/dist/index34.d.ts +81 -36
- package/dist/index34.d.ts.map +1 -1
- package/dist/index35.d.cts +32 -69
- package/dist/index35.d.cts.map +1 -1
- package/dist/index35.d.ts +32 -69
- package/dist/index35.d.ts.map +1 -1
- package/dist/index36.d.cts +20 -13
- package/dist/index36.d.cts.map +1 -1
- package/dist/index36.d.ts +20 -13
- package/dist/index36.d.ts.map +1 -1
- package/dist/index37.d.cts +51 -21
- package/dist/index37.d.cts.map +1 -1
- package/dist/index37.d.ts +51 -21
- package/dist/index37.d.ts.map +1 -1
- package/dist/index38.d.cts +38 -15
- package/dist/index38.d.cts.map +1 -1
- package/dist/index38.d.ts +38 -15
- package/dist/index38.d.ts.map +1 -1
- package/dist/index39.d.cts +53 -81
- package/dist/index39.d.cts.map +1 -1
- package/dist/index39.d.ts +53 -81
- package/dist/index39.d.ts.map +1 -1
- package/dist/index4.d.cts +2 -2
- package/dist/index4.d.ts +2 -2
- package/dist/index4.d.ts.map +1 -1
- package/dist/index40.d.cts +13 -16
- package/dist/index40.d.cts.map +1 -1
- package/dist/index40.d.ts +13 -16
- package/dist/index40.d.ts.map +1 -1
- package/dist/index41.d.cts +25 -52
- package/dist/index41.d.cts.map +1 -1
- package/dist/index41.d.ts +24 -51
- package/dist/index41.d.ts.map +1 -1
- package/dist/index42.d.cts +15 -40
- package/dist/index42.d.cts.map +1 -1
- package/dist/index42.d.ts +15 -40
- package/dist/index42.d.ts.map +1 -1
- package/dist/index43.d.cts +86 -77
- package/dist/index43.d.cts.map +1 -1
- package/dist/index43.d.ts +86 -77
- package/dist/index43.d.ts.map +1 -1
- package/dist/index44.d.cts +125 -1
- package/dist/index44.d.cts.map +1 -0
- package/dist/index44.d.ts +125 -1
- package/dist/index44.d.ts.map +1 -0
- package/dist/index45.d.cts +15 -41
- package/dist/index45.d.cts.map +1 -1
- package/dist/index45.d.ts +15 -41
- package/dist/index45.d.ts.map +1 -1
- package/dist/index46.d.cts +52 -24
- package/dist/index46.d.cts.map +1 -1
- package/dist/index46.d.ts +52 -24
- package/dist/index46.d.ts.map +1 -1
- package/dist/index47.d.cts +86 -31
- package/dist/index47.d.cts.map +1 -1
- package/dist/index47.d.ts +86 -31
- package/dist/index47.d.ts.map +1 -1
- package/dist/index48.d.cts +1 -25
- package/dist/index48.d.ts +1 -25
- package/dist/index49.d.cts +120 -14
- package/dist/index49.d.cts.map +1 -1
- package/dist/index49.d.ts +120 -14
- package/dist/index49.d.ts.map +1 -1
- package/dist/index5.d.cts +7 -7
- package/dist/index5.d.ts +7 -7
- package/dist/index50.d.cts +32 -53
- package/dist/index50.d.cts.map +1 -1
- package/dist/index50.d.ts +32 -53
- package/dist/index50.d.ts.map +1 -1
- package/dist/index51.d.cts +21 -56
- package/dist/index51.d.cts.map +1 -1
- package/dist/index51.d.ts +21 -56
- package/dist/index51.d.ts.map +1 -1
- package/dist/index52.d.cts +33 -23
- package/dist/index52.d.cts.map +1 -1
- package/dist/index52.d.ts +33 -23
- package/dist/index52.d.ts.map +1 -1
- package/dist/index53.d.cts +17 -201
- package/dist/index53.d.cts.map +1 -1
- package/dist/index53.d.ts +17 -201
- package/dist/index53.d.ts.map +1 -1
- package/dist/index54.d.cts +14 -19
- package/dist/index54.d.cts.map +1 -1
- package/dist/index54.d.ts +14 -19
- package/dist/index54.d.ts.map +1 -1
- package/dist/index55.d.cts +64 -23
- package/dist/index55.d.cts.map +1 -1
- package/dist/index55.d.ts +64 -23
- package/dist/index55.d.ts.map +1 -1
- package/dist/index56.d.cts +95 -22
- package/dist/index56.d.cts.map +1 -1
- package/dist/index56.d.ts +95 -22
- package/dist/index56.d.ts.map +1 -1
- package/dist/index57.d.cts +25 -6
- package/dist/index57.d.cts.map +1 -1
- package/dist/index57.d.ts +25 -6
- package/dist/index57.d.ts.map +1 -1
- package/dist/index58.d.cts +202 -43
- package/dist/index58.d.cts.map +1 -1
- package/dist/index58.d.ts +202 -43
- package/dist/index58.d.ts.map +1 -1
- package/dist/index59.d.cts +15 -40
- package/dist/index59.d.cts.map +1 -1
- package/dist/index59.d.ts +15 -40
- package/dist/index59.d.ts.map +1 -1
- package/dist/index6.d.cts +5 -5
- package/dist/index6.d.cts.map +1 -1
- package/dist/index6.d.ts +5 -5
- package/dist/index6.d.ts.map +1 -1
- package/dist/index60.d.cts +20 -55
- package/dist/index60.d.cts.map +1 -1
- package/dist/index60.d.ts +20 -55
- package/dist/index60.d.ts.map +1 -1
- package/dist/index61.d.cts +21 -41
- package/dist/index61.d.cts.map +1 -1
- package/dist/index61.d.ts +21 -41
- package/dist/index61.d.ts.map +1 -1
- package/dist/index62.d.cts +6 -18
- package/dist/index62.d.cts.map +1 -1
- package/dist/index62.d.ts +6 -18
- package/dist/index62.d.ts.map +1 -1
- package/dist/index63.d.cts +46 -41
- package/dist/index63.d.cts.map +1 -1
- package/dist/index63.d.ts +46 -41
- package/dist/index63.d.ts.map +1 -1
- package/dist/index64.d.cts +47 -19
- package/dist/index64.d.cts.map +1 -1
- package/dist/index64.d.ts +47 -19
- package/dist/index64.d.ts.map +1 -1
- package/dist/index65.d.cts +50 -35
- package/dist/index65.d.cts.map +1 -1
- package/dist/index65.d.ts +50 -35
- package/dist/index65.d.ts.map +1 -1
- package/dist/index66.d.cts +33 -13
- package/dist/index66.d.cts.map +1 -1
- package/dist/index66.d.ts +33 -13
- package/dist/index66.d.ts.map +1 -1
- package/dist/index67.d.cts +17 -84
- package/dist/index67.d.cts.map +1 -1
- package/dist/index67.d.ts +17 -84
- package/dist/index67.d.ts.map +1 -1
- package/dist/index68.d.cts +40 -14
- package/dist/index68.d.cts.map +1 -1
- package/dist/index68.d.ts +40 -14
- package/dist/index68.d.ts.map +1 -1
- package/dist/index69.d.cts +16 -30
- package/dist/index69.d.cts.map +1 -1
- package/dist/index69.d.ts +16 -30
- package/dist/index69.d.ts.map +1 -1
- package/dist/index7.d.cts +8 -8
- package/dist/index7.d.ts +8 -8
- package/dist/index70.d.cts +39 -27
- package/dist/index70.d.cts.map +1 -1
- package/dist/index70.d.ts +39 -27
- package/dist/index70.d.ts.map +1 -1
- package/dist/index71.d.cts +22 -79
- package/dist/index71.d.cts.map +1 -1
- package/dist/index71.d.ts +22 -79
- package/dist/index71.d.ts.map +1 -1
- package/dist/index72.d.cts +77 -264
- package/dist/index72.d.cts.map +1 -1
- package/dist/index72.d.ts +77 -264
- package/dist/index72.d.ts.map +1 -1
- package/dist/index73.d.cts +19 -0
- package/dist/index73.d.cts.map +1 -0
- package/dist/index73.d.ts +19 -0
- package/dist/index73.d.ts.map +1 -0
- package/dist/index74.d.cts +37 -0
- package/dist/index74.d.cts.map +1 -0
- package/dist/index74.d.ts +37 -0
- package/dist/index74.d.ts.map +1 -0
- package/dist/index75.d.cts +36 -0
- package/dist/index75.d.cts.map +1 -0
- package/dist/index75.d.ts +36 -0
- package/dist/index75.d.ts.map +1 -0
- package/dist/index76.d.cts +87 -0
- package/dist/index76.d.cts.map +1 -0
- package/dist/index76.d.ts +87 -0
- package/dist/index76.d.ts.map +1 -0
- package/dist/index77.d.cts +278 -0
- package/dist/index77.d.cts.map +1 -0
- package/dist/index77.d.ts +278 -0
- package/dist/index77.d.ts.map +1 -0
- package/dist/index8.d.cts +4 -4
- package/dist/index8.d.cts.map +1 -1
- package/dist/index8.d.ts +4 -4
- package/dist/index9.d.cts +2 -2
- package/dist/index9.d.ts +2 -2
- package/dist/index9.d.ts.map +1 -1
- package/dist/layouts/Container/index.d.cts +1 -1
- package/dist/layouts/Container/index.d.ts +1 -1
- package/dist/layouts/MultiColumn/index.d.cts +1 -1
- package/dist/layouts/MultiColumn/index.d.ts +1 -1
- package/dist/layouts/PageBackground/index.d.cts +1 -1
- package/dist/layouts/PageBackground/index.d.ts +1 -1
- package/dist/layouts/Stack/index.d.cts +1 -1
- package/dist/layouts/Stack/index.d.ts +1 -1
- package/dist/layouts/TwoColumn/index.d.cts +1 -1
- package/dist/layouts/TwoColumn/index.d.ts +1 -1
- package/dist/layouts/index.d.cts +5 -5
- package/dist/layouts/index.d.ts +5 -5
- package/dist/patterns/DataTable/index.d.cts +3 -3
- package/dist/patterns/DataTable/index.d.cts.map +1 -1
- package/dist/patterns/DataTable/index.d.ts +3 -3
- package/dist/patterns/DataTable/index.d.ts.map +1 -1
- package/dist/patterns/Footer/index.d.cts +7 -7
- package/dist/patterns/Footer/index.d.ts +7 -7
- package/dist/patterns/Footer/index.d.ts.map +1 -1
- package/dist/patterns/Header/index.d.cts +1 -1
- package/dist/patterns/Header/index.d.ts +1 -1
- package/dist/patterns/MediaObject/index.d.cts +14 -14
- package/dist/patterns/MediaObject/index.d.cts.map +1 -1
- package/dist/patterns/MediaObject/index.d.ts +14 -14
- package/dist/patterns/NavRail/index.d.cts +1 -1
- package/dist/patterns/NavRail/index.d.ts +1 -1
- package/dist/patterns/SectionCard/index.d.cts +2 -2
- package/dist/patterns/SectionCard/index.d.ts +2 -2
- package/dist/patterns/SectionCard/index.d.ts.map +1 -1
- package/dist/patterns/SectionHeading/index.d.cts +3 -3
- package/dist/patterns/SectionHeading/index.d.ts +3 -3
- package/dist/patterns/SectionHeading/index.d.ts.map +1 -1
- package/dist/patterns/index.d.cts +2 -2
- package/dist/patterns/index.d.ts +2 -2
- package/dist/primitives/Checkbox/index.cjs +1 -1
- package/dist/primitives/Checkbox/index.cjs.map +1 -1
- package/dist/primitives/Checkbox/index.d.cts +1 -1
- package/dist/primitives/Checkbox/index.d.ts +1 -1
- package/dist/primitives/Checkbox/index.js +1 -1
- package/dist/primitives/Checkbox/index.js.map +1 -1
- package/dist/primitives/CheckboxTree/index.d.cts +1 -1
- package/dist/primitives/CheckboxTree/index.d.ts +1 -1
- package/dist/primitives/CircularProgress/index.cjs +106 -0
- package/dist/primitives/CircularProgress/index.cjs.map +1 -0
- package/dist/primitives/CircularProgress/index.d.cts +2 -0
- package/dist/primitives/CircularProgress/index.d.ts +2 -0
- package/dist/primitives/CircularProgress/index.js +105 -0
- package/dist/primitives/CircularProgress/index.js.map +1 -0
- package/dist/primitives/Collapsible/index.d.cts +1 -1
- package/dist/primitives/Collapsible/index.d.ts +1 -1
- package/dist/primitives/Combobox/index.cjs +210 -0
- package/dist/primitives/Combobox/index.cjs.map +1 -0
- package/dist/primitives/Combobox/index.d.cts +2 -0
- package/dist/primitives/Combobox/index.d.ts +2 -0
- package/dist/primitives/Combobox/index.js +199 -0
- package/dist/primitives/Combobox/index.js.map +1 -0
- package/dist/primitives/Command/index.d.cts +1 -1
- package/dist/primitives/Command/index.d.ts +1 -1
- package/dist/primitives/ContextMenu/index.d.cts +1 -1
- package/dist/primitives/ContextMenu/index.d.ts +1 -1
- package/dist/primitives/Credits/index.d.cts +1 -1
- package/dist/primitives/Credits/index.d.ts +1 -1
- package/dist/primitives/Dialog/index.d.cts +1 -1
- package/dist/primitives/Dialog/index.d.ts +1 -1
- package/dist/primitives/Drawer/index.cjs +34 -2
- package/dist/primitives/Drawer/index.cjs.map +1 -1
- package/dist/primitives/Drawer/index.d.cts +1 -1
- package/dist/primitives/Drawer/index.d.ts +1 -1
- package/dist/primitives/Drawer/index.js +34 -2
- package/dist/primitives/Drawer/index.js.map +1 -1
- package/dist/primitives/DropdownMenu/index.d.cts +1 -1
- package/dist/primitives/DropdownMenu/index.d.ts +1 -1
- package/dist/primitives/Empty/index.d.cts +1 -1
- package/dist/primitives/Empty/index.d.ts +1 -1
- package/dist/primitives/Field/index.d.cts +1 -1
- package/dist/primitives/Field/index.d.ts +1 -1
- package/dist/primitives/FileUpload/index.cjs +354 -0
- package/dist/primitives/FileUpload/index.cjs.map +1 -0
- package/dist/primitives/FileUpload/index.d.cts +2 -0
- package/dist/primitives/FileUpload/index.d.ts +2 -0
- package/dist/primitives/FileUpload/index.js +351 -0
- package/dist/primitives/FileUpload/index.js.map +1 -0
- package/dist/primitives/Form/index.d.cts +1 -1
- package/dist/primitives/Form/index.d.ts +1 -1
- package/dist/primitives/Heading/index.d.cts +1 -1
- package/dist/primitives/Heading/index.d.ts +1 -1
- package/dist/primitives/HoverCard/index.d.cts +1 -1
- package/dist/primitives/HoverCard/index.d.ts +1 -1
- package/dist/primitives/Icon/index.d.cts +1 -1
- package/dist/primitives/Icon/index.d.ts +1 -1
- package/dist/primitives/InfoBanner/index.d.cts +1 -1
- package/dist/primitives/InfoBanner/index.d.ts +1 -1
- package/dist/primitives/Input/index.d.cts +1 -1
- package/dist/primitives/Input/index.d.ts +1 -1
- package/dist/primitives/InputGroup/index.d.cts +1 -1
- package/dist/primitives/InputGroup/index.d.ts +1 -1
- package/dist/primitives/InputOtp/index.d.cts +1 -1
- package/dist/primitives/InputOtp/index.d.ts +1 -1
- package/dist/primitives/Item/index.d.cts +1 -1
- package/dist/primitives/Item/index.d.ts +1 -1
- package/dist/primitives/Kbd/index.d.cts +1 -1
- package/dist/primitives/Kbd/index.d.ts +1 -1
- package/dist/primitives/Label/index.d.cts +1 -1
- package/dist/primitives/Label/index.d.ts +1 -1
- package/dist/primitives/Link/index.d.cts +1 -1
- package/dist/primitives/Link/index.d.ts +1 -1
- package/dist/primitives/Logo/index.d.cts +1 -1
- package/dist/primitives/Logo/index.d.ts +1 -1
- package/dist/primitives/Menubar/index.d.cts +1 -1
- package/dist/primitives/Menubar/index.d.ts +1 -1
- package/dist/primitives/Mosaic/index.cjs +4 -0
- package/dist/primitives/Mosaic/index.d.cts +2 -0
- package/dist/primitives/Mosaic/index.d.ts +2 -0
- package/dist/primitives/Mosaic/index.js +2 -0
- package/dist/primitives/NativeSelect/index.d.cts +1 -1
- package/dist/primitives/NativeSelect/index.d.ts +1 -1
- package/dist/primitives/NavRail/index.d.cts +2 -2
- package/dist/primitives/NavRail/index.d.ts +2 -2
- package/dist/primitives/NavigationMenu/index.d.cts +1 -1
- package/dist/primitives/NavigationMenu/index.d.ts +1 -1
- package/dist/primitives/NotchedCard/index.cjs +390 -0
- package/dist/primitives/NotchedCard/index.cjs.map +1 -0
- package/dist/primitives/NotchedCard/index.d.cts +2 -0
- package/dist/primitives/NotchedCard/index.d.ts +2 -0
- package/dist/primitives/NotchedCard/index.js +385 -0
- package/dist/primitives/NotchedCard/index.js.map +1 -0
- package/dist/primitives/Pagination/index.d.cts +1 -1
- package/dist/primitives/Pagination/index.d.ts +1 -1
- package/dist/primitives/Popover/index.d.cts +1 -1
- package/dist/primitives/Popover/index.d.ts +1 -1
- package/dist/primitives/Progress/index.d.cts +1 -1
- package/dist/primitives/Progress/index.d.ts +1 -1
- package/dist/primitives/RadioGroup/index.cjs +1 -1
- package/dist/primitives/RadioGroup/index.cjs.map +1 -1
- package/dist/primitives/RadioGroup/index.d.cts +1 -1
- package/dist/primitives/RadioGroup/index.d.ts +1 -1
- package/dist/primitives/RadioGroup/index.js +1 -1
- package/dist/primitives/RadioGroup/index.js.map +1 -1
- package/dist/primitives/Resizable/index.d.cts +1 -1
- package/dist/primitives/Resizable/index.d.ts +1 -1
- package/dist/primitives/ScrollArea/index.d.cts +1 -1
- package/dist/primitives/ScrollArea/index.d.ts +1 -1
- package/dist/primitives/Select/index.d.cts +1 -1
- package/dist/primitives/Select/index.d.ts +1 -1
- package/dist/primitives/Sheet/index.cjs +34 -2
- package/dist/primitives/Sheet/index.cjs.map +1 -1
- package/dist/primitives/Sheet/index.d.cts +1 -1
- package/dist/primitives/Sheet/index.d.ts +1 -1
- package/dist/primitives/Sheet/index.js +34 -2
- package/dist/primitives/Sheet/index.js.map +1 -1
- package/dist/primitives/Sidebar/index.d.cts +1 -1
- package/dist/primitives/Sidebar/index.d.ts +1 -1
- package/dist/primitives/Skeleton/index.d.cts +1 -1
- package/dist/primitives/Skeleton/index.d.ts +1 -1
- package/dist/primitives/Slider/index.d.cts +1 -1
- package/dist/primitives/Slider/index.d.ts +1 -1
- package/dist/primitives/Sonner/index.d.cts +1 -1
- package/dist/primitives/Sonner/index.d.ts +1 -1
- package/dist/primitives/Spinner/index.d.cts +1 -1
- package/dist/primitives/Spinner/index.d.ts +1 -1
- package/dist/primitives/Switch/index.d.cts +1 -1
- package/dist/primitives/Switch/index.d.ts +1 -1
- package/dist/primitives/Table/index.d.cts +1 -1
- package/dist/primitives/Table/index.d.ts +1 -1
- package/dist/primitives/Tabs/index.cjs +153 -10
- package/dist/primitives/Tabs/index.cjs.map +1 -1
- package/dist/primitives/Tabs/index.d.cts +1 -1
- package/dist/primitives/Tabs/index.d.ts +1 -1
- package/dist/primitives/Tabs/index.js +153 -10
- package/dist/primitives/Tabs/index.js.map +1 -1
- package/dist/primitives/Text/index.d.cts +1 -1
- package/dist/primitives/Text/index.d.ts +1 -1
- package/dist/primitives/Textarea/index.d.cts +1 -1
- package/dist/primitives/Textarea/index.d.ts +1 -1
- package/dist/primitives/ThemeProvider/index.d.cts +1 -1
- package/dist/primitives/ThemeProvider/index.d.ts +1 -1
- package/dist/primitives/Toggle/index.d.cts +1 -1
- package/dist/primitives/Toggle/index.d.ts +1 -1
- package/dist/primitives/ToggleGroup/index.d.cts +1 -1
- package/dist/primitives/ToggleGroup/index.d.ts +1 -1
- package/dist/primitives/Tooltip/index.d.cts +1 -1
- package/dist/primitives/Tooltip/index.d.ts +1 -1
- package/dist/primitives/index.cjs +25 -4
- package/dist/primitives/index.d.cts +56 -51
- package/dist/primitives/index.d.ts +56 -51
- package/dist/primitives/index.js +10 -5
- package/dist/styles/tokens/mode-dark.css +1 -1
- package/package.json +1 -1
- package/dist/index48.d.cts.map +0 -1
- package/dist/index48.d.ts.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as MenubarItem, c as MenubarPortal, d as MenubarSeparator, f as MenubarShortcut, g as MenubarTrigger, h as MenubarSubTrigger, i as MenubarGroup, l as MenubarRadioGroup, m as MenubarSubContent, n as MenubarCheckboxItem, o as MenubarLabel, p as MenubarSub, r as MenubarContent, s as MenubarMenu, t as Menubar, u as MenubarRadioItem } from "../../
|
|
1
|
+
import { a as MenubarItem, c as MenubarPortal, d as MenubarSeparator, f as MenubarShortcut, g as MenubarTrigger, h as MenubarSubTrigger, i as MenubarGroup, l as MenubarRadioGroup, m as MenubarSubContent, n as MenubarCheckboxItem, o as MenubarLabel, p as MenubarSub, r as MenubarContent, s as MenubarMenu, t as Menubar, u as MenubarRadioItem } from "../../index43.js";
|
|
2
2
|
export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as DropZone, c as MosaicNode, i as MosaicWindowProps, l as MosaicParent, n as MosaicProps, o as MosaicDirection, r as MosaicWindow, s as MosaicKey, t as Mosaic, u as MosaicPath } from "../../index44.cjs";
|
|
2
|
+
export { DropZone, Mosaic, MosaicDirection, MosaicKey, MosaicNode, MosaicParent, MosaicPath, MosaicProps, MosaicWindow, MosaicWindowProps };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as DropZone, c as MosaicNode, i as MosaicWindowProps, l as MosaicParent, n as MosaicProps, o as MosaicDirection, r as MosaicWindow, s as MosaicKey, t as Mosaic, u as MosaicPath } from "../../index44.js";
|
|
2
|
+
export { DropZone, Mosaic, MosaicDirection, MosaicKey, MosaicNode, MosaicParent, MosaicPath, MosaicProps, MosaicWindow, MosaicWindowProps };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as nativeSelectVariants, t as NativeSelect } from "../../
|
|
1
|
+
import { n as nativeSelectVariants, t as NativeSelect } from "../../index45.cjs";
|
|
2
2
|
export { NativeSelect, nativeSelectVariants };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as nativeSelectVariants, t as NativeSelect } from "../../
|
|
1
|
+
import { n as nativeSelectVariants, t as NativeSelect } from "../../index45.js";
|
|
2
2
|
export { NativeSelect, nativeSelectVariants };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as NavRailMenuContent, c as NavRailMenuTrigger, d as NavRailSeparator, f as NavRailUser, i as NavRailMenu, l as NavRailMenuTriggerProps, n as NavRailItem, o as NavRailMenuItem, p as NavRailUserProps, r as NavRailItemProps, s as NavRailMenuItemProps, t as NavRail, u as NavRailMode } from "../../
|
|
2
|
-
import "../../
|
|
1
|
+
import { a as NavRailMenuContent, c as NavRailMenuTrigger, d as NavRailSeparator, f as NavRailUser, i as NavRailMenu, l as NavRailMenuTriggerProps, n as NavRailItem, o as NavRailMenuItem, p as NavRailUserProps, r as NavRailItemProps, s as NavRailMenuItemProps, t as NavRail, u as NavRailMode } from "../../index47.cjs";
|
|
2
|
+
import "../../index48.cjs";
|
|
3
3
|
export { NavRail, NavRailItem, NavRailItemProps, NavRailMenu, NavRailMenuContent, NavRailMenuItem, NavRailMenuItemProps, NavRailMenuTrigger, NavRailMenuTriggerProps, NavRailMode, NavRailSeparator, NavRailUser, NavRailUserProps };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as NavRailMenuContent, c as NavRailMenuTrigger, d as NavRailSeparator, f as NavRailUser, i as NavRailMenu, l as NavRailMenuTriggerProps, n as NavRailItem, o as NavRailMenuItem, p as NavRailUserProps, r as NavRailItemProps, s as NavRailMenuItemProps, t as NavRail, u as NavRailMode } from "../../
|
|
2
|
-
import "../../
|
|
1
|
+
import { a as NavRailMenuContent, c as NavRailMenuTrigger, d as NavRailSeparator, f as NavRailUser, i as NavRailMenu, l as NavRailMenuTriggerProps, n as NavRailItem, o as NavRailMenuItem, p as NavRailUserProps, r as NavRailItemProps, s as NavRailMenuItemProps, t as NavRail, u as NavRailMode } from "../../index47.js";
|
|
2
|
+
import "../../index48.js";
|
|
3
3
|
export { NavRail, NavRailItem, NavRailItemProps, NavRailMenu, NavRailMenuContent, NavRailMenuItem, NavRailMenuItemProps, NavRailMenuTrigger, NavRailMenuTriggerProps, NavRailMode, NavRailSeparator, NavRailUser, NavRailUserProps };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as NavigationMenuLink, c as NavigationMenuViewport, i as NavigationMenuItem, l as navigationMenuTriggerStyle, n as NavigationMenuContent, o as NavigationMenuList, r as NavigationMenuIndicator, s as NavigationMenuTrigger, t as NavigationMenu } from "../../
|
|
1
|
+
import { a as NavigationMenuLink, c as NavigationMenuViewport, i as NavigationMenuItem, l as navigationMenuTriggerStyle, n as NavigationMenuContent, o as NavigationMenuList, r as NavigationMenuIndicator, s as NavigationMenuTrigger, t as NavigationMenu } from "../../index46.cjs";
|
|
2
2
|
export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as NavigationMenuLink, c as NavigationMenuViewport, i as NavigationMenuItem, l as navigationMenuTriggerStyle, n as NavigationMenuContent, o as NavigationMenuList, r as NavigationMenuIndicator, s as NavigationMenuTrigger, t as NavigationMenu } from "../../
|
|
1
|
+
import { a as NavigationMenuLink, c as NavigationMenuViewport, i as NavigationMenuItem, l as navigationMenuTriggerStyle, n as NavigationMenuContent, o as NavigationMenuList, r as NavigationMenuIndicator, s as NavigationMenuTrigger, t as NavigationMenu } from "../../index46.js";
|
|
2
2
|
export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
|
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_chunk = require("../../chunk.cjs");
|
|
3
|
+
const require_cn = require("../../cn.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
react = require_chunk.__toESM(react);
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
+
//#region src/primitives/NotchedCard/NotchedCard.tsx
|
|
8
|
+
const CORNER_KEYS = [
|
|
9
|
+
"tl",
|
|
10
|
+
"tr",
|
|
11
|
+
"br",
|
|
12
|
+
"bl"
|
|
13
|
+
];
|
|
14
|
+
const useIsoLayoutEffect = typeof window !== "undefined" ? react.useLayoutEffect : react.useEffect;
|
|
15
|
+
const round2 = (v) => Math.round(v * 100) / 100;
|
|
16
|
+
/**
|
|
17
|
+
* Builds the notched outline as an SVG path, walking clockwise from the top
|
|
18
|
+
* edge. Convex turns sweep outward (sweep=1); the inner corner of each notch
|
|
19
|
+
* is a concave fillet (sweep=0). Exported for testing — not part of the
|
|
20
|
+
* typical component API.
|
|
21
|
+
*/
|
|
22
|
+
function buildNotchedCardPath({ w, h, radius, notchRadius, notches }) {
|
|
23
|
+
if (w <= 0 || h <= 0) return "";
|
|
24
|
+
const R = Math.max(0, Math.min(radius, w / 2, h / 2));
|
|
25
|
+
const arc = (rr, x, y, sweep) => `A ${round2(rr)} ${round2(rr)} 0 0 ${sweep} ${round2(x)} ${round2(y)}`;
|
|
26
|
+
const line = (x, y) => `L ${round2(x)} ${round2(y)}`;
|
|
27
|
+
const pt = ([x, y]) => `${round2(x)} ${round2(y)}`;
|
|
28
|
+
const prep = (c) => {
|
|
29
|
+
if (!c || c.w <= 0 || c.h <= 0) return null;
|
|
30
|
+
const nw = Math.min(c.w, w - 2 * R);
|
|
31
|
+
const nh = Math.min(c.h, h - 2 * R);
|
|
32
|
+
if (nw <= R || nh <= R) return null;
|
|
33
|
+
return {
|
|
34
|
+
nw,
|
|
35
|
+
nh,
|
|
36
|
+
r: Math.max(0, Math.min(notchRadius, nw - R, nh - R))
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
const tl = prep(notches.tl);
|
|
40
|
+
const tr = prep(notches.tr);
|
|
41
|
+
const br = prep(notches.br);
|
|
42
|
+
const bl = prep(notches.bl);
|
|
43
|
+
const corner = {
|
|
44
|
+
tl: tl ? {
|
|
45
|
+
entry: [0, tl.nh + R],
|
|
46
|
+
exit: [tl.nw + R, 0],
|
|
47
|
+
cmds: [
|
|
48
|
+
arc(R, R, tl.nh, 1),
|
|
49
|
+
line(tl.nw - tl.r, tl.nh),
|
|
50
|
+
arc(tl.r, tl.nw, tl.nh - tl.r, 0),
|
|
51
|
+
line(tl.nw, R),
|
|
52
|
+
arc(R, tl.nw + R, 0, 1)
|
|
53
|
+
]
|
|
54
|
+
} : {
|
|
55
|
+
entry: [0, R],
|
|
56
|
+
exit: [R, 0],
|
|
57
|
+
cmds: [arc(R, R, 0, 1)]
|
|
58
|
+
},
|
|
59
|
+
tr: tr ? {
|
|
60
|
+
entry: [w - tr.nw - R, 0],
|
|
61
|
+
exit: [w, tr.nh + R],
|
|
62
|
+
cmds: [
|
|
63
|
+
arc(R, w - tr.nw, R, 1),
|
|
64
|
+
line(w - tr.nw, tr.nh - tr.r),
|
|
65
|
+
arc(tr.r, w - tr.nw + tr.r, tr.nh, 0),
|
|
66
|
+
line(w - R, tr.nh),
|
|
67
|
+
arc(R, w, tr.nh + R, 1)
|
|
68
|
+
]
|
|
69
|
+
} : {
|
|
70
|
+
entry: [w - R, 0],
|
|
71
|
+
exit: [w, R],
|
|
72
|
+
cmds: [arc(R, w, R, 1)]
|
|
73
|
+
},
|
|
74
|
+
br: br ? {
|
|
75
|
+
entry: [w, h - br.nh - R],
|
|
76
|
+
exit: [w - br.nw - R, h],
|
|
77
|
+
cmds: [
|
|
78
|
+
arc(R, w - R, h - br.nh, 1),
|
|
79
|
+
line(w - br.nw + br.r, h - br.nh),
|
|
80
|
+
arc(br.r, w - br.nw, h - br.nh + br.r, 0),
|
|
81
|
+
line(w - br.nw, h - R),
|
|
82
|
+
arc(R, w - br.nw - R, h, 1)
|
|
83
|
+
]
|
|
84
|
+
} : {
|
|
85
|
+
entry: [w, h - R],
|
|
86
|
+
exit: [w - R, h],
|
|
87
|
+
cmds: [arc(R, w - R, h, 1)]
|
|
88
|
+
},
|
|
89
|
+
bl: bl ? {
|
|
90
|
+
entry: [bl.nw + R, h],
|
|
91
|
+
exit: [0, h - bl.nh - R],
|
|
92
|
+
cmds: [
|
|
93
|
+
arc(R, bl.nw, h - R, 1),
|
|
94
|
+
line(bl.nw, h - bl.nh + bl.r),
|
|
95
|
+
arc(bl.r, bl.nw - bl.r, h - bl.nh, 0),
|
|
96
|
+
line(R, h - bl.nh),
|
|
97
|
+
arc(R, 0, h - bl.nh - R, 1)
|
|
98
|
+
]
|
|
99
|
+
} : {
|
|
100
|
+
entry: [R, h],
|
|
101
|
+
exit: [0, h - R],
|
|
102
|
+
cmds: [arc(R, 0, h - R, 1)]
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
return [
|
|
106
|
+
`M ${pt(corner.tl.exit)}`,
|
|
107
|
+
line(...corner.tr.entry),
|
|
108
|
+
...corner.tr.cmds,
|
|
109
|
+
line(...corner.br.entry),
|
|
110
|
+
...corner.br.cmds,
|
|
111
|
+
line(...corner.bl.entry),
|
|
112
|
+
...corner.bl.cmds,
|
|
113
|
+
line(...corner.tl.entry),
|
|
114
|
+
...corner.tl.cmds,
|
|
115
|
+
"Z"
|
|
116
|
+
].join(" ");
|
|
117
|
+
}
|
|
118
|
+
const sameBox = (a, b) => a === b || !!a && !!b && a.w === b.w && a.h === b.h;
|
|
119
|
+
/**
|
|
120
|
+
* Style for an invisible float that reserves a side's notched corners inside
|
|
121
|
+
* the content flow, so flowing content wraps around the cutouts instead of
|
|
122
|
+
* running under them. `shape-inside` never shipped in any browser; a float
|
|
123
|
+
* with `shape-outside` is the standard equivalent. A top-only corner is just
|
|
124
|
+
* the float's own box; a bottom corner needs the float to span the content
|
|
125
|
+
* height with a polygon covering only the corner bands (joined by a zero-width
|
|
126
|
+
* "keyhole" along the box edge, which keeps the polygon simple and valid).
|
|
127
|
+
*/
|
|
128
|
+
function sideSpacerStyle(side, rects, innerH) {
|
|
129
|
+
const top = rects.top && rects.top.w > 0 && rects.top.h > 0 ? rects.top : null;
|
|
130
|
+
const bottom = rects.bottom && rects.bottom.w > 0 && rects.bottom.h > 0 ? rects.bottom : null;
|
|
131
|
+
if (!top && !bottom) return null;
|
|
132
|
+
const base = {
|
|
133
|
+
float: side,
|
|
134
|
+
pointerEvents: "none"
|
|
135
|
+
};
|
|
136
|
+
if (!bottom) return {
|
|
137
|
+
...base,
|
|
138
|
+
width: top.w,
|
|
139
|
+
height: top.h
|
|
140
|
+
};
|
|
141
|
+
const px = (v) => `${round2(v)}px`;
|
|
142
|
+
const bandTop = `calc(100% - ${px(bottom.h)})`;
|
|
143
|
+
const shape = side === "left" ? top ? `polygon(0 0, ${px(top.w)} 0, ${px(top.w)} ${px(top.h)}, 0 ${px(top.h)}, 0 ${bandTop}, ${px(bottom.w)} ${bandTop}, ${px(bottom.w)} 100%, 0 100%)` : `polygon(0 ${bandTop}, ${px(bottom.w)} ${bandTop}, ${px(bottom.w)} 100%, 0 100%)` : top ? `polygon(100% 0, calc(100% - ${px(top.w)}) 0, calc(100% - ${px(top.w)}) ${px(top.h)}, 100% ${px(top.h)}, 100% ${bandTop}, calc(100% - ${px(bottom.w)}) ${bandTop}, calc(100% - ${px(bottom.w)}) 100%, 100% 100%)` : `polygon(100% ${bandTop}, calc(100% - ${px(bottom.w)}) ${bandTop}, calc(100% - ${px(bottom.w)}) 100%, 100% 100%)`;
|
|
144
|
+
return {
|
|
145
|
+
...base,
|
|
146
|
+
width: Math.max(top?.w ?? 0, bottom.w),
|
|
147
|
+
height: Math.max(innerH, (top?.h ?? 0) + bottom.h),
|
|
148
|
+
shapeOutside: shape
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
const notchedCardVariants = {
|
|
152
|
+
default: {
|
|
153
|
+
background: "bg-glass-none-bg",
|
|
154
|
+
shadow: "drop-shadow-sm",
|
|
155
|
+
text: "text-primary-txt",
|
|
156
|
+
borderedByDefault: true
|
|
157
|
+
},
|
|
158
|
+
muted: {
|
|
159
|
+
background: "bg-muted-bg",
|
|
160
|
+
shadow: "",
|
|
161
|
+
text: "text-primary-txt",
|
|
162
|
+
borderedByDefault: true
|
|
163
|
+
},
|
|
164
|
+
glass: {
|
|
165
|
+
background: "bg-glass-40-bg backdrop-blur-glass",
|
|
166
|
+
shadow: "",
|
|
167
|
+
text: "text-primary-txt",
|
|
168
|
+
borderedByDefault: false
|
|
169
|
+
},
|
|
170
|
+
brand: {
|
|
171
|
+
background: "bg-[image:linear-gradient(to_right,var(--theme-brand-700),var(--theme-brand-500-primary))]",
|
|
172
|
+
shadow: "",
|
|
173
|
+
text: "text-white",
|
|
174
|
+
borderedByDefault: false
|
|
175
|
+
},
|
|
176
|
+
inverted: {
|
|
177
|
+
background: "bg-primary-invert-bg",
|
|
178
|
+
shadow: "",
|
|
179
|
+
text: "text-primary-invert-txt",
|
|
180
|
+
borderedByDefault: false
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
/** Card with corner slots that notch the background around their content. */
|
|
184
|
+
function NotchedCard({ children, topLeftComponent, topRightComponent, bottomLeftComponent, bottomRightComponent, variant = "default", backgroundImage, backgroundImageOpacity = .8, radius = 16, notchRadius = 12, notchGap = 12, padding = 24, avoidNotches = true, bordered, className, backgroundClassName, contentClassName, style, ...props }) {
|
|
185
|
+
const rootRef = react.useRef(null);
|
|
186
|
+
const cornerRefs = {
|
|
187
|
+
tl: react.useRef(null),
|
|
188
|
+
tr: react.useRef(null),
|
|
189
|
+
br: react.useRef(null),
|
|
190
|
+
bl: react.useRef(null)
|
|
191
|
+
};
|
|
192
|
+
const contentRef = react.useRef(null);
|
|
193
|
+
const [box, setBox] = react.useState({
|
|
194
|
+
w: 0,
|
|
195
|
+
h: 0
|
|
196
|
+
});
|
|
197
|
+
const [contentH, setContentH] = react.useState(0);
|
|
198
|
+
const [sizes, setSizes] = react.useState({
|
|
199
|
+
tl: null,
|
|
200
|
+
tr: null,
|
|
201
|
+
br: null,
|
|
202
|
+
bl: null
|
|
203
|
+
});
|
|
204
|
+
const cornerSlots = [
|
|
205
|
+
[
|
|
206
|
+
"tl",
|
|
207
|
+
topLeftComponent,
|
|
208
|
+
{
|
|
209
|
+
top: 0,
|
|
210
|
+
left: 0
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
[
|
|
214
|
+
"tr",
|
|
215
|
+
topRightComponent,
|
|
216
|
+
{
|
|
217
|
+
top: 0,
|
|
218
|
+
right: 0
|
|
219
|
+
}
|
|
220
|
+
],
|
|
221
|
+
[
|
|
222
|
+
"br",
|
|
223
|
+
bottomRightComponent,
|
|
224
|
+
{
|
|
225
|
+
bottom: 0,
|
|
226
|
+
right: 0
|
|
227
|
+
}
|
|
228
|
+
],
|
|
229
|
+
[
|
|
230
|
+
"bl",
|
|
231
|
+
bottomLeftComponent,
|
|
232
|
+
{
|
|
233
|
+
bottom: 0,
|
|
234
|
+
left: 0
|
|
235
|
+
}
|
|
236
|
+
]
|
|
237
|
+
];
|
|
238
|
+
const hasCorners = cornerSlots.some(([, node]) => node != null && node !== false);
|
|
239
|
+
const measure = react.useCallback(() => {
|
|
240
|
+
const root = rootRef.current;
|
|
241
|
+
if (!root) return;
|
|
242
|
+
setBox((prev) => {
|
|
243
|
+
const next = {
|
|
244
|
+
w: root.offsetWidth,
|
|
245
|
+
h: root.offsetHeight
|
|
246
|
+
};
|
|
247
|
+
return sameBox(prev, next) ? prev : next;
|
|
248
|
+
});
|
|
249
|
+
setContentH((prev) => {
|
|
250
|
+
const next = contentRef.current?.offsetHeight ?? 0;
|
|
251
|
+
return prev === next ? prev : next;
|
|
252
|
+
});
|
|
253
|
+
setSizes((prev) => {
|
|
254
|
+
const next = {};
|
|
255
|
+
let changed = false;
|
|
256
|
+
for (const k of CORNER_KEYS) {
|
|
257
|
+
const el = cornerRefs[k].current;
|
|
258
|
+
next[k] = el ? {
|
|
259
|
+
w: el.offsetWidth,
|
|
260
|
+
h: el.offsetHeight
|
|
261
|
+
} : null;
|
|
262
|
+
if (!sameBox(prev[k], next[k])) changed = true;
|
|
263
|
+
}
|
|
264
|
+
return changed ? next : prev;
|
|
265
|
+
});
|
|
266
|
+
}, []);
|
|
267
|
+
useIsoLayoutEffect(() => {
|
|
268
|
+
if (!hasCorners) return;
|
|
269
|
+
measure();
|
|
270
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
271
|
+
const ro = new ResizeObserver(measure);
|
|
272
|
+
if (rootRef.current) ro.observe(rootRef.current);
|
|
273
|
+
if (contentRef.current) ro.observe(contentRef.current);
|
|
274
|
+
for (const k of CORNER_KEYS) {
|
|
275
|
+
const el = cornerRefs[k].current;
|
|
276
|
+
if (el) ro.observe(el);
|
|
277
|
+
}
|
|
278
|
+
return () => ro.disconnect();
|
|
279
|
+
}, [
|
|
280
|
+
measure,
|
|
281
|
+
hasCorners,
|
|
282
|
+
topLeftComponent,
|
|
283
|
+
topRightComponent,
|
|
284
|
+
bottomRightComponent,
|
|
285
|
+
bottomLeftComponent
|
|
286
|
+
]);
|
|
287
|
+
const notches = Object.fromEntries(CORNER_KEYS.map((k) => [k, sizes[k] ? {
|
|
288
|
+
w: sizes[k].w + notchGap,
|
|
289
|
+
h: sizes[k].h + notchGap
|
|
290
|
+
} : null]));
|
|
291
|
+
const path = hasCorners ? buildNotchedCardPath({
|
|
292
|
+
w: box.w,
|
|
293
|
+
h: box.h,
|
|
294
|
+
radius,
|
|
295
|
+
notchRadius,
|
|
296
|
+
notches
|
|
297
|
+
}) : "";
|
|
298
|
+
const styles = notchedCardVariants[variant];
|
|
299
|
+
const showBorder = bordered ?? styles.borderedByDefault;
|
|
300
|
+
const inset = (v) => Math.max(0, (v ?? 0) - padding + notchGap);
|
|
301
|
+
const toRect = (notch) => notch ? {
|
|
302
|
+
w: inset(notch.w),
|
|
303
|
+
h: inset(notch.h)
|
|
304
|
+
} : null;
|
|
305
|
+
const spacerSides = [["left", {
|
|
306
|
+
top: toRect(notches.tl),
|
|
307
|
+
bottom: toRect(notches.bl)
|
|
308
|
+
}], ["right", {
|
|
309
|
+
top: toRect(notches.tr),
|
|
310
|
+
bottom: toRect(notches.br)
|
|
311
|
+
}]];
|
|
312
|
+
const innerH = Math.max(0, contentH - 2 * padding);
|
|
313
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
314
|
+
ref: rootRef,
|
|
315
|
+
"data-slot": "notched-card",
|
|
316
|
+
"data-variant": variant,
|
|
317
|
+
className: require_cn.cn("group relative isolate", styles.text, className),
|
|
318
|
+
style,
|
|
319
|
+
...props,
|
|
320
|
+
children: [
|
|
321
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
322
|
+
"aria-hidden": true,
|
|
323
|
+
className: require_cn.cn("absolute inset-0 -z-10", styles.shadow),
|
|
324
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
325
|
+
"data-slot": "notched-card-background",
|
|
326
|
+
className: require_cn.cn("absolute inset-0 overflow-hidden", styles.background, backgroundClassName),
|
|
327
|
+
style: path ? {
|
|
328
|
+
clipPath: `path("${path}")`,
|
|
329
|
+
WebkitClipPath: `path("${path}")`
|
|
330
|
+
} : { borderRadius: radius },
|
|
331
|
+
children: backgroundImage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
|
|
332
|
+
src: backgroundImage,
|
|
333
|
+
alt: "",
|
|
334
|
+
className: "absolute inset-0 size-full object-cover",
|
|
335
|
+
style: { opacity: backgroundImageOpacity }
|
|
336
|
+
})
|
|
337
|
+
})
|
|
338
|
+
}),
|
|
339
|
+
showBorder && (path ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
340
|
+
"aria-hidden": true,
|
|
341
|
+
"data-slot": "notched-card-border",
|
|
342
|
+
viewBox: `0 0 ${box.w} ${box.h}`,
|
|
343
|
+
width: box.w,
|
|
344
|
+
height: box.h,
|
|
345
|
+
className: "pointer-events-none absolute inset-0",
|
|
346
|
+
focusable: "false",
|
|
347
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
348
|
+
d: path,
|
|
349
|
+
fill: "none",
|
|
350
|
+
strokeWidth: 1,
|
|
351
|
+
className: "stroke-primary-border"
|
|
352
|
+
})
|
|
353
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
354
|
+
"aria-hidden": true,
|
|
355
|
+
"data-slot": "notched-card-border",
|
|
356
|
+
className: "pointer-events-none absolute inset-0 border border-primary-border",
|
|
357
|
+
style: { borderRadius: radius }
|
|
358
|
+
})),
|
|
359
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
360
|
+
ref: contentRef,
|
|
361
|
+
"data-slot": "notched-card-content",
|
|
362
|
+
className: require_cn.cn("relative", contentClassName),
|
|
363
|
+
style: { padding },
|
|
364
|
+
children: [avoidNotches && spacerSides.map(([side, rects]) => {
|
|
365
|
+
const spacerStyle = sideSpacerStyle(side, rects, innerH);
|
|
366
|
+
return spacerStyle ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
367
|
+
"aria-hidden": true,
|
|
368
|
+
"data-slot": "notched-card-spacer",
|
|
369
|
+
"data-side": side,
|
|
370
|
+
style: spacerStyle
|
|
371
|
+
}, side) : null;
|
|
372
|
+
}), children]
|
|
373
|
+
}),
|
|
374
|
+
cornerSlots.map(([key, node, pos]) => node != null && node !== false ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
375
|
+
ref: cornerRefs[key],
|
|
376
|
+
"data-slot": "notched-card-corner",
|
|
377
|
+
"data-corner": key,
|
|
378
|
+
className: "absolute flex w-max items-center",
|
|
379
|
+
style: pos,
|
|
380
|
+
children: node
|
|
381
|
+
}, key) : null)
|
|
382
|
+
]
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
//#endregion
|
|
386
|
+
exports.NotchedCard = NotchedCard;
|
|
387
|
+
exports.buildNotchedCardPath = buildNotchedCardPath;
|
|
388
|
+
exports.notchedCardVariants = notchedCardVariants;
|
|
389
|
+
|
|
390
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["React","cn"],"sources":["../../../src/primitives/NotchedCard/NotchedCard.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n/* NotchedCard — a card whose background is a clipped shape. Any corner that\n receives content gets a rectangular bite taken out of the background, sized\n to that content, with a concave fillet at the inner corner. With no corner\n content it renders as a plain rounded rectangle (no measuring, no clip). */\n\nconst CORNER_KEYS = [\"tl\", \"tr\", \"br\", \"bl\"] as const;\ntype CornerKey = (typeof CORNER_KEYS)[number];\n\ntype CornerBox = { w: number; h: number };\ntype CornerSizes = Record<CornerKey, CornerBox | null>;\n\n// useLayoutEffect on the client, useEffect during SSR (avoids the React warning).\nconst useIsoLayoutEffect = typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\n\nconst round2 = (v: number) => Math.round(v * 100) / 100;\n\n/**\n * Builds the notched outline as an SVG path, walking clockwise from the top\n * edge. Convex turns sweep outward (sweep=1); the inner corner of each notch\n * is a concave fillet (sweep=0). Exported for testing — not part of the\n * typical component API.\n */\nfunction buildNotchedCardPath({\n w,\n h,\n radius,\n notchRadius,\n notches,\n}: {\n w: number;\n h: number;\n radius: number;\n notchRadius: number;\n notches: CornerSizes;\n}): string {\n if (w <= 0 || h <= 0) return \"\";\n\n const R = Math.max(0, Math.min(radius, w / 2, h / 2));\n const arc = (rr: number, x: number, y: number, sweep: 0 | 1) =>\n `A ${round2(rr)} ${round2(rr)} 0 0 ${sweep} ${round2(x)} ${round2(y)}`;\n const line = (x: number, y: number) => `L ${round2(x)} ${round2(y)}`;\n const pt = ([x, y]: readonly [number, number]) => `${round2(x)} ${round2(y)}`;\n\n // A notch only survives if there is room for it between the outer radii.\n const prep = (c: CornerBox | null) => {\n if (!c || c.w <= 0 || c.h <= 0) return null;\n const nw = Math.min(c.w, w - 2 * R);\n const nh = Math.min(c.h, h - 2 * R);\n if (nw <= R || nh <= R) return null;\n const r = Math.max(0, Math.min(notchRadius, nw - R, nh - R));\n return { nw, nh, r };\n };\n\n type Corner = {\n entry: readonly [number, number];\n exit: readonly [number, number];\n cmds: string[];\n };\n\n const tl = prep(notches.tl);\n const tr = prep(notches.tr);\n const br = prep(notches.br);\n const bl = prep(notches.bl);\n\n const corner: Record<CornerKey, Corner> = {\n tl: tl\n ? {\n entry: [0, tl.nh + R],\n exit: [tl.nw + R, 0],\n cmds: [\n arc(R, R, tl.nh, 1),\n line(tl.nw - tl.r, tl.nh),\n arc(tl.r, tl.nw, tl.nh - tl.r, 0),\n line(tl.nw, R),\n arc(R, tl.nw + R, 0, 1),\n ],\n }\n : { entry: [0, R], exit: [R, 0], cmds: [arc(R, R, 0, 1)] },\n tr: tr\n ? {\n entry: [w - tr.nw - R, 0],\n exit: [w, tr.nh + R],\n cmds: [\n arc(R, w - tr.nw, R, 1),\n line(w - tr.nw, tr.nh - tr.r),\n arc(tr.r, w - tr.nw + tr.r, tr.nh, 0),\n line(w - R, tr.nh),\n arc(R, w, tr.nh + R, 1),\n ],\n }\n : { entry: [w - R, 0], exit: [w, R], cmds: [arc(R, w, R, 1)] },\n br: br\n ? {\n entry: [w, h - br.nh - R],\n exit: [w - br.nw - R, h],\n cmds: [\n arc(R, w - R, h - br.nh, 1),\n line(w - br.nw + br.r, h - br.nh),\n arc(br.r, w - br.nw, h - br.nh + br.r, 0),\n line(w - br.nw, h - R),\n arc(R, w - br.nw - R, h, 1),\n ],\n }\n : { entry: [w, h - R], exit: [w - R, h], cmds: [arc(R, w - R, h, 1)] },\n bl: bl\n ? {\n entry: [bl.nw + R, h],\n exit: [0, h - bl.nh - R],\n cmds: [\n arc(R, bl.nw, h - R, 1),\n line(bl.nw, h - bl.nh + bl.r),\n arc(bl.r, bl.nw - bl.r, h - bl.nh, 0),\n line(R, h - bl.nh),\n arc(R, 0, h - bl.nh - R, 1),\n ],\n }\n : { entry: [R, h], exit: [0, h - R], cmds: [arc(R, 0, h - R, 1)] },\n };\n\n return [\n `M ${pt(corner.tl.exit)}`,\n line(...corner.tr.entry),\n ...corner.tr.cmds,\n line(...corner.br.entry),\n ...corner.br.cmds,\n line(...corner.bl.entry),\n ...corner.bl.cmds,\n line(...corner.tl.entry),\n ...corner.tl.cmds,\n \"Z\",\n ].join(\" \");\n}\n\nconst sameBox = (a: CornerBox | null, b: CornerBox | null) =>\n a === b || (!!a && !!b && a.w === b.w && a.h === b.h);\n\ntype SideRects = { top: CornerBox | null; bottom: CornerBox | null };\n\n/**\n * Style for an invisible float that reserves a side's notched corners inside\n * the content flow, so flowing content wraps around the cutouts instead of\n * running under them. `shape-inside` never shipped in any browser; a float\n * with `shape-outside` is the standard equivalent. A top-only corner is just\n * the float's own box; a bottom corner needs the float to span the content\n * height with a polygon covering only the corner bands (joined by a zero-width\n * \"keyhole\" along the box edge, which keeps the polygon simple and valid).\n */\nfunction sideSpacerStyle(\n side: \"left\" | \"right\",\n rects: SideRects,\n innerH: number,\n): React.CSSProperties | null {\n const top = rects.top && rects.top.w > 0 && rects.top.h > 0 ? rects.top : null;\n const bottom = rects.bottom && rects.bottom.w > 0 && rects.bottom.h > 0 ? rects.bottom : null;\n if (!top && !bottom) return null;\n\n const base: React.CSSProperties = { float: side, pointerEvents: \"none\" };\n if (!bottom) {\n // Type-narrowing: !bottom && the guard above means top is set.\n return { ...base, width: (top as CornerBox).w, height: (top as CornerBox).h };\n }\n\n const px = (v: number) => `${round2(v)}px`;\n const bandTop = `calc(100% - ${px(bottom.h)})`;\n const shape =\n side === \"left\"\n ? top\n ? `polygon(0 0, ${px(top.w)} 0, ${px(top.w)} ${px(top.h)}, 0 ${px(top.h)}, 0 ${bandTop}, ${px(bottom.w)} ${bandTop}, ${px(bottom.w)} 100%, 0 100%)`\n : `polygon(0 ${bandTop}, ${px(bottom.w)} ${bandTop}, ${px(bottom.w)} 100%, 0 100%)`\n : top\n ? `polygon(100% 0, calc(100% - ${px(top.w)}) 0, calc(100% - ${px(top.w)}) ${px(top.h)}, 100% ${px(top.h)}, 100% ${bandTop}, calc(100% - ${px(bottom.w)}) ${bandTop}, calc(100% - ${px(bottom.w)}) 100%, 100% 100%)`\n : `polygon(100% ${bandTop}, calc(100% - ${px(bottom.w)}) ${bandTop}, calc(100% - ${px(bottom.w)}) 100%, 100% 100%)`;\n\n return {\n ...base,\n width: Math.max(top?.w ?? 0, bottom.w),\n height: Math.max(innerH, (top?.h ?? 0) + bottom.h),\n shapeOutside: shape,\n };\n}\n\n// Variant fill goes on the clipped background layer; text colour goes on the\n// root so corner slots and content inherit it. Shadows must be drop-shadow\n// (a filter, applied to the layer's parent) — box-shadow gets clipped away.\nconst notchedCardVariants = {\n default: {\n background: \"bg-glass-none-bg\",\n shadow: \"drop-shadow-sm\",\n text: \"text-primary-txt\",\n borderedByDefault: true,\n },\n muted: {\n background: \"bg-muted-bg\",\n shadow: \"\",\n text: \"text-primary-txt\",\n borderedByDefault: true,\n },\n // Translucent glass over textured backgrounds — blur is part of the deal.\n glass: {\n background: \"bg-glass-40-bg backdrop-blur-glass\",\n shadow: \"\",\n text: \"text-primary-txt\",\n borderedByDefault: false,\n },\n // Active product's brand gradient, matching Card's brand variant.\n brand: {\n background:\n \"bg-[image:linear-gradient(to_right,var(--theme-brand-700),var(--theme-brand-500-primary))]\",\n shadow: \"\",\n text: \"text-white\",\n borderedByDefault: false,\n },\n inverted: {\n background: \"bg-primary-invert-bg\",\n shadow: \"\",\n text: \"text-primary-invert-txt\",\n borderedByDefault: false,\n },\n} as const;\n\ntype NotchedCardVariant = keyof typeof notchedCardVariants;\n\ntype NotchedCardProps = React.ComponentProps<\"div\"> & {\n /** Content pinned to the top-left corner; its footprint is notched out of the background. */\n topLeftComponent?: React.ReactNode;\n /** Content pinned to the top-right corner; its footprint is notched out of the background. */\n topRightComponent?: React.ReactNode;\n /** Content pinned to the bottom-left corner; its footprint is notched out of the background. */\n bottomLeftComponent?: React.ReactNode;\n /** Content pinned to the bottom-right corner; its footprint is notched out of the background. */\n bottomRightComponent?: React.ReactNode;\n /** Background fill of the card surface. Default `default` (solid surface). */\n variant?: NotchedCardVariant;\n /** Image URL rendered as the card's background (object-fit: cover), slightly transparent. */\n backgroundImage?: string;\n /** Opacity of the background image. Default `0.8`. */\n backgroundImageOpacity?: number;\n /** Outer corner radius in px. Default `16`. */\n radius?: number;\n /** Concave fillet radius at each notch's inner corner in px. Default `12`. */\n notchRadius?: number;\n /** Gutter in px between corner content and the background edge. Default `12`. */\n notchGap?: number;\n /** Content padding in px. Default `24`. */\n padding?: number;\n /** Keep flowing content out of the notched corners via invisible float\n spacers. Needs flow (block/inline) content — set `false` if\n `contentClassName` turns the wrapper into a flex/grid container.\n Default `true`. */\n avoidNotches?: boolean;\n /** Draw the outline stroke. Defaults per variant (`default`/`muted` on, others off). */\n bordered?: boolean;\n /** Extra classes for the clipped background layer — set the fill here (e.g.\n `bg-…`, gradients). The layer sits behind the content, so plain `hover:`\n variants never fire on it; the root carries the `group` marker — use\n `group-hover:bg-…` for hover fills (plain `hover:` works on `className`,\n which styles the root itself). */\n backgroundClassName?: string;\n /** Extra classes for the content wrapper. */\n contentClassName?: string;\n};\n\n/** Card with corner slots that notch the background around their content. */\nfunction NotchedCard({\n children,\n topLeftComponent,\n topRightComponent,\n bottomLeftComponent,\n bottomRightComponent,\n variant = \"default\",\n backgroundImage,\n backgroundImageOpacity = 0.8,\n radius = 16,\n notchRadius = 12,\n notchGap = 12,\n padding = 24,\n avoidNotches = true,\n bordered,\n className,\n backgroundClassName,\n contentClassName,\n style,\n ...props\n}: NotchedCardProps) {\n const rootRef = React.useRef<HTMLDivElement>(null);\n const tlRef = React.useRef<HTMLDivElement>(null);\n const trRef = React.useRef<HTMLDivElement>(null);\n const brRef = React.useRef<HTMLDivElement>(null);\n const blRef = React.useRef<HTMLDivElement>(null);\n const cornerRefs: Record<CornerKey, React.RefObject<HTMLDivElement>> = {\n tl: tlRef,\n tr: trRef,\n br: brRef,\n bl: blRef,\n };\n\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const [box, setBox] = React.useState<CornerBox>({ w: 0, h: 0 });\n const [contentH, setContentH] = React.useState(0);\n const [sizes, setSizes] = React.useState<CornerSizes>({\n tl: null,\n tr: null,\n br: null,\n bl: null,\n });\n\n const cornerSlots: Array<[CornerKey, React.ReactNode, React.CSSProperties]> = [\n [\"tl\", topLeftComponent, { top: 0, left: 0 }],\n [\"tr\", topRightComponent, { top: 0, right: 0 }],\n [\"br\", bottomRightComponent, { bottom: 0, right: 0 }],\n [\"bl\", bottomLeftComponent, { bottom: 0, left: 0 }],\n ];\n const hasCorners = cornerSlots.some(([, node]) => node != null && node !== false);\n\n const measure = React.useCallback(() => {\n const root = rootRef.current;\n if (!root) return;\n setBox((prev) => {\n const next = { w: root.offsetWidth, h: root.offsetHeight };\n return sameBox(prev, next) ? prev : next;\n });\n setContentH((prev) => {\n const next = contentRef.current?.offsetHeight ?? 0;\n return prev === next ? prev : next;\n });\n setSizes((prev) => {\n const next = {} as CornerSizes;\n let changed = false;\n for (const k of CORNER_KEYS) {\n const el = cornerRefs[k].current;\n next[k] = el ? { w: el.offsetWidth, h: el.offsetHeight } : null;\n if (!sameBox(prev[k], next[k])) changed = true;\n }\n return changed ? next : prev;\n });\n }, []);\n\n useIsoLayoutEffect(() => {\n if (!hasCorners) return;\n measure();\n if (typeof ResizeObserver === \"undefined\") return;\n const ro = new ResizeObserver(measure);\n if (rootRef.current) ro.observe(rootRef.current);\n if (contentRef.current) ro.observe(contentRef.current);\n for (const k of CORNER_KEYS) {\n const el = cornerRefs[k].current;\n if (el) ro.observe(el);\n }\n return () => ro.disconnect();\n }, [\n measure,\n hasCorners,\n topLeftComponent,\n topRightComponent,\n bottomRightComponent,\n bottomLeftComponent,\n ]);\n\n // Corner content box + gutter = the bite taken out of the background.\n const notches = Object.fromEntries(\n CORNER_KEYS.map((k) => [\n k,\n sizes[k]\n ? { w: (sizes[k] as CornerBox).w + notchGap, h: (sizes[k] as CornerBox).h + notchGap }\n : null,\n ]),\n ) as CornerSizes;\n\n const path = hasCorners\n ? buildNotchedCardPath({ w: box.w, h: box.h, radius, notchRadius, notches })\n : \"\";\n\n const styles = notchedCardVariants[variant];\n const showBorder = bordered ?? styles.borderedByDefault;\n\n // Notch footprints translated into content-box coordinates, extended by\n // `notchGap` so flowing content keeps a gutter from the cut edges.\n const inset = (v?: number) => Math.max(0, (v ?? 0) - padding + notchGap);\n const toRect = (notch: CornerBox | null) =>\n notch ? { w: inset(notch.w), h: inset(notch.h) } : null;\n const spacerSides: Array<[\"left\" | \"right\", SideRects]> = [\n [\"left\", { top: toRect(notches.tl), bottom: toRect(notches.bl) }],\n [\"right\", { top: toRect(notches.tr), bottom: toRect(notches.br) }],\n ];\n const innerH = Math.max(0, contentH - 2 * padding);\n\n return (\n <div\n ref={rootRef}\n data-slot=\"notched-card\"\n data-variant={variant}\n className={cn(\"group relative isolate\", styles.text, className)}\n style={style}\n {...props}\n >\n {/* Background layer — the only thing that gets clipped. The wrapper owns\n the drop-shadow filter: filters apply before clipping, so a shadow on\n the clipped element itself would be cut away with it. */}\n <div aria-hidden className={cn(\"absolute inset-0 -z-10\", styles.shadow)}>\n <div\n data-slot=\"notched-card-background\"\n className={cn(\"absolute inset-0 overflow-hidden\", styles.background, backgroundClassName)}\n style={\n path\n ? { clipPath: `path(\"${path}\")`, WebkitClipPath: `path(\"${path}\")` }\n : { borderRadius: radius }\n }\n >\n {backgroundImage && (\n <img\n src={backgroundImage}\n alt=\"\"\n className=\"absolute inset-0 size-full object-cover\"\n style={{ opacity: backgroundImageOpacity }}\n />\n )}\n </div>\n </div>\n\n {/* Outline — stroked (not clipped) so it follows the notches and stays crisp. */}\n {showBorder &&\n (path ? (\n <svg\n aria-hidden\n data-slot=\"notched-card-border\"\n viewBox={`0 0 ${box.w} ${box.h}`}\n width={box.w}\n height={box.h}\n className=\"pointer-events-none absolute inset-0\"\n focusable=\"false\"\n >\n <path d={path} fill=\"none\" strokeWidth={1} className=\"stroke-primary-border\" />\n </svg>\n ) : (\n <div\n aria-hidden\n data-slot=\"notched-card-border\"\n className=\"pointer-events-none absolute inset-0 border border-primary-border\"\n style={{ borderRadius: radius }}\n />\n ))}\n\n {/* Content — uniform padding; float spacers keep flowing content out of\n the notched corners. */}\n <div\n ref={contentRef}\n data-slot=\"notched-card-content\"\n className={cn(\"relative\", contentClassName)}\n style={{ padding }}\n >\n {avoidNotches &&\n spacerSides.map(([side, rects]) => {\n const spacerStyle = sideSpacerStyle(side, rects, innerH);\n return spacerStyle ? (\n <div\n key={side}\n aria-hidden\n data-slot=\"notched-card-spacer\"\n data-side={side}\n style={spacerStyle}\n />\n ) : null;\n })}\n {children}\n </div>\n\n {/* Corner slots — outside the background, inside the cutouts. */}\n {cornerSlots.map(([key, node, pos]) =>\n node != null && node !== false ? (\n <div\n key={key}\n ref={cornerRefs[key]}\n data-slot=\"notched-card-corner\"\n data-corner={key}\n className=\"absolute flex w-max items-center\"\n style={pos}\n >\n {node}\n </div>\n ) : null,\n )}\n </div>\n );\n}\n\nexport {\n NotchedCard,\n buildNotchedCardPath,\n notchedCardVariants,\n type NotchedCardProps,\n type NotchedCardVariant,\n};\n"],"mappings":"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"}
|