@osdk/react-components 0.2.0-beta.17 → 0.2.0-beta.19

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 (133) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +86 -0
  3. package/build/browser/action-form/ActionForm.js +109 -0
  4. package/build/browser/action-form/ActionForm.js.map +1 -0
  5. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  6. package/build/browser/action-form/BaseForm.js +74 -0
  7. package/build/browser/action-form/BaseForm.js.map +1 -0
  8. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  9. package/build/browser/action-form/fields/FieldBridge.js +45 -0
  10. package/build/browser/action-form/fields/FieldBridge.js.map +1 -0
  11. package/build/browser/action-form/fields/FormFieldRenderer.js +68 -0
  12. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -0
  13. package/build/browser/action-form/fields/TextInputField.js +38 -0
  14. package/build/browser/action-form/fields/TextInputField.js.map +1 -0
  15. package/build/browser/action-form/utils/coerceFieldValue.js +93 -0
  16. package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -0
  17. package/build/browser/action-form/utils/getDefaultFieldComponent.js +56 -0
  18. package/build/browser/action-form/utils/getDefaultFieldComponent.js.map +1 -0
  19. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +33 -0
  20. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  21. package/build/browser/filter-list/base/BaseFilterList.js +23 -11
  22. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -1
  23. package/build/browser/filter-list/base/FilterIcons.js +48 -13
  24. package/build/browser/filter-list/base/FilterIcons.js.map +1 -1
  25. package/build/browser/filter-list/base/FilterList.module.css +57 -13
  26. package/build/browser/filter-list/base/FilterList.module.css.js +5 -2
  27. package/build/browser/filter-list/base/FilterListHeader.js +10 -15
  28. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
  29. package/build/browser/filter-list/base/FilterListHeader.module.css +13 -41
  30. package/build/browser/filter-list/base/FilterListHeader.module.css.js +1 -4
  31. package/build/browser/filter-list/hooks/useFilterListState.js +30 -11
  32. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  33. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +1 -1
  34. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  35. package/build/browser/filter-list/utils/filterStateToWhereClause.js +120 -105
  36. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  37. package/build/browser/filter-list/utils/getFilterKey.js +1 -1
  38. package/build/browser/filter-list/utils/getFilterKey.js.map +1 -1
  39. package/build/browser/filter-list/utils/getFilterLabel.js +1 -1
  40. package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -1
  41. package/build/browser/object-table/TableHeader.js +4 -1
  42. package/build/browser/object-table/TableHeader.js.map +1 -1
  43. package/build/browser/object-table/TableHeader.module.css +2 -1
  44. package/build/browser/object-table/TableHeader.module.css.js +1 -0
  45. package/build/browser/{filter-list/utils → shared}/assertUnreachable.js +1 -1
  46. package/build/browser/{filter-list/utils → shared}/assertUnreachable.js.map +1 -1
  47. package/build/browser/shared/typedMemo.js +25 -0
  48. package/build/browser/shared/typedMemo.js.map +1 -0
  49. package/build/browser/styles.css +72 -55
  50. package/build/cjs/public/experimental.cjs +293 -244
  51. package/build/cjs/public/experimental.cjs.map +1 -1
  52. package/build/cjs/public/experimental.css +64 -47
  53. package/build/cjs/public/experimental.css.map +1 -1
  54. package/build/esm/action-form/ActionForm.js +109 -0
  55. package/build/esm/action-form/ActionForm.js.map +1 -0
  56. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  57. package/build/esm/action-form/BaseForm.js +74 -0
  58. package/build/esm/action-form/BaseForm.js.map +1 -0
  59. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  60. package/build/esm/action-form/fields/FieldBridge.js +45 -0
  61. package/build/esm/action-form/fields/FieldBridge.js.map +1 -0
  62. package/build/esm/action-form/fields/FormFieldRenderer.js +68 -0
  63. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -0
  64. package/build/esm/action-form/fields/TextInputField.js +38 -0
  65. package/build/esm/action-form/fields/TextInputField.js.map +1 -0
  66. package/build/esm/action-form/utils/coerceFieldValue.js +93 -0
  67. package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -0
  68. package/build/esm/action-form/utils/getDefaultFieldComponent.js +56 -0
  69. package/build/esm/action-form/utils/getDefaultFieldComponent.js.map +1 -0
  70. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +33 -0
  71. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  72. package/build/esm/filter-list/base/BaseFilterList.js +23 -11
  73. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -1
  74. package/build/esm/filter-list/base/FilterIcons.js +48 -13
  75. package/build/esm/filter-list/base/FilterIcons.js.map +1 -1
  76. package/build/esm/filter-list/base/FilterList.module.css +57 -13
  77. package/build/esm/filter-list/base/FilterListHeader.js +10 -15
  78. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
  79. package/build/esm/filter-list/base/FilterListHeader.module.css +13 -41
  80. package/build/esm/filter-list/hooks/useFilterListState.js +30 -11
  81. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  82. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +1 -1
  83. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  84. package/build/esm/filter-list/utils/filterStateToWhereClause.js +120 -105
  85. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  86. package/build/esm/filter-list/utils/getFilterKey.js +1 -1
  87. package/build/esm/filter-list/utils/getFilterKey.js.map +1 -1
  88. package/build/esm/filter-list/utils/getFilterLabel.js +1 -1
  89. package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -1
  90. package/build/esm/object-table/TableHeader.js +4 -1
  91. package/build/esm/object-table/TableHeader.js.map +1 -1
  92. package/build/esm/object-table/TableHeader.module.css +2 -1
  93. package/build/esm/{filter-list/utils → shared}/assertUnreachable.js +1 -1
  94. package/build/esm/{filter-list/utils → shared}/assertUnreachable.js.map +1 -1
  95. package/build/esm/shared/typedMemo.js +25 -0
  96. package/build/esm/shared/typedMemo.js.map +1 -0
  97. package/build/types/action-form/ActionForm.d.ts +4 -0
  98. package/build/types/action-form/ActionForm.d.ts.map +1 -0
  99. package/build/types/action-form/ActionFormApi.d.ts +48 -32
  100. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  101. package/build/types/action-form/BaseForm.d.ts +3 -0
  102. package/build/types/action-form/BaseForm.d.ts.map +1 -0
  103. package/build/types/action-form/FormFieldApi.d.ts +58 -18
  104. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  105. package/build/types/action-form/fields/FieldBridge.d.ts +9 -0
  106. package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -0
  107. package/build/types/action-form/fields/FormFieldRenderer.d.ts +8 -0
  108. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -0
  109. package/build/types/action-form/fields/TextInputField.d.ts +3 -0
  110. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -0
  111. package/build/types/action-form/utils/coerceFieldValue.d.ts +10 -0
  112. package/build/types/action-form/utils/coerceFieldValue.d.ts.map +1 -0
  113. package/build/types/action-form/utils/getDefaultFieldComponent.d.ts +6 -0
  114. package/build/types/action-form/utils/getDefaultFieldComponent.d.ts.map +1 -0
  115. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts +6 -0
  116. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -0
  117. package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -1
  118. package/build/types/filter-list/base/FilterIcons.d.ts +7 -0
  119. package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -1
  120. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
  121. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
  122. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
  123. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +5 -1
  124. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
  125. package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -1
  126. package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -1
  127. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  128. package/build/types/shared/assertUnreachable.d.ts.map +1 -0
  129. package/build/types/shared/typedMemo.d.ts +6 -0
  130. package/build/types/shared/typedMemo.d.ts.map +1 -0
  131. package/package.json +7 -6
  132. package/build/types/filter-list/utils/assertUnreachable.d.ts.map +0 -1
  133. /package/build/types/{filter-list/utils → shared}/assertUnreachable.d.ts +0 -0
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Copyright 2026 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React from "react";
18
+
19
+ /**
20
+ * TODO: Delete this once `React.memo` is typed to not lose generics to `unknown`
21
+ *
22
+ * Context: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37087
23
+ */
24
+ export const typedReactMemo = React.memo;
25
+ //# sourceMappingURL=typedMemo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedMemo.js","names":["React","typedReactMemo","memo"],"sources":["typedMemo.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\n\n/**\n * TODO: Delete this once `React.memo` is typed to not lose generics to `unknown`\n *\n * Context: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37087\n */\nexport const typedReactMemo: <T>(component: T) => T = React.memo;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;;AAEzB;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAsC,GAAGD,KAAK,CAACE,IAAI","ignoreList":[]}
@@ -910,6 +910,27 @@
910
910
  .FilterList-module__filterList___wmzCNbkH {
911
911
  display: flex;
912
912
  flex-direction: column;
913
+ height: 100%;
914
+ }
915
+
916
+ .FilterList-module__filterListCollapsed___CGrK9txF {
917
+ display: flex;
918
+ flex-direction: column;
919
+ align-items: center;
920
+ width: var(--osdk-filter-list-collapsed-width);
921
+ height: 100%;
922
+ background: var(--osdk-filter-list-bg);
923
+ border: var(--osdk-filter-list-border);
924
+ border-radius: var(--osdk-filter-list-border-radius);
925
+ padding: var(--osdk-surface-spacing) 0;
926
+ gap: var(--osdk-surface-spacing);
927
+ }
928
+
929
+ .FilterList-module__expandedContent___aEk2i2At {
930
+ display: flex;
931
+ flex-direction: column;
932
+ height: 100%;
933
+ overflow-y: auto;
913
934
  background: var(--osdk-filter-list-bg);
914
935
  border: var(--osdk-filter-list-border);
915
936
  border-radius: var(--osdk-filter-list-border-radius);
@@ -917,25 +938,48 @@
917
938
  gap: var(--osdk-filter-list-gap);
918
939
  }
919
940
 
920
- .FilterList-module__contentWrapper___Y8k76Dtw {
921
- display: grid;
922
- grid-template-rows: 1fr;
923
- transition: grid-template-rows var(--osdk-filter-list-collapse-transition);
941
+ .FilterList-module__hiddenContent___PHKe-yWc {
942
+ display: none;
943
+ }
944
+
945
+ .FilterList-module__expandButton___-QlY8-ot {
946
+ display: flex;
947
+ align-items: center;
948
+ justify-content: center;
949
+ padding: var(--osdk-filter-header-button-padding);
950
+ border: none;
951
+ background: var(--osdk-filter-header-button-bg);
952
+ cursor: pointer;
953
+ border-radius: var(--osdk-filter-header-button-border-radius);
954
+ color: var(--osdk-filter-header-collapse-icon-color);
955
+ transition: background-color var(--osdk-filter-header-button-transition);
956
+
957
+ &:hover {
958
+ background: var(--osdk-filter-header-button-bg-hover);
959
+ }
960
+
961
+ &:active {
962
+ background: var(--osdk-filter-header-button-bg-active);
963
+ }
964
+
965
+ &:focus-visible {
966
+ outline: var(--osdk-filter-input-focus-outline-width) solid var(--osdk-filter-input-focus-outline-color);
967
+ outline-offset: var(--osdk-filter-input-focus-outline-offset);
968
+ }
924
969
 
925
970
  @media (prefers-reduced-motion: reduce) {
926
971
  transition: none;
927
972
  }
928
973
  }
929
974
 
930
- .FilterList-module__contentWrapper___Y8k76Dtw[data-collapsed="true"] {
931
- grid-template-rows: 0fr;
932
- }
933
-
934
- .FilterList-module__contentInner___5St4fWIE {
935
- overflow: hidden;
936
- display: flex;
937
- flex-direction: column;
938
- gap: var(--osdk-filter-list-gap);
975
+ .FilterList-module__collapsedLabel___QA0UtRts {
976
+ writing-mode: vertical-rl;
977
+ transform: rotate(180deg);
978
+ font-family: var(--osdk-filter-list-collapsed-label-font-family);
979
+ font-size: var(--osdk-filter-list-collapsed-label-font-size);
980
+ color: var(--osdk-filter-list-collapsed-label-color);
981
+ font-weight: var(--osdk-filter-header-font-weight);
982
+ user-select: none;
939
983
  }
940
984
 
941
985
  .FilterList-module__addButtonContainer___kq300FEV {
@@ -1069,6 +1113,16 @@
1069
1113
  font-variant-numeric: tabular-nums;
1070
1114
  }
1071
1115
 
1116
+ .FilterListHeader-module__actions___YZA7zmGc {
1117
+ display: flex;
1118
+ align-items: center;
1119
+ gap: var(--osdk-surface-spacing);
1120
+
1121
+ &:empty {
1122
+ display: none;
1123
+ }
1124
+ }
1125
+
1072
1126
  .FilterListHeader-module__collapseButton___N1-sj3B3 {
1073
1127
  display: flex;
1074
1128
  align-items: center;
@@ -1079,6 +1133,7 @@
1079
1133
  cursor: pointer;
1080
1134
  border-radius: var(--osdk-filter-header-button-border-radius);
1081
1135
  transition: background-color var(--osdk-filter-header-button-transition);
1136
+ color: var(--osdk-filter-header-collapse-icon-color);
1082
1137
 
1083
1138
  &:hover {
1084
1139
  background: var(--osdk-filter-header-button-bg-hover);
@@ -1098,49 +1153,10 @@
1098
1153
  }
1099
1154
  }
1100
1155
 
1101
- .FilterListHeader-module__collapseIcon___P4YOgKig {
1102
- display: block;
1103
- width: var(--osdk-filter-header-collapse-icon-size);
1104
- height: var(--osdk-filter-header-collapse-icon-size);
1105
- border-left: var(--osdk-filter-header-collapse-icon-border-width) solid var(--osdk-filter-header-collapse-icon-color);
1106
- border-bottom: var(--osdk-filter-header-collapse-icon-border-width) solid var(--osdk-filter-header-collapse-icon-color);
1107
- transform: rotate(-45deg);
1108
- transition: transform var(--osdk-filter-header-button-transition);
1109
-
1110
- @media (prefers-reduced-motion: reduce) {
1111
- transition: none;
1112
- }
1113
- }
1114
-
1115
- .FilterListHeader-module__collapsed___RKg0zje4 {
1116
- transform: rotate(-135deg);
1117
- }
1118
-
1119
- .FilterListHeader-module__headerContentWrapper___Jb48M86S {
1120
- display: grid;
1121
- grid-template-columns: 1fr;
1122
- overflow: hidden;
1123
- transition: grid-template-columns var(--osdk-filter-list-collapse-transition);
1124
-
1125
- @media (prefers-reduced-motion: reduce) {
1126
- transition: none;
1127
- }
1128
- }
1129
-
1130
- .FilterListHeader-module__headerContentWrapper___Jb48M86S[data-collapsed="true"] {
1131
- grid-template-columns: 0fr;
1132
- }
1133
-
1134
- .FilterListHeader-module__headerContentInner___d2-TGJNm {
1156
+ .FilterListHeader-module__resetButton___jLcUypov {
1135
1157
  display: flex;
1136
1158
  align-items: center;
1137
- justify-content: space-between;
1138
- flex: 1;
1139
- overflow: hidden;
1140
- min-width: 0;
1141
- }
1142
-
1143
- .FilterListHeader-module__resetButton___jLcUypov {
1159
+ gap: calc(var(--osdk-surface-spacing) * 0.5);
1144
1160
  font-family: var(--osdk-filter-header-font-family);
1145
1161
  font-size: var(--osdk-filter-header-reset-font-size);
1146
1162
  color: var(--osdk-filter-header-reset-color);
@@ -3072,8 +3088,9 @@
3072
3088
  border-left: var(--osdk-table-pinned-column-border);
3073
3089
  }
3074
3090
 
3075
- .TableHeader-module__osdkTableHeaderCell___iS9lGU8Z:has([role="checkbox"]) {
3091
+ .TableHeader-module__osdkTableSelectionHeaderCell___9Zt7O2Pz {
3076
3092
  justify-content: center;
3093
+ padding: 0;
3077
3094
  }
3078
3095
 
3079
3096
  .TableHeader-module__osdkTableHeaderResizer___qpjGLncF {