@pathscale/ui 0.0.66 → 0.0.68

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 (2) hide show
  1. package/dist/index.js +157 -72
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -6796,29 +6796,50 @@ const Details = (props)=>{
6796
6796
  const DropdownDetails = Object.assign(Details, {
6797
6797
  Toggle: DropdownToggle_Summary
6798
6798
  });
6799
- var DropdownItem_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<li role=menuitem>"), DropdownItem_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<a>");
6800
- const DropdownItem = (props)=>{
6801
- const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
6799
+ var DropdownItem_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<li role=menuitem>"), DropdownItem_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<a>"), DropdownItem_tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<button>");
6800
+ const DropdownItem_DropdownItem = (props)=>{
6801
+ const dropdownContext = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(DropdownContext);
6802
+ const defaultProps = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.mergeProps)({
6803
+ closeOnClick: true
6804
+ }, props);
6805
+ const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(defaultProps, [
6802
6806
  "anchor",
6803
6807
  "children",
6804
- "aria-selected"
6808
+ "aria-selected",
6809
+ "closeOnClick"
6805
6810
  ]);
6811
+ const handleClick = (e)=>{
6812
+ e.stopPropagation();
6813
+ const originalOnClick = others.onClick;
6814
+ if ("function" == typeof originalOnClick) originalOnClick(e);
6815
+ if (dropdownContext && local.closeOnClick) dropdownContext.setOpen(false);
6816
+ };
6806
6817
  return (()=>{
6807
6818
  var _el$ = DropdownItem_tmpl$();
6808
6819
  (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (()=>{
6809
- var _c$ = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>!!(local.anchor ?? true));
6820
+ var _c$ = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>!!local.anchor);
6810
6821
  return ()=>_c$() ? (()=>{
6811
6822
  var _el$2 = DropdownItem_tmpl$2();
6812
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$2, others, false, true);
6823
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
6824
+ onClick: handleClick
6825
+ }), false, true);
6813
6826
  (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, ()=>local.children);
6814
6827
  return _el$2;
6815
- })() : local.children;
6828
+ })() : (()=>{
6829
+ var _el$3 = DropdownItem_tmpl$3();
6830
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$3, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
6831
+ onClick: handleClick,
6832
+ type: "button"
6833
+ }), false, true);
6834
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$3, ()=>local.children);
6835
+ return _el$3;
6836
+ })();
6816
6837
  })());
6817
6838
  (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)(()=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.setAttribute)(_el$, "aria-selected", local["aria-selected"]));
6818
6839
  return _el$;
6819
6840
  })();
6820
6841
  };
6821
- const dropdown_DropdownItem = DropdownItem;
6842
+ const DropdownItem = DropdownItem_DropdownItem;
6822
6843
  var DropdownMenu_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<ul>");
6823
6844
  const DropdownMenu = (props)=>{
6824
6845
  const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
@@ -6855,6 +6876,46 @@ const DropdownMenu = (props)=>{
6855
6876
  })();
6856
6877
  };
6857
6878
  const dropdown_DropdownMenu = DropdownMenu;
6879
+ function useDropdown(trigger, disabled = false) {
6880
+ const [open, setOpenState] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(false);
6881
+ let ref;
6882
+ const toggle = ()=>{
6883
+ if (!disabled && "click" === trigger) setOpen(!open());
6884
+ };
6885
+ const onEnter = ()=>{
6886
+ if (!disabled && "hover" === trigger) setOpen(true);
6887
+ };
6888
+ const onLeave = ()=>{
6889
+ if (!disabled && "hover" === trigger) setOpen(false);
6890
+ };
6891
+ const onClickOutside = (e)=>{
6892
+ if ("click" === trigger && ref && !ref.contains(e.target)) setOpen(false);
6893
+ };
6894
+ const setOpen = (value)=>{
6895
+ if (false === value) {
6896
+ if (ref) {
6897
+ const focusableElements = ref.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
6898
+ focusableElements.forEach((el)=>{
6899
+ el.blur();
6900
+ });
6901
+ ref.blur();
6902
+ }
6903
+ setOpenState(false);
6904
+ } else setOpenState(true);
6905
+ };
6906
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onMount)(()=>{
6907
+ document.addEventListener("click", onClickOutside);
6908
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onCleanup)(()=>document.removeEventListener("click", onClickOutside));
6909
+ });
6910
+ return {
6911
+ setOpen,
6912
+ open,
6913
+ ref: (el)=>ref = el,
6914
+ toggle,
6915
+ onEnter,
6916
+ onLeave
6917
+ };
6918
+ }
6858
6919
  var Dropdown_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<label tabindex=0>"), Dropdown_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<ul class=dropdown-content role=listbox>"), Dropdown_tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>");
6859
6920
  const Dropdown_classesFn = ({ className, horizontal, vertical, end, hover, open })=>twMerge("dropdown", className, clsx({
6860
6921
  "dropdown-left": "left" === horizontal,
@@ -6865,6 +6926,7 @@ const Dropdown_classesFn = ({ className, horizontal, vertical, end, hover, open
6865
6926
  "dropdown-hover": hover,
6866
6927
  "dropdown-open": open
6867
6928
  }));
6929
+ const DropdownContext = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createContext)(void 0);
6868
6930
  const Dropdown = (props)=>{
6869
6931
  const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
6870
6932
  "children",
@@ -6884,77 +6946,99 @@ const Dropdown = (props)=>{
6884
6946
  "aria-haspopup",
6885
6947
  "aria-labelledby"
6886
6948
  ]);
6887
- const classes = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>twMerge("dropdown", local.class, local.className, clsx({
6949
+ const dropdownCtx = useDropdown(local.hover ? "hover" : "click");
6950
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
6951
+ console.log("Dropdown open state:", dropdownCtx.open());
6952
+ });
6953
+ const classes = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
6954
+ const isOpen = local.open ?? dropdownCtx.open();
6955
+ console.log("Computing dropdown classes, open:", isOpen);
6956
+ return twMerge("dropdown", local.class, local.className, clsx({
6888
6957
  "dropdown-left": "left" === local.horizontal,
6889
6958
  "dropdown-right": "right" === local.horizontal,
6890
6959
  "dropdown-top": "top" === local.vertical,
6891
6960
  "dropdown-bottom": "bottom" === local.vertical,
6892
6961
  "dropdown-end": local.end,
6893
6962
  "dropdown-hover": local.hover,
6894
- "dropdown-open": local.open
6895
- })));
6896
- return (()=>{
6897
- var _el$ = Dropdown_tmpl$3();
6898
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
6899
- get role () {
6900
- return local.item ? "combobox" : "listbox";
6901
- }
6902
- }, others, {
6903
- get ["data-theme"] () {
6904
- return local.dataTheme;
6905
- },
6906
- get ["class"] () {
6907
- return classes();
6908
- },
6909
- get style () {
6910
- return local.style;
6911
- },
6912
- get ["aria-label"] () {
6913
- return local["aria-label"];
6914
- },
6915
- get ["aria-describedby"] () {
6916
- return local["aria-describedby"];
6917
- },
6918
- get ["aria-expanded"] () {
6919
- return local["aria-expanded"] ?? local.open;
6920
- },
6921
- get ["aria-haspopup"] () {
6922
- return true === local["aria-haspopup"] ? "true" : false === local["aria-haspopup"] ? "false" : local["aria-haspopup"] || (local.item ? "listbox" : "true");
6923
- },
6924
- get ["aria-labelledby"] () {
6925
- return local["aria-labelledby"];
6926
- }
6927
- }), false, true);
6928
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
6929
- get when () {
6930
- return local.item;
6931
- },
6932
- get fallback () {
6933
- return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>local.children);
6934
- },
6935
- get children () {
6936
- return [
6937
- (()=>{
6938
- var _el$2 = Dropdown_tmpl$();
6939
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, ()=>local.children);
6940
- return _el$2;
6941
- })(),
6942
- (()=>{
6943
- var _el$3 = Dropdown_tmpl$2();
6944
- (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$3, ()=>local.item);
6945
- return _el$3;
6946
- })()
6947
- ];
6948
- }
6963
+ "dropdown-open": isOpen
6949
6964
  }));
6950
- return _el$;
6951
- })();
6965
+ });
6966
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(DropdownContext.Provider, {
6967
+ value: dropdownCtx,
6968
+ get children () {
6969
+ var _el$ = Dropdown_tmpl$3();
6970
+ var _ref$ = dropdownCtx.ref;
6971
+ "function" == typeof _ref$ ? (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.use)(_ref$, _el$) : dropdownCtx.ref = _el$;
6972
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)({
6973
+ get role () {
6974
+ return local.item ? "combobox" : "listbox";
6975
+ }
6976
+ }, others, {
6977
+ get ["data-theme"] () {
6978
+ return local.dataTheme;
6979
+ },
6980
+ get ["class"] () {
6981
+ return classes();
6982
+ },
6983
+ get style () {
6984
+ return local.style;
6985
+ },
6986
+ get onClick () {
6987
+ return dropdownCtx.toggle;
6988
+ },
6989
+ get onMouseEnter () {
6990
+ return dropdownCtx.onEnter;
6991
+ },
6992
+ get onMouseLeave () {
6993
+ return dropdownCtx.onLeave;
6994
+ },
6995
+ get ["aria-label"] () {
6996
+ return local["aria-label"];
6997
+ },
6998
+ get ["aria-describedby"] () {
6999
+ return local["aria-describedby"];
7000
+ },
7001
+ get ["aria-expanded"] () {
7002
+ return local["aria-expanded"] ?? dropdownCtx.open();
7003
+ },
7004
+ get ["aria-haspopup"] () {
7005
+ return true === local["aria-haspopup"] ? "true" : false === local["aria-haspopup"] ? "false" : local["aria-haspopup"] || (local.item ? "listbox" : "true");
7006
+ },
7007
+ get ["aria-labelledby"] () {
7008
+ return local["aria-labelledby"];
7009
+ }
7010
+ }), false, true);
7011
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
7012
+ get when () {
7013
+ return local.item;
7014
+ },
7015
+ get fallback () {
7016
+ return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>local.children);
7017
+ },
7018
+ get children () {
7019
+ return [
7020
+ (()=>{
7021
+ var _el$2 = Dropdown_tmpl$();
7022
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, ()=>local.children);
7023
+ return _el$2;
7024
+ })(),
7025
+ (()=>{
7026
+ var _el$3 = Dropdown_tmpl$2();
7027
+ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$3, ()=>local.item);
7028
+ return _el$3;
7029
+ })()
7030
+ ];
7031
+ }
7032
+ }));
7033
+ return _el$;
7034
+ }
7035
+ });
6952
7036
  };
6953
7037
  const dropdown_Dropdown = Object.assign(Dropdown, {
6954
7038
  Details: DropdownDetails,
6955
7039
  Toggle: dropdown_DropdownToggle,
6956
7040
  Menu: dropdown_DropdownMenu,
6957
- Item: dropdown_DropdownItem
7041
+ Item: DropdownItem
6958
7042
  });
6959
7043
  const dropdown = dropdown_Dropdown;
6960
7044
  var FileInput_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<input>");
@@ -7241,7 +7325,7 @@ function ValidatedForm(props) {
7241
7325
  "onSubmit",
7242
7326
  "initialValues"
7243
7327
  ]);
7244
- const { form, errors, touched, data, isValid, isSubmitting, setData, setErrors, setWarnings, setTouched } = (0, __WEBPACK_EXTERNAL_MODULE__felte_solid_6a709b1d__.createForm)({
7328
+ const { form, errors, touched, data, isValid, isSubmitting, setData, setErrors, setWarnings, setTouched, reset } = (0, __WEBPACK_EXTERNAL_MODULE__felte_solid_6a709b1d__.createForm)({
7245
7329
  initialValues: local.initialValues,
7246
7330
  extend: [
7247
7331
  (0, __WEBPACK_EXTERNAL_MODULE__felte_validator_zod_bb07151a__.validator)({
@@ -7259,7 +7343,8 @@ function ValidatedForm(props) {
7259
7343
  setData,
7260
7344
  setErrors,
7261
7345
  setWarnings,
7262
- setTouched
7346
+ setTouched,
7347
+ reset
7263
7348
  }));
7264
7349
  return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(FormValidationContext.Provider, {
7265
7350
  get value () {
@@ -10030,7 +10115,7 @@ const TableHeadCell = (props)=>{
10030
10115
  };
10031
10116
  const table_TableHeadCell = TableHeadCell;
10032
10117
  var TableHead_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<thead><tr>");
10033
- const TableHead = (props)=>{
10118
+ const TableHead_TableHead = (props)=>{
10034
10119
  const [local, rest] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
10035
10120
  "children",
10036
10121
  "noCell",
@@ -10063,7 +10148,7 @@ const TableHead = (props)=>{
10063
10148
  return _el$;
10064
10149
  })();
10065
10150
  };
10066
- const table_TableHead = TableHead;
10151
+ const TableHead = TableHead_TableHead;
10067
10152
  var TableBody_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<tbody>");
10068
10153
  const TableBody = (props)=>{
10069
10154
  const [local, rest] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
@@ -10370,7 +10455,7 @@ const Table = (props)=>{
10370
10455
  })();
10371
10456
  };
10372
10457
  const table_Table = Object.assign(Table, {
10373
- Head: table_TableHead,
10458
+ Head: TableHead,
10374
10459
  Body: table_TableBody,
10375
10460
  Row: table_TableRow,
10376
10461
  Footer: table_TableFooter,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pathscale/ui",
3
- "version": "0.0.66",
3
+ "version": "0.0.68",
4
4
  "author": "pathscale",
5
5
  "repository": {
6
6
  "type": "git",