@smwb/ui-solid 0.7.0 → 0.8.1

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.
Files changed (99) hide show
  1. package/dist/assets/styles/less/components/confirmDialog/confirmDialog.entry.css +1 -0
  2. package/dist/components/clickAwayListener/clickAwayListener.js +12 -8
  3. package/dist/components/clickAwayListener/clickAwayListener.js.map +1 -1
  4. package/dist/components/dataDisplay/treeView/treeView.d.ts +5 -1
  5. package/dist/components/dataDisplay/treeView/treeView.js +60 -50
  6. package/dist/components/dataDisplay/treeView/treeView.js.map +1 -1
  7. package/dist/components/feedBack/confirmDialog/confirmDialog.d.ts +27 -0
  8. package/dist/components/feedBack/confirmDialog/confirmDialog.js +108 -0
  9. package/dist/components/feedBack/confirmDialog/confirmDialog.js.map +1 -0
  10. package/dist/components/feedBack/confirmDialog/index.d.ts +2 -0
  11. package/dist/components/feedBack/modal/modal.js +49 -48
  12. package/dist/components/feedBack/modal/modal.js.map +1 -1
  13. package/dist/components/inputs/datePicker/datePicker.js +22 -22
  14. package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
  15. package/dist/components/inputs/dateTimePicker/dateTimePicker.js +21 -21
  16. package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  17. package/dist/components/inputs/selectField/dropdownMenu.js +1 -0
  18. package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
  19. package/dist/components/inputs/timePicker/timePicker.js +16 -16
  20. package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
  21. package/dist/components/layout/sheet/sheet.js +95 -92
  22. package/dist/components/layout/sheet/sheet.js.map +1 -1
  23. package/dist/headless/components/clickAwayListener/clickAwayListener.js +12 -8
  24. package/dist/headless/components/clickAwayListener/clickAwayListener.js.map +1 -1
  25. package/dist/headless/components/dataDisplay/treeView/treeView.js +60 -50
  26. package/dist/headless/components/dataDisplay/treeView/treeView.js.map +1 -1
  27. package/dist/headless/components/feedBack/confirmDialog/confirmDialog.js +107 -0
  28. package/dist/headless/components/feedBack/confirmDialog/confirmDialog.js.map +1 -0
  29. package/dist/headless/components/feedBack/modal/modal.js +49 -48
  30. package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
  31. package/dist/headless/components/inputs/datePicker/datePicker.js +19 -19
  32. package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
  33. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +21 -21
  34. package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
  35. package/dist/headless/components/inputs/selectField/dropdownMenu.js +1 -0
  36. package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
  37. package/dist/headless/components/inputs/timePicker/timePicker.js +16 -16
  38. package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
  39. package/dist/headless/components/layout/sheet/sheet.js +95 -92
  40. package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
  41. package/dist/headless/index.js +201 -199
  42. package/dist/headless/index.js.map +1 -1
  43. package/dist/headless/primitives/overlayLayer.js +11 -0
  44. package/dist/headless/primitives/overlayLayer.js.map +1 -0
  45. package/dist/headless/source/components/clickAwayListener/clickAwayListener.jsx +2 -0
  46. package/dist/headless/source/components/clickAwayListener/clickAwayListener.jsx.map +1 -1
  47. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx +10 -2
  48. package/dist/headless/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  49. package/dist/headless/source/components/feedBack/confirmDialog/confirmDialog.jsx +76 -0
  50. package/dist/headless/source/components/feedBack/confirmDialog/confirmDialog.jsx.map +1 -0
  51. package/dist/headless/source/components/feedBack/confirmDialog/index.js +5 -0
  52. package/dist/headless/source/components/feedBack/confirmDialog/index.js.map +7 -0
  53. package/dist/headless/source/components/feedBack/modal/modal.jsx +5 -1
  54. package/dist/headless/source/components/feedBack/modal/modal.jsx.map +1 -1
  55. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx +1 -0
  56. package/dist/headless/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  57. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx +1 -0
  58. package/dist/headless/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  59. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx +1 -0
  60. package/dist/headless/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  61. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx +1 -0
  62. package/dist/headless/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  63. package/dist/headless/source/components/layout/sheet/sheet.jsx +13 -3
  64. package/dist/headless/source/components/layout/sheet/sheet.jsx.map +1 -1
  65. package/dist/headless/source/index.js +2 -0
  66. package/dist/headless/source/index.js.map +2 -2
  67. package/dist/headless/source/primitives/overlayLayer.js +18 -0
  68. package/dist/headless/source/primitives/overlayLayer.js.map +7 -0
  69. package/dist/index.d.ts +2 -0
  70. package/dist/index.js +201 -199
  71. package/dist/index.js.map +1 -1
  72. package/dist/primitives/overlayLayer.d.ts +13 -0
  73. package/dist/primitives/overlayLayer.js +11 -0
  74. package/dist/primitives/overlayLayer.js.map +1 -0
  75. package/dist/source/components/clickAwayListener/clickAwayListener.jsx +2 -0
  76. package/dist/source/components/clickAwayListener/clickAwayListener.jsx.map +1 -1
  77. package/dist/source/components/dataDisplay/treeView/treeView.jsx +10 -2
  78. package/dist/source/components/dataDisplay/treeView/treeView.jsx.map +1 -1
  79. package/dist/source/components/feedBack/confirmDialog/confirmDialog.jsx +77 -0
  80. package/dist/source/components/feedBack/confirmDialog/confirmDialog.jsx.map +1 -0
  81. package/dist/source/components/feedBack/confirmDialog/index.js +5 -0
  82. package/dist/source/components/feedBack/confirmDialog/index.js.map +7 -0
  83. package/dist/source/components/feedBack/modal/modal.jsx +5 -1
  84. package/dist/source/components/feedBack/modal/modal.jsx.map +1 -1
  85. package/dist/source/components/inputs/datePicker/datePicker.jsx +1 -0
  86. package/dist/source/components/inputs/datePicker/datePicker.jsx.map +1 -1
  87. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx +1 -0
  88. package/dist/source/components/inputs/dateTimePicker/dateTimePicker.jsx.map +1 -1
  89. package/dist/source/components/inputs/selectField/dropdownMenu.jsx +1 -0
  90. package/dist/source/components/inputs/selectField/dropdownMenu.jsx.map +1 -1
  91. package/dist/source/components/inputs/timePicker/timePicker.jsx +1 -0
  92. package/dist/source/components/inputs/timePicker/timePicker.jsx.map +1 -1
  93. package/dist/source/components/layout/sheet/sheet.jsx +13 -3
  94. package/dist/source/components/layout/sheet/sheet.jsx.map +1 -1
  95. package/dist/source/index.js +2 -0
  96. package/dist/source/index.js.map +2 -2
  97. package/dist/source/primitives/overlayLayer.js +18 -0
  98. package/dist/source/primitives/overlayLayer.js.map +7 -0
  99. package/package.json +11 -5
@@ -5,7 +5,7 @@ import { Theme as f, createTheme as i } from "./primitives/createTheme.js";
5
5
  import { createFloating as n } from "./primitives/createFloating.js";
6
6
  import { createFocusTrap as u } from "./primitives/createFocusTrap.js";
7
7
  import { createCssTransition as C } from "./primitives/createCssTransition.js";
8
- import { createDropzone as d } from "./primitives/createDropzone.js";
8
+ import { createDropzone as g } from "./primitives/createDropzone.js";
9
9
  import { createVirtualList as h } from "./primitives/createVirtualList.js";
10
10
  import { createMaskedInput as M } from "./primitives/createMaskedInput.js";
11
11
  import { createMediaQuery as I } from "./primitives/createMediaQuery.js";
@@ -29,7 +29,7 @@ import { Chat as se } from "./components/dataDisplay/chat/chat.js";
29
29
  import { ChatAttachmentImage as le } from "./components/dataDisplay/chat/chatAttachmentImage.js";
30
30
  import { ChatAttachments as ce } from "./components/dataDisplay/chat/chatAttachments.js";
31
31
  import { ChatComposer as Te } from "./components/dataDisplay/chat/chatComposer.js";
32
- import { ChatHeader as ge } from "./components/dataDisplay/chat/chatHeader.js";
32
+ import { ChatHeader as de } from "./components/dataDisplay/chat/chatHeader.js";
33
33
  import { ChatIconButton as Se } from "./components/dataDisplay/chat/chatIconButton.js";
34
34
  import { ChatLayout as Ae } from "./components/dataDisplay/chat/chatLayout.js";
35
35
  import { ChatMessageAvatar as De } from "./components/dataDisplay/chat/chatMessageAvatar.js";
@@ -49,93 +49,94 @@ import { ChipGroup as qe } from "./components/dataDisplay/chipGroup/chipGroup.js
49
49
  import { CircularProgress as Ze, ProgressIndicator as $e } from "./components/feedBack/progressIndicator/progressIndicator.js";
50
50
  import { ClickAwayListener as rr } from "./components/clickAwayListener/clickAwayListener.js";
51
51
  import { Column as tr, Container as ar, Grid as mr, Row as pr } from "./components/layout/grid/grid.js";
52
- import { CountPreview as fr } from "./components/inputs/fileDrop/countPreview.js";
53
- import { DEFAULT_TIME_FORMAT as sr } from "./components/inputs/timePicker/timeUtils.js";
54
- import { DataPickerDays as lr } from "./components/inputs/datePicker/dataPickerDays.js";
55
- import { DataPickerHeader as cr } from "./components/inputs/datePicker/dataPickerHeader.js";
56
- import { DataPickerInput as Tr } from "./components/inputs/datePicker/dataPickerInput.js";
57
- import { DatePicker as gr } from "./components/inputs/datePicker/datePicker.js";
58
- import { DatePickerActionLabel as Sr } from "./components/inputs/datePicker/datePickerActionLabel.js";
59
- import { DatePickerDay as Ar } from "./components/inputs/datePicker/datePickerDay.js";
60
- import { DatePickerIconButton as Dr } from "./components/inputs/datePicker/datePickerIconButton.js";
61
- import { DatePickerList as br } from "./components/inputs/datePicker/datePickerList.js";
62
- import { DateTimePicker as kr } from "./components/inputs/dateTimePicker/dateTimePicker.js";
63
- import { DateTimePickerInput as Br } from "./components/inputs/dateTimePicker/dateTimePickerInput.js";
64
- import { Divider as yr } from "./components/layout/divider/divider.js";
65
- import { DropdownMenu as _r } from "./components/inputs/selectField/dropdownMenu.js";
66
- import { ExpansionPanel as Hr } from "./components/dataDisplay/expansionPanel/expansionPanel.js";
67
- import { FileDrop as Ur } from "./components/inputs/fileDrop/fileDrop.js";
68
- import { FileInput as Rr } from "./components/inputs/fileInput/fileInput.js";
69
- import { FloatingButton as Nr } from "./components/inputs/floatingButton/floatingButton.js";
70
- import { Icon as Wr } from "./components/base/icon/icon.js";
71
- import { ImagesList as Yr } from "./components/dataDisplay/imagesList/imagesList.js";
72
- import { ImagesListItem as Qr } from "./components/dataDisplay/imagesList/imagesListItem/imagesListItem.js";
73
- import { ImagesListItemModal as qr } from "./components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js";
74
- import { LazyImage as Zr } from "./components/dataDisplay/lazyImage/lazyImage.js";
75
- import { List as eo } from "./components/dataDisplay/list/list.js";
76
- import { ListItem as oo } from "./components/dataDisplay/list/listItem.js";
77
- import { Menu as ao } from "./components/navigation/menu/menu.js";
78
- import { MenuContext as po, useMenuContext as xo } from "./components/navigation/menu/menuContext.js";
79
- import { MenuDivider as io } from "./components/navigation/menu/menuDivider.js";
80
- import { MenuFloating as no, buildMenuFloatingMiddleware as lo } from "./components/navigation/menu/menuFloating.js";
81
- import { MenuItem as co } from "./components/navigation/menu/menuItem.js";
82
- import { MenuItemIcon as To } from "./components/navigation/menu/menuItemIcon.js";
83
- import { MenuItemText as ho } from "./components/navigation/menu/menuItemText.js";
84
- import { MenuList as Mo } from "./components/navigation/menu/menuList.js";
85
- import { MenuSubmenu as Io } from "./components/navigation/menu/menuSubmenu.js";
86
- import { Message as Po, MessageContainer as bo } from "./components/feedBack/message/message.js";
87
- import { Modal as ko } from "./components/feedBack/modal/modal.js";
88
- import { OpenView as Bo } from "./components/inputs/datePicker/openView.js";
89
- import { OverflowMenu as yo } from "./components/navigation/overflowMenu/overflowMenu.js";
90
- import { Page as _o } from "./components/layout/page/page.js";
91
- import { PageHeader as Ho } from "./components/layout/pageHeader/pageHeader.js";
92
- import { Pagination as Uo } from "./components/navigation/pagination/pagination.js";
93
- import { Preview as Ro } from "./components/inputs/fileDrop/preview.js";
94
- import { PreviewWrapper as No } from "./components/inputs/fileDrop/previewWrapper.js";
95
- import { RadioButton as Wo } from "./components/inputs/radioButton/radioButton.js";
96
- import { Rating as Yo } from "./components/inputs/rating/rating.js";
97
- import { Ripple as Qo } from "./components/base/ripple/ripple.js";
98
- import { SaveAssetDialog as qo } from "./components/feedBack/saveAssetDialog/saveAssetDialog.js";
99
- import { ScreenDivider as Zo } from "./components/layout/screenDivider/screenDivider.js";
100
- import { SelectField as et } from "./components/inputs/selectField/selectField.js";
101
- import { Sheet as ot } from "./components/layout/sheet/sheet.js";
102
- import { Sidebar as at } from "./components/navigation/sidebar/sidebar.js";
103
- import { Skeleton as pt } from "./components/feedBack/skeleton/skeleton.js";
104
- import { Slider as ft } from "./components/inputs/slider/slider.js";
105
- import { Snackbar as st, SnackbarProvider as nt, useSnackbar as lt } from "./components/feedBack/snackbar/snackbar.js";
106
- import { Stack as ct } from "./components/layout/stack/stack.js";
107
- import { Stepper as Tt } from "./components/navigation/stepper/stepper.js";
108
- import { Tab as gt } from "./components/navigation/tabs/tab/tab.js";
109
- import { Table as St } from "./components/dataDisplay/table/table.js";
110
- import { TableBody as At } from "./components/dataDisplay/table/tableBody.js";
111
- import { TableCell as Dt } from "./components/dataDisplay/table/tableCell.js";
112
- import { TableHead as bt } from "./components/dataDisplay/table/tableHead.js";
113
- import { TableHeadCell as kt } from "./components/dataDisplay/table/tableHeadCell.js";
114
- import { TablePagination as Bt } from "./components/dataDisplay/table/tablePagination/tablePagination.js";
115
- import { TableRow as yt } from "./components/dataDisplay/table/tableRow.js";
116
- import { Tabs as _t } from "./components/navigation/tabs/tabs.js";
117
- import { TabsContext as Ht, useTabsContext as Ot } from "./components/navigation/tabs/tabsContext.js";
118
- import { TextField as Gt } from "./components/inputs/textField/textField.js";
119
- import { TextFieldAdornment as Vt } from "./components/inputs/textField/textFieldAdornment.js";
120
- import { TextFieldWrapper as zt } from "./components/inputs/textField/textFieldWrapper.js";
121
- import { ThumbCard as Xt } from "./components/dataDisplay/thumbCard/thumbCard.js";
122
- import { TimePicker as Jt } from "./components/inputs/timePicker/timePicker.js";
123
- import { TimePickerColumns as jt } from "./components/inputs/timePicker/timePickerColumns.js";
124
- import { TimePickerInput as Kt } from "./components/inputs/timePicker/timePickerInput.js";
125
- import { Toggle as $t } from "./components/inputs/toggle/toggle.js";
126
- import { Tooltip as ra } from "./components/feedBack/tooltip/tooltip.js";
127
- import { TreeView as ta } from "./components/dataDisplay/treeView/treeView.js";
128
- import { Typography as ma } from "./components/dataDisplay/typography/typography.js";
129
- import { ValueSlider as xa } from "./components/inputs/valueSlider/valueSlider.js";
130
- import { createChatFileUpload as ia, resolveChatFileUploadMaxFiles as sa } from "./components/dataDisplay/chat/useChatFileUpload.js";
131
- import { createChatInfiniteScroll as la } from "./components/dataDisplay/chat/useChatInfiniteScroll.js";
132
- import { createChatStickToBottom as ca, isScrolledToBottom as Ca, scrollChatToBottom as Ta } from "./components/dataDisplay/chat/useChatStickToBottom.js";
133
- import { createDateInput as ga } from "./components/inputs/datePicker/useDateInput.js";
134
- import { createDateTimeInput as Sa, getCurrentDateTimeFormat as Ma, getDisplayDateTime as Aa } from "./components/inputs/dateTimePicker/useDateTimeInput.js";
135
- import { createTimeInput as Da } from "./components/inputs/timePicker/useTimeInput.js";
136
- import { formatChatTimestamp as ba, getChatLayoutActions as La, isChatMessageDeliveryStatus as ka, isImageAttachment as Fa, resolveAllowedLayouts as Ba, resolveChatMessageStatusIcon as va, resolveChatMessageStatusLabel as ya, shouldComposerNewlineOnEnter as Ea, shouldShowChatCloseButton as _a } from "./components/dataDisplay/chat/utils.js";
137
- import { formatDateTimeByPattern as Ha, isDateTimePatternMatch as Oa, parseDateTimeByPattern as Ua } from "./components/inputs/dateTimePicker/dateTimeFormat.js";
138
- import { isImageFile as Ra } from "./components/inputs/fileDrop/utils.js";
52
+ import { ConfirmDialog as fr } from "./components/feedBack/confirmDialog/confirmDialog.js";
53
+ import { CountPreview as sr } from "./components/inputs/fileDrop/countPreview.js";
54
+ import { DEFAULT_TIME_FORMAT as lr } from "./components/inputs/timePicker/timeUtils.js";
55
+ import { DataPickerDays as cr } from "./components/inputs/datePicker/dataPickerDays.js";
56
+ import { DataPickerHeader as Tr } from "./components/inputs/datePicker/dataPickerHeader.js";
57
+ import { DataPickerInput as dr } from "./components/inputs/datePicker/dataPickerInput.js";
58
+ import { DatePicker as Sr } from "./components/inputs/datePicker/datePicker.js";
59
+ import { DatePickerActionLabel as Ar } from "./components/inputs/datePicker/datePickerActionLabel.js";
60
+ import { DatePickerDay as Dr } from "./components/inputs/datePicker/datePickerDay.js";
61
+ import { DatePickerIconButton as br } from "./components/inputs/datePicker/datePickerIconButton.js";
62
+ import { DatePickerList as kr } from "./components/inputs/datePicker/datePickerList.js";
63
+ import { DateTimePicker as Br } from "./components/inputs/dateTimePicker/dateTimePicker.js";
64
+ import { DateTimePickerInput as yr } from "./components/inputs/dateTimePicker/dateTimePickerInput.js";
65
+ import { Divider as _r } from "./components/layout/divider/divider.js";
66
+ import { DropdownMenu as Hr } from "./components/inputs/selectField/dropdownMenu.js";
67
+ import { ExpansionPanel as Ur } from "./components/dataDisplay/expansionPanel/expansionPanel.js";
68
+ import { FileDrop as Rr } from "./components/inputs/fileDrop/fileDrop.js";
69
+ import { FileInput as Nr } from "./components/inputs/fileInput/fileInput.js";
70
+ import { FloatingButton as Wr } from "./components/inputs/floatingButton/floatingButton.js";
71
+ import { Icon as Yr } from "./components/base/icon/icon.js";
72
+ import { ImagesList as Qr } from "./components/dataDisplay/imagesList/imagesList.js";
73
+ import { ImagesListItem as qr } from "./components/dataDisplay/imagesList/imagesListItem/imagesListItem.js";
74
+ import { ImagesListItemModal as Zr } from "./components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js";
75
+ import { LazyImage as eo } from "./components/dataDisplay/lazyImage/lazyImage.js";
76
+ import { List as oo } from "./components/dataDisplay/list/list.js";
77
+ import { ListItem as ao } from "./components/dataDisplay/list/listItem.js";
78
+ import { Menu as po } from "./components/navigation/menu/menu.js";
79
+ import { MenuContext as fo, useMenuContext as io } from "./components/navigation/menu/menuContext.js";
80
+ import { MenuDivider as no } from "./components/navigation/menu/menuDivider.js";
81
+ import { MenuFloating as uo, buildMenuFloatingMiddleware as co } from "./components/navigation/menu/menuFloating.js";
82
+ import { MenuItem as To } from "./components/navigation/menu/menuItem.js";
83
+ import { MenuItemIcon as ho } from "./components/navigation/menu/menuItemIcon.js";
84
+ import { MenuItemText as Mo } from "./components/navigation/menu/menuItemText.js";
85
+ import { MenuList as Io } from "./components/navigation/menu/menuList.js";
86
+ import { MenuSubmenu as Po } from "./components/navigation/menu/menuSubmenu.js";
87
+ import { Message as Lo, MessageContainer as ko } from "./components/feedBack/message/message.js";
88
+ import { Modal as Bo } from "./components/feedBack/modal/modal.js";
89
+ import { OpenView as yo } from "./components/inputs/datePicker/openView.js";
90
+ import { OverflowMenu as _o } from "./components/navigation/overflowMenu/overflowMenu.js";
91
+ import { Page as Ho } from "./components/layout/page/page.js";
92
+ import { PageHeader as Uo } from "./components/layout/pageHeader/pageHeader.js";
93
+ import { Pagination as Ro } from "./components/navigation/pagination/pagination.js";
94
+ import { Preview as No } from "./components/inputs/fileDrop/preview.js";
95
+ import { PreviewWrapper as Wo } from "./components/inputs/fileDrop/previewWrapper.js";
96
+ import { RadioButton as Yo } from "./components/inputs/radioButton/radioButton.js";
97
+ import { Rating as Qo } from "./components/inputs/rating/rating.js";
98
+ import { Ripple as qo } from "./components/base/ripple/ripple.js";
99
+ import { SaveAssetDialog as Zo } from "./components/feedBack/saveAssetDialog/saveAssetDialog.js";
100
+ import { ScreenDivider as et } from "./components/layout/screenDivider/screenDivider.js";
101
+ import { SelectField as ot } from "./components/inputs/selectField/selectField.js";
102
+ import { Sheet as at } from "./components/layout/sheet/sheet.js";
103
+ import { Sidebar as pt } from "./components/navigation/sidebar/sidebar.js";
104
+ import { Skeleton as ft } from "./components/feedBack/skeleton/skeleton.js";
105
+ import { Slider as st } from "./components/inputs/slider/slider.js";
106
+ import { Snackbar as lt, SnackbarProvider as ut, useSnackbar as ct } from "./components/feedBack/snackbar/snackbar.js";
107
+ import { Stack as Tt } from "./components/layout/stack/stack.js";
108
+ import { Stepper as dt } from "./components/navigation/stepper/stepper.js";
109
+ import { Tab as St } from "./components/navigation/tabs/tab/tab.js";
110
+ import { Table as At } from "./components/dataDisplay/table/table.js";
111
+ import { TableBody as Dt } from "./components/dataDisplay/table/tableBody.js";
112
+ import { TableCell as bt } from "./components/dataDisplay/table/tableCell.js";
113
+ import { TableHead as kt } from "./components/dataDisplay/table/tableHead.js";
114
+ import { TableHeadCell as Bt } from "./components/dataDisplay/table/tableHeadCell.js";
115
+ import { TablePagination as yt } from "./components/dataDisplay/table/tablePagination/tablePagination.js";
116
+ import { TableRow as _t } from "./components/dataDisplay/table/tableRow.js";
117
+ import { Tabs as Ht } from "./components/navigation/tabs/tabs.js";
118
+ import { TabsContext as Ut, useTabsContext as Gt } from "./components/navigation/tabs/tabsContext.js";
119
+ import { TextField as Vt } from "./components/inputs/textField/textField.js";
120
+ import { TextFieldAdornment as zt } from "./components/inputs/textField/textFieldAdornment.js";
121
+ import { TextFieldWrapper as Xt } from "./components/inputs/textField/textFieldWrapper.js";
122
+ import { ThumbCard as Jt } from "./components/dataDisplay/thumbCard/thumbCard.js";
123
+ import { TimePicker as jt } from "./components/inputs/timePicker/timePicker.js";
124
+ import { TimePickerColumns as Kt } from "./components/inputs/timePicker/timePickerColumns.js";
125
+ import { TimePickerInput as $t } from "./components/inputs/timePicker/timePickerInput.js";
126
+ import { Toggle as ra } from "./components/inputs/toggle/toggle.js";
127
+ import { Tooltip as ta } from "./components/feedBack/tooltip/tooltip.js";
128
+ import { TreeView as ma } from "./components/dataDisplay/treeView/treeView.js";
129
+ import { Typography as xa } from "./components/dataDisplay/typography/typography.js";
130
+ import { ValueSlider as ia } from "./components/inputs/valueSlider/valueSlider.js";
131
+ import { createChatFileUpload as na, resolveChatFileUploadMaxFiles as la } from "./components/dataDisplay/chat/useChatFileUpload.js";
132
+ import { createChatInfiniteScroll as ca } from "./components/dataDisplay/chat/useChatInfiniteScroll.js";
133
+ import { createChatStickToBottom as Ta, isScrolledToBottom as ga, scrollChatToBottom as da } from "./components/dataDisplay/chat/useChatStickToBottom.js";
134
+ import { createDateInput as Sa } from "./components/inputs/datePicker/useDateInput.js";
135
+ import { createDateTimeInput as Aa, getCurrentDateTimeFormat as Ia, getDisplayDateTime as Da } from "./components/inputs/dateTimePicker/useDateTimeInput.js";
136
+ import { createTimeInput as ba } from "./components/inputs/timePicker/useTimeInput.js";
137
+ import { formatChatTimestamp as ka, getChatLayoutActions as Fa, isChatMessageDeliveryStatus as Ba, isImageAttachment as va, resolveAllowedLayouts as ya, resolveChatMessageStatusIcon as Ea, resolveChatMessageStatusLabel as _a, shouldComposerNewlineOnEnter as wa, shouldShowChatCloseButton as Ha } from "./components/dataDisplay/chat/utils.js";
138
+ import { formatDateTimeByPattern as Ua, isDateTimePatternMatch as Ga, parseDateTimeByPattern as Ra } from "./components/inputs/dateTimePicker/dateTimeFormat.js";
139
+ import { isImageFile as Na } from "./components/inputs/fileDrop/utils.js";
139
140
  export {
140
141
  v as Accordion,
141
142
  E as AnimateHeight,
@@ -160,7 +161,7 @@ export {
160
161
  le as ChatAttachmentImage,
161
162
  ce as ChatAttachments,
162
163
  Te as ChatComposer,
163
- ge as ChatHeader,
164
+ de as ChatHeader,
164
165
  Se as ChatIconButton,
165
166
  Ae as ChatLayout,
166
167
  De as ChatMessageAvatar,
@@ -180,101 +181,102 @@ export {
180
181
  Ze as CircularProgress,
181
182
  rr as ClickAwayListener,
182
183
  tr as Column,
184
+ fr as ConfirmDialog,
183
185
  ar as Container,
184
- fr as CountPreview,
185
- sr as DEFAULT_TIME_FORMAT,
186
- lr as DataPickerDays,
187
- cr as DataPickerHeader,
188
- Tr as DataPickerInput,
189
- gr as DatePicker,
190
- Sr as DatePickerActionLabel,
191
- Ar as DatePickerDay,
192
- Dr as DatePickerIconButton,
193
- br as DatePickerList,
194
- kr as DateTimePicker,
195
- Br as DateTimePickerInput,
196
- yr as Divider,
197
- _r as DropdownMenu,
198
- Hr as ExpansionPanel,
199
- Ur as FileDrop,
200
- Rr as FileInput,
201
- Nr as FloatingButton,
186
+ sr as CountPreview,
187
+ lr as DEFAULT_TIME_FORMAT,
188
+ cr as DataPickerDays,
189
+ Tr as DataPickerHeader,
190
+ dr as DataPickerInput,
191
+ Sr as DatePicker,
192
+ Ar as DatePickerActionLabel,
193
+ Dr as DatePickerDay,
194
+ br as DatePickerIconButton,
195
+ kr as DatePickerList,
196
+ Br as DateTimePicker,
197
+ yr as DateTimePickerInput,
198
+ _r as Divider,
199
+ Hr as DropdownMenu,
200
+ Ur as ExpansionPanel,
201
+ Rr as FileDrop,
202
+ Nr as FileInput,
203
+ Wr as FloatingButton,
202
204
  mr as Grid,
203
- Wr as Icon,
204
- Yr as ImagesList,
205
- Qr as ImagesListItem,
206
- qr as ImagesListItemModal,
207
- Zr as LazyImage,
208
- eo as List,
209
- oo as ListItem,
210
- ao as Menu,
211
- po as MenuContext,
212
- io as MenuDivider,
213
- no as MenuFloating,
214
- co as MenuItem,
215
- To as MenuItemIcon,
216
- ho as MenuItemText,
217
- Mo as MenuList,
218
- Io as MenuSubmenu,
219
- Po as Message,
220
- bo as MessageContainer,
221
- ko as Modal,
222
- Bo as OpenView,
223
- yo as OverflowMenu,
224
- _o as Page,
225
- Ho as PageHeader,
226
- Uo as Pagination,
227
- Ro as Preview,
228
- No as PreviewWrapper,
205
+ Yr as Icon,
206
+ Qr as ImagesList,
207
+ qr as ImagesListItem,
208
+ Zr as ImagesListItemModal,
209
+ eo as LazyImage,
210
+ oo as List,
211
+ ao as ListItem,
212
+ po as Menu,
213
+ fo as MenuContext,
214
+ no as MenuDivider,
215
+ uo as MenuFloating,
216
+ To as MenuItem,
217
+ ho as MenuItemIcon,
218
+ Mo as MenuItemText,
219
+ Io as MenuList,
220
+ Po as MenuSubmenu,
221
+ Lo as Message,
222
+ ko as MessageContainer,
223
+ Bo as Modal,
224
+ yo as OpenView,
225
+ _o as OverflowMenu,
226
+ Ho as Page,
227
+ Uo as PageHeader,
228
+ Ro as Pagination,
229
+ No as Preview,
230
+ Wo as PreviewWrapper,
229
231
  $e as ProgressIndicator,
230
- Wo as RadioButton,
231
- Yo as Rating,
232
- Qo as Ripple,
232
+ Yo as RadioButton,
233
+ Qo as Rating,
234
+ qo as Ripple,
233
235
  pr as Row,
234
- qo as SaveAssetDialog,
235
- Zo as ScreenDivider,
236
- et as SelectField,
237
- ot as Sheet,
238
- at as Sidebar,
239
- pt as Skeleton,
240
- ft as Slider,
241
- st as Snackbar,
242
- nt as SnackbarProvider,
243
- ct as Stack,
244
- Tt as Stepper,
245
- gt as Tab,
246
- St as Table,
247
- At as TableBody,
248
- Dt as TableCell,
249
- bt as TableHead,
250
- kt as TableHeadCell,
251
- Bt as TablePagination,
252
- yt as TableRow,
253
- _t as Tabs,
254
- Ht as TabsContext,
255
- Gt as TextField,
256
- Vt as TextFieldAdornment,
257
- zt as TextFieldWrapper,
236
+ Zo as SaveAssetDialog,
237
+ et as ScreenDivider,
238
+ ot as SelectField,
239
+ at as Sheet,
240
+ pt as Sidebar,
241
+ ft as Skeleton,
242
+ st as Slider,
243
+ lt as Snackbar,
244
+ ut as SnackbarProvider,
245
+ Tt as Stack,
246
+ dt as Stepper,
247
+ St as Tab,
248
+ At as Table,
249
+ Dt as TableBody,
250
+ bt as TableCell,
251
+ kt as TableHead,
252
+ Bt as TableHeadCell,
253
+ yt as TablePagination,
254
+ _t as TableRow,
255
+ Ht as Tabs,
256
+ Ut as TabsContext,
257
+ Vt as TextField,
258
+ zt as TextFieldAdornment,
259
+ Xt as TextFieldWrapper,
258
260
  f as Theme,
259
- Xt as ThumbCard,
260
- Jt as TimePicker,
261
- jt as TimePickerColumns,
262
- Kt as TimePickerInput,
263
- $t as Toggle,
264
- ra as Tooltip,
265
- ta as TreeView,
266
- ma as Typography,
267
- xa as ValueSlider,
261
+ Jt as ThumbCard,
262
+ jt as TimePicker,
263
+ Kt as TimePickerColumns,
264
+ $t as TimePickerInput,
265
+ ra as Toggle,
266
+ ta as Tooltip,
267
+ ma as TreeView,
268
+ xa as Typography,
269
+ ia as ValueSlider,
268
270
  L as buildFloatingMiddleware,
269
- lo as buildMenuFloatingMiddleware,
270
- ia as createChatFileUpload,
271
- la as createChatInfiniteScroll,
272
- ca as createChatStickToBottom,
271
+ co as buildMenuFloatingMiddleware,
272
+ na as createChatFileUpload,
273
+ ca as createChatInfiniteScroll,
274
+ Ta as createChatStickToBottom,
273
275
  p as createControllableState,
274
276
  C as createCssTransition,
275
- ga as createDateInput,
276
- Sa as createDateTimeInput,
277
- d as createDropzone,
277
+ Sa as createDateInput,
278
+ Aa as createDateTimeInput,
279
+ g as createDropzone,
278
280
  n as createFloating,
279
281
  u as createFocusTrap,
280
282
  a as createId,
@@ -282,31 +284,31 @@ export {
282
284
  I as createMediaQuery,
283
285
  P as createPersistedJson,
284
286
  i as createTheme,
285
- Da as createTimeInput,
287
+ ba as createTimeInput,
286
288
  h as createVirtualList,
287
- ba as formatChatTimestamp,
288
- Ha as formatDateTimeByPattern,
289
- La as getChatLayoutActions,
290
- Ma as getCurrentDateTimeFormat,
291
- Aa as getDisplayDateTime,
292
- ka as isChatMessageDeliveryStatus,
293
- Oa as isDateTimePatternMatch,
294
- Fa as isImageAttachment,
295
- Ra as isImageFile,
296
- Ca as isScrolledToBottom,
289
+ ka as formatChatTimestamp,
290
+ Ua as formatDateTimeByPattern,
291
+ Fa as getChatLayoutActions,
292
+ Ia as getCurrentDateTimeFormat,
293
+ Da as getDisplayDateTime,
294
+ Ba as isChatMessageDeliveryStatus,
295
+ Ga as isDateTimePatternMatch,
296
+ va as isImageAttachment,
297
+ Na as isImageFile,
298
+ ga as isScrolledToBottom,
297
299
  o as mergeRefs,
298
- Ua as parseDateTimeByPattern,
300
+ Ra as parseDateTimeByPattern,
299
301
  k as placements,
300
- Ba as resolveAllowedLayouts,
301
- sa as resolveChatFileUploadMaxFiles,
302
- va as resolveChatMessageStatusIcon,
303
- ya as resolveChatMessageStatusLabel,
302
+ ya as resolveAllowedLayouts,
303
+ la as resolveChatFileUploadMaxFiles,
304
+ Ea as resolveChatMessageStatusIcon,
305
+ _a as resolveChatMessageStatusLabel,
304
306
  F as resolvePlacement,
305
- Ta as scrollChatToBottom,
306
- Ea as shouldComposerNewlineOnEnter,
307
- _a as shouldShowChatCloseButton,
308
- xo as useMenuContext,
309
- lt as useSnackbar,
310
- Ot as useTabsContext
307
+ da as scrollChatToBottom,
308
+ wa as shouldComposerNewlineOnEnter,
309
+ Ha as shouldShowChatCloseButton,
310
+ io as useMenuContext,
311
+ ct as useSnackbar,
312
+ Gt as useTabsContext
311
313
  };
312
314
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,11 @@
1
+ const e = "data-smwb-overlay-layer", r = () => typeof document > "u" ? [] : Array.from(document.querySelectorAll(`[${e}]`)), a = (n, o) => typeof n.composedPath != "function" ? !1 : n.composedPath().some((t) => t instanceof Element && t.hasAttribute(e) && !t.contains(o)), s = (n) => {
2
+ if (!n) return !0;
3
+ const o = r(), t = o[o.length - 1];
4
+ return !t || t === n || t.contains(n) || n.contains(t);
5
+ };
6
+ export {
7
+ e as OVERLAY_LAYER_ATTR,
8
+ a as isEventInForeignOverlay,
9
+ s as isTopOverlayLayer
10
+ };
11
+ //# sourceMappingURL=overlayLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlayLayer.js","sources":["../../../src/primitives/overlayLayer.ts"],"sourcesContent":["/** Attribute marking the root of a portaled overlay layer (modal, sheet wrapper, dropdown, …). */\nexport const OVERLAY_LAYER_ATTR = \"data-smwb-overlay-layer\";\n\n/** All open overlay layers in document order (last = topmost). */\nconst overlayLayers = (): Element[] =>\n typeof document === \"undefined\" ? [] : Array.from(document.querySelectorAll(`[${OVERLAY_LAYER_ATTR}]`));\n\n/**\n * True when `event` happened inside an overlay layer that does NOT contain\n * `node` — i.e. `node` sits underneath that layer, so the interaction is not\n * a \"click away\" from `node`.\n */\nexport const isEventInForeignOverlay = (event: Event, node: Element): boolean => {\n if (typeof event.composedPath !== \"function\") return false;\n return event\n .composedPath()\n .some((el) => el instanceof Element && el.hasAttribute(OVERLAY_LAYER_ATTR) && !el.contains(node));\n};\n\n/**\n * True when `el` belongs to the topmost open overlay layer (or no layers are\n * open). Used to make Escape close only the top layer instead of every layer.\n */\nexport const isTopOverlayLayer = (el: Element | undefined): boolean => {\n if (!el) return true;\n const all = overlayLayers();\n const top = all[all.length - 1];\n return !top || top === el || top.contains(el) || el.contains(top);\n};\n"],"names":["OVERLAY_LAYER_ATTR","overlayLayers","isEventInForeignOverlay","event","node","el","isTopOverlayLayer","all","top"],"mappings":"AACO,MAAMA,IAAqB,2BAG5BC,IAAgB,MACpB,OAAO,WAAa,MAAc,CAAA,IAAK,MAAM,KAAK,SAAS,iBAAiB,IAAID,CAAkB,GAAG,CAAC,GAO3FE,IAA0B,CAACC,GAAcC,MAChD,OAAOD,EAAM,gBAAiB,aAAmB,KAC9CA,EACJ,aAAA,EACA,KAAK,CAACE,MAAOA,aAAc,WAAWA,EAAG,aAAaL,CAAkB,KAAK,CAACK,EAAG,SAASD,CAAI,CAAC,GAOvFE,IAAoB,CAACD,MAAqC;AACrE,MAAI,CAACA,EAAI,QAAO;AAChB,QAAME,IAAMN,EAAA,GACNO,IAAMD,EAAIA,EAAI,SAAS,CAAC;AAC9B,SAAO,CAACC,KAAOA,MAAQH,KAAMG,EAAI,SAASH,CAAE,KAAKA,EAAG,SAASG,CAAG;AAClE;"}
@@ -1,4 +1,5 @@
1
1
  import { children as resolveChildren, createEffect, mergeProps, onCleanup, onMount } from "solid-js";
2
+ import { isEventInForeignOverlay } from "../../primitives/overlayLayer";
2
3
  function mapEventPropToEvent(eventProp) {
3
4
  return eventProp.substring(2).toLowerCase();
4
5
  }
@@ -41,6 +42,7 @@ function ClickAwayListener(props) {
41
42
  insideDOM = !document.documentElement.contains(target) || node.contains(target);
42
43
  }
43
44
  if (!insideDOM) {
45
+ if (isEventInForeignOverlay(event, node)) return;
44
46
  merged.onClickAway(event);
45
47
  }
46
48
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/clickAwayListener/clickAwayListener.tsx"],"sourcesContent":["import { type JSX, children as resolveChildren, createEffect, mergeProps, onCleanup, onMount } from \"solid-js\";\n\ntype ClickAwayMouseEventHandler = \"onClick\" | \"onMouseDown\" | \"onMouseUp\" | \"onPointerDown\" | \"onPointerUp\";\ntype ClickAwayTouchEventHandler = \"onTouchStart\" | \"onTouchEnd\";\n\ntype MappedEvent = \"click\" | \"mousedown\" | \"mouseup\" | \"touchstart\" | \"touchend\" | \"pointerdown\" | \"pointerup\";\n\nfunction mapEventPropToEvent(eventProp: ClickAwayMouseEventHandler | ClickAwayTouchEventHandler): MappedEvent {\n return eventProp.substring(2).toLowerCase() as MappedEvent;\n}\n\nfunction clickedRootScrollbar(event: MouseEvent, doc: Document): boolean {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n\nexport interface ClickAwayListenerProps {\n children: JSX.Element;\n mouseEvent?: ClickAwayMouseEventHandler | false;\n onClickAway: (event: MouseEvent | TouchEvent) => void;\n touchEvent?: ClickAwayTouchEventHandler | false;\n /** When false, the listener is inert without unmounting the child. */\n enabled?: boolean;\n}\n\n/**\n * Solid redesign of MUI's ClickAwayListener. React's version cloned the child\n * to inject a ref + synthetic handlers; Solid resolves the child to its DOM\n * node and uses `composedPath`/`contains` containment checks against document\n * listeners — no element cloning.\n */\nexport function ClickAwayListener(props: ClickAwayListenerProps): JSX.Element {\n const merged = mergeProps(\n { mouseEvent: \"onMouseUp\" as ClickAwayMouseEventHandler, touchEvent: \"onTouchEnd\" as ClickAwayTouchEventHandler, enabled: true },\n props\n );\n const resolved = resolveChildren(() => merged.children);\n\n const getNode = (): Element | undefined => {\n const c = resolved();\n const el = Array.isArray(c) ? c.find((x) => x instanceof Element) : c;\n return el instanceof Element ? el : undefined;\n };\n\n let activated = false;\n let moved = false;\n\n onMount(() => {\n // Defer activation a tick so the opening interaction doesn't immediately\n // trigger a click-away (see facebook/react#20074).\n const timer = setTimeout(() => {\n activated = true;\n }, 0);\n onCleanup(() => clearTimeout(timer));\n });\n\n const handleClickAway = (event: MouseEvent | TouchEvent): void => {\n const node = getNode();\n if (!merged.enabled || !activated || !node || (\"clientX\" in event && clickedRootScrollbar(event, document))) {\n return;\n }\n if (moved) {\n moved = false;\n return;\n }\n let insideDOM: boolean;\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(node) > -1;\n } else {\n const target = event.target as HTMLElement;\n insideDOM = !document.documentElement.contains(target) || node.contains(target);\n }\n if (!insideDOM) {\n merged.onClickAway(event);\n }\n };\n\n createEffect(() => {\n const handleTouchMove = (): void => {\n moved = true;\n };\n if (merged.touchEvent !== false) {\n const mapped = mapEventPropToEvent(merged.touchEvent);\n document.addEventListener(mapped, handleClickAway as EventListener);\n document.addEventListener(\"touchmove\", handleTouchMove);\n onCleanup(() => {\n document.removeEventListener(mapped, handleClickAway as EventListener);\n document.removeEventListener(\"touchmove\", handleTouchMove);\n });\n }\n if (merged.mouseEvent !== false) {\n const mapped = mapEventPropToEvent(merged.mouseEvent);\n document.addEventListener(mapped, handleClickAway as EventListener);\n onCleanup(() => document.removeEventListener(mapped, handleClickAway as EventListener));\n }\n });\n\n return <>{resolved()}</>;\n}\n\nexport default ClickAwayListener;\n"],"mappings":"AAAA,SAAmB,YAAY,iBAAiB,cAAc,YAAY,WAAW,eAAe;AAOpG,SAAS,oBAAoB,WAAiF;AAC5G,SAAO,UAAU,UAAU,CAAC,EAAE,YAAY;AAC5C;AAEA,SAAS,qBAAqB,OAAmB,KAAwB;AACvE,SAAO,IAAI,gBAAgB,cAAc,MAAM,WAAW,IAAI,gBAAgB,eAAe,MAAM;AACrG;AAiBO,SAAS,kBAAkB,OAA4C;AAC5E,QAAM,SAAS;AAAA,IACb,EAAE,YAAY,aAA2C,YAAY,cAA4C,SAAS,KAAK;AAAA,IAC/H;AAAA,EACF;AACA,QAAM,WAAW,gBAAgB,MAAM,OAAO,QAAQ;AAEtD,QAAM,UAAU,MAA2B;AACzC,UAAM,IAAI,SAAS;AACnB,UAAM,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,aAAa,OAAO,IAAI;AACpE,WAAO,cAAc,UAAU,KAAK;AAAA,EACtC;AAEA,MAAI,YAAY;AAChB,MAAI,QAAQ;AAEZ,UAAQ,MAAM;AAGZ,UAAM,QAAQ,WAAW,MAAM;AAC7B,kBAAY;AAAA,IACd,GAAG,CAAC;AACJ,cAAU,MAAM,aAAa,KAAK,CAAC;AAAA,EACrC,CAAC;AAED,QAAM,kBAAkB,CAAC,UAAyC;AAChE,UAAM,OAAO,QAAQ;AACrB,QAAI,CAAC,OAAO,WAAW,CAAC,aAAa,CAAC,QAAS,aAAa,SAAS,qBAAqB,OAAO,QAAQ,GAAI;AAC3G;AAAA,IACF;AACA,QAAI,OAAO;AACT,cAAQ;AACR;AAAA,IACF;AACA,QAAI;AACJ,QAAI,MAAM,cAAc;AACtB,kBAAY,MAAM,aAAa,EAAE,QAAQ,IAAI,IAAI;AAAA,IACnD,OAAO;AACL,YAAM,SAAS,MAAM;AACrB,kBAAY,CAAC,SAAS,gBAAgB,SAAS,MAAM,KAAK,KAAK,SAAS,MAAM;AAAA,IAChF;AACA,QAAI,CAAC,WAAW;AACd,aAAO,YAAY,KAAK;AAAA,IAC1B;AAAA,EACF;AAEA,eAAa,MAAM;AACjB,UAAM,kBAAkB,MAAY;AAClC,cAAQ;AAAA,IACV;AACA,QAAI,OAAO,eAAe,OAAO;AAC/B,YAAM,SAAS,oBAAoB,OAAO,UAAU;AACpD,eAAS,iBAAiB,QAAQ,eAAgC;AAClE,eAAS,iBAAiB,aAAa,eAAe;AACtD,gBAAU,MAAM;AACd,iBAAS,oBAAoB,QAAQ,eAAgC;AACrE,iBAAS,oBAAoB,aAAa,eAAe;AAAA,MAC3D,CAAC;AAAA,IACH;AACA,QAAI,OAAO,eAAe,OAAO;AAC/B,YAAM,SAAS,oBAAoB,OAAO,UAAU;AACpD,eAAS,iBAAiB,QAAQ,eAAgC;AAClE,gBAAU,MAAM,SAAS,oBAAoB,QAAQ,eAAgC,CAAC;AAAA,IACxF;AAAA,EACF,CAAC;AAED,SAAO,GAAG,SAAS,EAAE;AACvB;AAEA,IAAO,4BAAQ;","names":[],"file":"clickAwayListener.jsx"}
1
+ {"version":3,"sources":["../../../../../src/components/clickAwayListener/clickAwayListener.tsx"],"sourcesContent":["import { type JSX, children as resolveChildren, createEffect, mergeProps, onCleanup, onMount } from \"solid-js\";\nimport { isEventInForeignOverlay } from \"../../primitives/overlayLayer\";\n\ntype ClickAwayMouseEventHandler = \"onClick\" | \"onMouseDown\" | \"onMouseUp\" | \"onPointerDown\" | \"onPointerUp\";\ntype ClickAwayTouchEventHandler = \"onTouchStart\" | \"onTouchEnd\";\n\ntype MappedEvent = \"click\" | \"mousedown\" | \"mouseup\" | \"touchstart\" | \"touchend\" | \"pointerdown\" | \"pointerup\";\n\nfunction mapEventPropToEvent(eventProp: ClickAwayMouseEventHandler | ClickAwayTouchEventHandler): MappedEvent {\n return eventProp.substring(2).toLowerCase() as MappedEvent;\n}\n\nfunction clickedRootScrollbar(event: MouseEvent, doc: Document): boolean {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n\nexport interface ClickAwayListenerProps {\n children: JSX.Element;\n mouseEvent?: ClickAwayMouseEventHandler | false;\n onClickAway: (event: MouseEvent | TouchEvent) => void;\n touchEvent?: ClickAwayTouchEventHandler | false;\n /** When false, the listener is inert without unmounting the child. */\n enabled?: boolean;\n}\n\n/**\n * Solid redesign of MUI's ClickAwayListener. React's version cloned the child\n * to inject a ref + synthetic handlers; Solid resolves the child to its DOM\n * node and uses `composedPath`/`contains` containment checks against document\n * listeners — no element cloning.\n */\nexport function ClickAwayListener(props: ClickAwayListenerProps): JSX.Element {\n const merged = mergeProps(\n { mouseEvent: \"onMouseUp\" as ClickAwayMouseEventHandler, touchEvent: \"onTouchEnd\" as ClickAwayTouchEventHandler, enabled: true },\n props\n );\n const resolved = resolveChildren(() => merged.children);\n\n const getNode = (): Element | undefined => {\n const c = resolved();\n const el = Array.isArray(c) ? c.find((x) => x instanceof Element) : c;\n return el instanceof Element ? el : undefined;\n };\n\n let activated = false;\n let moved = false;\n\n onMount(() => {\n // Defer activation a tick so the opening interaction doesn't immediately\n // trigger a click-away (see facebook/react#20074).\n const timer = setTimeout(() => {\n activated = true;\n }, 0);\n onCleanup(() => clearTimeout(timer));\n });\n\n const handleClickAway = (event: MouseEvent | TouchEvent): void => {\n const node = getNode();\n if (!merged.enabled || !activated || !node || (\"clientX\" in event && clickedRootScrollbar(event, document))) {\n return;\n }\n if (moved) {\n moved = false;\n return;\n }\n let insideDOM: boolean;\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(node) > -1;\n } else {\n const target = event.target as HTMLElement;\n insideDOM = !document.documentElement.contains(target) || node.contains(target);\n }\n if (!insideDOM) {\n // Interactions inside a portaled overlay layer above the child (modal,\n // dropdown, picker…) are not \"away\" from the child.\n if (isEventInForeignOverlay(event, node)) return;\n merged.onClickAway(event);\n }\n };\n\n createEffect(() => {\n const handleTouchMove = (): void => {\n moved = true;\n };\n if (merged.touchEvent !== false) {\n const mapped = mapEventPropToEvent(merged.touchEvent);\n document.addEventListener(mapped, handleClickAway as EventListener);\n document.addEventListener(\"touchmove\", handleTouchMove);\n onCleanup(() => {\n document.removeEventListener(mapped, handleClickAway as EventListener);\n document.removeEventListener(\"touchmove\", handleTouchMove);\n });\n }\n if (merged.mouseEvent !== false) {\n const mapped = mapEventPropToEvent(merged.mouseEvent);\n document.addEventListener(mapped, handleClickAway as EventListener);\n onCleanup(() => document.removeEventListener(mapped, handleClickAway as EventListener));\n }\n });\n\n return <>{resolved()}</>;\n}\n\nexport default ClickAwayListener;\n"],"mappings":"AAAA,SAAmB,YAAY,iBAAiB,cAAc,YAAY,WAAW,eAAe;AACpG,SAAS,+BAA+B;AAOxC,SAAS,oBAAoB,WAAiF;AAC5G,SAAO,UAAU,UAAU,CAAC,EAAE,YAAY;AAC5C;AAEA,SAAS,qBAAqB,OAAmB,KAAwB;AACvE,SAAO,IAAI,gBAAgB,cAAc,MAAM,WAAW,IAAI,gBAAgB,eAAe,MAAM;AACrG;AAiBO,SAAS,kBAAkB,OAA4C;AAC5E,QAAM,SAAS;AAAA,IACb,EAAE,YAAY,aAA2C,YAAY,cAA4C,SAAS,KAAK;AAAA,IAC/H;AAAA,EACF;AACA,QAAM,WAAW,gBAAgB,MAAM,OAAO,QAAQ;AAEtD,QAAM,UAAU,MAA2B;AACzC,UAAM,IAAI,SAAS;AACnB,UAAM,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,aAAa,OAAO,IAAI;AACpE,WAAO,cAAc,UAAU,KAAK;AAAA,EACtC;AAEA,MAAI,YAAY;AAChB,MAAI,QAAQ;AAEZ,UAAQ,MAAM;AAGZ,UAAM,QAAQ,WAAW,MAAM;AAC7B,kBAAY;AAAA,IACd,GAAG,CAAC;AACJ,cAAU,MAAM,aAAa,KAAK,CAAC;AAAA,EACrC,CAAC;AAED,QAAM,kBAAkB,CAAC,UAAyC;AAChE,UAAM,OAAO,QAAQ;AACrB,QAAI,CAAC,OAAO,WAAW,CAAC,aAAa,CAAC,QAAS,aAAa,SAAS,qBAAqB,OAAO,QAAQ,GAAI;AAC3G;AAAA,IACF;AACA,QAAI,OAAO;AACT,cAAQ;AACR;AAAA,IACF;AACA,QAAI;AACJ,QAAI,MAAM,cAAc;AACtB,kBAAY,MAAM,aAAa,EAAE,QAAQ,IAAI,IAAI;AAAA,IACnD,OAAO;AACL,YAAM,SAAS,MAAM;AACrB,kBAAY,CAAC,SAAS,gBAAgB,SAAS,MAAM,KAAK,KAAK,SAAS,MAAM;AAAA,IAChF;AACA,QAAI,CAAC,WAAW;AAGd,UAAI,wBAAwB,OAAO,IAAI,EAAG;AAC1C,aAAO,YAAY,KAAK;AAAA,IAC1B;AAAA,EACF;AAEA,eAAa,MAAM;AACjB,UAAM,kBAAkB,MAAY;AAClC,cAAQ;AAAA,IACV;AACA,QAAI,OAAO,eAAe,OAAO;AAC/B,YAAM,SAAS,oBAAoB,OAAO,UAAU;AACpD,eAAS,iBAAiB,QAAQ,eAAgC;AAClE,eAAS,iBAAiB,aAAa,eAAe;AACtD,gBAAU,MAAM;AACd,iBAAS,oBAAoB,QAAQ,eAAgC;AACrE,iBAAS,oBAAoB,aAAa,eAAe;AAAA,MAC3D,CAAC;AAAA,IACH;AACA,QAAI,OAAO,eAAe,OAAO;AAC/B,YAAM,SAAS,oBAAoB,OAAO,UAAU;AACpD,eAAS,iBAAiB,QAAQ,eAAgC;AAClE,gBAAU,MAAM,SAAS,oBAAoB,QAAQ,eAAgC,CAAC;AAAA,IACxF;AAAA,EACF,CAAC;AAED,SAAO,GAAG,SAAS,EAAE;AACvB;AAEA,IAAO,4BAAQ;","names":[],"file":"clickAwayListener.jsx"}
@@ -108,10 +108,15 @@ function TreeView(props) {
108
108
  defaultValue: local.defaultExpanded,
109
109
  onChange: (next) => local.onExpandedChange?.(next)
110
110
  });
111
+ let lastToggled;
111
112
  const [selectedIds, setSelectedIds] = createControllableState({
112
113
  value: () => local.selected,
113
114
  defaultValue: local.defaultSelected,
114
- onChange: (next) => local.onSelectedChange?.(next)
115
+ onChange: (next) => {
116
+ const changed = lastToggled;
117
+ lastToggled = void 0;
118
+ local.onSelectedChange?.(next, changed);
119
+ }
115
120
  });
116
121
  const toggleExpanded = (id) => setExpandedIds((prev) => prev.includes(id) ? prev.filter((x) => x !== id) : [...prev, id]);
117
122
  const setOpen = (id, open) => setExpandedIds((prev) => {
@@ -120,7 +125,10 @@ function TreeView(props) {
120
125
  if (!open && has) return prev.filter((x) => x !== id);
121
126
  return prev;
122
127
  });
123
- const toggleSelected = (id) => setSelectedIds((prev) => prev.includes(id) ? prev.filter((x) => x !== id) : [...prev, id]);
128
+ const toggleSelected = (id) => {
129
+ lastToggled = { id, selected: !selectedIds().includes(id) };
130
+ setSelectedIds((prev) => prev.includes(id) ? prev.filter((x) => x !== id) : [...prev, id]);
131
+ };
124
132
  const ensureLoaded = (item, nodeId) => {
125
133
  if (!local.loadChildren || loadedChildren()[nodeId] || item.children && item.children.length > 0) return;
126
134
  setLoadingIds((prev) => prev.includes(nodeId) ? prev : [...prev, nodeId]);