@yamada-ui/react 2.3.2-dev-20261104093107 → 2.3.2-dev-20261104222056
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/action-bar/use-action-bar.cjs +2 -7
- package/dist/cjs/components/action-bar/use-action-bar.cjs.map +1 -1
- package/dist/cjs/components/color-swatch/color-swatch-group.cjs +1 -1
- package/dist/cjs/components/drawer/drawer.cjs +3 -4
- package/dist/cjs/components/drawer/drawer.cjs.map +1 -1
- package/dist/cjs/components/menu/menu.cjs +4 -5
- package/dist/cjs/components/menu/menu.cjs.map +1 -1
- package/dist/cjs/components/menu/use-menu.cjs +17 -7
- package/dist/cjs/components/menu/use-menu.cjs.map +1 -1
- package/dist/cjs/components/modal/modal.cjs +4 -4
- package/dist/cjs/components/modal/modal.cjs.map +1 -1
- package/dist/cjs/components/modal/use-modal.cjs +9 -30
- package/dist/cjs/components/modal/use-modal.cjs.map +1 -1
- package/dist/cjs/components/sidebar/sidebar.cjs +7 -7
- package/dist/cjs/components/sidebar/sidebar.cjs.map +1 -1
- package/dist/cjs/components/sidebar/use-sidebar.cjs +7 -7
- package/dist/cjs/components/sidebar/use-sidebar.cjs.map +1 -1
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/providers/i18n-provider/intl/ar-AE.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/ar-AE.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/bg-BG.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/bg-BG.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/cs-CZ.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/cs-CZ.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/da-DK.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/da-DK.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/de-DE.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/de-DE.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/el-GR.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/el-GR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/en-GB.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/en-GB.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/en-US.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/en-US.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/es-ES.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/es-ES.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/et-EE.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/et-EE.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/fi-FI.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/fi-FI.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/fr-CA.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/fr-CA.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/fr-FR.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/fr-FR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/he-IL.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/he-IL.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/hr-HR.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/hr-HR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/hu-HU.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/hu-HU.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/it-IT.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/it-IT.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/ja-JP.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/ja-JP.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/ko-KR.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/ko-KR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/lt-LT.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/lt-LT.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/lv-LV.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/lv-LV.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/nl-NL.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/nl-NL.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/no-NO.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/no-NO.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/pl-PL.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/pl-PL.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/pt-BR.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/pt-BR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/ro-RO.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/ro-RO.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/ru-RU.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/ru-RU.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/sk-SK.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/sk-SK.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/sl-SI.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/sl-SI.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/sr-RS.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/sr-RS.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/sv-SE.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/sv-SE.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/tr-TR.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/tr-TR.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/uk-UA.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/uk-UA.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/zh-CN.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/zh-CN.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/intl/zh-TW.cjs +0 -8
- package/dist/cjs/providers/i18n-provider/intl/zh-TW.cjs.map +1 -1
- package/dist/cjs/providers/ui-provider/ui-provider.cjs +1 -1
- package/dist/esm/components/action-bar/use-action-bar.js +2 -7
- package/dist/esm/components/action-bar/use-action-bar.js.map +1 -1
- package/dist/esm/components/color-swatch/color-swatch-group.js +1 -1
- package/dist/esm/components/drawer/drawer.js +3 -4
- package/dist/esm/components/drawer/drawer.js.map +1 -1
- package/dist/esm/components/menu/menu.js +4 -5
- package/dist/esm/components/menu/menu.js.map +1 -1
- package/dist/esm/components/menu/use-menu.js +17 -7
- package/dist/esm/components/menu/use-menu.js.map +1 -1
- package/dist/esm/components/modal/modal.js +4 -4
- package/dist/esm/components/modal/modal.js.map +1 -1
- package/dist/esm/components/modal/use-modal.js +9 -30
- package/dist/esm/components/modal/use-modal.js.map +1 -1
- package/dist/esm/components/sidebar/sidebar.js +7 -7
- package/dist/esm/components/sidebar/sidebar.js.map +1 -1
- package/dist/esm/components/sidebar/use-sidebar.js +7 -7
- package/dist/esm/components/sidebar/use-sidebar.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/providers/i18n-provider/intl/ar-AE.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/ar-AE.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/bg-BG.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/bg-BG.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/cs-CZ.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/cs-CZ.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/da-DK.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/da-DK.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/de-DE.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/de-DE.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/el-GR.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/el-GR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/en-GB.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/en-GB.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/en-US.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/en-US.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/es-ES.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/es-ES.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/et-EE.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/et-EE.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/fi-FI.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/fi-FI.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/fr-CA.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/fr-CA.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/fr-FR.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/fr-FR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/he-IL.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/he-IL.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/hr-HR.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/hr-HR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/hu-HU.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/hu-HU.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/it-IT.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/it-IT.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/ja-JP.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/ja-JP.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/ko-KR.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/ko-KR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/lt-LT.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/lt-LT.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/lv-LV.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/lv-LV.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/nl-NL.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/nl-NL.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/no-NO.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/no-NO.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/pl-PL.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/pl-PL.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/pt-BR.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/pt-BR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/ro-RO.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/ro-RO.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/ru-RU.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/ru-RU.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/sk-SK.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/sk-SK.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/sl-SI.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/sl-SI.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/sr-RS.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/sr-RS.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/sv-SE.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/sv-SE.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/tr-TR.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/tr-TR.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/uk-UA.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/uk-UA.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/zh-CN.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/zh-CN.js.map +1 -1
- package/dist/esm/providers/i18n-provider/intl/zh-TW.js +0 -8
- package/dist/esm/providers/i18n-provider/intl/zh-TW.js.map +1 -1
- package/dist/esm/providers/ui-provider/ui-provider.js +1 -1
- package/dist/types/components/chart/cartesian-chart.style.d.ts +1 -1
- package/dist/types/components/chart/polar-chart.style.d.ts +1 -1
- package/dist/types/components/drawer/use-drawer.d.ts +0 -1
- package/dist/types/components/menu/menu.d.ts +2 -2
- package/dist/types/components/menu/use-menu.d.ts +8 -3
- package/dist/types/components/modal/use-modal.d.ts +0 -1
- package/dist/types/components/sidebar/use-sidebar.d.ts +1 -0
- package/dist/types/providers/i18n-provider/i18n-provider.d.ts +1 -9
- package/dist/types/providers/i18n-provider/intl/en-US.d.ts +0 -8
- package/dist/types/providers/i18n-provider/intl/index.d.ts +0 -280
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uk-UA.cjs","names":[],"sources":["../../../../../src/providers/i18n-provider/intl/uk-UA.ts"],"sourcesContent":["import type { IntlData } from \".\"\n\nconst data: IntlData = {\n
|
|
1
|
+
{"version":3,"file":"uk-UA.cjs","names":[],"sources":["../../../../../src/providers/i18n-provider/intl/uk-UA.ts"],"sourcesContent":["import type { IntlData } from \".\"\n\nconst data: IntlData = {\n autocomplete: {\n \"Clear value\": \"Очистити значення\",\n \"No results found\": \"Результатів не знайдено\",\n },\n avatar: {\n \"Avatar Icon\": \"Іконка аватара\",\n },\n breadcrumb: {\n Breadcrumb: \"Хлібні крихти\",\n Ellipsis: \"Трикрапка\",\n },\n calendar: {\n \"Choose the month\": \"Виберіть місяць\",\n \"Choose the year\": \"Виберіть рік\",\n \"Go to the next month\": \"Перейти до наступного місяця\",\n \"Go to the previous month\": \"Перейти до попереднього місяця\",\n Today: \"Сьогодні\",\n },\n carousel: {\n \"Go to next slide\": \"Перейти до наступного слайда\",\n \"Go to previous slide\": \"Перейти до попереднього слайда\",\n \"Go to {page} slide\": \"Перейти до слайда {page}\",\n Slides: \"Слайди\",\n \"{page} of {total}\": \"{page} з {total}\",\n },\n closeButton: {\n Close: \"Закрити\",\n },\n colorPicker: {\n \"Pick a color\": \"Виберіть колір\",\n },\n colorSelector: {\n \"Pick a color\": \"Виберіть колір\",\n },\n colorSwatch: {\n \"Color swatch group\": \"Група зразків кольорів\",\n },\n datePicker: {\n \"Clear value\": \"Очистити значення\",\n },\n hueSlider: {\n Blue: \"Синій\",\n Cyan: \"Блакитний\",\n Green: \"Зелений\",\n Magenta: \"Пурпурний\",\n Red: \"Червоний\",\n Yellow: \"Жовтий\",\n },\n numberInput: {\n Decrease: \"Зменшити\",\n Increase: \"Збільшити\",\n },\n pagination: {\n \"Go to first page\": \"Перейти на першу сторінку\",\n \"Go to last page\": \"Перейти на останню сторінку\",\n \"Go to next page\": \"Перейти на наступну сторінку\",\n \"Go to page {value}\": \"Перейти на сторінку {value}\",\n \"Go to previous page\": \"Перейти на попередню сторінку\",\n Pagination: \"Пагінація\",\n \"{value} / {total}\": \"{value} / {total}\",\n \"{value} of {total}\": \"{value} з {total}\",\n },\n passwordInput: {\n \"Password strength meter\": \"Індикатор сили пароля\",\n \"Toggle password visibility\": \"Переключити видимість пароля\",\n },\n progress: {\n \"Loading...\": \"Завантаження...\",\n \"{value} percent\": \"{value} відсотків\",\n },\n saturationSlider: {\n \"Saturation and brightness thumb\": \"Регулятор насиченості та яскравості\",\n \"Saturation {saturation}%, Brightness {brightness}%\":\n \"Насиченість {saturation}%, Яскравість {brightness}%\",\n },\n select: {\n \"Clear value\": \"Очистити значення\",\n },\n sidebar: {\n \"Close sidebar\": \"Закрити бічну панель\",\n \"Open sidebar\": \"Відкрити бічну панель\",\n },\n slider: {\n \"Slider thumb\": \"Повзунок\",\n },\n stat: {\n \"Decreased by\": \"Зменшено на\",\n \"Increased by\": \"Збільшено на\",\n },\n table: {\n \"Clear sorting\": \"Очистити сортування\",\n \"Page size\": \"Розмір сторінки\",\n \"Select all rows\": \"Вибрати всі рядки\",\n \"Select row\": \"Вибрати рядок\",\n \"Sort ascending\": \"Сортувати за зростанням\",\n \"Sort descending\": \"Сортувати за спаданням\",\n },\n tag: {\n \"Close tag\": \"Закрити тег\",\n },\n toggle: {\n \"Toggle button\": \"Перемикач\",\n },\n} as const\n\nexport default data\n"],"mappings":";AAEA,MAAM,OAAiB;CACrB,cAAc;EACZ,eAAe;EACf,oBAAoB;CACtB;CACA,QAAQ,EACN,eAAe,iBACjB;CACA,YAAY;EACV,YAAY;EACZ,UAAU;CACZ;CACA,UAAU;EACR,oBAAoB;EACpB,mBAAmB;EACnB,wBAAwB;EACxB,4BAA4B;EAC5B,OAAO;CACT;CACA,UAAU;EACR,oBAAoB;EACpB,wBAAwB;EACxB,sBAAsB;EACtB,QAAQ;EACR,qBAAqB;CACvB;CACA,aAAa,EACX,OAAO,UACT;CACA,aAAa,EACX,gBAAgB,iBAClB;CACA,eAAe,EACb,gBAAgB,iBAClB;CACA,aAAa,EACX,sBAAsB,yBACxB;CACA,YAAY,EACV,eAAe,oBACjB;CACA,WAAW;EACT,MAAM;EACN,MAAM;EACN,OAAO;EACP,SAAS;EACT,KAAK;EACL,QAAQ;CACV;CACA,aAAa;EACX,UAAU;EACV,UAAU;CACZ;CACA,YAAY;EACV,oBAAoB;EACpB,mBAAmB;EACnB,mBAAmB;EACnB,sBAAsB;EACtB,uBAAuB;EACvB,YAAY;EACZ,qBAAqB;EACrB,sBAAsB;CACxB;CACA,eAAe;EACb,2BAA2B;EAC3B,8BAA8B;CAChC;CACA,UAAU;EACR,cAAc;EACd,mBAAmB;CACrB;CACA,kBAAkB;EAChB,mCAAmC;EACnC,sDACE;CACJ;CACA,QAAQ,EACN,eAAe,oBACjB;CACA,SAAS;EACP,iBAAiB;EACjB,gBAAgB;CAClB;CACA,QAAQ,EACN,gBAAgB,WAClB;CACA,MAAM;EACJ,gBAAgB;EAChB,gBAAgB;CAClB;CACA,OAAO;EACL,iBAAiB;EACjB,aAAa;EACb,mBAAmB;EACnB,cAAc;EACd,kBAAkB;EAClB,mBAAmB;CACrB;CACA,KAAK,EACH,aAAa,cACf;CACA,QAAQ,EACN,iBAAiB,YACnB;AACF"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
// src/providers/i18n-provider/intl/zh-CN.ts
|
|
2
2
|
const data = {
|
|
3
|
-
actionBar: {
|
|
4
|
-
"Close action bar": "关闭操作栏",
|
|
5
|
-
"Open action bar": "打开操作栏"
|
|
6
|
-
},
|
|
7
3
|
autocomplete: {
|
|
8
4
|
"Clear value": "清除值",
|
|
9
5
|
"No results found": "未找到结果"
|
|
@@ -40,10 +36,6 @@ const data = {
|
|
|
40
36
|
Red: "红色",
|
|
41
37
|
Yellow: "黄色"
|
|
42
38
|
},
|
|
43
|
-
modal: {
|
|
44
|
-
"Close modal": "关闭模态框",
|
|
45
|
-
"Open modal": "打开模态框"
|
|
46
|
-
},
|
|
47
39
|
numberInput: {
|
|
48
40
|
Decrease: "减少",
|
|
49
41
|
Increase: "增加"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zh-CN.cjs","names":[],"sources":["../../../../../src/providers/i18n-provider/intl/zh-CN.ts"],"sourcesContent":["import type { IntlData } from \".\"\n\nconst data: IntlData = {\n
|
|
1
|
+
{"version":3,"file":"zh-CN.cjs","names":[],"sources":["../../../../../src/providers/i18n-provider/intl/zh-CN.ts"],"sourcesContent":["import type { IntlData } from \".\"\n\nconst data: IntlData = {\n autocomplete: {\n \"Clear value\": \"清除值\",\n \"No results found\": \"未找到结果\",\n },\n avatar: {\n \"Avatar Icon\": \"头像图标\",\n },\n breadcrumb: {\n Breadcrumb: \"面包屑\",\n Ellipsis: \"省略号\",\n },\n calendar: {\n \"Choose the month\": \"选择月份\",\n \"Choose the year\": \"选择年份\",\n \"Go to the next month\": \"前往下个月\",\n \"Go to the previous month\": \"前往上个月\",\n Today: \"今天\",\n },\n carousel: {\n \"Go to next slide\": \"前往下一张幻灯片\",\n \"Go to previous slide\": \"前往上一张幻灯片\",\n \"Go to {page} slide\": \"前往第{page}张幻灯片\",\n Slides: \"幻灯片\",\n \"{page} of {total}\": \"{page} / {total}\",\n },\n closeButton: {\n Close: \"关闭\",\n },\n colorPicker: {\n \"Pick a color\": \"选择颜色\",\n },\n colorSelector: {\n \"Pick a color\": \"选择颜色\",\n },\n colorSwatch: {\n \"Color swatch group\": \"色彩样本组\",\n },\n datePicker: {\n \"Clear value\": \"清除值\",\n },\n hueSlider: {\n Blue: \"蓝色\",\n Cyan: \"青色\",\n Green: \"绿色\",\n Magenta: \"洋红\",\n Red: \"红色\",\n Yellow: \"黄色\",\n },\n numberInput: {\n Decrease: \"减少\",\n Increase: \"增加\",\n },\n pagination: {\n \"Go to first page\": \"前往第一页\",\n \"Go to last page\": \"前往最后一页\",\n \"Go to next page\": \"前往下一页\",\n \"Go to page {value}\": \"前往第{value}页\",\n \"Go to previous page\": \"前往上一页\",\n Pagination: \"分页\",\n \"{value} / {total}\": \"{value} / {total}\",\n \"{value} of {total}\": \"{value} / {total}\",\n },\n passwordInput: {\n \"Password strength meter\": \"密码强度计\",\n \"Toggle password visibility\": \"切换密码可见性\",\n },\n progress: {\n \"Loading...\": \"加载中...\",\n \"{value} percent\": \"{value}百分比\",\n },\n saturationSlider: {\n \"Saturation and brightness thumb\": \"饱和度和亮度滑块\",\n \"Saturation {saturation}%, Brightness {brightness}%\":\n \"饱和度 {saturation}%, 亮度 {brightness}%\",\n },\n select: {\n \"Clear value\": \"清除值\",\n },\n sidebar: {\n \"Close sidebar\": \"关闭侧边栏\",\n \"Open sidebar\": \"打开侧边栏\",\n },\n slider: {\n \"Slider thumb\": \"滑块拇指\",\n },\n stat: {\n \"Decreased by\": \"减少\",\n \"Increased by\": \"增加\",\n },\n table: {\n \"Clear sorting\": \"清除排序\",\n \"Page size\": \"页面大小\",\n \"Select all rows\": \"选择所有行\",\n \"Select row\": \"选择行\",\n \"Sort ascending\": \"升序排序\",\n \"Sort descending\": \"降序排序\",\n },\n tag: {\n \"Close tag\": \"关闭标签\",\n },\n toggle: {\n \"Toggle button\": \"切换按钮\",\n },\n} as const\n\nexport default data\n"],"mappings":";AAEA,MAAM,OAAiB;CACrB,cAAc;EACZ,eAAe;EACf,oBAAoB;CACtB;CACA,QAAQ,EACN,eAAe,OACjB;CACA,YAAY;EACV,YAAY;EACZ,UAAU;CACZ;CACA,UAAU;EACR,oBAAoB;EACpB,mBAAmB;EACnB,wBAAwB;EACxB,4BAA4B;EAC5B,OAAO;CACT;CACA,UAAU;EACR,oBAAoB;EACpB,wBAAwB;EACxB,sBAAsB;EACtB,QAAQ;EACR,qBAAqB;CACvB;CACA,aAAa,EACX,OAAO,KACT;CACA,aAAa,EACX,gBAAgB,OAClB;CACA,eAAe,EACb,gBAAgB,OAClB;CACA,aAAa,EACX,sBAAsB,QACxB;CACA,YAAY,EACV,eAAe,MACjB;CACA,WAAW;EACT,MAAM;EACN,MAAM;EACN,OAAO;EACP,SAAS;EACT,KAAK;EACL,QAAQ;CACV;CACA,aAAa;EACX,UAAU;EACV,UAAU;CACZ;CACA,YAAY;EACV,oBAAoB;EACpB,mBAAmB;EACnB,mBAAmB;EACnB,sBAAsB;EACtB,uBAAuB;EACvB,YAAY;EACZ,qBAAqB;EACrB,sBAAsB;CACxB;CACA,eAAe;EACb,2BAA2B;EAC3B,8BAA8B;CAChC;CACA,UAAU;EACR,cAAc;EACd,mBAAmB;CACrB;CACA,kBAAkB;EAChB,mCAAmC;EACnC,sDACE;CACJ;CACA,QAAQ,EACN,eAAe,MACjB;CACA,SAAS;EACP,iBAAiB;EACjB,gBAAgB;CAClB;CACA,QAAQ,EACN,gBAAgB,OAClB;CACA,MAAM;EACJ,gBAAgB;EAChB,gBAAgB;CAClB;CACA,OAAO;EACL,iBAAiB;EACjB,aAAa;EACb,mBAAmB;EACnB,cAAc;EACd,kBAAkB;EAClB,mBAAmB;CACrB;CACA,KAAK,EACH,aAAa,OACf;CACA,QAAQ,EACN,iBAAiB,OACnB;AACF"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
// src/providers/i18n-provider/intl/zh-TW.ts
|
|
2
2
|
const data = {
|
|
3
|
-
actionBar: {
|
|
4
|
-
"Close action bar": "關閉操作列",
|
|
5
|
-
"Open action bar": "打開操作列"
|
|
6
|
-
},
|
|
7
3
|
autocomplete: {
|
|
8
4
|
"Clear value": "清除值",
|
|
9
5
|
"No results found": "未找到結果"
|
|
@@ -40,10 +36,6 @@ const data = {
|
|
|
40
36
|
Red: "紅色",
|
|
41
37
|
Yellow: "黃色"
|
|
42
38
|
},
|
|
43
|
-
modal: {
|
|
44
|
-
"Close modal": "關閉模態框",
|
|
45
|
-
"Open modal": "打開模態框"
|
|
46
|
-
},
|
|
47
39
|
numberInput: {
|
|
48
40
|
Decrease: "減少",
|
|
49
41
|
Increase: "增加"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zh-TW.cjs","names":[],"sources":["../../../../../src/providers/i18n-provider/intl/zh-TW.ts"],"sourcesContent":["import type { IntlData } from \".\"\n\nconst data: IntlData = {\n
|
|
1
|
+
{"version":3,"file":"zh-TW.cjs","names":[],"sources":["../../../../../src/providers/i18n-provider/intl/zh-TW.ts"],"sourcesContent":["import type { IntlData } from \".\"\n\nconst data: IntlData = {\n autocomplete: {\n \"Clear value\": \"清除值\",\n \"No results found\": \"未找到結果\",\n },\n avatar: {\n \"Avatar Icon\": \"頭像圖標\",\n },\n breadcrumb: {\n Breadcrumb: \"麵包屑\",\n Ellipsis: \"省略號\",\n },\n calendar: {\n \"Choose the month\": \"選擇月份\",\n \"Choose the year\": \"選擇年份\",\n \"Go to the next month\": \"前往下個月\",\n \"Go to the previous month\": \"前往上個月\",\n Today: \"今天\",\n },\n carousel: {\n \"Go to next slide\": \"前往下一張幻燈片\",\n \"Go to previous slide\": \"前往上一張幻燈片\",\n \"Go to {page} slide\": \"前往第{page}張幻燈片\",\n Slides: \"幻燈片\",\n \"{page} of {total}\": \"{page} / {total}\",\n },\n closeButton: {\n Close: \"關閉\",\n },\n colorPicker: {\n \"Pick a color\": \"選擇顏色\",\n },\n colorSelector: {\n \"Pick a color\": \"選擇顏色\",\n },\n colorSwatch: {\n \"Color swatch group\": \"色彩樣本群組\",\n },\n datePicker: {\n \"Clear value\": \"清除值\",\n },\n hueSlider: {\n Blue: \"藍色\",\n Cyan: \"青色\",\n Green: \"綠色\",\n Magenta: \"洋紅\",\n Red: \"紅色\",\n Yellow: \"黃色\",\n },\n numberInput: {\n Decrease: \"減少\",\n Increase: \"增加\",\n },\n pagination: {\n \"Go to first page\": \"前往第一頁\",\n \"Go to last page\": \"前往最後一頁\",\n \"Go to next page\": \"前往下一頁\",\n \"Go to page {value}\": \"前往第{value}頁\",\n \"Go to previous page\": \"前往上一頁\",\n Pagination: \"分頁\",\n \"{value} / {total}\": \"{value} / {total}\",\n \"{value} of {total}\": \"{value} / {total}\",\n },\n passwordInput: {\n \"Password strength meter\": \"密碼強度計\",\n \"Toggle password visibility\": \"切換密碼可見性\",\n },\n progress: {\n \"Loading...\": \"加載中...\",\n \"{value} percent\": \"{value}百分比\",\n },\n saturationSlider: {\n \"Saturation and brightness thumb\": \"飽和度和亮度滑塊\",\n \"Saturation {saturation}%, Brightness {brightness}%\":\n \"飽和度 {saturation}%, 亮度 {brightness}%\",\n },\n select: {\n \"Clear value\": \"清除值\",\n },\n sidebar: {\n \"Close sidebar\": \"關閉側邊欄\",\n \"Open sidebar\": \"打開側邊欄\",\n },\n slider: {\n \"Slider thumb\": \"滑塊拇指\",\n },\n stat: {\n \"Decreased by\": \"減少\",\n \"Increased by\": \"增加\",\n },\n table: {\n \"Clear sorting\": \"清除排序\",\n \"Page size\": \"頁面大小\",\n \"Select all rows\": \"選擇所有行\",\n \"Select row\": \"選擇行\",\n \"Sort ascending\": \"升序排序\",\n \"Sort descending\": \"降序排序\",\n },\n tag: {\n \"Close tag\": \"關閉標籤\",\n },\n toggle: {\n \"Toggle button\": \"切換按鈕\",\n },\n} as const\n\nexport default data\n"],"mappings":";AAEA,MAAM,OAAiB;CACrB,cAAc;EACZ,eAAe;EACf,oBAAoB;CACtB;CACA,QAAQ,EACN,eAAe,OACjB;CACA,YAAY;EACV,YAAY;EACZ,UAAU;CACZ;CACA,UAAU;EACR,oBAAoB;EACpB,mBAAmB;EACnB,wBAAwB;EACxB,4BAA4B;EAC5B,OAAO;CACT;CACA,UAAU;EACR,oBAAoB;EACpB,wBAAwB;EACxB,sBAAsB;EACtB,QAAQ;EACR,qBAAqB;CACvB;CACA,aAAa,EACX,OAAO,KACT;CACA,aAAa,EACX,gBAAgB,OAClB;CACA,eAAe,EACb,gBAAgB,OAClB;CACA,aAAa,EACX,sBAAsB,SACxB;CACA,YAAY,EACV,eAAe,MACjB;CACA,WAAW;EACT,MAAM;EACN,MAAM;EACN,OAAO;EACP,SAAS;EACT,KAAK;EACL,QAAQ;CACV;CACA,aAAa;EACX,UAAU;EACV,UAAU;CACZ;CACA,YAAY;EACV,oBAAoB;EACpB,mBAAmB;EACnB,mBAAmB;EACnB,sBAAsB;EACtB,uBAAuB;EACvB,YAAY;EACZ,qBAAqB;EACrB,sBAAsB;CACxB;CACA,eAAe;EACb,2BAA2B;EAC3B,8BAA8B;CAChC;CACA,UAAU;EACR,cAAc;EACd,mBAAmB;CACrB;CACA,kBAAkB;EAChB,mCAAmC;EACnC,sDACE;CACJ;CACA,QAAQ,EACN,eAAe,MACjB;CACA,SAAS;EACP,iBAAiB;EACjB,gBAAgB;CAClB;CACA,QAAQ,EACN,gBAAgB,OAClB;CACA,MAAM;EACJ,gBAAgB;EAChB,gBAAgB;CAClB;CACA,OAAO;EACL,iBAAiB;EACjB,aAAa;EACb,mBAAmB;EACnB,cAAc;EACd,kBAAkB;EAClB,mBAAmB;CACrB;CACA,KAAK,EACH,aAAa,OACf;CACA,QAAQ,EACN,iBAAiB,OACnB;AACF"}
|
|
@@ -5,8 +5,8 @@ const require_theme_provider = require("../../core/system/theme-provider.cjs");
|
|
|
5
5
|
const require_color_mode_provider = require("../../core/system/color-mode-provider.cjs");
|
|
6
6
|
const require_config = require("../../theme/config.cjs");
|
|
7
7
|
const require_theme_index = require("../../theme/index.cjs");
|
|
8
|
-
const require_i18n_provider = require("../i18n-provider/i18n-provider.cjs");
|
|
9
8
|
const require_loading_provider = require("../../components/loading/loading-provider.cjs");
|
|
9
|
+
const require_i18n_provider = require("../i18n-provider/i18n-provider.cjs");
|
|
10
10
|
const require_notice_provider = require("../../components/notice/notice-provider.cjs");
|
|
11
11
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
12
|
// src/providers/ui-provider/ui-provider.tsx
|
|
@@ -5,7 +5,6 @@ import { useEnvironment } from "../../core/system/environment-provider.js";
|
|
|
5
5
|
import { mergeProps } from "../../core/components/props.js";
|
|
6
6
|
import { useDisclosure } from "../../hooks/use-disclosure/use-disclosure.js";
|
|
7
7
|
import { useEventListener } from "../../hooks/use-event-listener/index.js";
|
|
8
|
-
import { useI18n } from "../../providers/i18n-provider/i18n-provider.js";
|
|
9
8
|
import { useCallback } from "react";
|
|
10
9
|
// src/components/action-bar/use-action-bar.ts
|
|
11
10
|
const useActionBar = ({ closeOnEsc = true, defaultOpen, open: openProp, onClose: onCloseProp, onOpen: onOpenProp, ...rest } = {}) => {
|
|
@@ -17,7 +16,6 @@ const useActionBar = ({ closeOnEsc = true, defaultOpen, open: openProp, onClose:
|
|
|
17
16
|
onOpen: onOpenProp
|
|
18
17
|
});
|
|
19
18
|
const [contentId] = useIds();
|
|
20
|
-
const { t } = useI18n("actionBar");
|
|
21
19
|
const onKeyDown = useCallback((ev) => {
|
|
22
20
|
if (ev.key !== "Escape") return;
|
|
23
21
|
if (!closeOnEsc) return;
|
|
@@ -30,22 +28,19 @@ const useActionBar = ({ closeOnEsc = true, defaultOpen, open: openProp, onClose:
|
|
|
30
28
|
"aria-controls": open ? contentId : void 0,
|
|
31
29
|
"aria-expanded": open,
|
|
32
30
|
"aria-haspopup": "dialog",
|
|
33
|
-
"aria-label": t("Open action bar"),
|
|
34
31
|
...props,
|
|
35
32
|
onClick: (0, utils_exports.handlerAll)(props.onClick, onOpen)
|
|
36
33
|
}), [
|
|
37
34
|
contentId,
|
|
38
35
|
onOpen,
|
|
39
|
-
open
|
|
40
|
-
t
|
|
36
|
+
open
|
|
41
37
|
]);
|
|
42
38
|
return {
|
|
43
39
|
open,
|
|
44
40
|
getCloseTriggerProps: useCallback((props = {}) => ({
|
|
45
|
-
"aria-label": t("Close action bar"),
|
|
46
41
|
...props,
|
|
47
42
|
onClick: (0, utils_exports.handlerAll)(props.onClick, onClose)
|
|
48
|
-
}), [onClose
|
|
43
|
+
}), [onClose]),
|
|
49
44
|
getContentProps: useCallback((props = {}) => ({
|
|
50
45
|
id: contentId,
|
|
51
46
|
role: "dialog",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-action-bar.js","names":["handlerAll"],"sources":["../../../../src/components/action-bar/use-action-bar.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport type { UseDisclosureProps } from \"../../hooks/use-disclosure\"\nimport { useCallback } from \"react\"\nimport { mergeProps, useEnvironment } from \"../../core\"\nimport { useDisclosure } from \"../../hooks/use-disclosure\"\nimport { useEventListener } from \"../../hooks/use-event-listener\"\nimport {
|
|
1
|
+
{"version":3,"file":"use-action-bar.js","names":["handlerAll"],"sources":["../../../../src/components/action-bar/use-action-bar.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport type { UseDisclosureProps } from \"../../hooks/use-disclosure\"\nimport { useCallback } from \"react\"\nimport { mergeProps, useEnvironment } from \"../../core\"\nimport { useDisclosure } from \"../../hooks/use-disclosure\"\nimport { useEventListener } from \"../../hooks/use-event-listener\"\nimport { handlerAll, useIds } from \"../../utils\"\n\nexport interface UseActionBarProps\n extends HTMLProps, Omit<UseDisclosureProps, \"timing\"> {\n /**\n * If `true`, the action bar will close when the `Esc` key is pressed.\n *\n * @default true\n */\n closeOnEsc?: boolean\n}\n\nexport const useActionBar = ({\n closeOnEsc = true,\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n}: UseActionBarProps = {}) => {\n const { getDocument } = useEnvironment()\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const [contentId] = useIds()\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n if (ev.key !== \"Escape\") return\n\n if (!closeOnEsc) return\n\n ev.stopPropagation()\n onClose()\n },\n [closeOnEsc, onClose],\n )\n\n useEventListener(getDocument(), \"keydown\", onKeyDown)\n\n const getRootProps: PropGetter = useCallback(\n (props = {}) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getOpenTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n \"aria-controls\": open ? contentId : undefined,\n \"aria-expanded\": open,\n \"aria-haspopup\": \"dialog\",\n ...props,\n onClick: handlerAll(props.onClick, onOpen),\n }),\n [contentId, onOpen, open],\n )\n\n const getCloseTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n ...props,\n onClick: handlerAll(props.onClick, onClose),\n }),\n [onClose],\n )\n\n const getContentProps: PropGetter<\"section\"> = useCallback(\n (props = {}) => ({\n id: contentId,\n role: \"dialog\",\n ...props,\n }),\n [contentId],\n )\n\n return {\n open,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n getRootProps,\n onClose,\n onOpen,\n }\n}\n\nexport type UseActionBarReturn = ReturnType<typeof useActionBar>\n"],"mappings":";;;;;;;;;AAoBA,MAAa,gBAAgB,EAC3B,aAAa,MACb,aACA,MAAM,UACN,SAAS,aACT,QAAQ,YACR,GAAG,SACkB,CAAC,MAAM;CAC5B,MAAM,EAAE,gBAAgB,eAAe;CACvC,MAAM,EAAE,MAAM,SAAS,WAAW,cAAc;EAC9C;EACA,MAAM;EACN,SAAS;EACT,QAAQ;CACV,CAAC;CACD,MAAM,CAAC,aAAa,OAAO;CAE3B,MAAM,YAAY,aACf,OAAsB;EACrB,IAAI,GAAG,QAAQ,UAAU;EAEzB,IAAI,CAAC,YAAY;EAEjB,GAAG,gBAAgB;EACnB,QAAQ;CACV,GACA,CAAC,YAAY,OAAO,CACtB;CAEA,iBAAiB,YAAY,GAAG,WAAW,SAAS;CAEpD,MAAM,eAA2B,aAC9B,QAAQ,CAAC,MAAM,WAAW,MAAM,KAAK,CAAC,CAAC,GACxC,CAAC,IAAI,CACP;CAEA,MAAM,sBAA4C,aAC/C,QAAQ,CAAC,OAAO;EACf,iBAAiB,OAAO,YAAY,KAAA;EACpC,iBAAiB;EACjB,iBAAiB;EACjB,GAAG;EACH,UAAA,GAASA,cAAAA,WAAAA,CAAW,MAAM,SAAS,MAAM;CAC3C,IACA;EAAC;EAAW;EAAQ;CAAI,CAC1B;CAmBA,OAAO;EACL;EACA,sBAnBiD,aAChD,QAAQ,CAAC,OAAO;GACf,GAAG;GACH,UAAA,GAASA,cAAAA,WAAAA,CAAW,MAAM,SAAS,OAAO;EAC5C,IACA,CAAC,OAAO,CAcW;EACnB,iBAZ6C,aAC5C,QAAQ,CAAC,OAAO;GACf,IAAI;GACJ,MAAM;GACN,GAAG;EACL,IACA,CAAC,SAAS,CAMI;EACd;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useI18n } from "../../providers/i18n-provider/i18n-provider.js";
|
|
2
1
|
import { ColorSwatch } from "./color-swatch.js";
|
|
2
|
+
import { useI18n } from "../../providers/i18n-provider/i18n-provider.js";
|
|
3
3
|
import { Grid } from "../grid/grid.js";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
// src/components/color-swatch/color-swatch-group.tsx
|
|
@@ -114,10 +114,9 @@ const DrawerCloseTrigger = withContext("button", {
|
|
|
114
114
|
...getCloseTriggerProps(props)
|
|
115
115
|
};
|
|
116
116
|
});
|
|
117
|
-
const DrawerCloseButton = withContext(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
});
|
|
117
|
+
const DrawerCloseButton = withContext((props) => {
|
|
118
|
+
return /* @__PURE__ */ jsx(DrawerCloseTrigger, { children: /* @__PURE__ */ jsx(CloseButton, { ...props }) });
|
|
119
|
+
}, "closeButton")();
|
|
121
120
|
const DrawerOverlay = withContext((props) => {
|
|
122
121
|
const { duration, getOverlayProps } = useComponentContext();
|
|
123
122
|
return /* @__PURE__ */ jsx(motion$1.div, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.js","names":["isArray","motion","cast"],"sources":["../../../../src/components/drawer/drawer.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FC, PropsWithChildren, ReactNode } from \"react\"\nimport type { HTMLProps, HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { ButtonProps } from \"../button\"\nimport type { CloseButtonProps } from \"../close-button\"\nimport type { FocusLockProps } from \"../focus-lock\"\nimport type { HTMLMotionProps, MotionTransitionProps } from \"../motion\"\nimport type { PortalProps } from \"../portal\"\nimport type { SlideProps } from \"../slide\"\nimport type { DrawerStyle } from \"./drawer.style\"\nimport type { UseDrawerProps, UseDrawerReturn } from \"./use-drawer\"\nimport { AnimatePresence } from \"motion/react\"\nimport { useMemo } from \"react\"\nimport { RemoveScroll } from \"react-remove-scroll\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { cast, isArray, useSplitChildren, wrapOrPassProps } from \"../../utils\"\nimport { Button } from \"../button\"\nimport { CloseButton } from \"../close-button\"\nimport { fadeVariants } from \"../fade\"\nimport { FocusLock } from \"../focus-lock\"\nimport { motion } from \"../motion\"\nimport { Portal } from \"../portal\"\nimport { Slide } from \"../slide\"\nimport { drawerStyle } from \"./drawer.style\"\nimport { useDrawer } from \"./use-drawer\"\n\ninterface ComponentContext\n extends\n Omit<UseDrawerReturn, \"getRootProps\">,\n Pick<\n DrawerRootProps,\n \"duration\" | \"placement\" | \"withCloseButton\" | \"withDragBar\"\n > {}\n\nexport interface DrawerRootProps\n extends\n ThemeProps<DrawerStyle>,\n Omit<UseDrawerProps, \"placement\" | \"title\">,\n Pick<\n FocusLockProps,\n | \"autoFocus\"\n | \"finalFocusRef\"\n | \"initialFocusRef\"\n | \"lockFocusAcrossFrames\"\n | \"restoreFocus\"\n >,\n ShorthandDrawerContentProps {\n /**\n * Handle zoom or pinch gestures on iOS devices when scroll locking is enabled.\n *\n * @default false.\n */\n allowPinchZoom?: boolean\n /**\n * If `true`, scrolling will be disabled on the `body` when the drawer opens.\n *\n * @default true\n */\n blockScrollOnMount?: boolean\n /**\n * The animation duration.\n */\n duration?: MotionTransitionProps[\"duration\"]\n /**\n * The modal trigger to use.\n */\n trigger?: ReactNode\n /**\n * If `true`, display the drawer close button.\n *\n * @default true\n */\n withCloseButton?: boolean\n /**\n * If `true`, display the drag bar when `closeOnDrag` is `true`.\n *\n * @default true\n */\n withDragBar?: boolean\n /**\n * If `true`, display the drawer overlay.\n *\n * @default true\n */\n withOverlay?: boolean\n /**\n * Props to be forwarded to the portal component.\n */\n portalProps?: Omit<PortalProps, \"children\">\n /**\n * Callback function to run side effects after the drawer has closed.\n */\n onCloseComplete?: () => void\n}\n\nconst {\n ComponentContext,\n PropsContext: DrawerPropsContext,\n useComponentContext,\n usePropsContext: useDrawerPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<DrawerRootProps, DrawerStyle, ComponentContext>(\n \"drawer\",\n drawerStyle,\n)\n\nexport { DrawerPropsContext, useDrawerPropsContext }\n\n/**\n * `Drawer` is a component for a panel that appears from the edge of the screen.\n *\n * @see https://yamada-ui.com/docs/components/drawer\n */\nexport const DrawerRoot = withProvider<\"div\", DrawerRootProps, \"placement\">(\n ({\n allowPinchZoom = false,\n autoFocus,\n blockScrollOnMount = true,\n body,\n cancel,\n children,\n closeOnDrag,\n dragConstraints,\n dragElastic,\n dragHandleOnly,\n dragOffset,\n dragVelocity,\n duration = { enter: 0.4, exit: 0.3 },\n finalFocusRef,\n footer,\n header,\n initialFocusRef,\n lockFocusAcrossFrames = true,\n middle,\n placement: placementProp,\n restoreFocus,\n success,\n title,\n trigger,\n withCloseButton = !closeOnDrag,\n withDragBar = true,\n withOverlay = true,\n portalProps,\n onCancel,\n onCloseComplete,\n onMiddle,\n onSuccess,\n ...props\n }) => {\n const placement = useValue(placementProp)\n const [omittedChildren, openTrigger, customOverlay] = useSplitChildren(\n children,\n DrawerOpenTrigger,\n DrawerOverlay,\n )\n const hasChildren = isArray(omittedChildren) && !!omittedChildren.length\n const { open, getRootProps, ...rest } = useDrawer({\n closeOnDrag,\n dragConstraints,\n dragElastic,\n dragHandleOnly,\n dragOffset,\n dragVelocity,\n placement,\n ...props,\n })\n const customOpenTrigger = trigger ? (\n <DrawerOpenTrigger>{trigger}</DrawerOpenTrigger>\n ) : null\n\n const context = useMemo(\n () => ({\n duration,\n open,\n placement,\n withCloseButton,\n withDragBar,\n ...rest,\n }),\n [duration, open, withDragBar, placement, withCloseButton, rest],\n )\n\n return (\n <ComponentContext value={context}>\n {openTrigger ?? customOpenTrigger}\n\n <AnimatePresence onExitComplete={onCloseComplete}>\n {open ? (\n <Portal {...portalProps}>\n <FocusLock\n autoFocus={autoFocus}\n finalFocusRef={finalFocusRef}\n initialFocusRef={initialFocusRef}\n lockFocusAcrossFrames={lockFocusAcrossFrames}\n restoreFocus={restoreFocus}\n >\n <RemoveScroll\n allowPinchZoom={allowPinchZoom}\n enabled={blockScrollOnMount}\n forwardProps\n >\n <styled.div {...getRootProps()}>\n {customOverlay ?? (withOverlay ? <DrawerOverlay /> : null)}\n\n {hasChildren ? (\n omittedChildren\n ) : (\n <ShorthandDrawerContent\n body={body}\n cancel={cancel}\n footer={footer}\n header={header}\n middle={middle}\n success={success}\n title={title}\n onCancel={onCancel}\n onMiddle={onMiddle}\n onSuccess={onSuccess}\n />\n )}\n </styled.div>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n ) : null}\n </AnimatePresence>\n </ComponentContext>\n )\n },\n \"root\",\n { transferProps: [\"placement\"] },\n)()\n\nexport interface DrawerOpenTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const DrawerOpenTrigger = withContext<\"button\", DrawerOpenTriggerProps>(\n \"button\",\n { name: \"OpenTrigger\", slot: [\"trigger\", \"open\"] },\n)(undefined, (props) => {\n const { getOpenTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getOpenTriggerProps(props) }\n})\n\nexport interface DrawerCloseTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const DrawerCloseTrigger = withContext<\n \"button\",\n DrawerCloseTriggerProps\n>(\"button\", { name: \"CloseTrigger\", slot: [\"trigger\", \"close\"] })(\n undefined,\n (props) => {\n const { getCloseTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getCloseTriggerProps(props) }\n },\n)\n\nexport interface DrawerCloseButtonProps extends CloseButtonProps {}\n\nexport const DrawerCloseButton = withContext<\"button\", DrawerCloseButtonProps>(\n CloseButton,\n \"closeButton\",\n)(undefined, (props) => {\n const { getCloseButtonProps } = useComponentContext()\n\n return { ...getCloseButtonProps(props) }\n})\n\nexport interface DrawerOverlayProps extends HTMLMotionProps {}\n\nexport const DrawerOverlay = withContext<\"div\", DrawerOverlayProps>((props) => {\n const { duration, getOverlayProps } = useComponentContext()\n\n return (\n <motion.div\n animate=\"enter\"\n custom={{ duration }}\n exit=\"exit\"\n initial=\"exit\"\n variants={fadeVariants}\n {...cast<HTMLMotionProps>(getOverlayProps(cast<HTMLProps>(props)))}\n />\n )\n}, \"overlay\")()\n\nexport interface DrawerContentProps\n extends Omit<HTMLMotionProps<\"section\">, \"children\">, PropsWithChildren {}\n\nexport const DrawerContent = withContext<\"div\", DrawerContentProps>(\n ({ children, ...rest }) => {\n const {\n closeOnDrag,\n duration,\n open,\n placement,\n withCloseButton,\n withDragBar,\n getContentProps,\n } = useComponentContext()\n const [omittedChildren, customCloseButton, customDragBar] =\n useSplitChildren(children, DrawerCloseButton, DrawerDragBar)\n\n return (\n <Slide\n as=\"section\"\n duration={duration}\n open={open}\n placement={placement}\n {...(getContentProps(rest) as SlideProps)}\n >\n {customCloseButton ?? (withCloseButton ? <DrawerCloseButton /> : null)}\n {customDragBar ??\n (withDragBar && closeOnDrag ? <DrawerDragBar /> : null)}\n\n {omittedChildren}\n </Slide>\n )\n },\n \"content\",\n)()\n\ninterface ShorthandDrawerContentProps {\n /**\n * The drawer body to use.\n */\n body?: DrawerBodyProps | ReactNode\n /**\n * The drawer cancel button to use.\n */\n cancel?: ButtonProps | ReactNode\n /**\n * The drawer footer to use.\n */\n footer?: DrawerFooterProps | ReactNode\n /**\n * The drawer header to use.\n */\n header?: DrawerHeaderProps | ReactNode\n /**\n * The drawer middle button to use.\n */\n middle?: ButtonProps | ReactNode\n /**\n * The drawer success button to use.\n */\n success?: ButtonProps | ReactNode\n /**\n * The drawer title to use.\n */\n title?: DrawerTitleProps | ReactNode\n /**\n * The callback invoked when cancel button clicked.\n */\n onCancel?: (onClose: () => void) => void\n /**\n * The callback invoked when middle button clicked.\n */\n onMiddle?: (onClose: () => void) => void\n /**\n * The callback invoked when success button clicked.\n */\n onSuccess?: (onClose: () => void) => void\n}\n\nexport const ShorthandDrawerContent: FC<ShorthandDrawerContentProps> = ({\n body,\n cancel,\n footer,\n header,\n middle,\n success,\n title,\n onCancel,\n onMiddle,\n onSuccess,\n}) => {\n const { onClose } = useComponentContext()\n const customHeader = wrapOrPassProps(DrawerHeader, header)\n const customTitle = wrapOrPassProps(DrawerTitle, title)\n const customBody = wrapOrPassProps(DrawerBody, body)\n const customFooter = wrapOrPassProps(DrawerFooter, footer)\n const customCancel = wrapOrPassProps(Button, cancel, {\n colorScheme: \"mono\",\n variant: \"ghost\",\n onClick: () => (onCancel ? onCancel(onClose) : onClose()),\n })\n const customMiddle = wrapOrPassProps(Button, middle, {\n colorScheme: \"secondary\",\n onClick: () => (onMiddle ? onMiddle(onClose) : onClose()),\n })\n const customSuccess = wrapOrPassProps(Button, success, {\n colorScheme: \"primary\",\n onClick: () => (onSuccess ? onSuccess(onClose) : onClose()),\n })\n\n return (\n <DrawerContent>\n {customHeader ??\n (customTitle ? <DrawerHeader>{customTitle}</DrawerHeader> : null)}\n {customBody}\n {customFooter ??\n (customCancel || customMiddle || customSuccess ? (\n <DrawerFooter>\n {customCancel}\n {customMiddle}\n {customSuccess}\n </DrawerFooter>\n ) : null)}\n </DrawerContent>\n )\n}\n\nexport interface DrawerDragBarProps extends HTMLStyledProps {}\n\nexport const DrawerDragBar = withContext<\"div\", DrawerDragBarProps>(\n \"div\",\n \"dragBar\",\n)(undefined, (props) => {\n const { getDragBarProps } = useComponentContext()\n\n return { ...getDragBarProps(props) }\n})\n\nexport interface DrawerDragTriggerProps extends HTMLStyledProps {}\n\nexport const DrawerDragTrigger = withContext<\"div\", DrawerDragTriggerProps>(\n \"div\",\n { name: \"DragTrigger\", slot: [\"trigger\", \"drag\"] },\n)(undefined, (props) => {\n const { getDragTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getDragTriggerProps(props) }\n})\n\nexport interface DrawerHeaderProps extends HTMLStyledProps<\"header\"> {}\n\nexport const DrawerHeader = withContext<\"header\", DrawerHeaderProps>(\n \"header\",\n \"header\",\n)(undefined, (props) => {\n const { getHeaderProps } = useComponentContext()\n\n return { ...getHeaderProps(props) }\n})\n\nexport interface DrawerTitleProps extends HTMLStyledProps<\"h2\"> {}\n\nexport const DrawerTitle = withContext<\"h2\", DrawerTitleProps>(\"h2\", \"title\")(\n undefined,\n (props) => {\n const { getTitleProps } = useComponentContext()\n\n return { ...getTitleProps(props) }\n },\n)\n\nexport interface DrawerBodyProps extends HTMLStyledProps {}\n\nexport const DrawerBody = withContext<\"div\", DrawerBodyProps>(\"div\", \"body\")(\n undefined,\n (props) => {\n const { getBodyProps } = useComponentContext()\n\n return { ...getBodyProps(props) }\n },\n)\n\nexport interface DrawerFooterProps extends HTMLStyledProps<\"footer\"> {}\n\nexport const DrawerFooter = withContext<\"footer\", DrawerFooterProps>(\n \"footer\",\n \"footer\",\n)(undefined, (props) => {\n const { getFooterProps } = useComponentContext()\n\n return { ...getFooterProps(props) }\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drawer.js","names":["isArray","motion","cast"],"sources":["../../../../src/components/drawer/drawer.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FC, PropsWithChildren, ReactNode } from \"react\"\nimport type { HTMLProps, HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { ButtonProps } from \"../button\"\nimport type { CloseButtonProps } from \"../close-button\"\nimport type { FocusLockProps } from \"../focus-lock\"\nimport type { HTMLMotionProps, MotionTransitionProps } from \"../motion\"\nimport type { PortalProps } from \"../portal\"\nimport type { SlideProps } from \"../slide\"\nimport type { DrawerStyle } from \"./drawer.style\"\nimport type { UseDrawerProps, UseDrawerReturn } from \"./use-drawer\"\nimport { AnimatePresence } from \"motion/react\"\nimport { useMemo } from \"react\"\nimport { RemoveScroll } from \"react-remove-scroll\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { cast, isArray, useSplitChildren, wrapOrPassProps } from \"../../utils\"\nimport { Button } from \"../button\"\nimport { CloseButton } from \"../close-button\"\nimport { fadeVariants } from \"../fade\"\nimport { FocusLock } from \"../focus-lock\"\nimport { motion } from \"../motion\"\nimport { Portal } from \"../portal\"\nimport { Slide } from \"../slide\"\nimport { drawerStyle } from \"./drawer.style\"\nimport { useDrawer } from \"./use-drawer\"\n\ninterface ComponentContext\n extends\n Omit<UseDrawerReturn, \"getRootProps\">,\n Pick<\n DrawerRootProps,\n \"duration\" | \"placement\" | \"withCloseButton\" | \"withDragBar\"\n > {}\n\nexport interface DrawerRootProps\n extends\n ThemeProps<DrawerStyle>,\n Omit<UseDrawerProps, \"placement\" | \"title\">,\n Pick<\n FocusLockProps,\n | \"autoFocus\"\n | \"finalFocusRef\"\n | \"initialFocusRef\"\n | \"lockFocusAcrossFrames\"\n | \"restoreFocus\"\n >,\n ShorthandDrawerContentProps {\n /**\n * Handle zoom or pinch gestures on iOS devices when scroll locking is enabled.\n *\n * @default false.\n */\n allowPinchZoom?: boolean\n /**\n * If `true`, scrolling will be disabled on the `body` when the drawer opens.\n *\n * @default true\n */\n blockScrollOnMount?: boolean\n /**\n * The animation duration.\n */\n duration?: MotionTransitionProps[\"duration\"]\n /**\n * The modal trigger to use.\n */\n trigger?: ReactNode\n /**\n * If `true`, display the drawer close button.\n *\n * @default true\n */\n withCloseButton?: boolean\n /**\n * If `true`, display the drag bar when `closeOnDrag` is `true`.\n *\n * @default true\n */\n withDragBar?: boolean\n /**\n * If `true`, display the drawer overlay.\n *\n * @default true\n */\n withOverlay?: boolean\n /**\n * Props to be forwarded to the portal component.\n */\n portalProps?: Omit<PortalProps, \"children\">\n /**\n * Callback function to run side effects after the drawer has closed.\n */\n onCloseComplete?: () => void\n}\n\nconst {\n ComponentContext,\n PropsContext: DrawerPropsContext,\n useComponentContext,\n usePropsContext: useDrawerPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<DrawerRootProps, DrawerStyle, ComponentContext>(\n \"drawer\",\n drawerStyle,\n)\n\nexport { DrawerPropsContext, useDrawerPropsContext }\n\n/**\n * `Drawer` is a component for a panel that appears from the edge of the screen.\n *\n * @see https://yamada-ui.com/docs/components/drawer\n */\nexport const DrawerRoot = withProvider<\"div\", DrawerRootProps, \"placement\">(\n ({\n allowPinchZoom = false,\n autoFocus,\n blockScrollOnMount = true,\n body,\n cancel,\n children,\n closeOnDrag,\n dragConstraints,\n dragElastic,\n dragHandleOnly,\n dragOffset,\n dragVelocity,\n duration = { enter: 0.4, exit: 0.3 },\n finalFocusRef,\n footer,\n header,\n initialFocusRef,\n lockFocusAcrossFrames = true,\n middle,\n placement: placementProp,\n restoreFocus,\n success,\n title,\n trigger,\n withCloseButton = !closeOnDrag,\n withDragBar = true,\n withOverlay = true,\n portalProps,\n onCancel,\n onCloseComplete,\n onMiddle,\n onSuccess,\n ...props\n }) => {\n const placement = useValue(placementProp)\n const [omittedChildren, openTrigger, customOverlay] = useSplitChildren(\n children,\n DrawerOpenTrigger,\n DrawerOverlay,\n )\n const hasChildren = isArray(omittedChildren) && !!omittedChildren.length\n const { open, getRootProps, ...rest } = useDrawer({\n closeOnDrag,\n dragConstraints,\n dragElastic,\n dragHandleOnly,\n dragOffset,\n dragVelocity,\n placement,\n ...props,\n })\n const customOpenTrigger = trigger ? (\n <DrawerOpenTrigger>{trigger}</DrawerOpenTrigger>\n ) : null\n\n const context = useMemo(\n () => ({\n duration,\n open,\n placement,\n withCloseButton,\n withDragBar,\n ...rest,\n }),\n [duration, open, withDragBar, placement, withCloseButton, rest],\n )\n\n return (\n <ComponentContext value={context}>\n {openTrigger ?? customOpenTrigger}\n\n <AnimatePresence onExitComplete={onCloseComplete}>\n {open ? (\n <Portal {...portalProps}>\n <FocusLock\n autoFocus={autoFocus}\n finalFocusRef={finalFocusRef}\n initialFocusRef={initialFocusRef}\n lockFocusAcrossFrames={lockFocusAcrossFrames}\n restoreFocus={restoreFocus}\n >\n <RemoveScroll\n allowPinchZoom={allowPinchZoom}\n enabled={blockScrollOnMount}\n forwardProps\n >\n <styled.div {...getRootProps()}>\n {customOverlay ?? (withOverlay ? <DrawerOverlay /> : null)}\n\n {hasChildren ? (\n omittedChildren\n ) : (\n <ShorthandDrawerContent\n body={body}\n cancel={cancel}\n footer={footer}\n header={header}\n middle={middle}\n success={success}\n title={title}\n onCancel={onCancel}\n onMiddle={onMiddle}\n onSuccess={onSuccess}\n />\n )}\n </styled.div>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n ) : null}\n </AnimatePresence>\n </ComponentContext>\n )\n },\n \"root\",\n { transferProps: [\"placement\"] },\n)()\n\nexport interface DrawerOpenTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const DrawerOpenTrigger = withContext<\"button\", DrawerOpenTriggerProps>(\n \"button\",\n { name: \"OpenTrigger\", slot: [\"trigger\", \"open\"] },\n)(undefined, (props) => {\n const { getOpenTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getOpenTriggerProps(props) }\n})\n\nexport interface DrawerCloseTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const DrawerCloseTrigger = withContext<\n \"button\",\n DrawerCloseTriggerProps\n>(\"button\", { name: \"CloseTrigger\", slot: [\"trigger\", \"close\"] })(\n undefined,\n (props) => {\n const { getCloseTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getCloseTriggerProps(props) }\n },\n)\n\nexport interface DrawerCloseButtonProps extends CloseButtonProps {}\n\nexport const DrawerCloseButton = withContext<\"button\", DrawerCloseButtonProps>(\n (props) => {\n return (\n <DrawerCloseTrigger>\n <CloseButton {...props} />\n </DrawerCloseTrigger>\n )\n },\n \"closeButton\",\n)()\n\nexport interface DrawerOverlayProps extends HTMLMotionProps {}\n\nexport const DrawerOverlay = withContext<\"div\", DrawerOverlayProps>((props) => {\n const { duration, getOverlayProps } = useComponentContext()\n\n return (\n <motion.div\n animate=\"enter\"\n custom={{ duration }}\n exit=\"exit\"\n initial=\"exit\"\n variants={fadeVariants}\n {...cast<HTMLMotionProps>(getOverlayProps(cast<HTMLProps>(props)))}\n />\n )\n}, \"overlay\")()\n\nexport interface DrawerContentProps\n extends Omit<HTMLMotionProps<\"section\">, \"children\">, PropsWithChildren {}\n\nexport const DrawerContent = withContext<\"div\", DrawerContentProps>(\n ({ children, ...rest }) => {\n const {\n closeOnDrag,\n duration,\n open,\n placement,\n withCloseButton,\n withDragBar,\n getContentProps,\n } = useComponentContext()\n const [omittedChildren, customCloseButton, customDragBar] =\n useSplitChildren(children, DrawerCloseButton, DrawerDragBar)\n\n return (\n <Slide\n as=\"section\"\n duration={duration}\n open={open}\n placement={placement}\n {...(getContentProps(rest) as SlideProps)}\n >\n {customCloseButton ?? (withCloseButton ? <DrawerCloseButton /> : null)}\n {customDragBar ??\n (withDragBar && closeOnDrag ? <DrawerDragBar /> : null)}\n\n {omittedChildren}\n </Slide>\n )\n },\n \"content\",\n)()\n\ninterface ShorthandDrawerContentProps {\n /**\n * The drawer body to use.\n */\n body?: DrawerBodyProps | ReactNode\n /**\n * The drawer cancel button to use.\n */\n cancel?: ButtonProps | ReactNode\n /**\n * The drawer footer to use.\n */\n footer?: DrawerFooterProps | ReactNode\n /**\n * The drawer header to use.\n */\n header?: DrawerHeaderProps | ReactNode\n /**\n * The drawer middle button to use.\n */\n middle?: ButtonProps | ReactNode\n /**\n * The drawer success button to use.\n */\n success?: ButtonProps | ReactNode\n /**\n * The drawer title to use.\n */\n title?: DrawerTitleProps | ReactNode\n /**\n * The callback invoked when cancel button clicked.\n */\n onCancel?: (onClose: () => void) => void\n /**\n * The callback invoked when middle button clicked.\n */\n onMiddle?: (onClose: () => void) => void\n /**\n * The callback invoked when success button clicked.\n */\n onSuccess?: (onClose: () => void) => void\n}\n\nexport const ShorthandDrawerContent: FC<ShorthandDrawerContentProps> = ({\n body,\n cancel,\n footer,\n header,\n middle,\n success,\n title,\n onCancel,\n onMiddle,\n onSuccess,\n}) => {\n const { onClose } = useComponentContext()\n const customHeader = wrapOrPassProps(DrawerHeader, header)\n const customTitle = wrapOrPassProps(DrawerTitle, title)\n const customBody = wrapOrPassProps(DrawerBody, body)\n const customFooter = wrapOrPassProps(DrawerFooter, footer)\n const customCancel = wrapOrPassProps(Button, cancel, {\n colorScheme: \"mono\",\n variant: \"ghost\",\n onClick: () => (onCancel ? onCancel(onClose) : onClose()),\n })\n const customMiddle = wrapOrPassProps(Button, middle, {\n colorScheme: \"secondary\",\n onClick: () => (onMiddle ? onMiddle(onClose) : onClose()),\n })\n const customSuccess = wrapOrPassProps(Button, success, {\n colorScheme: \"primary\",\n onClick: () => (onSuccess ? onSuccess(onClose) : onClose()),\n })\n\n return (\n <DrawerContent>\n {customHeader ??\n (customTitle ? <DrawerHeader>{customTitle}</DrawerHeader> : null)}\n {customBody}\n {customFooter ??\n (customCancel || customMiddle || customSuccess ? (\n <DrawerFooter>\n {customCancel}\n {customMiddle}\n {customSuccess}\n </DrawerFooter>\n ) : null)}\n </DrawerContent>\n )\n}\n\nexport interface DrawerDragBarProps extends HTMLStyledProps {}\n\nexport const DrawerDragBar = withContext<\"div\", DrawerDragBarProps>(\n \"div\",\n \"dragBar\",\n)(undefined, (props) => {\n const { getDragBarProps } = useComponentContext()\n\n return { ...getDragBarProps(props) }\n})\n\nexport interface DrawerDragTriggerProps extends HTMLStyledProps {}\n\nexport const DrawerDragTrigger = withContext<\"div\", DrawerDragTriggerProps>(\n \"div\",\n { name: \"DragTrigger\", slot: [\"trigger\", \"drag\"] },\n)(undefined, (props) => {\n const { getDragTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getDragTriggerProps(props) }\n})\n\nexport interface DrawerHeaderProps extends HTMLStyledProps<\"header\"> {}\n\nexport const DrawerHeader = withContext<\"header\", DrawerHeaderProps>(\n \"header\",\n \"header\",\n)(undefined, (props) => {\n const { getHeaderProps } = useComponentContext()\n\n return { ...getHeaderProps(props) }\n})\n\nexport interface DrawerTitleProps extends HTMLStyledProps<\"h2\"> {}\n\nexport const DrawerTitle = withContext<\"h2\", DrawerTitleProps>(\"h2\", \"title\")(\n undefined,\n (props) => {\n const { getTitleProps } = useComponentContext()\n\n return { ...getTitleProps(props) }\n },\n)\n\nexport interface DrawerBodyProps extends HTMLStyledProps {}\n\nexport const DrawerBody = withContext<\"div\", DrawerBodyProps>(\"div\", \"body\")(\n undefined,\n (props) => {\n const { getBodyProps } = useComponentContext()\n\n return { ...getBodyProps(props) }\n },\n)\n\nexport interface DrawerFooterProps extends HTMLStyledProps<\"footer\"> {}\n\nexport const DrawerFooter = withContext<\"footer\", DrawerFooterProps>(\n \"footer\",\n \"footer\",\n)(undefined, (props) => {\n const { getFooterProps } = useComponentContext()\n\n return { ...getFooterProps(props) }\n})\n"],"mappings":"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"}
|
|
@@ -20,17 +20,14 @@ const { ComponentContext, PropsContext: MenuPropsContext, StyleContext, useCompo
|
|
|
20
20
|
*/
|
|
21
21
|
const MenuRoot = (props) => {
|
|
22
22
|
const [styleContext, mergedProps] = useRootComponentProps(props);
|
|
23
|
-
const [{ animationScheme, initialFocusRef, offset, placement, ...popoverProps }, { children,
|
|
23
|
+
const [{ animationScheme, initialFocusRef, offset, placement, ...popoverProps }, { children, ...rest }] = usePopoverProps(mergedProps, [
|
|
24
24
|
"disabled",
|
|
25
25
|
"open",
|
|
26
26
|
"defaultOpen",
|
|
27
27
|
"onOpen",
|
|
28
28
|
"onClose"
|
|
29
29
|
]);
|
|
30
|
-
const { closeOnSelect, descendants, open, subMenu, subMenuDirection, updateRef, getContentProps, getContextTriggerProps, getSeparatorProps, getTriggerProps, onActiveDescendant, onClose, onCloseRef, onCloseSubMenu, onOpen, onSelect } = useMenu(
|
|
31
|
-
disabled,
|
|
32
|
-
...rest
|
|
33
|
-
});
|
|
30
|
+
const { closeOnSelect, descendants, disabled, open, subMenu, subMenuDirection, updateRef, getContentProps, getContextTriggerProps, getSeparatorProps, getTriggerProps, onActiveDescendant, onClose, onCloseRef, onCloseSubMenu, onOpen, onSelect } = useMenu(rest);
|
|
34
31
|
const mergedPopoverProps = useMemo(() => ({
|
|
35
32
|
...popoverProps,
|
|
36
33
|
animationScheme: animationScheme ?? (subMenu ? "inline-start" : "block-start"),
|
|
@@ -58,6 +55,7 @@ const MenuRoot = (props) => {
|
|
|
58
55
|
updateRef
|
|
59
56
|
]);
|
|
60
57
|
const menuContext = useMemo(() => ({
|
|
58
|
+
disabled,
|
|
61
59
|
subMenu,
|
|
62
60
|
subMenuDirection,
|
|
63
61
|
onActiveDescendant,
|
|
@@ -66,6 +64,7 @@ const MenuRoot = (props) => {
|
|
|
66
64
|
onOpen,
|
|
67
65
|
onSelect
|
|
68
66
|
}), [
|
|
67
|
+
disabled,
|
|
69
68
|
onClose,
|
|
70
69
|
onOpen,
|
|
71
70
|
onSelect,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","names":["Popover.Root","Popover.Trigger","cast","handlerAll","Popover.Anchor","Popover.Content"],"sources":["../../../../src/components/menu/menu.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FC, ReactElement, ReactNode } from \"react\"\nimport type {\n GenericsComponent,\n HTMLProps,\n HTMLStyledProps,\n ThemeProps,\n WithoutThemeProps,\n} from \"../../core\"\nimport type { MenuStyle } from \"./menu.style\"\nimport type {\n MenuOptionGroupType,\n MenuOptionGroupValue,\n UseMenuGroupProps,\n UseMenuItemProps,\n UseMenuOptionGroupProps,\n UseMenuOptionItemProps,\n UseMenuProps,\n UseMenuReturn,\n} from \"./use-menu\"\nimport { Fragment, useMemo, useState } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { cast, handlerAll } from \"../../utils\"\nimport { CheckIcon, ChevronRightIcon, CircleSmallIcon } from \"../icon\"\nimport { Popover, usePopoverProps } from \"../popover\"\nimport { menuStyle } from \"./menu.style\"\nimport {\n MainMenuContext,\n MenuContext,\n MenuDescendantsContext,\n MenuGroupContext,\n MenuOptionGroupContext,\n useMenu,\n useMenuContext,\n useMenuGroup,\n useMenuGroupContext,\n useMenuItem,\n useMenuOptionGroup,\n useMenuOptionItem,\n} from \"./use-menu\"\n\ninterface MenuSharedItem {\n label?: ReactNode\n}\n\ninterface MenuItemWithValue extends MenuSharedItem, MenuItemProps {}\n\ninterface MenuOptionItem extends MenuSharedItem, MenuOptionItemProps {}\n\ninterface MenuItemWithSeparator extends MenuSeparatorProps {\n type: \"separator\"\n}\n\ninterface MenuItemWithRadioGroup<Y extends string = string>\n extends\n Omit<MenuItemWithItems, \"defaultValue\" | \"items\" | \"onChange\">,\n MenuOptionGroupProps<\"radio\", Y> {\n type: \"radio\"\n items?: MenuOptionItem[]\n}\n\ninterface MenuItemWithCheckboxGroup<Y extends string[] = string[]>\n extends\n Omit<MenuItemWithItems, \"defaultValue\" | \"items\" | \"onChange\">,\n MenuOptionGroupProps<\"checkbox\", Y> {\n type: \"checkbox\"\n items?: MenuOptionItem[]\n}\n\ninterface MenuItemWithItems extends MenuSharedItem, MenuGroupProps {\n hasEndSeparator?: boolean\n hasSeparator?: boolean\n hasStartSeparator?: boolean\n items?: MenuItemWithValue[]\n labelProps?: MenuLabelProps\n}\n\nexport type MenuItem =\n | MenuItemWithCheckboxGroup\n | MenuItemWithItems\n | MenuItemWithRadioGroup\n | MenuItemWithSeparator\n | MenuItemWithValue\n\ninterface ComponentContext extends Pick<\n UseMenuReturn,\n | \"getContentProps\"\n | \"getContextTriggerProps\"\n | \"getSeparatorProps\"\n | \"getTriggerProps\"\n> {}\n\nexport interface MenuRootProps\n extends\n UseMenuProps,\n Omit<\n WithoutThemeProps<Popover.RootProps, MenuStyle>,\n \"autoFocus\" | \"modal\" | \"updateRef\" | \"withCloseButton\"\n >,\n ThemeProps<MenuStyle> {\n /**\n * The placement of the popper relative to its reference.\n *\n * @default 'end-start'\n */\n placement?: Popover.RootProps[\"placement\"]\n}\n\nconst {\n ComponentContext,\n PropsContext: MenuPropsContext,\n StyleContext,\n useComponentContext,\n usePropsContext: useMenuPropsContext,\n withContext,\n useRootComponentProps,\n} = createSlotComponent<MenuRootProps, MenuStyle, ComponentContext>(\n \"menu\",\n menuStyle,\n)\n\nexport { MenuPropsContext, useMenuPropsContext }\n\n/**\n * `Menu` is a component that displays a common dropdown menu.\n *\n * @see https://yamada-ui.com/docs/components/menu\n */\nexport const MenuRoot: FC<MenuRootProps> = (props) => {\n const [styleContext, mergedProps] = useRootComponentProps(props)\n const [\n { animationScheme, initialFocusRef, offset, placement, ...popoverProps },\n { children, disabled, ...rest },\n ] = usePopoverProps(mergedProps, [\n \"disabled\",\n \"open\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n ])\n const {\n closeOnSelect,\n descendants,\n open,\n subMenu,\n subMenuDirection,\n updateRef,\n getContentProps,\n getContextTriggerProps,\n getSeparatorProps,\n getTriggerProps,\n onActiveDescendant,\n onClose,\n onCloseRef,\n onCloseSubMenu,\n onOpen,\n onSelect,\n } = useMenu({ disabled, ...rest })\n const mergedPopoverProps = useMemo<Popover.RootProps>(\n () => ({\n ...popoverProps,\n animationScheme:\n animationScheme ?? (subMenu ? \"inline-start\" : \"block-start\"),\n autoFocus: !!initialFocusRef,\n disabled,\n initialFocusRef,\n offset: offset ?? (subMenu ? [0, 0] : undefined),\n open,\n placement:\n placement ?? (subMenu ? `center-${subMenuDirection}` : \"end-start\"),\n updateRef,\n onClose,\n onOpen,\n }),\n [\n animationScheme,\n disabled,\n initialFocusRef,\n offset,\n onClose,\n onOpen,\n open,\n placement,\n popoverProps,\n subMenu,\n subMenuDirection,\n updateRef,\n ],\n )\n const menuContext = useMemo(\n () => ({\n subMenu,\n subMenuDirection,\n onActiveDescendant,\n onClose,\n onCloseSubMenu,\n onOpen,\n onSelect,\n }),\n [\n onClose,\n onOpen,\n onSelect,\n onActiveDescendant,\n subMenu,\n subMenuDirection,\n onCloseSubMenu,\n ],\n )\n const mainMenuContext = useMemo(\n () => ({\n closeOnSelect,\n descendants,\n onActiveDescendant,\n onCloseRef,\n onSelect,\n }),\n [closeOnSelect, descendants, onActiveDescendant, onCloseRef, onSelect],\n )\n const componentContext = useMemo(\n () => ({\n getContentProps,\n getContextTriggerProps,\n getSeparatorProps,\n getTriggerProps,\n }),\n [\n getContentProps,\n getContextTriggerProps,\n getSeparatorProps,\n getTriggerProps,\n ],\n )\n\n return (\n <StyleContext value={styleContext}>\n <MenuDescendantsContext value={descendants}>\n <MenuContext value={menuContext}>\n <MainMenuContext value={mainMenuContext}>\n <ComponentContext value={componentContext}>\n <Popover.Root {...mergedPopoverProps}>{children}</Popover.Root>\n </ComponentContext>\n </MainMenuContext>\n </MenuContext>\n </MenuDescendantsContext>\n </StyleContext>\n )\n}\n\nexport interface MenuTriggerProps extends Popover.TriggerProps {}\n\nexport const MenuTrigger = withContext<\"button\", MenuTriggerProps>(\n Popover.Trigger,\n \"trigger\",\n)(undefined, (props) => {\n const { getTriggerProps } = useComponentContext()\n\n return cast<HTMLProps<\"button\">>(getTriggerProps(cast<HTMLProps>(props)))\n})\n\ninterface Rect {\n left: number\n top: number\n}\n\nexport interface MenuContextTriggerProps extends HTMLProps {}\n\nexport const MenuContextTrigger = withContext<\"div\", MenuContextTriggerProps>(\n ({ children, onContextMenu, ...rest }) => {\n const [rect, setRect] = useState<Rect>({\n left: 0,\n top: 0,\n })\n const { getContextTriggerProps } = useComponentContext()\n\n return (\n <>\n <MenuAnchor>\n <styled.div style={{ position: \"fixed\", ...rect }} />\n </MenuAnchor>\n\n <styled.div\n asChild\n {...getContextTriggerProps({\n onContextMenu: handlerAll(onContextMenu, (ev) => {\n setRect({ left: ev.clientX, top: ev.clientY })\n }),\n ...rest,\n })}\n >\n {children}\n </styled.div>\n </>\n )\n },\n \"contextTrigger\",\n)()\n\nexport interface MenuAnchorProps extends Popover.AnchorProps {}\n\nexport const MenuAnchor = withContext<\"div\", MenuAnchorProps>(\n Popover.Anchor,\n \"anchor\",\n)()\n\nexport interface MenuContentProps extends Popover.ContentProps {\n /**\n * The footer of the menu.\n */\n footer?: ReactNode\n /**\n * The header of the menu.\n */\n header?: ReactNode\n /**\n * If provided, generate elements based on items.\n */\n items?: MenuItem[]\n /**\n * Props for the footer component.\n */\n footerProps?: MenuFooterProps\n /**\n * Props for the header component.\n */\n headerProps?: MenuHeaderProps\n}\n\nexport const MenuContent = withContext<\"div\", MenuContentProps>(\n Popover.Content,\n \"content\",\n)(\n undefined,\n ({\n children,\n footer,\n header,\n items = [],\n footerProps,\n headerProps,\n portalProps,\n ...rest\n }) => {\n const { subMenu } = useMenuContext()\n const { getContentProps } = useComponentContext()\n const computedChildren = useMemo(() => {\n if (children) return children\n\n return (\n <>\n {header ? <MenuHeader {...headerProps}>{header}</MenuHeader> : null}\n\n {items.map((props, index) => {\n if (\"type\" in props) {\n if (props.type === \"radio\") {\n const {\n type,\n hasSeparator = true,\n hasEndSeparator = hasSeparator,\n hasStartSeparator = hasSeparator,\n items = [],\n ...rest\n } = props\n\n return (\n <Fragment key={index}>\n {hasStartSeparator ? <MenuSeparator /> : null}\n\n <MenuOptionGroup type={type} {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <MenuOptionItem key={index} {...rest}>\n {label}\n </MenuOptionItem>\n ))}\n </MenuOptionGroup>\n\n {hasEndSeparator ? <MenuSeparator /> : null}\n </Fragment>\n )\n } else if (props.type === \"checkbox\") {\n const {\n type,\n hasSeparator = true,\n hasEndSeparator = hasSeparator,\n hasStartSeparator = hasSeparator,\n items = [],\n ...rest\n } = props\n\n return (\n <Fragment key={index}>\n {hasStartSeparator ? <MenuSeparator /> : null}\n\n <MenuOptionGroup type={type} {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <MenuOptionItem key={index} {...rest}>\n {label}\n </MenuOptionItem>\n ))}\n </MenuOptionGroup>\n\n {hasEndSeparator ? <MenuSeparator /> : null}\n </Fragment>\n )\n } else {\n return <MenuSeparator key={index} />\n }\n } else if (\"items\" in props) {\n const {\n hasSeparator = true,\n hasEndSeparator = hasSeparator,\n hasStartSeparator = hasSeparator,\n items = [],\n ...rest\n } = props\n\n return (\n <Fragment key={index}>\n {hasStartSeparator ? <MenuSeparator /> : null}\n\n <MenuGroup {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <MenuItem key={index} {...rest}>\n {label}\n </MenuItem>\n ))}\n </MenuGroup>\n\n {hasEndSeparator ? <MenuSeparator /> : null}\n </Fragment>\n )\n } else if (\"value\" in props) {\n const { label, ...rest } = props\n\n return (\n <MenuItem key={index} {...rest}>\n {label}\n </MenuItem>\n )\n }\n })}\n\n {footer ? <MenuFooter {...footerProps}>{footer}</MenuFooter> : null}\n </>\n )\n }, [children, footer, footerProps, header, headerProps, items])\n\n return {\n ...getContentProps(\n cast<HTMLProps>({ ...rest, children: computedChildren }),\n ),\n portalProps: subMenu ? { ...portalProps, disabled: true } : portalProps,\n }\n },\n)\n\nexport interface MenuHeaderProps extends HTMLStyledProps {}\n\nexport const MenuHeader = withContext<\"div\", MenuHeaderProps>(\n \"div\",\n \"header\",\n)({ \"data-header\": \"\" })\n\nexport interface MenuFooterProps extends HTMLStyledProps {}\n\nexport const MenuFooter = withContext<\"div\", MenuFooterProps>(\n \"div\",\n \"footer\",\n)({ \"data-footer\": \"\" })\n\nexport interface MenuLabelProps extends HTMLStyledProps<\"span\"> {}\n\nexport const MenuLabel = withContext<\"span\", MenuLabelProps>(\"span\", \"label\")(\n undefined,\n (props) => {\n const { getLabelProps } = useMenuGroupContext()\n\n return getLabelProps(props)\n },\n)\n\nexport interface MenuGroupProps extends UseMenuGroupProps, HTMLStyledProps {\n /**\n * The label of the group.\n */\n label?: ReactNode\n /**\n * Props for the label component.\n */\n labelProps?: MenuLabelProps\n}\n\nexport const MenuGroup = withContext<\"div\", MenuGroupProps>(\n ({ children, label, labelProps, ...rest }) => {\n const { getGroupProps, getLabelProps } = useMenuGroup(rest)\n const context = useMemo(() => ({ getLabelProps }), [getLabelProps])\n\n return (\n <MenuGroupContext value={context}>\n <styled.div {...getGroupProps()}>\n {label ? <MenuLabel {...labelProps}>{label}</MenuLabel> : null}\n {children}\n </styled.div>\n </MenuGroupContext>\n )\n },\n \"group\",\n)()\n\nexport interface MenuOptionGroupProps<\n Y extends MenuOptionGroupType = \"checkbox\",\n M extends MenuOptionGroupValue<Y> = MenuOptionGroupValue<Y>,\n>\n extends\n UseMenuOptionGroupProps<Y, M>,\n Omit<MenuGroupProps, \"defaultValue\" | \"onChange\"> {}\n\nexport const MenuOptionGroup = withContext<\"div\", MenuOptionGroupProps>(\n ({\n type: typeProp,\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n }) => {\n const { type, value, onChange } = useMenuOptionGroup({\n type: typeProp,\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const context = useMemo(\n () => ({ type, value, onChange }),\n [type, value, onChange],\n )\n\n return (\n <MenuOptionGroupContext value={context}>\n <MenuGroup {...rest} />\n </MenuOptionGroupContext>\n )\n },\n { name: \"OptionGroup\", slot: [\"group\", \"option\"] },\n)() as GenericsComponent<{\n <\n Y extends MenuOptionGroupType = \"checkbox\",\n M extends MenuOptionGroupValue<Y> = MenuOptionGroupValue<Y>,\n >(\n props: MenuOptionGroupProps<Y, M>,\n ): ReactElement\n}>\n\nexport interface MenuItemProps extends HTMLStyledProps, UseMenuItemProps {}\n\nexport const MenuItem = withContext<\"div\", MenuItemProps>(\n ({ children, ...rest }) => {\n const { subMenuTrigger, getItemProps } = useMenuItem(rest)\n\n return (\n <styled.div {...getItemProps()}>\n {children}\n\n {subMenuTrigger ? (\n <MenuIndicator as={ChevronRightIcon} ms=\"auto\" />\n ) : null}\n </styled.div>\n )\n },\n \"item\",\n)()\n\nexport interface MenuOptionItemProps\n extends HTMLStyledProps, UseMenuOptionItemProps {\n /**\n * The icon to be used in the menu option item.\n */\n icon?: ReactNode\n}\n\nexport const MenuOptionItem = withContext<\"div\", MenuOptionItemProps>(\n ({ children, icon, ...rest }) => {\n const { type, getIndicatorProps, getOptionItemProps } =\n useMenuOptionItem(rest)\n\n return (\n <styled.div {...getOptionItemProps()}>\n <MenuIndicator {...getIndicatorProps()}>\n {icon ||\n (type === \"radio\" ? (\n <CircleSmallIcon fill=\"currentColor\" />\n ) : (\n <CheckIcon />\n ))}\n </MenuIndicator>\n {children}\n </styled.div>\n )\n },\n { name: \"OptionItem\", slot: [\"item\", \"option\"] },\n)()\n\nexport interface MenuIndicatorProps extends HTMLStyledProps {}\n\nexport const MenuIndicator = withContext<\"div\", MenuIndicatorProps>(\n \"div\",\n \"indicator\",\n)()\n\nexport interface MenuCommandProps extends HTMLStyledProps<\"kbd\"> {}\n\nexport const MenuCommand = withContext<\"kbd\", MenuCommandProps>(\n \"kbd\",\n \"command\",\n)()\n\nexport interface MenuSeparatorProps extends HTMLStyledProps<\"hr\"> {}\n\nexport const MenuSeparator = withContext<\"hr\", MenuSeparatorProps>(\n \"hr\",\n \"separator\",\n)(undefined, (props) => {\n const { getSeparatorProps } = useComponentContext()\n\n return getSeparatorProps(props)\n})\n"],"mappings":";;;;;;;;;;;;;;AA6GA,MAAM,EACJ,kBACA,cAAc,kBACd,cACA,qBACA,iBAAiB,qBACjB,aACA,0BACE,oBACF,QACA,SACF;;;;;;AASA,MAAa,YAA+B,UAAU;CACpD,MAAM,CAAC,cAAc,eAAe,sBAAsB,KAAK;CAC/D,MAAM,CACJ,EAAE,iBAAiB,iBAAiB,QAAQ,WAAW,GAAG,gBAC1D,EAAE,UAAU,UAAU,GAAG,UACvB,gBAAgB,aAAa;EAC/B;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,MAAM,EACJ,eACA,aACA,MACA,SACA,kBACA,WACA,iBACA,wBACA,mBACA,iBACA,oBACA,SACA,YACA,gBACA,QACA,aACE,QAAQ;EAAE;EAAU,GAAG;CAAK,CAAC;CACjC,MAAM,qBAAqB,eAClB;EACL,GAAG;EACH,iBACE,oBAAoB,UAAU,iBAAiB;EACjD,WAAW,CAAC,CAAC;EACb;EACA;EACA,QAAQ,WAAW,UAAU,CAAC,GAAG,CAAC,IAAI,KAAA;EACtC;EACA,WACE,cAAc,UAAU,UAAU,qBAAqB;EACzD;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CACA,MAAM,cAAc,eACX;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CACA,MAAM,kBAAkB,eACf;EACL;EACA;EACA;EACA;EACA;CACF,IACA;EAAC;EAAe;EAAa;EAAoB;EAAY;CAAQ,CACvE;CACA,MAAM,mBAAmB,eAChB;EACL;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,oBAAC,cAAD;EAAc,OAAO;EACnB,UAAA,oBAAC,wBAAD;GAAwB,OAAO;GAC7B,UAAA,oBAAC,aAAD;IAAa,OAAO;IAClB,UAAA,oBAAC,iBAAD;KAAiB,OAAO;KACtB,UAAA,oBAAC,kBAAD;MAAkB,OAAO;MACvB,UAAA,oBAACA,aAAD;OAAc,GAAI;OAAqB;MAAuB,CAA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"}
|
|
1
|
+
{"version":3,"file":"menu.js","names":["Popover.Root","Popover.Trigger","cast","handlerAll","Popover.Anchor","Popover.Content"],"sources":["../../../../src/components/menu/menu.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FC, ReactElement, ReactNode } from \"react\"\nimport type {\n GenericsComponent,\n HTMLProps,\n HTMLStyledProps,\n ThemeProps,\n WithoutThemeProps,\n} from \"../../core\"\nimport type { MenuStyle } from \"./menu.style\"\nimport type {\n MenuOptionGroupType,\n MenuOptionGroupValue,\n UseMenuGroupProps,\n UseMenuItemProps,\n UseMenuOptionGroupProps,\n UseMenuOptionItemProps,\n UseMenuProps,\n UseMenuReturn,\n} from \"./use-menu\"\nimport { Fragment, useMemo, useState } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { cast, handlerAll } from \"../../utils\"\nimport { CheckIcon, ChevronRightIcon, CircleSmallIcon } from \"../icon\"\nimport { Popover, usePopoverProps } from \"../popover\"\nimport { menuStyle } from \"./menu.style\"\nimport {\n MainMenuContext,\n MenuContext,\n MenuDescendantsContext,\n MenuGroupContext,\n MenuOptionGroupContext,\n useMenu,\n useMenuContext,\n useMenuGroup,\n useMenuGroupContext,\n useMenuItem,\n useMenuOptionGroup,\n useMenuOptionItem,\n} from \"./use-menu\"\n\ninterface MenuSharedItem {\n label?: ReactNode\n}\n\ninterface MenuItemWithValue extends MenuSharedItem, MenuItemProps {}\n\ninterface MenuOptionItem extends MenuSharedItem, MenuOptionItemProps {}\n\ninterface MenuItemWithSeparator extends MenuSeparatorProps {\n type: \"separator\"\n}\n\ninterface MenuItemWithRadioGroup<Y extends string = string>\n extends\n Omit<MenuItemWithItems, \"defaultValue\" | \"items\" | \"onChange\">,\n MenuOptionGroupProps<\"radio\", Y> {\n type: \"radio\"\n items?: MenuOptionItem[]\n}\n\ninterface MenuItemWithCheckboxGroup<Y extends string[] = string[]>\n extends\n Omit<MenuItemWithItems, \"defaultValue\" | \"items\" | \"onChange\">,\n MenuOptionGroupProps<\"checkbox\", Y> {\n type: \"checkbox\"\n items?: MenuOptionItem[]\n}\n\ninterface MenuItemWithItems extends MenuSharedItem, MenuGroupProps {\n hasEndSeparator?: boolean\n hasSeparator?: boolean\n hasStartSeparator?: boolean\n items?: MenuItemWithValue[]\n labelProps?: MenuLabelProps\n}\n\nexport type MenuItem =\n | MenuItemWithCheckboxGroup\n | MenuItemWithItems\n | MenuItemWithRadioGroup\n | MenuItemWithSeparator\n | MenuItemWithValue\n\ninterface ComponentContext extends Pick<\n UseMenuReturn,\n | \"getContentProps\"\n | \"getContextTriggerProps\"\n | \"getSeparatorProps\"\n | \"getTriggerProps\"\n> {}\n\nexport interface MenuRootProps\n extends\n UseMenuProps,\n Omit<\n WithoutThemeProps<Popover.RootProps, MenuStyle>,\n \"autoFocus\" | \"modal\" | \"updateRef\" | \"withCloseButton\"\n >,\n ThemeProps<MenuStyle> {\n /**\n * The placement of the popper relative to its reference.\n *\n * @default 'end-start'\n */\n placement?: Popover.RootProps[\"placement\"]\n}\n\nconst {\n ComponentContext,\n PropsContext: MenuPropsContext,\n StyleContext,\n useComponentContext,\n usePropsContext: useMenuPropsContext,\n withContext,\n useRootComponentProps,\n} = createSlotComponent<MenuRootProps, MenuStyle, ComponentContext>(\n \"menu\",\n menuStyle,\n)\n\nexport { MenuPropsContext, useMenuPropsContext }\n\n/**\n * `Menu` is a component that displays a common dropdown menu.\n *\n * @see https://yamada-ui.com/docs/components/menu\n */\nexport const MenuRoot: FC<MenuRootProps> = (props) => {\n const [styleContext, mergedProps] = useRootComponentProps(props)\n const [\n { animationScheme, initialFocusRef, offset, placement, ...popoverProps },\n { children, ...rest },\n ] = usePopoverProps(mergedProps, [\n \"disabled\",\n \"open\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n ])\n const {\n closeOnSelect,\n descendants,\n disabled,\n open,\n subMenu,\n subMenuDirection,\n updateRef,\n getContentProps,\n getContextTriggerProps,\n getSeparatorProps,\n getTriggerProps,\n onActiveDescendant,\n onClose,\n onCloseRef,\n onCloseSubMenu,\n onOpen,\n onSelect,\n } = useMenu(rest)\n const mergedPopoverProps = useMemo<Popover.RootProps>(\n () => ({\n ...popoverProps,\n animationScheme:\n animationScheme ?? (subMenu ? \"inline-start\" : \"block-start\"),\n autoFocus: !!initialFocusRef,\n disabled,\n initialFocusRef,\n offset: offset ?? (subMenu ? [0, 0] : undefined),\n open,\n placement:\n placement ?? (subMenu ? `center-${subMenuDirection}` : \"end-start\"),\n updateRef,\n onClose,\n onOpen,\n }),\n [\n animationScheme,\n disabled,\n initialFocusRef,\n offset,\n onClose,\n onOpen,\n open,\n placement,\n popoverProps,\n subMenu,\n subMenuDirection,\n updateRef,\n ],\n )\n const menuContext = useMemo(\n () => ({\n disabled,\n subMenu,\n subMenuDirection,\n onActiveDescendant,\n onClose,\n onCloseSubMenu,\n onOpen,\n onSelect,\n }),\n [\n disabled,\n onClose,\n onOpen,\n onSelect,\n onActiveDescendant,\n subMenu,\n subMenuDirection,\n onCloseSubMenu,\n ],\n )\n const mainMenuContext = useMemo(\n () => ({\n closeOnSelect,\n descendants,\n onActiveDescendant,\n onCloseRef,\n onSelect,\n }),\n [closeOnSelect, descendants, onActiveDescendant, onCloseRef, onSelect],\n )\n const componentContext = useMemo(\n () => ({\n getContentProps,\n getContextTriggerProps,\n getSeparatorProps,\n getTriggerProps,\n }),\n [\n getContentProps,\n getContextTriggerProps,\n getSeparatorProps,\n getTriggerProps,\n ],\n )\n\n return (\n <StyleContext value={styleContext}>\n <MenuDescendantsContext value={descendants}>\n <MenuContext value={menuContext}>\n <MainMenuContext value={mainMenuContext}>\n <ComponentContext value={componentContext}>\n <Popover.Root {...mergedPopoverProps}>{children}</Popover.Root>\n </ComponentContext>\n </MainMenuContext>\n </MenuContext>\n </MenuDescendantsContext>\n </StyleContext>\n )\n}\n\nexport interface MenuTriggerProps extends Popover.TriggerProps {}\n\nexport const MenuTrigger = withContext<\"button\", MenuTriggerProps>(\n Popover.Trigger,\n \"trigger\",\n)(undefined, (props) => {\n const { getTriggerProps } = useComponentContext()\n\n return cast<HTMLProps<\"button\">>(getTriggerProps(cast<HTMLProps>(props)))\n})\n\ninterface Rect {\n left: number\n top: number\n}\n\nexport interface MenuContextTriggerProps extends HTMLProps {}\n\nexport const MenuContextTrigger = withContext<\"div\", MenuContextTriggerProps>(\n ({ children, onContextMenu, ...rest }) => {\n const [rect, setRect] = useState<Rect>({\n left: 0,\n top: 0,\n })\n const { getContextTriggerProps } = useComponentContext()\n\n return (\n <>\n <MenuAnchor>\n <styled.div style={{ position: \"fixed\", ...rect }} />\n </MenuAnchor>\n\n <styled.div\n asChild\n {...getContextTriggerProps({\n onContextMenu: handlerAll(onContextMenu, (ev) => {\n setRect({ left: ev.clientX, top: ev.clientY })\n }),\n ...rest,\n })}\n >\n {children}\n </styled.div>\n </>\n )\n },\n \"contextTrigger\",\n)()\n\nexport interface MenuAnchorProps extends Popover.AnchorProps {}\n\nexport const MenuAnchor = withContext<\"div\", MenuAnchorProps>(\n Popover.Anchor,\n \"anchor\",\n)()\n\nexport interface MenuContentProps extends Popover.ContentProps {\n /**\n * The footer of the menu.\n */\n footer?: ReactNode\n /**\n * The header of the menu.\n */\n header?: ReactNode\n /**\n * If provided, generate elements based on items.\n */\n items?: MenuItem[]\n /**\n * Props for the footer component.\n */\n footerProps?: MenuFooterProps\n /**\n * Props for the header component.\n */\n headerProps?: MenuHeaderProps\n}\n\nexport const MenuContent = withContext<\"div\", MenuContentProps>(\n Popover.Content,\n \"content\",\n)(\n undefined,\n ({\n children,\n footer,\n header,\n items = [],\n footerProps,\n headerProps,\n portalProps,\n ...rest\n }) => {\n const { subMenu } = useMenuContext()\n const { getContentProps } = useComponentContext()\n const computedChildren = useMemo(() => {\n if (children) return children\n\n return (\n <>\n {header ? <MenuHeader {...headerProps}>{header}</MenuHeader> : null}\n\n {items.map((props, index) => {\n if (\"type\" in props) {\n if (props.type === \"radio\") {\n const {\n type,\n hasSeparator = true,\n hasEndSeparator = hasSeparator,\n hasStartSeparator = hasSeparator,\n items = [],\n ...rest\n } = props\n\n return (\n <Fragment key={index}>\n {hasStartSeparator ? <MenuSeparator /> : null}\n\n <MenuOptionGroup type={type} {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <MenuOptionItem key={index} {...rest}>\n {label}\n </MenuOptionItem>\n ))}\n </MenuOptionGroup>\n\n {hasEndSeparator ? <MenuSeparator /> : null}\n </Fragment>\n )\n } else if (props.type === \"checkbox\") {\n const {\n type,\n hasSeparator = true,\n hasEndSeparator = hasSeparator,\n hasStartSeparator = hasSeparator,\n items = [],\n ...rest\n } = props\n\n return (\n <Fragment key={index}>\n {hasStartSeparator ? <MenuSeparator /> : null}\n\n <MenuOptionGroup type={type} {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <MenuOptionItem key={index} {...rest}>\n {label}\n </MenuOptionItem>\n ))}\n </MenuOptionGroup>\n\n {hasEndSeparator ? <MenuSeparator /> : null}\n </Fragment>\n )\n } else {\n return <MenuSeparator key={index} />\n }\n } else if (\"items\" in props) {\n const {\n hasSeparator = true,\n hasEndSeparator = hasSeparator,\n hasStartSeparator = hasSeparator,\n items = [],\n ...rest\n } = props\n\n return (\n <Fragment key={index}>\n {hasStartSeparator ? <MenuSeparator /> : null}\n\n <MenuGroup {...rest}>\n {items.map(({ label, ...rest }, index) => (\n <MenuItem key={index} {...rest}>\n {label}\n </MenuItem>\n ))}\n </MenuGroup>\n\n {hasEndSeparator ? <MenuSeparator /> : null}\n </Fragment>\n )\n } else if (\"value\" in props) {\n const { label, ...rest } = props\n\n return (\n <MenuItem key={index} {...rest}>\n {label}\n </MenuItem>\n )\n }\n })}\n\n {footer ? <MenuFooter {...footerProps}>{footer}</MenuFooter> : null}\n </>\n )\n }, [children, footer, footerProps, header, headerProps, items])\n\n return {\n ...getContentProps(\n cast<HTMLProps>({ ...rest, children: computedChildren }),\n ),\n portalProps: subMenu ? { ...portalProps, disabled: true } : portalProps,\n }\n },\n)\n\nexport interface MenuHeaderProps extends HTMLStyledProps {}\n\nexport const MenuHeader = withContext<\"div\", MenuHeaderProps>(\n \"div\",\n \"header\",\n)({ \"data-header\": \"\" })\n\nexport interface MenuFooterProps extends HTMLStyledProps {}\n\nexport const MenuFooter = withContext<\"div\", MenuFooterProps>(\n \"div\",\n \"footer\",\n)({ \"data-footer\": \"\" })\n\nexport interface MenuLabelProps extends HTMLStyledProps<\"span\"> {}\n\nexport const MenuLabel = withContext<\"span\", MenuLabelProps>(\"span\", \"label\")(\n undefined,\n (props) => {\n const { getLabelProps } = useMenuGroupContext()\n\n return getLabelProps(props)\n },\n)\n\nexport interface MenuGroupProps extends UseMenuGroupProps, HTMLStyledProps {\n /**\n * The label of the group.\n */\n label?: ReactNode\n /**\n * Props for the label component.\n */\n labelProps?: MenuLabelProps\n}\n\nexport const MenuGroup = withContext<\"div\", MenuGroupProps>(\n ({ children, label, labelProps, ...rest }) => {\n const { getGroupProps, getLabelProps } = useMenuGroup(rest)\n const context = useMemo(() => ({ getLabelProps }), [getLabelProps])\n\n return (\n <MenuGroupContext value={context}>\n <styled.div {...getGroupProps()}>\n {label ? <MenuLabel {...labelProps}>{label}</MenuLabel> : null}\n {children}\n </styled.div>\n </MenuGroupContext>\n )\n },\n \"group\",\n)()\n\nexport interface MenuOptionGroupProps<\n Y extends MenuOptionGroupType = \"checkbox\",\n M extends MenuOptionGroupValue<Y> = MenuOptionGroupValue<Y>,\n>\n extends\n UseMenuOptionGroupProps<Y, M>,\n Omit<MenuGroupProps, \"defaultValue\" | \"onChange\"> {}\n\nexport const MenuOptionGroup = withContext<\"div\", MenuOptionGroupProps>(\n ({\n type: typeProp,\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n }) => {\n const { type, value, onChange } = useMenuOptionGroup({\n type: typeProp,\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const context = useMemo(\n () => ({ type, value, onChange }),\n [type, value, onChange],\n )\n\n return (\n <MenuOptionGroupContext value={context}>\n <MenuGroup {...rest} />\n </MenuOptionGroupContext>\n )\n },\n { name: \"OptionGroup\", slot: [\"group\", \"option\"] },\n)() as GenericsComponent<{\n <\n Y extends MenuOptionGroupType = \"checkbox\",\n M extends MenuOptionGroupValue<Y> = MenuOptionGroupValue<Y>,\n >(\n props: MenuOptionGroupProps<Y, M>,\n ): ReactElement\n}>\n\nexport interface MenuItemProps\n extends Omit<HTMLStyledProps, \"onSelect\">, UseMenuItemProps {}\n\nexport const MenuItem = withContext<\"div\", MenuItemProps>(\n ({ children, ...rest }) => {\n const { subMenuTrigger, getItemProps } = useMenuItem(rest)\n\n return (\n <styled.div {...getItemProps()}>\n {children}\n\n {subMenuTrigger ? (\n <MenuIndicator as={ChevronRightIcon} ms=\"auto\" />\n ) : null}\n </styled.div>\n )\n },\n \"item\",\n)()\n\nexport interface MenuOptionItemProps\n extends Omit<HTMLStyledProps, \"onSelect\">, UseMenuOptionItemProps {\n /**\n * The icon to be used in the menu option item.\n */\n icon?: ReactNode\n}\n\nexport const MenuOptionItem = withContext<\"div\", MenuOptionItemProps>(\n ({ children, icon, ...rest }) => {\n const { type, getIndicatorProps, getOptionItemProps } =\n useMenuOptionItem(rest)\n\n return (\n <styled.div {...getOptionItemProps()}>\n <MenuIndicator {...getIndicatorProps()}>\n {icon ||\n (type === \"radio\" ? (\n <CircleSmallIcon fill=\"currentColor\" />\n ) : (\n <CheckIcon />\n ))}\n </MenuIndicator>\n {children}\n </styled.div>\n )\n },\n { name: \"OptionItem\", slot: [\"item\", \"option\"] },\n)()\n\nexport interface MenuIndicatorProps extends HTMLStyledProps {}\n\nexport const MenuIndicator = withContext<\"div\", MenuIndicatorProps>(\n \"div\",\n \"indicator\",\n)()\n\nexport interface MenuCommandProps extends HTMLStyledProps<\"kbd\"> {}\n\nexport const MenuCommand = withContext<\"kbd\", MenuCommandProps>(\n \"kbd\",\n \"command\",\n)()\n\nexport interface MenuSeparatorProps extends HTMLStyledProps<\"hr\"> {}\n\nexport const MenuSeparator = withContext<\"hr\", MenuSeparatorProps>(\n \"hr\",\n \"separator\",\n)(undefined, (props) => {\n const { getSeparatorProps } = useComponentContext()\n\n return getSeparatorProps(props)\n})\n"],"mappings":";;;;;;;;;;;;;;AA6GA,MAAM,EACJ,kBACA,cAAc,kBACd,cACA,qBACA,iBAAiB,qBACjB,aACA,0BACE,oBACF,QACA,SACF;;;;;;AASA,MAAa,YAA+B,UAAU;CACpD,MAAM,CAAC,cAAc,eAAe,sBAAsB,KAAK;CAC/D,MAAM,CACJ,EAAE,iBAAiB,iBAAiB,QAAQ,WAAW,GAAG,gBAC1D,EAAE,UAAU,GAAG,UACb,gBAAgB,aAAa;EAC/B;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,MAAM,EACJ,eACA,aACA,UACA,MACA,SACA,kBACA,WACA,iBACA,wBACA,mBACA,iBACA,oBACA,SACA,YACA,gBACA,QACA,aACE,QAAQ,IAAI;CAChB,MAAM,qBAAqB,eAClB;EACL,GAAG;EACH,iBACE,oBAAoB,UAAU,iBAAiB;EACjD,WAAW,CAAC,CAAC;EACb;EACA;EACA,QAAQ,WAAW,UAAU,CAAC,GAAG,CAAC,IAAI,KAAA;EACtC;EACA,WACE,cAAc,UAAU,UAAU,qBAAqB;EACzD;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CACA,MAAM,cAAc,eACX;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CACA,MAAM,kBAAkB,eACf;EACL;EACA;EACA;EACA;EACA;CACF,IACA;EAAC;EAAe;EAAa;EAAoB;EAAY;CAAQ,CACvE;CACA,MAAM,mBAAmB,eAChB;EACL;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,oBAAC,cAAD;EAAc,OAAO;EACnB,UAAA,oBAAC,wBAAD;GAAwB,OAAO;GAC7B,UAAA,oBAAC,aAAD;IAAa,OAAO;IAClB,UAAA,oBAAC,iBAAD;KAAiB,OAAO;KACtB,UAAA,oBAAC,kBAAD;MAAkB,OAAO;MACvB,UAAA,oBAACA,aAAD;OAAc,GAAI;OAAqB;MAAuB,CAAA;KAC9C,CAA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"}
|
|
@@ -166,6 +166,7 @@ const useMenu = ({ closeOnSelect, defaultOpen, disabled = false, open: openProp,
|
|
|
166
166
|
return {
|
|
167
167
|
closeOnSelect,
|
|
168
168
|
descendants,
|
|
169
|
+
disabled,
|
|
169
170
|
open,
|
|
170
171
|
subMenu,
|
|
171
172
|
subMenuDirection,
|
|
@@ -318,9 +319,9 @@ const useMenuGroup = ({ ...rest }) => {
|
|
|
318
319
|
}), [labelId])
|
|
319
320
|
};
|
|
320
321
|
};
|
|
321
|
-
const useMenuItem = ({ id, "aria-disabled": ariaDisabled, "data-disabled": dataDisabled, "data-trigger": dataTrigger, closeOnSelect, disabled = false, value, ...rest }) => {
|
|
322
|
+
const useMenuItem = ({ id, "aria-disabled": ariaDisabled, "data-disabled": dataDisabled, "data-trigger": dataTrigger, closeOnSelect, disabled = false, value, onSelect: onSelectProp, ...rest }) => {
|
|
322
323
|
const trigger = (0, utils_exports.isTruthyDataAttr)(dataTrigger);
|
|
323
|
-
const { subMenu, subMenuDirection, onActiveDescendant, onClose, onCloseSubMenu, onSelect } = useMenuContext();
|
|
324
|
+
const { disabled: rootDisabled, subMenu, subMenuDirection, onActiveDescendant, onClose, onCloseSubMenu, onSelect: onRootSelect } = useMenuContext();
|
|
324
325
|
const uuid = useId();
|
|
325
326
|
const itemRef = useRef(null);
|
|
326
327
|
const subMenuTrigger = subMenu && trigger;
|
|
@@ -329,6 +330,17 @@ const useMenuItem = ({ id, "aria-disabled": ariaDisabled, "data-disabled": dataD
|
|
|
329
330
|
id,
|
|
330
331
|
disabled: disabled || subMenuTrigger
|
|
331
332
|
});
|
|
333
|
+
const onSelect = useCallback((value) => {
|
|
334
|
+
if (disabled || rootDisabled) return;
|
|
335
|
+
onSelectProp?.(value);
|
|
336
|
+
onRootSelect(value, closeOnSelect);
|
|
337
|
+
}, [
|
|
338
|
+
closeOnSelect,
|
|
339
|
+
disabled,
|
|
340
|
+
onRootSelect,
|
|
341
|
+
onSelectProp,
|
|
342
|
+
rootDisabled
|
|
343
|
+
]);
|
|
332
344
|
const onActive = useCallback(() => {
|
|
333
345
|
if (disabled) return;
|
|
334
346
|
const descendant = descendants.value(itemRef.current);
|
|
@@ -352,12 +364,12 @@ const useMenuItem = ({ id, "aria-disabled": ariaDisabled, "data-disabled": dataD
|
|
|
352
364
|
const descendant = descendants.enabledLastValue();
|
|
353
365
|
onActiveDescendant(descendant);
|
|
354
366
|
},
|
|
355
|
-
Enter: () => onSelect(value
|
|
367
|
+
Enter: () => onSelect(value),
|
|
356
368
|
Home: () => {
|
|
357
369
|
const descendant = descendants.enabledFirstValue();
|
|
358
370
|
onActiveDescendant(descendant);
|
|
359
371
|
},
|
|
360
|
-
Space: () => onSelect(value
|
|
372
|
+
Space: () => onSelect(value),
|
|
361
373
|
[subMenuDirection === "end" ? "ArrowLeft" : "ArrowRight"]: () => {
|
|
362
374
|
if (!subMenu) return;
|
|
363
375
|
onClose();
|
|
@@ -365,7 +377,6 @@ const useMenuItem = ({ id, "aria-disabled": ariaDisabled, "data-disabled": dataD
|
|
|
365
377
|
}
|
|
366
378
|
});
|
|
367
379
|
}, [
|
|
368
|
-
closeOnSelect,
|
|
369
380
|
descendants,
|
|
370
381
|
onActiveDescendant,
|
|
371
382
|
onClose,
|
|
@@ -384,7 +395,7 @@ const useMenuItem = ({ id, "aria-disabled": ariaDisabled, "data-disabled": dataD
|
|
|
384
395
|
role: "menuitem",
|
|
385
396
|
tabIndex: -1
|
|
386
397
|
}, rest, props, {
|
|
387
|
-
onClick: () => onSelect(value
|
|
398
|
+
onClick: () => onSelect(value),
|
|
388
399
|
onFocus: onActive,
|
|
389
400
|
onKeyDown,
|
|
390
401
|
onMouseMove: () => {
|
|
@@ -402,7 +413,6 @@ const useMenuItem = ({ id, "aria-disabled": ariaDisabled, "data-disabled": dataD
|
|
|
402
413
|
onKeyDown,
|
|
403
414
|
onSelect,
|
|
404
415
|
value,
|
|
405
|
-
closeOnSelect,
|
|
406
416
|
onCloseSubMenu
|
|
407
417
|
])
|
|
408
418
|
};
|