@womp/kookie-ui 0.26.0 → 0.26.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.css +36 -3
- package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
- package/dist/cjs/components/_internal/base-button.js +1 -1
- package/dist/cjs/components/_internal/base-button.js.map +3 -3
- package/dist/cjs/components/_internal/base-button.props.js +0 -1
- package/dist/cjs/components/_internal/base-button.props.js.map +1 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js +0 -1
- package/dist/cjs/components/_internal/base-checkbox.props.js.map +1 -1
- package/dist/cjs/components/_internal/base-menu.props.js +0 -1
- package/dist/cjs/components/_internal/base-menu.props.js.map +1 -1
- package/dist/cjs/components/_internal/base-radio.props.js +0 -1
- package/dist/cjs/components/_internal/base-radio.props.js.map +1 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js +0 -1
- package/dist/cjs/components/_internal/base-tab-list.props.js.map +1 -1
- package/dist/cjs/components/_internal/pane-band-context.d.ts +14 -0
- package/dist/cjs/components/_internal/pane-band-context.d.ts.map +1 -0
- package/dist/cjs/components/_internal/pane-band-context.js +3 -0
- package/dist/cjs/components/_internal/pane-band-context.js.map +7 -0
- package/dist/cjs/components/_internal/pane-chrome.d.ts +1 -1
- package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
- package/dist/cjs/components/_internal/pane-chrome.js +1 -1
- package/dist/cjs/components/_internal/pane-chrome.js.map +4 -4
- package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js +1 -1
- package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
- package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
- package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
- package/dist/cjs/components/accordion.props.js +0 -1
- package/dist/cjs/components/accordion.props.js.map +1 -1
- package/dist/cjs/components/alert-dialog.js +1 -1
- package/dist/cjs/components/alert-dialog.js.map +4 -4
- package/dist/cjs/components/alert-dialog.props.js +0 -1
- package/dist/cjs/components/alert-dialog.props.js.map +1 -1
- package/dist/cjs/components/avatar.props.js +0 -1
- package/dist/cjs/components/avatar.props.js.map +1 -1
- package/dist/cjs/components/blockquote.props.js +0 -1
- package/dist/cjs/components/blockquote.props.js.map +1 -1
- package/dist/cjs/components/box.props.js +0 -1
- package/dist/cjs/components/box.props.js.map +1 -1
- package/dist/cjs/components/button.js +1 -1
- package/dist/cjs/components/button.js.map +4 -4
- package/dist/cjs/components/button.props.js +0 -1
- package/dist/cjs/components/button.props.js.map +1 -1
- package/dist/cjs/components/card.props.js +0 -1
- package/dist/cjs/components/card.props.js.map +1 -1
- package/dist/cjs/components/chatbar.js +1 -1
- package/dist/cjs/components/chatbar.js.map +4 -4
- package/dist/cjs/components/checkbox-group.props.js +0 -1
- package/dist/cjs/components/checkbox-group.props.js.map +1 -1
- package/dist/cjs/components/checkbox.props.js +0 -1
- package/dist/cjs/components/checkbox.props.js.map +1 -1
- package/dist/cjs/components/chip.js +1 -1
- package/dist/cjs/components/chip.js.map +4 -4
- package/dist/cjs/components/chip.props.js +0 -1
- package/dist/cjs/components/chip.props.js.map +1 -1
- package/dist/cjs/components/code.props.js +0 -1
- package/dist/cjs/components/code.props.js.map +1 -1
- package/dist/cjs/components/combobox.js +1 -1
- package/dist/cjs/components/combobox.js.map +4 -4
- package/dist/cjs/components/combobox.props.js +0 -1
- package/dist/cjs/components/combobox.props.js.map +1 -1
- package/dist/cjs/components/context-menu.js +1 -1
- package/dist/cjs/components/context-menu.js.map +4 -4
- package/dist/cjs/components/context-menu.props.js +0 -1
- package/dist/cjs/components/context-menu.props.js.map +1 -1
- package/dist/cjs/components/dialog.js +1 -1
- package/dist/cjs/components/dialog.js.map +4 -4
- package/dist/cjs/components/dialog.props.js +0 -1
- package/dist/cjs/components/dialog.props.js.map +1 -1
- package/dist/cjs/components/dropdown-menu.js +1 -1
- package/dist/cjs/components/dropdown-menu.js.map +4 -4
- package/dist/cjs/components/dropdown-menu.props.js +0 -1
- package/dist/cjs/components/dropdown-menu.props.js.map +1 -1
- package/dist/cjs/components/flex.props.js +0 -1
- package/dist/cjs/components/flex.props.js.map +1 -1
- package/dist/cjs/components/grid.props.js +0 -1
- package/dist/cjs/components/grid.props.js.map +1 -1
- package/dist/cjs/components/heading.props.js +0 -1
- package/dist/cjs/components/heading.props.js.map +1 -1
- package/dist/cjs/components/image.props.js +0 -1
- package/dist/cjs/components/image.props.js.map +1 -1
- package/dist/cjs/components/index.js +2 -2
- package/dist/cjs/components/index.js.map +4 -4
- package/dist/cjs/components/kbd.props.js +0 -1
- package/dist/cjs/components/kbd.props.js.map +1 -1
- package/dist/cjs/components/link.props.js +0 -1
- package/dist/cjs/components/link.props.js.map +1 -1
- package/dist/cjs/components/message-scroller.js +1 -1
- package/dist/cjs/components/message-scroller.js.map +4 -4
- package/dist/cjs/components/navbar.props.js +0 -1
- package/dist/cjs/components/navbar.props.js.map +1 -1
- package/dist/cjs/components/notice.js +1 -1
- package/dist/cjs/components/notice.js.map +4 -4
- package/dist/cjs/components/popover.d.ts.map +1 -1
- package/dist/cjs/components/popover.js +1 -1
- package/dist/cjs/components/popover.js.map +4 -4
- package/dist/cjs/components/popover.props.js +0 -1
- package/dist/cjs/components/popover.props.js.map +1 -1
- package/dist/cjs/components/progress.props.js +0 -1
- package/dist/cjs/components/progress.props.js.map +1 -1
- package/dist/cjs/components/radio-group.props.js +0 -1
- package/dist/cjs/components/radio-group.props.js.map +1 -1
- package/dist/cjs/components/radio.props.js +0 -1
- package/dist/cjs/components/radio.props.js.map +1 -1
- package/dist/cjs/components/scroll-area.d.ts.map +1 -1
- package/dist/cjs/components/scroll-area.js +1 -1
- package/dist/cjs/components/scroll-area.js.map +3 -3
- package/dist/cjs/components/scroll-area.props.js +0 -1
- package/dist/cjs/components/scroll-area.props.js.map +1 -1
- package/dist/cjs/components/segmented-control.props.js +0 -1
- package/dist/cjs/components/segmented-control.props.js.map +1 -1
- package/dist/cjs/components/select.js +1 -1
- package/dist/cjs/components/select.js.map +4 -4
- package/dist/cjs/components/select.props.js +0 -1
- package/dist/cjs/components/select.props.js.map +1 -1
- package/dist/cjs/components/separator.props.js +0 -1
- package/dist/cjs/components/separator.props.js.map +1 -1
- package/dist/cjs/components/sheet.js +1 -1
- package/dist/cjs/components/sheet.js.map +4 -4
- package/dist/cjs/components/shell.d.ts.map +1 -1
- package/dist/cjs/components/shell.js +1 -1
- package/dist/cjs/components/shell.js.map +4 -4
- package/dist/cjs/components/sidebar.js +1 -1
- package/dist/cjs/components/sidebar.js.map +4 -4
- package/dist/cjs/components/slider.d.ts.map +1 -1
- package/dist/cjs/components/slider.js +1 -1
- package/dist/cjs/components/slider.js.map +3 -3
- package/dist/cjs/components/slider.props.js +0 -1
- package/dist/cjs/components/slider.props.js.map +1 -1
- package/dist/cjs/components/spinner.props.js +0 -1
- package/dist/cjs/components/spinner.props.js.map +1 -1
- package/dist/cjs/components/switch.props.js +0 -1
- package/dist/cjs/components/switch.props.js.map +1 -1
- package/dist/cjs/components/table.js +1 -1
- package/dist/cjs/components/table.js.map +3 -3
- package/dist/cjs/components/table.props.js +0 -1
- package/dist/cjs/components/table.props.js.map +1 -1
- package/dist/cjs/components/tabs.props.js +0 -1
- package/dist/cjs/components/tabs.props.js.map +1 -1
- package/dist/cjs/components/text-area.d.ts.map +1 -1
- package/dist/cjs/components/text-area.js +1 -1
- package/dist/cjs/components/text-area.js.map +3 -3
- package/dist/cjs/components/text-area.props.js +0 -1
- package/dist/cjs/components/text-area.props.js.map +1 -1
- package/dist/cjs/components/text-field.d.ts.map +1 -1
- package/dist/cjs/components/text-field.js +2 -2
- package/dist/cjs/components/text-field.js.map +3 -3
- package/dist/cjs/components/text-field.props.js +0 -1
- package/dist/cjs/components/text-field.props.js.map +1 -1
- package/dist/cjs/components/text.props.js +0 -1
- package/dist/cjs/components/text.props.js.map +1 -1
- package/dist/cjs/components/theme.d.ts.map +1 -1
- package/dist/cjs/components/theme.js +1 -1
- package/dist/cjs/components/theme.js.map +4 -4
- package/dist/cjs/components/theme.props.js +0 -1
- package/dist/cjs/components/theme.props.js.map +1 -1
- package/dist/cjs/components/toggle.js +1 -1
- package/dist/cjs/components/toggle.js.map +4 -4
- package/dist/cjs/components/toolbar.js +1 -1
- package/dist/cjs/components/toolbar.js.map +4 -4
- package/dist/cjs/components/toolbar.props.d.ts +3 -2
- package/dist/cjs/components/toolbar.props.d.ts.map +1 -1
- package/dist/cjs/components/toolbar.props.js +0 -1
- package/dist/cjs/components/toolbar.props.js.map +2 -2
- package/dist/cjs/components/tooltip.js +1 -1
- package/dist/cjs/components/tooltip.js.map +4 -4
- package/dist/cjs/components/tooltip.props.js +0 -1
- package/dist/cjs/components/tooltip.props.js.map +1 -1
- package/dist/cjs/hooks/use-scroll-edges.d.ts +9 -0
- package/dist/cjs/hooks/use-scroll-edges.d.ts.map +1 -1
- package/dist/cjs/hooks/use-scroll-edges.js +1 -1
- package/dist/cjs/hooks/use-scroll-edges.js.map +3 -3
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/props/index.js +1 -1
- package/dist/cjs/props/index.js.map +4 -4
- package/dist/esm/chunk-2ACVWLFA.js +3 -0
- package/dist/esm/{chunk-6RJQ5LLP.js → chunk-2TWPPDII.js} +2 -2
- package/dist/esm/{chunk-I3SRUPUP.js → chunk-2ZLMWYJ6.js} +2 -3
- package/dist/esm/{chunk-I3SRUPUP.js.map → chunk-2ZLMWYJ6.js.map} +1 -1
- package/dist/esm/chunk-3C4Q6PMS.js +3 -0
- package/dist/esm/{chunk-5XR5PTDR.js.map → chunk-3C4Q6PMS.js.map} +1 -1
- package/dist/esm/chunk-3QN4C5LW.js +3 -0
- package/dist/esm/{chunk-5EBJOOXE.js.map → chunk-3QN4C5LW.js.map} +4 -4
- package/dist/esm/chunk-3W34KH33.js +2 -0
- package/dist/esm/{chunk-4S5L25RO.js.map → chunk-3W34KH33.js.map} +1 -1
- package/dist/esm/chunk-3ZWHKNHI.js +3 -0
- package/dist/esm/chunk-3ZWHKNHI.js.map +7 -0
- package/dist/esm/chunk-457Z4R5W.js +3 -0
- package/dist/esm/{chunk-5L4DZ2D3.js.map → chunk-457Z4R5W.js.map} +1 -1
- package/dist/esm/chunk-4E5XBM5Q.js +2 -0
- package/dist/esm/{chunk-IE5ACUZS.js.map → chunk-4E5XBM5Q.js.map} +1 -1
- package/dist/esm/{chunk-QH64BDXO.js → chunk-4G3FJUER.js} +2 -2
- package/dist/esm/{chunk-R7THBMND.js → chunk-4KIZRO52.js} +1 -1
- package/dist/esm/{chunk-W4MQ6TEK.js → chunk-5FWEGTP6.js} +2 -2
- package/dist/esm/chunk-5KJIPH2N.js +3 -0
- package/dist/esm/chunk-5KJIPH2N.js.map +7 -0
- package/dist/esm/chunk-5MEWNLNH.js +3 -0
- package/dist/esm/{chunk-3L2MDOYC.js.map → chunk-5MEWNLNH.js.map} +4 -4
- package/dist/esm/chunk-5PQCTVZB.js +3 -0
- package/dist/esm/{chunk-YD2D73LF.js.map → chunk-5PQCTVZB.js.map} +4 -4
- package/dist/esm/chunk-5XA2N2WR.js +2 -0
- package/dist/esm/{chunk-R7THBMND.js.map → chunk-5XA2N2WR.js.map} +1 -1
- package/dist/esm/chunk-6DWDNKLS.js +1 -0
- package/dist/esm/chunk-6M6HGIGN.js +3 -0
- package/dist/esm/{chunk-PCLO3ZZY.js.map → chunk-6M6HGIGN.js.map} +4 -4
- package/dist/esm/chunk-7QP6JFPO.js +3 -0
- package/dist/esm/chunk-7QP6JFPO.js.map +7 -0
- package/dist/esm/chunk-ADL3LEOQ.js +3 -0
- package/dist/esm/chunk-ADL3LEOQ.js.map +7 -0
- package/dist/esm/chunk-AJANJ22M.js +3 -0
- package/dist/esm/{chunk-CBWERXF4.js.map → chunk-AJANJ22M.js.map} +4 -4
- package/dist/esm/{chunk-I6SMGWS5.js → chunk-AJWCSQIE.js} +2 -3
- package/dist/esm/chunk-AJWCSQIE.js.map +7 -0
- package/dist/esm/chunk-AKXBXLCP.js +2 -0
- package/dist/esm/chunk-AKXBXLCP.js.map +7 -0
- package/dist/esm/chunk-BEHAT3GI.js +3 -0
- package/dist/esm/{chunk-5CFSNNYS.js.map → chunk-BEHAT3GI.js.map} +4 -4
- package/dist/esm/chunk-BF4WRYUX.js +2 -0
- package/dist/esm/{chunk-M3NI3D6R.js.map → chunk-BF4WRYUX.js.map} +1 -1
- package/dist/esm/{chunk-5WTSKXAE.js → chunk-BIITGC3Z.js} +2 -3
- package/dist/esm/{chunk-5WTSKXAE.js.map → chunk-BIITGC3Z.js.map} +1 -1
- package/dist/esm/{chunk-NBVCQQSY.js → chunk-BP64M73W.js} +2 -3
- package/dist/esm/{chunk-NBVCQQSY.js.map → chunk-BP64M73W.js.map} +1 -1
- package/dist/esm/chunk-BQC2P3SN.js +3 -0
- package/dist/esm/chunk-BQC2P3SN.js.map +7 -0
- package/dist/esm/{chunk-XL5OHW6Z.js → chunk-BVQDDN5Q.js} +2 -2
- package/dist/esm/{chunk-YOSCUA6Z.js → chunk-C2WKAIZM.js} +2 -2
- package/dist/esm/chunk-CT543Q2V.js +2 -0
- package/dist/esm/{chunk-YZZMQ457.js.map → chunk-CT543Q2V.js.map} +1 -1
- package/dist/esm/chunk-DFGY2NZB.js +2 -0
- package/dist/esm/{chunk-SGJKXIWG.js.map → chunk-DFGY2NZB.js.map} +1 -1
- package/dist/esm/{chunk-4J7QDLKI.js → chunk-DFLWZOQO.js} +2 -3
- package/dist/esm/{chunk-4J7QDLKI.js.map → chunk-DFLWZOQO.js.map} +1 -1
- package/dist/esm/chunk-DG2KIH54.js +6 -0
- package/dist/esm/chunk-DG2KIH54.js.map +7 -0
- package/dist/esm/chunk-DIY2XQKR.js +3 -0
- package/dist/esm/{chunk-OQWD63AI.js.map → chunk-DIY2XQKR.js.map} +4 -4
- package/dist/esm/chunk-DQCE7DHY.js +3 -0
- package/dist/esm/{chunk-ILWS2JUE.js.map → chunk-DQCE7DHY.js.map} +4 -4
- package/dist/esm/{chunk-7B3XDZXZ.js → chunk-E6BDD3PN.js} +2 -2
- package/dist/esm/chunk-EERKYRYI.js +3 -0
- package/dist/esm/{chunk-BXZSJKWA.js.map → chunk-EERKYRYI.js.map} +4 -4
- package/dist/esm/chunk-EFXHBH3A.js +2 -0
- package/dist/esm/{chunk-XMHNOIPB.js.map → chunk-EFXHBH3A.js.map} +1 -1
- package/dist/esm/{chunk-6FLLFCBU.js → chunk-ELAW7ZUG.js} +2 -2
- package/dist/esm/{chunk-WT2SYGTU.js → chunk-ETQNRMHU.js} +2 -3
- package/dist/esm/{chunk-WT2SYGTU.js.map → chunk-ETQNRMHU.js.map} +1 -1
- package/dist/esm/chunk-F2722F7B.js +3 -0
- package/dist/esm/{chunk-VPRAXHLL.js.map → chunk-F2722F7B.js.map} +4 -4
- package/dist/esm/chunk-F364PDDM.js +3 -0
- package/dist/esm/chunk-F364PDDM.js.map +7 -0
- package/dist/esm/{chunk-PT45Q47V.js → chunk-FATCGZZE.js} +1 -1
- package/dist/esm/{chunk-IZIDRDQW.js → chunk-FH6RT6XH.js} +2 -3
- package/dist/esm/{chunk-IZIDRDQW.js.map → chunk-FH6RT6XH.js.map} +1 -1
- package/dist/esm/chunk-FNAE6HUI.js +2 -0
- package/dist/esm/chunk-FNAE6HUI.js.map +7 -0
- package/dist/esm/chunk-GE7FRBZ4.js +3 -0
- package/dist/esm/chunk-GE7FRBZ4.js.map +7 -0
- package/dist/esm/chunk-GOXGRJO6.js +3 -0
- package/dist/esm/chunk-GOXGRJO6.js.map +7 -0
- package/dist/esm/chunk-H2TSRYQ5.js +3 -0
- package/dist/esm/chunk-H2TSRYQ5.js.map +7 -0
- package/dist/esm/chunk-H33NTGVF.js +3 -0
- package/dist/esm/chunk-H33NTGVF.js.map +7 -0
- package/dist/esm/chunk-H3IAGAEL.js +2 -0
- package/dist/esm/{chunk-WCGQ4IDE.js.map → chunk-H3IAGAEL.js.map} +1 -1
- package/dist/esm/{chunk-PT4KBXXP.js → chunk-HCBR74BW.js} +2 -3
- package/dist/esm/{chunk-PT4KBXXP.js.map → chunk-HCBR74BW.js.map} +1 -1
- package/dist/esm/{chunk-TGUWRU7N.js → chunk-HIEGLLY7.js} +1 -2
- package/dist/esm/{chunk-TGUWRU7N.js.map → chunk-HIEGLLY7.js.map} +1 -1
- package/dist/esm/chunk-HSWMHW37.js +2 -0
- package/dist/esm/{chunk-SV3CYQY5.js.map → chunk-HSWMHW37.js.map} +1 -1
- package/dist/esm/{chunk-NZCAGHCL.js → chunk-HVMRB3AH.js} +2 -2
- package/dist/esm/{chunk-IZXML75Y.js → chunk-JQVW4WNN.js} +2 -2
- package/dist/esm/chunk-K55IQP5H.js +3 -0
- package/dist/esm/{chunk-Y2BTPKK6.js.map → chunk-K55IQP5H.js.map} +4 -4
- package/dist/esm/chunk-KQIZMPSW.js +3 -0
- package/dist/esm/chunk-KQIZMPSW.js.map +7 -0
- package/dist/esm/chunk-KVOWI6SN.js +2 -0
- package/dist/esm/{chunk-HV7USGHD.js.map → chunk-KVOWI6SN.js.map} +1 -1
- package/dist/esm/{chunk-WZKSLTBH.js → chunk-KVVRFWGQ.js} +2 -2
- package/dist/esm/chunk-LFAUMDU5.js +3 -0
- package/dist/esm/{chunk-ZPWKWESI.js.map → chunk-LFAUMDU5.js.map} +4 -4
- package/dist/esm/chunk-LGZCNQBS.js +3 -0
- package/dist/esm/chunk-LGZCNQBS.js.map +7 -0
- package/dist/esm/{chunk-VVBSYWUA.js → chunk-LTUW36HM.js} +2 -2
- package/dist/esm/{chunk-QQY4WFJL.js → chunk-LUNWI377.js} +2 -3
- package/dist/esm/{chunk-QQY4WFJL.js.map → chunk-LUNWI377.js.map} +1 -1
- package/dist/esm/chunk-M7IQIKB4.js +3 -0
- package/dist/esm/chunk-M7IQIKB4.js.map +7 -0
- package/dist/esm/chunk-MS2ONKJJ.js +3 -0
- package/dist/esm/{chunk-FCKJD2PW.js.map → chunk-MS2ONKJJ.js.map} +4 -4
- package/dist/esm/{chunk-Z563IAE3.js → chunk-N3B6EGXL.js} +2 -2
- package/dist/esm/{chunk-PZ6Z7WTR.js → chunk-NNE3KNH4.js} +2 -3
- package/dist/esm/{chunk-PZ6Z7WTR.js.map → chunk-NNE3KNH4.js.map} +1 -1
- package/dist/esm/{chunk-CKJXTEVO.js → chunk-NR5FQCMU.js} +2 -3
- package/dist/esm/{chunk-CKJXTEVO.js.map → chunk-NR5FQCMU.js.map} +1 -1
- package/dist/esm/chunk-NS573D6O.js +3 -0
- package/dist/esm/chunk-NS573D6O.js.map +7 -0
- package/dist/esm/{chunk-CYTPMHSJ.js → chunk-NYBE3U3V.js} +2 -2
- package/dist/esm/chunk-OA7C34MJ.js +1 -0
- package/dist/esm/{chunk-65KD6WS6.js → chunk-OEPVYHSS.js} +2 -3
- package/dist/esm/{chunk-65KD6WS6.js.map → chunk-OEPVYHSS.js.map} +1 -1
- package/dist/esm/chunk-ONJYRJ66.js +3 -0
- package/dist/esm/chunk-ONJYRJ66.js.map +7 -0
- package/dist/esm/{chunk-647DRBXQ.js → chunk-OSSNMF5U.js} +2 -3
- package/dist/esm/{chunk-647DRBXQ.js.map → chunk-OSSNMF5U.js.map} +1 -1
- package/dist/esm/chunk-OTCVSJT7.js +3 -0
- package/dist/esm/chunk-OTCVSJT7.js.map +7 -0
- package/dist/esm/{chunk-TDT2CNES.js → chunk-P6UX6FFY.js} +2 -2
- package/dist/esm/{chunk-JUY7CBSL.js → chunk-PBFSBHBS.js} +2 -2
- package/dist/esm/chunk-PEMFIU3B.js +2 -0
- package/dist/esm/{chunk-BOLSK63X.js.map → chunk-PEMFIU3B.js.map} +1 -1
- package/dist/esm/chunk-POP5NB33.js +3 -0
- package/dist/esm/chunk-POP5NB33.js.map +7 -0
- package/dist/esm/{chunk-EY6TCYGG.js → chunk-RAVZ7F5L.js} +2 -3
- package/dist/esm/{chunk-EY6TCYGG.js.map → chunk-RAVZ7F5L.js.map} +1 -1
- package/dist/esm/chunk-RD4T2MCC.js +3 -0
- package/dist/esm/chunk-RD4T2MCC.js.map +7 -0
- package/dist/esm/chunk-SKOYHBIE.js +2 -0
- package/dist/esm/{chunk-5RFDCAKC.js.map → chunk-SKOYHBIE.js.map} +1 -1
- package/dist/esm/chunk-STPMPY3X.js +1 -0
- package/dist/esm/chunk-TF6WAIUQ.js +3 -0
- package/dist/esm/{chunk-MQEWEAH5.js.map → chunk-TF6WAIUQ.js.map} +4 -4
- package/dist/esm/chunk-TFFMELAL.js +3 -0
- package/dist/esm/{chunk-37GC4A2O.js.map → chunk-TFFMELAL.js.map} +4 -4
- package/dist/esm/{chunk-HHSFAOIO.js → chunk-TFFU435D.js} +2 -2
- package/dist/esm/chunk-TFGUTYZK.js +3 -0
- package/dist/esm/chunk-TFGUTYZK.js.map +7 -0
- package/dist/esm/chunk-TTW3EAQT.js +3 -0
- package/dist/esm/chunk-TTW3EAQT.js.map +7 -0
- package/dist/esm/{chunk-R4PGFURL.js → chunk-TXVZOS3E.js} +2 -2
- package/dist/esm/chunk-TZTUPQYK.js +2 -0
- package/dist/esm/{chunk-XVDT6DQZ.js.map → chunk-TZTUPQYK.js.map} +1 -1
- package/dist/esm/chunk-UBUGG2OB.js +3 -0
- package/dist/esm/{chunk-BVFHJP5E.js.map → chunk-UBUGG2OB.js.map} +4 -4
- package/dist/esm/chunk-UG73IGRF.js +3 -0
- package/dist/esm/chunk-UG73IGRF.js.map +7 -0
- package/dist/esm/chunk-UICSVJ3B.js +1 -0
- package/dist/esm/chunk-UJ7JERJ5.js +3 -0
- package/dist/esm/chunk-UJ7JERJ5.js.map +7 -0
- package/dist/esm/{chunk-5TJH35TF.js → chunk-ULCHGKI3.js} +2 -2
- package/dist/esm/chunk-UMYPLUG3.js +2 -0
- package/dist/esm/chunk-UMYPLUG3.js.map +7 -0
- package/dist/esm/chunk-UONSKZQT.js +2 -0
- package/dist/esm/{chunk-M37GE2TE.js.map → chunk-UONSKZQT.js.map} +1 -1
- package/dist/esm/{chunk-3B25RLWX.js → chunk-UR5BUNNT.js} +2 -2
- package/dist/esm/{chunk-CAAEEHGQ.js → chunk-UUXZ4W6H.js} +2 -3
- package/dist/esm/{chunk-CAAEEHGQ.js.map → chunk-UUXZ4W6H.js.map} +1 -1
- package/dist/esm/chunk-VCV7RACK.js +2 -0
- package/dist/esm/chunk-VCV7RACK.js.map +7 -0
- package/dist/esm/chunk-VCZ2GYOF.js +3 -0
- package/dist/esm/chunk-VCZ2GYOF.js.map +7 -0
- package/dist/esm/chunk-VIVM525H.js +3 -0
- package/dist/esm/chunk-VIVM525H.js.map +7 -0
- package/dist/esm/{chunk-AQ7VUGQQ.js → chunk-VPUFKJQA.js} +2 -2
- package/dist/esm/chunk-VVLUY4WR.js +3 -0
- package/dist/esm/chunk-VVLUY4WR.js.map +7 -0
- package/dist/esm/{chunk-L4NF3Q2T.js → chunk-VW46DG7H.js} +2 -3
- package/dist/esm/{chunk-L4NF3Q2T.js.map → chunk-VW46DG7H.js.map} +1 -1
- package/dist/esm/chunk-W4CPV4PO.js +3 -0
- package/dist/esm/{chunk-JS23YQ4M.js.map → chunk-W4CPV4PO.js.map} +4 -4
- package/dist/esm/chunk-WOR3JCLX.js +1 -0
- package/dist/esm/chunk-WOR3JCLX.js.map +7 -0
- package/dist/esm/{chunk-FI32HA4X.js → chunk-XDVTHL3S.js} +2 -3
- package/dist/esm/{chunk-FI32HA4X.js.map → chunk-XDVTHL3S.js.map} +1 -1
- package/dist/esm/{chunk-64EFWPHI.js → chunk-YCLPURTD.js} +1 -1
- package/dist/esm/chunk-YHQTFDGN.js +2 -0
- package/dist/esm/{chunk-PHWT772P.js.map → chunk-YHQTFDGN.js.map} +1 -1
- package/dist/esm/chunk-ZG2XQUOH.js +3 -0
- package/dist/esm/{chunk-CV7QQTI3.js → chunk-ZKQCSGL3.js} +2 -2
- package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
- package/dist/esm/components/_internal/base-button.js +1 -1
- package/dist/esm/components/_internal/base-button.props.js +1 -2
- package/dist/esm/components/_internal/base-checkbox.props.js +1 -2
- package/dist/esm/components/_internal/base-menu.props.js +1 -2
- package/dist/esm/components/_internal/base-menu.utils.js +1 -1
- package/dist/esm/components/_internal/base-radio.props.js +1 -2
- package/dist/esm/components/_internal/base-tab-list.props.js +1 -2
- package/dist/esm/components/_internal/menu-context.js +1 -1
- package/dist/esm/components/_internal/pane-band-context.d.ts +14 -0
- package/dist/esm/components/_internal/pane-band-context.d.ts.map +1 -0
- package/dist/esm/components/_internal/pane-band-context.js +3 -0
- package/dist/esm/components/_internal/pane-band-context.js.map +7 -0
- package/dist/esm/components/_internal/pane-chrome.d.ts +1 -1
- package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
- package/dist/esm/components/_internal/pane-chrome.js +1 -1
- package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
- package/dist/esm/components/_internal/shell-bottom.js +1 -1
- package/dist/esm/components/_internal/shell-inspector.js +1 -1
- package/dist/esm/components/_internal/shell-pane.js +1 -1
- package/dist/esm/components/_internal/shell-sidebar.js +1 -1
- package/dist/esm/components/accordion.js +1 -1
- package/dist/esm/components/accordion.props.js +1 -2
- package/dist/esm/components/accordion.props.js.map +4 -4
- package/dist/esm/components/alert-dialog.js +1 -1
- package/dist/esm/components/alert-dialog.props.js +1 -2
- package/dist/esm/components/avatar.js +1 -1
- package/dist/esm/components/avatar.props.js +1 -2
- package/dist/esm/components/blockquote.js +1 -1
- package/dist/esm/components/blockquote.props.js +1 -2
- package/dist/esm/components/box.js +1 -1
- package/dist/esm/components/box.props.js +1 -2
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/button.props.js +1 -2
- package/dist/esm/components/card.js +1 -1
- package/dist/esm/components/card.props.js +1 -2
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/checkbox-group.js +1 -1
- package/dist/esm/components/checkbox-group.props.js +1 -2
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.props.js +1 -2
- package/dist/esm/components/chip.js +1 -1
- package/dist/esm/components/chip.props.js +1 -2
- package/dist/esm/components/code.js +1 -1
- package/dist/esm/components/code.props.js +1 -2
- package/dist/esm/components/combobox.js +1 -1
- package/dist/esm/components/combobox.props.js +1 -2
- package/dist/esm/components/combobox.props.js.map +4 -4
- package/dist/esm/components/context-menu.js +1 -1
- package/dist/esm/components/context-menu.props.js +1 -2
- package/dist/esm/components/dialog.js +1 -1
- package/dist/esm/components/dialog.props.js +1 -2
- package/dist/esm/components/dropdown-menu.js +1 -1
- package/dist/esm/components/dropdown-menu.props.js +1 -2
- package/dist/esm/components/flex.js +1 -1
- package/dist/esm/components/flex.props.js +1 -2
- package/dist/esm/components/grid.js +1 -1
- package/dist/esm/components/grid.props.js +1 -2
- package/dist/esm/components/heading.js +1 -1
- package/dist/esm/components/heading.props.js +1 -2
- package/dist/esm/components/image.js +1 -1
- package/dist/esm/components/image.props.js +1 -2
- package/dist/esm/components/image.props.js.map +4 -4
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/kbd.js +1 -1
- package/dist/esm/components/kbd.props.js +1 -2
- package/dist/esm/components/link.js +1 -1
- package/dist/esm/components/link.props.js +1 -2
- package/dist/esm/components/message-scroller.js +1 -1
- package/dist/esm/components/navbar.js +1 -1
- package/dist/esm/components/navbar.props.js +1 -2
- package/dist/esm/components/navbar.props.js.map +4 -4
- package/dist/esm/components/notice.js +1 -1
- package/dist/esm/components/popover.d.ts.map +1 -1
- package/dist/esm/components/popover.js +1 -1
- package/dist/esm/components/popover.props.js +1 -2
- package/dist/esm/components/progress.js +1 -1
- package/dist/esm/components/progress.props.js +1 -2
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.props.js +1 -2
- package/dist/esm/components/radio.js +1 -1
- package/dist/esm/components/radio.props.js +1 -2
- package/dist/esm/components/scroll-area.d.ts.map +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/scroll-area.props.js +1 -2
- package/dist/esm/components/segmented-control.js +1 -1
- package/dist/esm/components/segmented-control.props.js +1 -2
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.props.js +1 -2
- package/dist/esm/components/separator.js +1 -1
- package/dist/esm/components/separator.props.js +1 -2
- package/dist/esm/components/sheet.js +1 -1
- package/dist/esm/components/shell.context.js +1 -1
- package/dist/esm/components/shell.d.ts.map +1 -1
- package/dist/esm/components/shell.hooks.js +1 -1
- package/dist/esm/components/shell.js +1 -1
- package/dist/esm/components/sidebar.js +1 -1
- package/dist/esm/components/slider.d.ts.map +1 -1
- package/dist/esm/components/slider.js +1 -1
- package/dist/esm/components/slider.props.js +1 -2
- package/dist/esm/components/spinner.js +1 -1
- package/dist/esm/components/spinner.props.js +1 -2
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.props.js +1 -2
- package/dist/esm/components/table.js +1 -1
- package/dist/esm/components/table.props.js +1 -2
- package/dist/esm/components/tabs.js +1 -1
- package/dist/esm/components/tabs.props.js +1 -2
- package/dist/esm/components/text-area.d.ts.map +1 -1
- package/dist/esm/components/text-area.js +1 -1
- package/dist/esm/components/text-area.props.js +1 -2
- package/dist/esm/components/text-field.d.ts.map +1 -1
- package/dist/esm/components/text-field.js +1 -1
- package/dist/esm/components/text-field.props.js +1 -2
- package/dist/esm/components/text.js +1 -1
- package/dist/esm/components/text.props.js +1 -2
- package/dist/esm/components/theme.d.ts.map +1 -1
- package/dist/esm/components/theme.js +1 -1
- package/dist/esm/components/theme.props.js +1 -2
- package/dist/esm/components/toggle.js +1 -1
- package/dist/esm/components/toolbar.js +1 -1
- package/dist/esm/components/toolbar.props.d.ts +3 -2
- package/dist/esm/components/toolbar.props.d.ts.map +1 -1
- package/dist/esm/components/toolbar.props.js +1 -2
- package/dist/esm/components/toolbar.props.js.map +4 -4
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/tooltip.props.js +1 -2
- package/dist/esm/components/virtual-menu.js +1 -1
- package/dist/esm/helpers/extract-props.js +1 -1
- package/dist/esm/helpers/get-margin-styles.js +1 -1
- package/dist/esm/helpers/get-responsive-styles.js +1 -1
- package/dist/esm/helpers/index.js +1 -1
- package/dist/esm/hooks/index.js +1 -1
- package/dist/esm/hooks/use-scroll-edges.d.ts +9 -0
- package/dist/esm/hooks/use-scroll-edges.d.ts.map +1 -1
- package/dist/esm/hooks/use-scroll-edges.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/props/font-family.prop.js +1 -1
- package/dist/esm/props/font-family.prop.js.map +4 -4
- package/dist/esm/props/index.js +1 -1
- package/dist/esm/props/index.js.map +3 -3
- package/dist/esm/props/layout.props.js +1 -1
- package/package.json +1 -1
- package/src/components/_internal/base-button.css +3 -1
- package/src/components/_internal/base-button.tsx +8 -2
- package/src/components/_internal/pane-band-context.ts +16 -0
- package/src/components/_internal/pane-chrome.tsx +1 -8
- package/src/components/_internal/shell-bottom.tsx +4 -1
- package/src/components/popover.tsx +7 -61
- package/src/components/scroll-area.tsx +3 -2
- package/src/components/select.css +1 -1
- package/src/components/shell.css +11 -3
- package/src/components/shell.tsx +8 -1
- package/src/components/slider.tsx +19 -1
- package/src/components/text-area.css +14 -2
- package/src/components/text-area.tsx +34 -26
- package/src/components/text-field.css +9 -2
- package/src/components/text-field.tsx +44 -28
- package/src/components/theme.tsx +30 -24
- package/src/components/toolbar.css +13 -0
- package/src/components/toolbar.props.tsx +3 -2
- package/src/hooks/use-scroll-edges.ts +16 -2
- package/src/styles/tokens/color.css +6 -5
- package/src/styles/tokens/shadow.css +2 -2
- package/styles.css +37 -5
- package/tokens/base.css +1 -2
- package/tokens.css +1 -2
- package/dist/esm/chunk-2IU5XPR2.js +0 -3
- package/dist/esm/chunk-2IU5XPR2.js.map +0 -7
- package/dist/esm/chunk-37GC4A2O.js +0 -3
- package/dist/esm/chunk-3H23GRNQ.js +0 -3
- package/dist/esm/chunk-3H23GRNQ.js.map +0 -7
- package/dist/esm/chunk-3L2MDOYC.js +0 -3
- package/dist/esm/chunk-4S5L25RO.js +0 -3
- package/dist/esm/chunk-5CFSNNYS.js +0 -3
- package/dist/esm/chunk-5EBJOOXE.js +0 -3
- package/dist/esm/chunk-5EP3UTM7.js +0 -3
- package/dist/esm/chunk-5EP3UTM7.js.map +0 -7
- package/dist/esm/chunk-5L4DZ2D3.js +0 -3
- package/dist/esm/chunk-5RFDCAKC.js +0 -3
- package/dist/esm/chunk-5XR5PTDR.js +0 -3
- package/dist/esm/chunk-63MUJFVF.js +0 -3
- package/dist/esm/chunk-63MUJFVF.js.map +0 -7
- package/dist/esm/chunk-6AMWYEM7.js +0 -3
- package/dist/esm/chunk-6AMWYEM7.js.map +0 -7
- package/dist/esm/chunk-6BB2A6VU.js +0 -3
- package/dist/esm/chunk-6UZT3ZLO.js +0 -3
- package/dist/esm/chunk-6UZT3ZLO.js.map +0 -7
- package/dist/esm/chunk-7ROKZHH2.js +0 -3
- package/dist/esm/chunk-7ROKZHH2.js.map +0 -7
- package/dist/esm/chunk-7X7VWR3F.js +0 -3
- package/dist/esm/chunk-7X7VWR3F.js.map +0 -7
- package/dist/esm/chunk-7XHE6TOA.js +0 -6
- package/dist/esm/chunk-7XHE6TOA.js.map +0 -7
- package/dist/esm/chunk-A2OMWZI7.js +0 -2
- package/dist/esm/chunk-BOLSK63X.js +0 -3
- package/dist/esm/chunk-BVFHJP5E.js +0 -3
- package/dist/esm/chunk-BXZSJKWA.js +0 -3
- package/dist/esm/chunk-CBWERXF4.js +0 -3
- package/dist/esm/chunk-CQG4U5BR.js +0 -3
- package/dist/esm/chunk-CQG4U5BR.js.map +0 -7
- package/dist/esm/chunk-D4P7332M.js +0 -3
- package/dist/esm/chunk-D4P7332M.js.map +0 -7
- package/dist/esm/chunk-DVXDFCCV.js +0 -3
- package/dist/esm/chunk-DVXDFCCV.js.map +0 -7
- package/dist/esm/chunk-EAIQIW23.js +0 -3
- package/dist/esm/chunk-EAIQIW23.js.map +0 -7
- package/dist/esm/chunk-FCKJD2PW.js +0 -3
- package/dist/esm/chunk-FPGBCCML.js +0 -3
- package/dist/esm/chunk-FPGBCCML.js.map +0 -7
- package/dist/esm/chunk-GNPTPIL7.js +0 -3
- package/dist/esm/chunk-GNPTPIL7.js.map +0 -7
- package/dist/esm/chunk-HV7USGHD.js +0 -3
- package/dist/esm/chunk-IE5ACUZS.js +0 -3
- package/dist/esm/chunk-ILWS2JUE.js +0 -3
- package/dist/esm/chunk-IO43RGNR.js +0 -3
- package/dist/esm/chunk-IO43RGNR.js.map +0 -7
- package/dist/esm/chunk-J3QIUJ6F.js +0 -2
- package/dist/esm/chunk-JS23YQ4M.js +0 -3
- package/dist/esm/chunk-JZ5Z53MN.js +0 -2
- package/dist/esm/chunk-KRFXTPEW.js +0 -3
- package/dist/esm/chunk-KRFXTPEW.js.map +0 -7
- package/dist/esm/chunk-KSYHZCLD.js +0 -3
- package/dist/esm/chunk-KSYHZCLD.js.map +0 -7
- package/dist/esm/chunk-M37GE2TE.js +0 -3
- package/dist/esm/chunk-M3NI3D6R.js +0 -3
- package/dist/esm/chunk-MQEWEAH5.js +0 -3
- package/dist/esm/chunk-MXIVYALY.js +0 -3
- package/dist/esm/chunk-MXIVYALY.js.map +0 -7
- package/dist/esm/chunk-N3QLHFHB.js +0 -3
- package/dist/esm/chunk-N3QLHFHB.js.map +0 -7
- package/dist/esm/chunk-OQWD63AI.js +0 -3
- package/dist/esm/chunk-PCLO3ZZY.js +0 -3
- package/dist/esm/chunk-PHWT772P.js +0 -3
- package/dist/esm/chunk-PZCQDZVJ.js +0 -3
- package/dist/esm/chunk-PZCQDZVJ.js.map +0 -7
- package/dist/esm/chunk-RVPLXLRA.js +0 -3
- package/dist/esm/chunk-RVPLXLRA.js.map +0 -7
- package/dist/esm/chunk-SGJKXIWG.js +0 -3
- package/dist/esm/chunk-SHLERRO3.js +0 -3
- package/dist/esm/chunk-SHLERRO3.js.map +0 -7
- package/dist/esm/chunk-SV3CYQY5.js +0 -3
- package/dist/esm/chunk-U5GQ3IFS.js +0 -3
- package/dist/esm/chunk-U5GQ3IFS.js.map +0 -7
- package/dist/esm/chunk-VPRAXHLL.js +0 -3
- package/dist/esm/chunk-VRQEWMC6.js +0 -3
- package/dist/esm/chunk-VRQEWMC6.js.map +0 -7
- package/dist/esm/chunk-WCGQ4IDE.js +0 -3
- package/dist/esm/chunk-WH7PQSSG.js +0 -2
- package/dist/esm/chunk-WJ4H2O2G.js +0 -3
- package/dist/esm/chunk-WJ4H2O2G.js.map +0 -7
- package/dist/esm/chunk-WMODMXEU.js +0 -3
- package/dist/esm/chunk-WMODMXEU.js.map +0 -7
- package/dist/esm/chunk-WMZLMZHB.js +0 -3
- package/dist/esm/chunk-WMZLMZHB.js.map +0 -7
- package/dist/esm/chunk-XH2CRCXR.js +0 -3
- package/dist/esm/chunk-XH2CRCXR.js.map +0 -7
- package/dist/esm/chunk-XMHNOIPB.js +0 -3
- package/dist/esm/chunk-XVDT6DQZ.js +0 -3
- package/dist/esm/chunk-Y2BTPKK6.js +0 -3
- package/dist/esm/chunk-YD2D73LF.js +0 -3
- package/dist/esm/chunk-YDBFIJHB.js +0 -3
- package/dist/esm/chunk-YDBFIJHB.js.map +0 -7
- package/dist/esm/chunk-YWG476GC.js +0 -3
- package/dist/esm/chunk-YZZMQ457.js +0 -3
- package/dist/esm/chunk-Z27REN6T.js +0 -3
- package/dist/esm/chunk-Z27REN6T.js.map +0 -7
- package/dist/esm/chunk-ZPWKWESI.js +0 -3
- package/dist/esm/chunk-ZYKJTNAT.js +0 -3
- package/dist/esm/chunk-ZYKJTNAT.js.map +0 -7
- /package/dist/esm/{chunk-I6SMGWS5.js.map → chunk-2ACVWLFA.js.map} +0 -0
- /package/dist/esm/{chunk-6RJQ5LLP.js.map → chunk-2TWPPDII.js.map} +0 -0
- /package/dist/esm/{chunk-QH64BDXO.js.map → chunk-4G3FJUER.js.map} +0 -0
- /package/dist/esm/{chunk-6BB2A6VU.js.map → chunk-4KIZRO52.js.map} +0 -0
- /package/dist/esm/{chunk-W4MQ6TEK.js.map → chunk-5FWEGTP6.js.map} +0 -0
- /package/dist/esm/{chunk-A2OMWZI7.js.map → chunk-6DWDNKLS.js.map} +0 -0
- /package/dist/esm/{chunk-XL5OHW6Z.js.map → chunk-BVQDDN5Q.js.map} +0 -0
- /package/dist/esm/{chunk-YOSCUA6Z.js.map → chunk-C2WKAIZM.js.map} +0 -0
- /package/dist/esm/{chunk-7B3XDZXZ.js.map → chunk-E6BDD3PN.js.map} +0 -0
- /package/dist/esm/{chunk-6FLLFCBU.js.map → chunk-ELAW7ZUG.js.map} +0 -0
- /package/dist/esm/{chunk-PT45Q47V.js.map → chunk-FATCGZZE.js.map} +0 -0
- /package/dist/esm/{chunk-NZCAGHCL.js.map → chunk-HVMRB3AH.js.map} +0 -0
- /package/dist/esm/{chunk-IZXML75Y.js.map → chunk-JQVW4WNN.js.map} +0 -0
- /package/dist/esm/{chunk-WZKSLTBH.js.map → chunk-KVVRFWGQ.js.map} +0 -0
- /package/dist/esm/{chunk-VVBSYWUA.js.map → chunk-LTUW36HM.js.map} +0 -0
- /package/dist/esm/{chunk-Z563IAE3.js.map → chunk-N3B6EGXL.js.map} +0 -0
- /package/dist/esm/{chunk-CYTPMHSJ.js.map → chunk-NYBE3U3V.js.map} +0 -0
- /package/dist/esm/{chunk-J3QIUJ6F.js.map → chunk-OA7C34MJ.js.map} +0 -0
- /package/dist/esm/{chunk-TDT2CNES.js.map → chunk-P6UX6FFY.js.map} +0 -0
- /package/dist/esm/{chunk-JUY7CBSL.js.map → chunk-PBFSBHBS.js.map} +0 -0
- /package/dist/esm/{chunk-JZ5Z53MN.js.map → chunk-STPMPY3X.js.map} +0 -0
- /package/dist/esm/{chunk-HHSFAOIO.js.map → chunk-TFFU435D.js.map} +0 -0
- /package/dist/esm/{chunk-R4PGFURL.js.map → chunk-TXVZOS3E.js.map} +0 -0
- /package/dist/esm/{chunk-WH7PQSSG.js.map → chunk-UICSVJ3B.js.map} +0 -0
- /package/dist/esm/{chunk-5TJH35TF.js.map → chunk-ULCHGKI3.js.map} +0 -0
- /package/dist/esm/{chunk-3B25RLWX.js.map → chunk-UR5BUNNT.js.map} +0 -0
- /package/dist/esm/{chunk-AQ7VUGQQ.js.map → chunk-VPUFKJQA.js.map} +0 -0
- /package/dist/esm/{chunk-64EFWPHI.js.map → chunk-YCLPURTD.js.map} +0 -0
- /package/dist/esm/{chunk-YWG476GC.js.map → chunk-ZG2XQUOH.js.map} +0 -0
- /package/dist/esm/{chunk-CV7QQTI3.js.map → chunk-ZKQCSGL3.js.map} +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
type BandSize = '1' | '2' | '3' | '4';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Set by `Shell.PaneHeader` and `Shell.PaneFooter` to their band size, and by `Shell.Scroll` to
|
|
7
|
+
* null (a scrolling list has no band). A `Theme asChild`, the root of every portalled surface
|
|
8
|
+
* (Popover, Dialog, Sheet, menus), sets null too, so a Toolbar in one does not take the Shell's
|
|
9
|
+
* step. `Shell.Root` clears it again. Unset (`undefined`) everywhere else.
|
|
10
|
+
*
|
|
11
|
+
* Its own module so Theme can reset it without bringing the Shell.
|
|
12
|
+
*/
|
|
13
|
+
const PaneBandSizeContext = React.createContext<BandSize | null | undefined>(undefined);
|
|
14
|
+
|
|
15
|
+
export { PaneBandSizeContext };
|
|
16
|
+
export type { BandSize };
|
|
@@ -14,6 +14,7 @@ import classNames from 'classnames';
|
|
|
14
14
|
|
|
15
15
|
import { ScrollArea } from '../scroll-area.js';
|
|
16
16
|
import { ShellStoreContext } from './shell-store.js';
|
|
17
|
+
import { PaneBandSizeContext, type BandSize } from './pane-band-context.js';
|
|
17
18
|
|
|
18
19
|
type PaneSize = '1' | '2' | '3';
|
|
19
20
|
|
|
@@ -60,20 +61,12 @@ function useChromeClasses() {
|
|
|
60
61
|
return ['kui-ShellPaneChrome', `kui-r-size-${size}`, `kui-menu-variant-${menuVariant}`];
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
type BandSize = '1' | '2' | '3' | '4';
|
|
64
|
-
|
|
65
64
|
/**
|
|
66
65
|
* The index a Toolbar in a pane's header or footer rests at when it states none: one step above
|
|
67
66
|
* the Shell's, so the band reads as chrome over the rows (v2 BAND_STEP). 4 has no step above.
|
|
68
67
|
*/
|
|
69
68
|
const BAND_STEP = { '1': '2', '2': '3', '3': '4', '4': '4' } as const satisfies Record<BandSize, BandSize>;
|
|
70
69
|
|
|
71
|
-
/**
|
|
72
|
-
* Set by `Shell.PaneHeader` and `Shell.PaneFooter` to their band size, and by `Shell.Scroll` to
|
|
73
|
-
* null (a scrolling list has no band). Unset (`undefined`) everywhere else.
|
|
74
|
-
*/
|
|
75
|
-
const PaneBandSizeContext = React.createContext<BandSize | null | undefined>(undefined);
|
|
76
|
-
|
|
77
70
|
function useBandSize(): BandSize {
|
|
78
71
|
const visual = useSidebarVisual();
|
|
79
72
|
const shellSize = React.useContext(ShellSizeContext);
|
|
@@ -6,7 +6,7 @@ import { useComposedRefs } from 'radix-ui/internal';
|
|
|
6
6
|
import { PaneResizeContext } from './shell-resize.js';
|
|
7
7
|
import { BottomHandle, PaneHandle } from './shell-handles.js';
|
|
8
8
|
import { usePane, paneAttributes, usePresentationTable } from './shell-pane.js';
|
|
9
|
-
import { splitHandles, useResizablePane, type SizeChangeMeta } from './shell-resizable.js';
|
|
9
|
+
import { splitHandles, useInitialPaneSize, useResizablePane, type SizeChangeMeta } from './shell-resizable.js';
|
|
10
10
|
import { useInsetRegistration, warnOnce } from './shell-store.js';
|
|
11
11
|
import { bottomAnchoredGrowth, detailRest, toPaneValue, withoutRemovedPaneProps } from './shell-rest.js';
|
|
12
12
|
import { readBreakpoint } from '../../hooks/use-breakpoint.js';
|
|
@@ -124,6 +124,8 @@ export const Bottom = React.forwardRef<HTMLDivElement, BottomPublicProps>((props
|
|
|
124
124
|
requestToggle: () => pane.toggle('toggle'),
|
|
125
125
|
});
|
|
126
126
|
|
|
127
|
+
// The starting size is in the server HTML, so the pane does not jump on hydration.
|
|
128
|
+
const initialSize = useInitialPaneSize(size, defaultSize, minSize, maxSize);
|
|
127
129
|
const { handles, content } = splitHandles(children, BottomHandle);
|
|
128
130
|
const handle = resizable && pane.shown !== false && !pane.overlaying ? <PaneResizeContext.Provider value={resize}>{handles.length > 0 ? handles : <PaneHandle />}</PaneResizeContext.Provider> : null;
|
|
129
131
|
|
|
@@ -140,6 +142,7 @@ export const Bottom = React.forwardRef<HTMLDivElement, BottomPublicProps>((props
|
|
|
140
142
|
{
|
|
141
143
|
...style,
|
|
142
144
|
'--bottom-expanded-size': `${expandedSize}px`,
|
|
145
|
+
...(initialSize ? { '--bottom-size': initialSize } : {}),
|
|
143
146
|
'--bottom-min-size': `${minSize}px`,
|
|
144
147
|
'--bottom-max-size': `${maxSize}px`,
|
|
145
148
|
} as CSSPropertiesWithVars
|
|
@@ -15,10 +15,6 @@ import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-p
|
|
|
15
15
|
// Popover Content Context
|
|
16
16
|
// ---------------------------------------------
|
|
17
17
|
type PopoverContentContextValue = {
|
|
18
|
-
/** Ref to the Popover.Content DOM node */
|
|
19
|
-
contentRef: React.MutableRefObject<HTMLDivElement | null>;
|
|
20
|
-
/** Update content's toolbar offset variable and presence flag */
|
|
21
|
-
setToolbarOffset: (offsetPx: number) => void;
|
|
22
18
|
/** Wire up aria-labelledby for toolbar title */
|
|
23
19
|
setLabelId: (id: string | undefined) => void;
|
|
24
20
|
};
|
|
@@ -68,33 +64,8 @@ const PopoverContent = React.forwardRef<PopoverContentElement, PopoverContentPro
|
|
|
68
64
|
...contentProps
|
|
69
65
|
} = extractProps(props, popoverContentPropDefs);
|
|
70
66
|
|
|
71
|
-
// Manage refs (we need the DOM node to apply CSS variables)
|
|
72
|
-
const contentRef = React.useRef<HTMLDivElement>(null);
|
|
73
|
-
const combinedRef = React.useCallback(
|
|
74
|
-
(node: HTMLDivElement | null) => {
|
|
75
|
-
contentRef.current = node;
|
|
76
|
-
if (typeof forwardedRef === 'function') {
|
|
77
|
-
forwardedRef(node);
|
|
78
|
-
} else if (forwardedRef) {
|
|
79
|
-
(forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
[forwardedRef],
|
|
83
|
-
);
|
|
84
|
-
|
|
85
67
|
const [labelId, setLabelId] = React.useState<string | undefined>(undefined);
|
|
86
|
-
|
|
87
|
-
const setToolbarOffset = React.useCallback((offsetPx: number) => {
|
|
88
|
-
const el = contentRef.current;
|
|
89
|
-
if (!el) return;
|
|
90
|
-
if (offsetPx > 0) {
|
|
91
|
-
el.style.setProperty('--popover-toolbar-offset', `${offsetPx}px`);
|
|
92
|
-
el.setAttribute('data-has-toolbar', 'true');
|
|
93
|
-
} else {
|
|
94
|
-
el.style.removeProperty('--popover-toolbar-offset');
|
|
95
|
-
el.removeAttribute('data-has-toolbar');
|
|
96
|
-
}
|
|
97
|
-
}, []);
|
|
68
|
+
const contextValue = React.useMemo(() => ({ setLabelId }), []);
|
|
98
69
|
|
|
99
70
|
return (
|
|
100
71
|
<PopoverPrimitive.Portal container={container} forceMount={forceMount}>
|
|
@@ -104,12 +75,12 @@ const PopoverContent = React.forwardRef<PopoverContentElement, PopoverContentPro
|
|
|
104
75
|
sideOffset={8}
|
|
105
76
|
collisionPadding={10}
|
|
106
77
|
{...contentProps}
|
|
107
|
-
ref={
|
|
78
|
+
ref={forwardedRef}
|
|
108
79
|
// A Toolbar.Title names the panel; without one, the caller's own value stands.
|
|
109
80
|
aria-labelledby={labelId ?? contentProps['aria-labelledby']}
|
|
110
81
|
className={classNames('kui-PopperContent', 'kui-PopoverContent', className)}
|
|
111
82
|
>
|
|
112
|
-
<PopoverContentContext.Provider value={
|
|
83
|
+
<PopoverContentContext.Provider value={contextValue}>
|
|
113
84
|
{props.children}
|
|
114
85
|
</PopoverContentContext.Provider>
|
|
115
86
|
</PopoverPrimitive.Content>
|
|
@@ -150,37 +121,12 @@ type PopoverToolbarProps = React.ComponentPropsWithoutRef<'div'>;
|
|
|
150
121
|
|
|
151
122
|
const PopoverToolbarBase = React.forwardRef<PopoverToolbarElement, PopoverToolbarProps>(
|
|
152
123
|
({ className, children, ...props }, forwardedRef) => {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const setRefs = React.useCallback(
|
|
157
|
-
(node: HTMLDivElement | null) => {
|
|
158
|
-
localRef.current = node;
|
|
159
|
-
if (typeof forwardedRef === 'function') forwardedRef(node);
|
|
160
|
-
else if (forwardedRef)
|
|
161
|
-
(forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;
|
|
162
|
-
},
|
|
163
|
-
[forwardedRef],
|
|
164
|
-
);
|
|
165
|
-
|
|
166
|
-
React.useEffect(() => {
|
|
167
|
-
if (!ctx || !localRef.current) return;
|
|
168
|
-
const el = localRef.current;
|
|
169
|
-
const update = () => {
|
|
170
|
-
const height = el.getBoundingClientRect().height;
|
|
171
|
-
ctx.setToolbarOffset(height);
|
|
172
|
-
};
|
|
173
|
-
update();
|
|
174
|
-
const ro = new ResizeObserver(update);
|
|
175
|
-
ro.observe(el);
|
|
176
|
-
return () => {
|
|
177
|
-
ro.disconnect();
|
|
178
|
-
ctx.setToolbarOffset(0);
|
|
179
|
-
};
|
|
180
|
-
}, [ctx]);
|
|
124
|
+
// The toolbar is sticky in the content's own CSS, so it needs no measuring; this only warns
|
|
125
|
+
// when it is used outside Popover.Content.
|
|
126
|
+
usePopoverContentContext('Popover.Toolbar');
|
|
181
127
|
|
|
182
128
|
return (
|
|
183
|
-
<div {...props} ref={
|
|
129
|
+
<div {...props} ref={forwardedRef} className={classNames('kui-PopoverToolbar', className)}>
|
|
184
130
|
{children}
|
|
185
131
|
</div>
|
|
186
132
|
);
|
|
@@ -4,7 +4,7 @@ import { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';
|
|
|
4
4
|
import { useComposedRefs } from 'radix-ui/internal';
|
|
5
5
|
|
|
6
6
|
import { scrollAreaPropDefs } from './scroll-area.props.js';
|
|
7
|
-
import { useScrollEdges } from '../hooks/use-scroll-edges.js';
|
|
7
|
+
import { scrollableOverflow, useScrollEdges } from '../hooks/use-scroll-edges.js';
|
|
8
8
|
import { useThumbSync } from '../hooks/use-thumb-sync.js';
|
|
9
9
|
import { getSubtree } from '../helpers/get-subtree.js';
|
|
10
10
|
import { extractProps } from '../helpers/extract-props.js';
|
|
@@ -38,7 +38,8 @@ function useFocusableWhileScrollable(element: HTMLDivElement | null, enabled: bo
|
|
|
38
38
|
let frame = 0;
|
|
39
39
|
const update = () => {
|
|
40
40
|
frame = 0;
|
|
41
|
-
const
|
|
41
|
+
const overflow = scrollableOverflow(element);
|
|
42
|
+
const scrollable = overflow.x > 0 || overflow.y > 0;
|
|
42
43
|
if (scrollable) element.setAttribute('tabindex', '0');
|
|
43
44
|
else element.removeAttribute('tabindex');
|
|
44
45
|
};
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
* *
|
|
195
195
|
***************************************************************************************************/
|
|
196
196
|
|
|
197
|
-
/* raised: the default. A field
|
|
197
|
+
/* raised: the default. A field: the surface colour with --control-chrome, like a raised button. */
|
|
198
198
|
|
|
199
199
|
.kui-SelectTrigger:where(.kui-variant-raised) {
|
|
200
200
|
position: relative;
|
package/src/components/shell.css
CHANGED
|
@@ -253,12 +253,20 @@
|
|
|
253
253
|
pointer-events: auto;
|
|
254
254
|
}
|
|
255
255
|
/* A Toolbar spans the row, and so may a cluster inside it. pointer-events inherits, so the
|
|
256
|
-
Toolbar
|
|
257
|
-
stretch between them lets clicks reach the
|
|
256
|
+
Toolbar and its layout boxes pass clicks through, and every interactive element in it takes
|
|
257
|
+
them back, with whatever it holds: the empty stretch between them lets clicks reach the
|
|
258
|
+
content. A group and a text field are painted boxes, so they keep their clicks too. */
|
|
258
259
|
& > :where(.kui-Toolbar) {
|
|
259
260
|
pointer-events: none;
|
|
260
261
|
}
|
|
261
|
-
|
|
262
|
+
/* The native controls are named by tag: any of them may sit in a Toolbar. */
|
|
263
|
+
/* stylelint-disable-next-line selector-max-type */
|
|
264
|
+
& > :where(.kui-Toolbar) :where(
|
|
265
|
+
button, a[href], input, select, textarea, label, summary, [tabindex], [contenteditable]:not([contenteditable='false']),
|
|
266
|
+
[role='button'], [role='link'], [role='checkbox'], [role='switch'], [role='radio'], [role='radiogroup'],
|
|
267
|
+
[role='slider'], [role='combobox'], [role='tab'], [role='tablist'], [role='menuitem'], [aria-haspopup],
|
|
268
|
+
.kui-ToolbarGroup, .kui-TextFieldRoot
|
|
269
|
+
) {
|
|
262
270
|
pointer-events: auto;
|
|
263
271
|
}
|
|
264
272
|
}
|
package/src/components/shell.tsx
CHANGED
|
@@ -33,7 +33,7 @@ import type { BottomPublicProps } from './_internal/shell-bottom.js';
|
|
|
33
33
|
import { Inspector } from './_internal/shell-inspector.js';
|
|
34
34
|
import type { InspectorPublicProps } from './_internal/shell-inspector.js';
|
|
35
35
|
import { usePane, paneAttributes, usePresentationTable } from './_internal/shell-pane.js';
|
|
36
|
-
import { splitHandles, useResizablePane } from './_internal/shell-resizable.js';
|
|
36
|
+
import { splitHandles, useInitialPaneSize, useResizablePane } from './_internal/shell-resizable.js';
|
|
37
37
|
import {
|
|
38
38
|
FIXED_TABLE,
|
|
39
39
|
ShellInsetContext,
|
|
@@ -54,6 +54,7 @@ import { readBreakpoint } from '../hooks/use-breakpoint.js';
|
|
|
54
54
|
import { useThemeSize } from '../hooks/theme-size.js';
|
|
55
55
|
import { PaneChromeScope, PaneFooter, PaneHeader, Scroll, ShellContentContext, ShellSizeContext } from './_internal/pane-chrome.js';
|
|
56
56
|
import type { PaneSize, PaneHeaderProps, PaneFooterProps, ScrollProps } from './_internal/pane-chrome.js';
|
|
57
|
+
import { PaneBandSizeContext } from './_internal/pane-band-context.js';
|
|
57
58
|
import type { Breakpoint, CSSPropertiesWithVars, PaneBaseProps, PaneMode, PaneName, PaneTarget, ResponsivePresentation, SidebarMode } from './shell.types.js';
|
|
58
59
|
|
|
59
60
|
/* ── Root ──────────────────────────────────────────────────────────────────── */
|
|
@@ -371,6 +372,8 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, chil
|
|
|
371
372
|
<ShellSizeContext.Provider value={size}>
|
|
372
373
|
<ShellContentContext.Provider value={false}>
|
|
373
374
|
<ShellInsetContext.Provider value={insetContext}>
|
|
375
|
+
{/* A Shell inside a portalled surface's Theme starts with no band, like any other. */}
|
|
376
|
+
<PaneBandSizeContext.Provider value={undefined}>
|
|
374
377
|
{/* The Root is not a widget: it hears Escape bubbling up from the panes,
|
|
375
378
|
after their own handlers, to close the overlays. */}
|
|
376
379
|
{/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}
|
|
@@ -391,6 +394,7 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, chil
|
|
|
391
394
|
the accessibility tree, so the scrim itself is hidden from it. */}
|
|
392
395
|
<div className="kui-ShellScrim" aria-hidden onClick={closeOverlays} />
|
|
393
396
|
</div>
|
|
397
|
+
</PaneBandSizeContext.Provider>
|
|
394
398
|
</ShellInsetContext.Provider>
|
|
395
399
|
</ShellContentContext.Provider>
|
|
396
400
|
</ShellSizeContext.Provider>
|
|
@@ -650,6 +654,8 @@ const Panel = React.forwardRef<HTMLDivElement, PanelPublicProps>((props, ref) =>
|
|
|
650
654
|
requestToggle: () => pane.toggle('toggle'),
|
|
651
655
|
});
|
|
652
656
|
|
|
657
|
+
// The starting size is in the server HTML, so the pane does not jump on hydration.
|
|
658
|
+
const initialSize = useInitialPaneSize(size, defaultSize, minSize, maxSize);
|
|
653
659
|
const { handles, content } = splitHandles(children, PanelHandle);
|
|
654
660
|
const handle = resizable && pane.shown !== false && !pane.overlaying ? <PaneResizeContext.Provider value={resize}>{handles.length > 0 ? handles : <PaneHandle />}</PaneResizeContext.Provider> : null;
|
|
655
661
|
|
|
@@ -667,6 +673,7 @@ const Panel = React.forwardRef<HTMLDivElement, PanelPublicProps>((props, ref) =>
|
|
|
667
673
|
{
|
|
668
674
|
...style,
|
|
669
675
|
'--panel-expanded-size': `${expandedSize}px`,
|
|
676
|
+
...(initialSize ? { '--panel-size': initialSize } : {}),
|
|
670
677
|
} as CSSPropertiesWithVars
|
|
671
678
|
}
|
|
672
679
|
>
|
|
@@ -140,6 +140,24 @@ const Slider = React.forwardRef<SliderElement, SliderProps>((ownProps, forwarded
|
|
|
140
140
|
[snapToTicks, sortedTicks, snapKeyStep, snapToNearestTick, currentValue, onValueChange, isControlled],
|
|
141
141
|
);
|
|
142
142
|
|
|
143
|
+
// Radix commits its own step value on a key press, before the snapped value comes back. So
|
|
144
|
+
// the commit snaps the same way the change did, and a key press that snaps back to where the
|
|
145
|
+
// handle was commits nothing.
|
|
146
|
+
const handleValueCommit = React.useCallback(
|
|
147
|
+
(newValue: number[]) => {
|
|
148
|
+
if (!onValueCommit) return;
|
|
149
|
+
if (!snapToTicks || sortedTicks.length === 0) {
|
|
150
|
+
onValueCommit(newValue);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const keyboard = keyboardChangeRef.current;
|
|
154
|
+
const finalValue = newValue.map((v, i) => (keyboard && currentValue[i] !== undefined ? snapKeyStep(v, currentValue[i]) : snapToNearestTick(v)));
|
|
155
|
+
if (keyboard && finalValue.every((v, i) => v === currentValue[i])) return;
|
|
156
|
+
onValueCommit(finalValue);
|
|
157
|
+
},
|
|
158
|
+
[onValueCommit, snapToTicks, sortedTicks, snapKeyStep, snapToNearestTick, currentValue],
|
|
159
|
+
);
|
|
160
|
+
|
|
143
161
|
// Cleanup timeout on unmount
|
|
144
162
|
React.useEffect(() => {
|
|
145
163
|
return () => {
|
|
@@ -170,7 +188,7 @@ const Slider = React.forwardRef<SliderElement, SliderProps>((ownProps, forwarded
|
|
|
170
188
|
rootProps.onPointerDown?.(event);
|
|
171
189
|
}}
|
|
172
190
|
onValueChange={handleValueChange}
|
|
173
|
-
onValueCommit={
|
|
191
|
+
onValueCommit={handleValueCommit}
|
|
174
192
|
asChild={false}
|
|
175
193
|
className={classNames('kui-SliderRoot', className)}
|
|
176
194
|
>
|
|
@@ -354,7 +354,7 @@
|
|
|
354
354
|
* *
|
|
355
355
|
***************************************************************************************************/
|
|
356
356
|
|
|
357
|
-
/* Raised variant: the default.
|
|
357
|
+
/* Raised variant: the default. The surface colour with --control-chrome, like a raised button. */
|
|
358
358
|
.kui-TextAreaRoot:where(.kui-variant-raised) {
|
|
359
359
|
--text-area-border-width: 1px;
|
|
360
360
|
--v-selection-color: var(--focus-a5);
|
|
@@ -464,7 +464,19 @@
|
|
|
464
464
|
* *
|
|
465
465
|
***************************************************************************************************/
|
|
466
466
|
|
|
467
|
-
/*
|
|
467
|
+
/* With an error message, one box holds the field and the message below it. */
|
|
468
|
+
.kui-TextAreaWrapper {
|
|
469
|
+
display: flex;
|
|
470
|
+
flex-direction: column;
|
|
471
|
+
min-width: 0;
|
|
472
|
+
|
|
473
|
+
/* A height given to the pair goes to the box, the message keeps its own. */
|
|
474
|
+
& > :where(.kui-TextAreaRoot) {
|
|
475
|
+
flex: 1 1 auto;
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
/* Below the box, outside its paint: it takes the field's type itself. */
|
|
468
480
|
.kui-TextAreaErrorMessage {
|
|
469
481
|
font-family: var(--default-font-family);
|
|
470
482
|
font-weight: var(--font-weight-regular);
|
|
@@ -3,6 +3,7 @@ import classNames from 'classnames';
|
|
|
3
3
|
|
|
4
4
|
import { textAreaPropDefs } from './text-area.props.js';
|
|
5
5
|
import { extractProps } from '../helpers/extract-props.js';
|
|
6
|
+
import { mergeStyles } from '../helpers/merge-styles.js';
|
|
6
7
|
import { useThemeSizeProps } from '../hooks/theme-size.js';
|
|
7
8
|
|
|
8
9
|
import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
|
|
@@ -18,9 +19,12 @@ interface TextAreaProps
|
|
|
18
19
|
TextAreaOwnProps {}
|
|
19
20
|
|
|
20
21
|
const TextArea = React.forwardRef<TextAreaElement, TextAreaProps>((ownProps, forwardedRef) => {
|
|
21
|
-
|
|
22
|
+
// The caller's className and style are kept apart from the size and variant classes: with an
|
|
23
|
+
// error message they go on the wrapper, which is then the one box the parent lays out.
|
|
24
|
+
const { className: ownClassName, style: ownStyle, ...themedProps } = useThemeSizeProps(ownProps, textAreaPropDefs.size);
|
|
22
25
|
const { className, color, radius, style, ...textAreaProps } =
|
|
23
|
-
extractProps(
|
|
26
|
+
extractProps(themedProps, textAreaPropDefs);
|
|
27
|
+
const wrapped = Boolean(textAreaProps.errorMessage);
|
|
24
28
|
|
|
25
29
|
// Generate unique IDs for accessibility
|
|
26
30
|
const errorId = React.useId();
|
|
@@ -58,32 +62,36 @@ const TextArea = React.forwardRef<TextAreaElement, TextAreaProps>((ownProps, for
|
|
|
58
62
|
...nativeTextAreaProps
|
|
59
63
|
} = textAreaProps;
|
|
60
64
|
|
|
61
|
-
|
|
65
|
+
const field = (
|
|
66
|
+
<div
|
|
67
|
+
data-accent-color={color}
|
|
68
|
+
data-radius={radius}
|
|
69
|
+
className={classNames('kui-TextAreaRoot', className, !wrapped && ownClassName, {
|
|
70
|
+
// Not used by the library's CSS (invalid styling keys on aria-invalid); kept as a hook for app styles.
|
|
71
|
+
'kui-error': isInvalid,
|
|
72
|
+
})}
|
|
73
|
+
style={wrapped ? style : mergeStyles(style, ownStyle)}
|
|
74
|
+
>
|
|
75
|
+
<textarea
|
|
76
|
+
className="kui-reset kui-TextAreaInput"
|
|
77
|
+
ref={forwardedRef}
|
|
78
|
+
{...nativeTextAreaProps}
|
|
79
|
+
required={required || undefined}
|
|
80
|
+
{...ariaProps}
|
|
81
|
+
/>
|
|
82
|
+
</div>
|
|
83
|
+
);
|
|
84
|
+
if (!wrapped) return field;
|
|
85
|
+
|
|
86
|
+
// With a message, one wrapper holds the box and the message below it, so the parent still
|
|
87
|
+
// lays out a single box and the caller's className and style size the pair.
|
|
62
88
|
return (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
className={classNames('kui-TextAreaRoot', className, {
|
|
68
|
-
// Not used by the library's CSS (invalid styling keys on aria-invalid); kept as a hook for app styles.
|
|
69
|
-
'kui-error': isInvalid,
|
|
70
|
-
})}
|
|
71
|
-
style={style}
|
|
72
|
-
>
|
|
73
|
-
<textarea
|
|
74
|
-
className="kui-reset kui-TextAreaInput"
|
|
75
|
-
ref={forwardedRef}
|
|
76
|
-
{...nativeTextAreaProps}
|
|
77
|
-
required={required || undefined}
|
|
78
|
-
{...ariaProps}
|
|
79
|
-
/>
|
|
89
|
+
<div className={classNames('kui-TextAreaWrapper', ownClassName)} style={ownStyle}>
|
|
90
|
+
{field}
|
|
91
|
+
<div id={errorId} className="kui-TextAreaErrorMessage" role="alert">
|
|
92
|
+
{textAreaProps.errorMessage}
|
|
80
93
|
</div>
|
|
81
|
-
|
|
82
|
-
<div id={errorId} className="kui-TextAreaErrorMessage" role="alert">
|
|
83
|
-
{textAreaProps.errorMessage}
|
|
84
|
-
</div>
|
|
85
|
-
)}
|
|
86
|
-
</>
|
|
94
|
+
</div>
|
|
87
95
|
);
|
|
88
96
|
});
|
|
89
97
|
|
|
@@ -392,7 +392,7 @@
|
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
394
|
|
|
395
|
-
/* raised: the default.
|
|
395
|
+
/* raised: the default. The surface colour with --control-chrome, like a raised button. */
|
|
396
396
|
|
|
397
397
|
.kui-TextFieldRoot:where(.kui-variant-raised) {
|
|
398
398
|
--text-field-selection-color: var(--focus-a5);
|
|
@@ -645,8 +645,15 @@
|
|
|
645
645
|
}
|
|
646
646
|
|
|
647
647
|
/* Error message styling */
|
|
648
|
+
/* With an error message, one box holds the field and the message below it. */
|
|
649
|
+
.kui-TextFieldWrapper {
|
|
650
|
+
display: flex;
|
|
651
|
+
flex-direction: column;
|
|
652
|
+
min-width: 0;
|
|
653
|
+
}
|
|
654
|
+
|
|
648
655
|
.kui-TextFieldErrorMessage {
|
|
649
|
-
/*
|
|
656
|
+
/* Below the field, outside its paint: it takes the field's type itself. */
|
|
650
657
|
font-family: var(--default-font-family);
|
|
651
658
|
font-weight: var(--font-weight-regular);
|
|
652
659
|
color: var(--red-11);
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import * as ReactDOM from 'react-dom';
|
|
5
5
|
import classNames from 'classnames';
|
|
6
|
-
import { composeEventHandlers, composeRefs } from 'radix-ui/internal';
|
|
6
|
+
import { composeEventHandlers, composeRefs, useLayoutEffect } from 'radix-ui/internal';
|
|
7
7
|
|
|
8
8
|
import { textFieldRootPropDefs, textFieldSlotPropDefs, type TextFieldSlotScrubProps } from './text-field.props.js';
|
|
9
9
|
import { extractProps } from '../helpers/extract-props.js';
|
|
10
|
+
import { mergeStyles } from '../helpers/merge-styles.js';
|
|
10
11
|
import { useThemeSizeProps } from '../hooks/theme-size.js';
|
|
11
12
|
|
|
12
13
|
import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
|
|
@@ -31,9 +32,12 @@ const TextFieldContext = React.createContext<TextFieldContextValue | null>(null)
|
|
|
31
32
|
const FOCUSABLE_IN_SLOT = 'button, a, input, select, textarea, label, [tabindex], [contenteditable]';
|
|
32
33
|
|
|
33
34
|
const TextFieldRoot = React.forwardRef<TextFieldRootElement, TextFieldRootProps>((ownProps, forwardedRef) => {
|
|
34
|
-
|
|
35
|
+
// The caller's className and style are kept apart from the size and variant classes: with an
|
|
36
|
+
// error message they go on the wrapper, which is then the one box the parent lays out.
|
|
37
|
+
const { className: ownClassName, style: ownStyle, ...themedProps } = useThemeSizeProps(ownProps, textFieldRootPropDefs.size);
|
|
35
38
|
const inputRef = React.useRef<HTMLInputElement>(null);
|
|
36
|
-
const { children, className, color, radius, style, ...inputProps } = extractProps(
|
|
39
|
+
const { children, className, color, radius, style, ...inputProps } = extractProps(themedProps, textFieldRootPropDefs);
|
|
40
|
+
const wrapped = Boolean(inputProps.errorMessage);
|
|
37
41
|
|
|
38
42
|
// Generate unique IDs for accessibility
|
|
39
43
|
const errorId = React.useId();
|
|
@@ -99,30 +103,34 @@ const TextFieldRoot = React.forwardRef<TextFieldRootElement, TextFieldRootProps>
|
|
|
99
103
|
} catch {}
|
|
100
104
|
}, []);
|
|
101
105
|
|
|
102
|
-
//
|
|
106
|
+
// A pointer-only hit-target redirect to the input; keyboard users reach the input directly.
|
|
107
|
+
const field = (
|
|
108
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
109
|
+
<div
|
|
110
|
+
data-accent-color={color}
|
|
111
|
+
data-radius={radius}
|
|
112
|
+
style={wrapped ? style : mergeStyles(style, ownStyle)}
|
|
113
|
+
className={classNames('kui-TextFieldRoot', className, !wrapped && ownClassName, {
|
|
114
|
+
// Not used by the library's CSS (invalid styling keys on aria-invalid); kept as a hook for app styles.
|
|
115
|
+
'kui-error': isInvalid,
|
|
116
|
+
})}
|
|
117
|
+
onMouseDown={handleMouseDown}
|
|
118
|
+
>
|
|
119
|
+
<input {...nativeInputProps} required={required || undefined} {...ariaProps} ref={composeRefs(inputRef, forwardedRef)} className="kui-reset kui-TextFieldInput" />
|
|
120
|
+
<TextFieldContext.Provider value={contextValue}>{children}</TextFieldContext.Provider>
|
|
121
|
+
</div>
|
|
122
|
+
);
|
|
123
|
+
if (!wrapped) return field;
|
|
124
|
+
|
|
125
|
+
// With a message, one wrapper holds the field and the message below it, so the parent still
|
|
126
|
+
// lays out a single box and the caller's className and style size the pair.
|
|
103
127
|
return (
|
|
104
|
-
|
|
105
|
-
{
|
|
106
|
-
{
|
|
107
|
-
|
|
108
|
-
data-accent-color={color}
|
|
109
|
-
data-radius={radius}
|
|
110
|
-
style={style}
|
|
111
|
-
className={classNames('kui-TextFieldRoot', className, {
|
|
112
|
-
// Not used by the library's CSS (invalid styling keys on aria-invalid); kept as a hook for app styles.
|
|
113
|
-
'kui-error': isInvalid,
|
|
114
|
-
})}
|
|
115
|
-
onMouseDown={handleMouseDown}
|
|
116
|
-
>
|
|
117
|
-
<input {...nativeInputProps} required={required || undefined} {...ariaProps} ref={composeRefs(inputRef, forwardedRef)} className="kui-reset kui-TextFieldInput" />
|
|
118
|
-
<TextFieldContext.Provider value={contextValue}>{children}</TextFieldContext.Provider>
|
|
128
|
+
<div className={classNames('kui-TextFieldWrapper', ownClassName)} style={ownStyle}>
|
|
129
|
+
{field}
|
|
130
|
+
<div id={errorId} className="kui-TextFieldErrorMessage" role="alert">
|
|
131
|
+
{inputProps.errorMessage}
|
|
119
132
|
</div>
|
|
120
|
-
|
|
121
|
-
<div id={errorId} className="kui-TextFieldErrorMessage" role="alert">
|
|
122
|
-
{inputProps.errorMessage}
|
|
123
|
-
</div>
|
|
124
|
-
)}
|
|
125
|
-
</>
|
|
133
|
+
</div>
|
|
126
134
|
);
|
|
127
135
|
});
|
|
128
136
|
TextFieldRoot.displayName = 'TextField.Root';
|
|
@@ -151,13 +159,21 @@ const TextFieldSlot = React.forwardRef<TextFieldSlotElement, TextFieldSlotProps>
|
|
|
151
159
|
textFieldSlotPropDefs,
|
|
152
160
|
);
|
|
153
161
|
|
|
154
|
-
//
|
|
162
|
+
// A slot of text describes the input (see TextFieldRoot); a caller's own id is kept. A slot
|
|
163
|
+
// holding a control, such as a show-password button, does not: the input would be described
|
|
164
|
+
// by the button's name.
|
|
155
165
|
const generatedId = React.useId();
|
|
156
166
|
const slotId = slotProps.id ?? generatedId;
|
|
157
167
|
const registerSlot = React.useContext(TextFieldContext)?.registerSlot;
|
|
158
|
-
React.useEffect(() => registerSlot?.(slotId), [registerSlot, slotId]);
|
|
159
|
-
|
|
160
168
|
const slotRef = React.useRef<HTMLDivElement>(null);
|
|
169
|
+
// Unknown until the slot has rendered; it registers once it is known to hold only text.
|
|
170
|
+
const [holdsControl, setHoldsControl] = React.useState<boolean | null>(null);
|
|
171
|
+
useLayoutEffect(() => {
|
|
172
|
+
const next = Boolean(slotRef.current?.querySelector(FOCUSABLE_IN_SLOT));
|
|
173
|
+
setHoldsControl((prev) => (prev === next ? prev : next));
|
|
174
|
+
});
|
|
175
|
+
React.useEffect(() => (holdsControl === false ? registerSlot?.(slotId) : undefined), [registerSlot, slotId, holdsControl]);
|
|
176
|
+
|
|
161
177
|
const [isScrubbing, setIsScrubbing] = React.useState(false);
|
|
162
178
|
// Where the virtual cursor starts. Movement is written straight to the cursor element, so a
|
|
163
179
|
// scrub does not re-render the slot on every mouse move.
|
package/src/components/theme.tsx
CHANGED
|
@@ -6,6 +6,7 @@ import { Direction, Slot } from 'radix-ui';
|
|
|
6
6
|
|
|
7
7
|
import { getMatchingGrayColor } from '../helpers/get-matching-gray-color.js';
|
|
8
8
|
import { ThemeSizeContext } from '../hooks/theme-size.js';
|
|
9
|
+
import { PaneBandSizeContext } from './_internal/pane-band-context.js';
|
|
9
10
|
import { usePropSyncedState } from '../hooks/use-prop-synced-state.js';
|
|
10
11
|
import { themePropDefs } from './theme.props.js';
|
|
11
12
|
|
|
@@ -149,6 +150,7 @@ interface ThemeImplPrivateProps extends Partial<ThemeChangeHandlers> {
|
|
|
149
150
|
}
|
|
150
151
|
const ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, forwardedRef) => {
|
|
151
152
|
const context = React.useContext(ThemeContext);
|
|
153
|
+
const outerBand = React.useContext(PaneBandSizeContext);
|
|
152
154
|
const {
|
|
153
155
|
asChild,
|
|
154
156
|
isRoot,
|
|
@@ -219,30 +221,34 @@ const ThemeImpl = React.forwardRef<ThemeImplElement, ThemeImplProps>((props, for
|
|
|
219
221
|
],
|
|
220
222
|
)}
|
|
221
223
|
>
|
|
222
|
-
{/*
|
|
223
|
-
|
|
224
|
-
<
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
{
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
224
|
+
{/* A nested `Theme asChild` is the root of a portalled surface (Popover, Dialog, Sheet,
|
|
225
|
+
menus), which sits outside any Shell pane even though context flows into it. */}
|
|
226
|
+
<PaneBandSizeContext.Provider value={asChild && !isRoot ? null : outerBand}>
|
|
227
|
+
{/* Size travels on its own context as a bare string, so the components
|
|
228
|
+
that read it do not re-render when another theme value changes. */}
|
|
229
|
+
<ThemeSizeContext.Provider value={size}>
|
|
230
|
+
<Comp
|
|
231
|
+
data-is-root-theme={isRoot ? 'true' : 'false'}
|
|
232
|
+
data-accent-color={accentColor}
|
|
233
|
+
data-gray-color={resolvedGrayColor}
|
|
234
|
+
// for nested `Theme` background
|
|
235
|
+
data-has-background={hasBackground ? 'true' : 'false'}
|
|
236
|
+
data-radius={radius}
|
|
237
|
+
data-font-family={fontFamily}
|
|
238
|
+
data-heading-font-family={headingFontFamily}
|
|
239
|
+
ref={forwardedRef}
|
|
240
|
+
{...themeProps}
|
|
241
|
+
className={classNames(
|
|
242
|
+
'kui-theme',
|
|
243
|
+
{
|
|
244
|
+
light: appearance === 'light',
|
|
245
|
+
dark: appearance === 'dark',
|
|
246
|
+
},
|
|
247
|
+
themeProps.className,
|
|
248
|
+
)}
|
|
249
|
+
/>
|
|
250
|
+
</ThemeSizeContext.Provider>
|
|
251
|
+
</PaneBandSizeContext.Provider>
|
|
246
252
|
</ThemeContext.Provider>
|
|
247
253
|
);
|
|
248
254
|
});
|