@cratis/components 4.23.1 → 4.25.0

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 (346) hide show
  1. package/compat-manifest.json +11 -11
  2. package/dist/esm/Common/CratisComponentsProvider.d.ts +2 -0
  3. package/dist/esm/Common/CratisComponentsProvider.d.ts.map +1 -1
  4. package/dist/esm/Common/CratisComponentsProvider.js.map +1 -1
  5. package/dist/esm/ConfigurationEditor/ConfigurationDestination.d.ts +13 -0
  6. package/dist/esm/ConfigurationEditor/ConfigurationDestination.d.ts.map +1 -0
  7. package/dist/esm/ConfigurationEditor/ConfigurationDestination.js +4 -0
  8. package/dist/esm/ConfigurationEditor/ConfigurationDestination.js.map +1 -0
  9. package/dist/esm/ConfigurationEditor/ConfigurationEditor.d.ts +27 -0
  10. package/dist/esm/ConfigurationEditor/ConfigurationEditor.d.ts.map +1 -0
  11. package/dist/esm/ConfigurationEditor/ConfigurationEditor.js +13 -0
  12. package/dist/esm/ConfigurationEditor/ConfigurationEditor.js.map +1 -0
  13. package/dist/esm/ConfigurationEditor/ConfigurationEditorPartAttributes.d.ts +6 -0
  14. package/dist/esm/ConfigurationEditor/ConfigurationEditorPartAttributes.d.ts.map +1 -0
  15. package/dist/esm/ConfigurationEditor/ConfigurationEditorPartAttributes.js +4 -0
  16. package/dist/esm/ConfigurationEditor/ConfigurationEditorPartAttributes.js.map +1 -0
  17. package/dist/esm/ConfigurationEditor/ConfigurationEditorProvider.d.ts +28 -0
  18. package/dist/esm/ConfigurationEditor/ConfigurationEditorProvider.d.ts.map +1 -0
  19. package/dist/esm/ConfigurationEditor/ConfigurationEditorProvider.js +16 -0
  20. package/dist/esm/ConfigurationEditor/ConfigurationEditorProvider.js.map +1 -0
  21. package/dist/esm/ConfigurationEditor/ConfigurationEditorRenderProps.d.ts +20 -0
  22. package/dist/esm/ConfigurationEditor/ConfigurationEditorRenderProps.d.ts.map +1 -0
  23. package/dist/esm/ConfigurationEditor/ConfigurationEditorRenderProps.js +4 -0
  24. package/dist/esm/ConfigurationEditor/ConfigurationEditorRenderProps.js.map +1 -0
  25. package/dist/esm/ConfigurationEditor/ConfigurationEditorRenderer.d.ts +5 -0
  26. package/dist/esm/ConfigurationEditor/ConfigurationEditorRenderer.d.ts.map +1 -0
  27. package/dist/esm/ConfigurationEditor/ConfigurationEditorRenderer.js +4 -0
  28. package/dist/esm/ConfigurationEditor/ConfigurationEditorRenderer.js.map +1 -0
  29. package/dist/esm/ConfigurationEditor/ConfigurationIconReference.d.ts +17 -0
  30. package/dist/esm/ConfigurationEditor/ConfigurationIconReference.d.ts.map +1 -0
  31. package/dist/esm/ConfigurationEditor/ConfigurationIconReference.js +4 -0
  32. package/dist/esm/ConfigurationEditor/ConfigurationIconReference.js.map +1 -0
  33. package/dist/esm/ConfigurationEditor/OrderedItem.d.ts +16 -0
  34. package/dist/esm/ConfigurationEditor/OrderedItem.d.ts.map +1 -0
  35. package/dist/esm/ConfigurationEditor/OrderedItem.js +4 -0
  36. package/dist/esm/ConfigurationEditor/OrderedItem.js.map +1 -0
  37. package/dist/esm/ConfigurationEditor/OrderedItemCapabilities.d.ts +23 -0
  38. package/dist/esm/ConfigurationEditor/OrderedItemCapabilities.d.ts.map +1 -0
  39. package/dist/esm/ConfigurationEditor/OrderedItemCapabilities.js +4 -0
  40. package/dist/esm/ConfigurationEditor/OrderedItemCapabilities.js.map +1 -0
  41. package/dist/esm/ConfigurationEditor/OrderedItemDestinationField.d.ts +22 -0
  42. package/dist/esm/ConfigurationEditor/OrderedItemDestinationField.d.ts.map +1 -0
  43. package/dist/esm/ConfigurationEditor/OrderedItemDestinationField.js +23 -0
  44. package/dist/esm/ConfigurationEditor/OrderedItemDestinationField.js.map +1 -0
  45. package/dist/esm/ConfigurationEditor/OrderedItemEditor.d.ts +74 -0
  46. package/dist/esm/ConfigurationEditor/OrderedItemEditor.d.ts.map +1 -0
  47. package/dist/esm/ConfigurationEditor/OrderedItemEditor.js +188 -0
  48. package/dist/esm/ConfigurationEditor/OrderedItemEditor.js.map +1 -0
  49. package/dist/esm/ConfigurationEditor/OrderedItemEditorParts.d.ts +43 -0
  50. package/dist/esm/ConfigurationEditor/OrderedItemEditorParts.d.ts.map +1 -0
  51. package/dist/esm/ConfigurationEditor/OrderedItemEditorParts.js +4 -0
  52. package/dist/esm/ConfigurationEditor/OrderedItemEditorParts.js.map +1 -0
  53. package/dist/esm/ConfigurationEditor/OrderedItemField.d.ts +3 -0
  54. package/dist/esm/ConfigurationEditor/OrderedItemField.d.ts.map +1 -0
  55. package/dist/esm/ConfigurationEditor/OrderedItemField.js +4 -0
  56. package/dist/esm/ConfigurationEditor/OrderedItemField.js.map +1 -0
  57. package/dist/esm/ConfigurationEditor/OrderedItemFieldAccess.d.ts +9 -0
  58. package/dist/esm/ConfigurationEditor/OrderedItemFieldAccess.d.ts.map +1 -0
  59. package/dist/esm/ConfigurationEditor/OrderedItemFieldAccess.js +4 -0
  60. package/dist/esm/ConfigurationEditor/OrderedItemFieldAccess.js.map +1 -0
  61. package/dist/esm/ConfigurationEditor/OrderedItemIconField.d.ts +32 -0
  62. package/dist/esm/ConfigurationEditor/OrderedItemIconField.d.ts.map +1 -0
  63. package/dist/esm/ConfigurationEditor/OrderedItemIconField.js +26 -0
  64. package/dist/esm/ConfigurationEditor/OrderedItemIconField.js.map +1 -0
  65. package/dist/esm/ConfigurationEditor/OrderedItemIconFieldProps.d.ts +26 -0
  66. package/dist/esm/ConfigurationEditor/OrderedItemIconFieldProps.d.ts.map +1 -0
  67. package/dist/esm/ConfigurationEditor/OrderedItemIconFieldProps.js +4 -0
  68. package/dist/esm/ConfigurationEditor/OrderedItemIconFieldProps.js.map +1 -0
  69. package/dist/esm/ConfigurationEditor/OrderedItemLabels.d.ts +47 -0
  70. package/dist/esm/ConfigurationEditor/OrderedItemLabels.d.ts.map +1 -0
  71. package/dist/esm/ConfigurationEditor/OrderedItemLabels.js +4 -0
  72. package/dist/esm/ConfigurationEditor/OrderedItemLabels.js.map +1 -0
  73. package/dist/esm/ConfigurationEditor/OrderedItemOperation.d.ts +3 -0
  74. package/dist/esm/ConfigurationEditor/OrderedItemOperation.d.ts.map +1 -0
  75. package/dist/esm/ConfigurationEditor/OrderedItemOperation.js +4 -0
  76. package/dist/esm/ConfigurationEditor/OrderedItemOperation.js.map +1 -0
  77. package/dist/esm/ConfigurationEditor/OrderedItemProposal.d.ts +45 -0
  78. package/dist/esm/ConfigurationEditor/OrderedItemProposal.d.ts.map +1 -0
  79. package/dist/esm/ConfigurationEditor/OrderedItemProposal.js +4 -0
  80. package/dist/esm/ConfigurationEditor/OrderedItemProposal.js.map +1 -0
  81. package/dist/esm/ConfigurationEditor/OrderedItemRow.d.ts +5 -0
  82. package/dist/esm/ConfigurationEditor/OrderedItemRow.d.ts.map +1 -0
  83. package/dist/esm/ConfigurationEditor/OrderedItemRow.js +59 -0
  84. package/dist/esm/ConfigurationEditor/OrderedItemRow.js.map +1 -0
  85. package/dist/esm/ConfigurationEditor/OrderedItemRowProps.d.ts +43 -0
  86. package/dist/esm/ConfigurationEditor/OrderedItemRowProps.d.ts.map +1 -0
  87. package/dist/esm/ConfigurationEditor/OrderedItemRowProps.js +4 -0
  88. package/dist/esm/ConfigurationEditor/OrderedItemRowProps.js.map +1 -0
  89. package/dist/esm/ConfigurationEditor/OrderedItemValidation.d.ts +7 -0
  90. package/dist/esm/ConfigurationEditor/OrderedItemValidation.d.ts.map +1 -0
  91. package/dist/esm/ConfigurationEditor/OrderedItemValidation.js +4 -0
  92. package/dist/esm/ConfigurationEditor/OrderedItemValidation.js.map +1 -0
  93. package/dist/esm/ConfigurationEditor/PropertyChangeProposal.d.ts +15 -0
  94. package/dist/esm/ConfigurationEditor/PropertyChangeProposal.d.ts.map +1 -0
  95. package/dist/esm/ConfigurationEditor/PropertyChangeProposal.js +4 -0
  96. package/dist/esm/ConfigurationEditor/PropertyChangeProposal.js.map +1 -0
  97. package/dist/esm/ConfigurationEditor/PropertyChoice.d.ts +8 -0
  98. package/dist/esm/ConfigurationEditor/PropertyChoice.d.ts.map +1 -0
  99. package/dist/esm/ConfigurationEditor/PropertyChoice.js +4 -0
  100. package/dist/esm/ConfigurationEditor/PropertyChoice.js.map +1 -0
  101. package/dist/esm/ConfigurationEditor/PropertyControl.d.ts +17 -0
  102. package/dist/esm/ConfigurationEditor/PropertyControl.d.ts.map +1 -0
  103. package/dist/esm/ConfigurationEditor/PropertyControl.js +88 -0
  104. package/dist/esm/ConfigurationEditor/PropertyControl.js.map +1 -0
  105. package/dist/esm/ConfigurationEditor/PropertyControls.d.ts +40 -0
  106. package/dist/esm/ConfigurationEditor/PropertyControls.d.ts.map +1 -0
  107. package/dist/esm/ConfigurationEditor/PropertyControls.js +41 -0
  108. package/dist/esm/ConfigurationEditor/PropertyControls.js.map +1 -0
  109. package/dist/esm/ConfigurationEditor/PropertyControlsLabels.d.ts +18 -0
  110. package/dist/esm/ConfigurationEditor/PropertyControlsLabels.d.ts.map +1 -0
  111. package/dist/esm/ConfigurationEditor/PropertyControlsLabels.js +4 -0
  112. package/dist/esm/ConfigurationEditor/PropertyControlsLabels.js.map +1 -0
  113. package/dist/esm/ConfigurationEditor/PropertyControlsParts.d.ts +31 -0
  114. package/dist/esm/ConfigurationEditor/PropertyControlsParts.d.ts.map +1 -0
  115. package/dist/esm/ConfigurationEditor/PropertyControlsParts.js +4 -0
  116. package/dist/esm/ConfigurationEditor/PropertyControlsParts.js.map +1 -0
  117. package/dist/esm/ConfigurationEditor/PropertyDescriptor.d.ts +55 -0
  118. package/dist/esm/ConfigurationEditor/PropertyDescriptor.d.ts.map +1 -0
  119. package/dist/esm/ConfigurationEditor/PropertyDescriptor.js +4 -0
  120. package/dist/esm/ConfigurationEditor/PropertyDescriptor.js.map +1 -0
  121. package/dist/esm/ConfigurationEditor/PropertyGroup.d.ts +16 -0
  122. package/dist/esm/ConfigurationEditor/PropertyGroup.d.ts.map +1 -0
  123. package/dist/esm/ConfigurationEditor/PropertyGroup.js +4 -0
  124. package/dist/esm/ConfigurationEditor/PropertyGroup.js.map +1 -0
  125. package/dist/esm/ConfigurationEditor/defaultOrderedItemLabels.d.ts +4 -0
  126. package/dist/esm/ConfigurationEditor/defaultOrderedItemLabels.d.ts.map +1 -0
  127. package/dist/esm/ConfigurationEditor/defaultOrderedItemLabels.js +25 -0
  128. package/dist/esm/ConfigurationEditor/defaultOrderedItemLabels.js.map +1 -0
  129. package/dist/esm/ConfigurationEditor/defaultPropertyControlsLabels.d.ts +4 -0
  130. package/dist/esm/ConfigurationEditor/defaultPropertyControlsLabels.d.ts.map +1 -0
  131. package/dist/esm/ConfigurationEditor/defaultPropertyControlsLabels.js +12 -0
  132. package/dist/esm/ConfigurationEditor/defaultPropertyControlsLabels.js.map +1 -0
  133. package/dist/esm/ConfigurationEditor/index.d.ts +32 -0
  134. package/dist/esm/ConfigurationEditor/index.d.ts.map +1 -0
  135. package/dist/esm/ConfigurationEditor/index.js +7 -0
  136. package/dist/esm/ConfigurationEditor/index.js.map +1 -0
  137. package/dist/esm/ConfigurationEditor/moveOrderedItem.d.ts +5 -0
  138. package/dist/esm/ConfigurationEditor/moveOrderedItem.d.ts.map +1 -0
  139. package/dist/esm/ConfigurationEditor/moveOrderedItem.js +9 -0
  140. package/dist/esm/ConfigurationEditor/moveOrderedItem.js.map +1 -0
  141. package/dist/esm/ConfigurationEditor/resolveOrderedItemDropIndex.d.ts +10 -0
  142. package/dist/esm/ConfigurationEditor/resolveOrderedItemDropIndex.d.ts.map +1 -0
  143. package/dist/esm/ConfigurationEditor/resolveOrderedItemDropIndex.js +7 -0
  144. package/dist/esm/ConfigurationEditor/resolveOrderedItemDropIndex.js.map +1 -0
  145. package/dist/esm/ConfigurationEditor/resolveOrderedItemFieldAccess.d.ts +6 -0
  146. package/dist/esm/ConfigurationEditor/resolveOrderedItemFieldAccess.d.ts.map +1 -0
  147. package/dist/esm/ConfigurationEditor/resolveOrderedItemFieldAccess.js +4 -0
  148. package/dist/esm/ConfigurationEditor/resolveOrderedItemFieldAccess.js.map +1 -0
  149. package/dist/esm/ConfigurationEditor/resolveOrderedItemLabels.d.ts +4 -0
  150. package/dist/esm/ConfigurationEditor/resolveOrderedItemLabels.d.ts.map +1 -0
  151. package/dist/esm/ConfigurationEditor/resolveOrderedItemLabels.js +13 -0
  152. package/dist/esm/ConfigurationEditor/resolveOrderedItemLabels.js.map +1 -0
  153. package/dist/esm/ConfigurationEditor/validateOrderedItem.d.ts +18 -0
  154. package/dist/esm/ConfigurationEditor/validateOrderedItem.d.ts.map +1 -0
  155. package/dist/esm/ConfigurationEditor/validateOrderedItem.js +21 -0
  156. package/dist/esm/ConfigurationEditor/validateOrderedItem.js.map +1 -0
  157. package/dist/esm/IconPicker/IconPicker.d.ts +57 -0
  158. package/dist/esm/IconPicker/IconPicker.d.ts.map +1 -0
  159. package/dist/esm/IconPicker/IconPicker.js +59 -0
  160. package/dist/esm/IconPicker/IconPicker.js.map +1 -0
  161. package/dist/esm/IconPicker/IconPickerAllowed.d.ts +8 -0
  162. package/dist/esm/IconPicker/IconPickerAllowed.d.ts.map +1 -0
  163. package/dist/esm/IconPicker/IconPickerAllowed.js +4 -0
  164. package/dist/esm/IconPicker/IconPickerAllowed.js.map +1 -0
  165. package/dist/esm/IconPicker/IconPickerBrowser.d.ts +32 -0
  166. package/dist/esm/IconPicker/IconPickerBrowser.d.ts.map +1 -0
  167. package/dist/esm/IconPicker/IconPickerBrowser.js +4 -0
  168. package/dist/esm/IconPicker/IconPickerBrowser.js.map +1 -0
  169. package/dist/esm/IconPicker/IconPickerBrowserGroup.d.ts +9 -0
  170. package/dist/esm/IconPicker/IconPickerBrowserGroup.d.ts.map +1 -0
  171. package/dist/esm/IconPicker/IconPickerBrowserGroup.js +4 -0
  172. package/dist/esm/IconPicker/IconPickerBrowserGroup.js.map +1 -0
  173. package/dist/esm/IconPicker/IconPickerCatalog.d.ts +19 -0
  174. package/dist/esm/IconPicker/IconPickerCatalog.d.ts.map +1 -0
  175. package/dist/esm/IconPicker/IconPickerCatalog.js +4 -0
  176. package/dist/esm/IconPicker/IconPickerCatalog.js.map +1 -0
  177. package/dist/esm/IconPicker/IconPickerCatalogStatus.d.ts +3 -0
  178. package/dist/esm/IconPicker/IconPickerCatalogStatus.d.ts.map +1 -0
  179. package/dist/esm/IconPicker/IconPickerCatalogStatus.js +4 -0
  180. package/dist/esm/IconPicker/IconPickerCatalogStatus.js.map +1 -0
  181. package/dist/esm/IconPicker/IconPickerCategoryFilter.d.ts +25 -0
  182. package/dist/esm/IconPicker/IconPickerCategoryFilter.d.ts.map +1 -0
  183. package/dist/esm/IconPicker/IconPickerCategoryFilter.js +23 -0
  184. package/dist/esm/IconPicker/IconPickerCategoryFilter.js.map +1 -0
  185. package/dist/esm/IconPicker/IconPickerEntry.d.ts +25 -0
  186. package/dist/esm/IconPicker/IconPickerEntry.d.ts.map +1 -0
  187. package/dist/esm/IconPicker/IconPickerEntry.js +4 -0
  188. package/dist/esm/IconPicker/IconPickerEntry.js.map +1 -0
  189. package/dist/esm/IconPicker/IconPickerGrid.d.ts +29 -0
  190. package/dist/esm/IconPicker/IconPickerGrid.d.ts.map +1 -0
  191. package/dist/esm/IconPicker/IconPickerGrid.js +24 -0
  192. package/dist/esm/IconPicker/IconPickerGrid.js.map +1 -0
  193. package/dist/esm/IconPicker/IconPickerIndexEntry.d.ts +11 -0
  194. package/dist/esm/IconPicker/IconPickerIndexEntry.d.ts.map +1 -0
  195. package/dist/esm/IconPicker/IconPickerIndexEntry.js +4 -0
  196. package/dist/esm/IconPicker/IconPickerIndexEntry.js.map +1 -0
  197. package/dist/esm/IconPicker/IconPickerLabels.d.ts +76 -0
  198. package/dist/esm/IconPicker/IconPickerLabels.d.ts.map +1 -0
  199. package/dist/esm/IconPicker/IconPickerLabels.js +4 -0
  200. package/dist/esm/IconPicker/IconPickerLabels.js.map +1 -0
  201. package/dist/esm/IconPicker/IconPickerLibrary.d.ts +12 -0
  202. package/dist/esm/IconPicker/IconPickerLibrary.d.ts.map +1 -0
  203. package/dist/esm/IconPicker/IconPickerLibrary.js +4 -0
  204. package/dist/esm/IconPicker/IconPickerLibrary.js.map +1 -0
  205. package/dist/esm/IconPicker/IconPickerLibraryFilter.d.ts +20 -0
  206. package/dist/esm/IconPicker/IconPickerLibraryFilter.d.ts.map +1 -0
  207. package/dist/esm/IconPicker/IconPickerLibraryFilter.js +7 -0
  208. package/dist/esm/IconPicker/IconPickerLibraryFilter.js.map +1 -0
  209. package/dist/esm/IconPicker/IconPickerParts.d.ts +65 -0
  210. package/dist/esm/IconPicker/IconPickerParts.d.ts.map +1 -0
  211. package/dist/esm/IconPicker/IconPickerParts.js +4 -0
  212. package/dist/esm/IconPicker/IconPickerParts.js.map +1 -0
  213. package/dist/esm/IconPicker/IconPickerPlacement.d.ts +3 -0
  214. package/dist/esm/IconPicker/IconPickerPlacement.d.ts.map +1 -0
  215. package/dist/esm/IconPicker/IconPickerPlacement.js +4 -0
  216. package/dist/esm/IconPicker/IconPickerPlacement.js.map +1 -0
  217. package/dist/esm/IconPicker/IconPickerPopout.d.ts +32 -0
  218. package/dist/esm/IconPicker/IconPickerPopout.d.ts.map +1 -0
  219. package/dist/esm/IconPicker/IconPickerPopout.js +41 -0
  220. package/dist/esm/IconPicker/IconPickerPopout.js.map +1 -0
  221. package/dist/esm/IconPicker/IconPickerResults.d.ts +31 -0
  222. package/dist/esm/IconPicker/IconPickerResults.d.ts.map +1 -0
  223. package/dist/esm/IconPicker/IconPickerResults.js +21 -0
  224. package/dist/esm/IconPicker/IconPickerResults.js.map +1 -0
  225. package/dist/esm/IconPicker/IconPickerSearch.d.ts +21 -0
  226. package/dist/esm/IconPicker/IconPickerSearch.d.ts.map +1 -0
  227. package/dist/esm/IconPicker/IconPickerSearch.js +21 -0
  228. package/dist/esm/IconPicker/IconPickerSearch.js.map +1 -0
  229. package/dist/esm/IconPicker/IconPickerSummary.d.ts +12 -0
  230. package/dist/esm/IconPicker/IconPickerSummary.d.ts.map +1 -0
  231. package/dist/esm/IconPicker/IconPickerSummary.js +4 -0
  232. package/dist/esm/IconPicker/IconPickerSummary.js.map +1 -0
  233. package/dist/esm/IconPicker/IconPickerTile.d.ts +36 -0
  234. package/dist/esm/IconPicker/IconPickerTile.d.ts.map +1 -0
  235. package/dist/esm/IconPicker/IconPickerTile.js +22 -0
  236. package/dist/esm/IconPicker/IconPickerTile.js.map +1 -0
  237. package/dist/esm/IconPicker/IconPickerTrigger.d.ts +39 -0
  238. package/dist/esm/IconPicker/IconPickerTrigger.d.ts.map +1 -0
  239. package/dist/esm/IconPicker/IconPickerTrigger.js +13 -0
  240. package/dist/esm/IconPicker/IconPickerTrigger.js.map +1 -0
  241. package/dist/esm/IconPicker/IconPickerValue.d.ts +16 -0
  242. package/dist/esm/IconPicker/IconPickerValue.d.ts.map +1 -0
  243. package/dist/esm/IconPicker/IconPickerValue.js +4 -0
  244. package/dist/esm/IconPicker/IconPickerValue.js.map +1 -0
  245. package/dist/esm/IconPicker/createIconPickerIndex.d.ts +10 -0
  246. package/dist/esm/IconPicker/createIconPickerIndex.d.ts.map +1 -0
  247. package/dist/esm/IconPicker/createIconPickerIndex.js +21 -0
  248. package/dist/esm/IconPicker/createIconPickerIndex.js.map +1 -0
  249. package/dist/esm/IconPicker/defaultIconPickerLabels.d.ts +4 -0
  250. package/dist/esm/IconPicker/defaultIconPickerLabels.d.ts.map +1 -0
  251. package/dist/esm/IconPicker/defaultIconPickerLabels.js +35 -0
  252. package/dist/esm/IconPicker/defaultIconPickerLabels.js.map +1 -0
  253. package/dist/esm/IconPicker/formatIconPickerIdentity.d.ts +8 -0
  254. package/dist/esm/IconPicker/formatIconPickerIdentity.d.ts.map +1 -0
  255. package/dist/esm/IconPicker/formatIconPickerIdentity.js +4 -0
  256. package/dist/esm/IconPicker/formatIconPickerIdentity.js.map +1 -0
  257. package/dist/esm/IconPicker/groupIconPickerByCategory.d.ts +10 -0
  258. package/dist/esm/IconPicker/groupIconPickerByCategory.d.ts.map +1 -0
  259. package/dist/esm/IconPicker/groupIconPickerByCategory.js +17 -0
  260. package/dist/esm/IconPicker/groupIconPickerByCategory.js.map +1 -0
  261. package/dist/esm/IconPicker/iconPickerIdentity.d.ts +8 -0
  262. package/dist/esm/IconPicker/iconPickerIdentity.d.ts.map +1 -0
  263. package/dist/esm/IconPicker/iconPickerIdentity.js +4 -0
  264. package/dist/esm/IconPicker/iconPickerIdentity.js.map +1 -0
  265. package/dist/esm/IconPicker/index.d.ts +19 -0
  266. package/dist/esm/IconPicker/index.d.ts.map +1 -0
  267. package/dist/esm/IconPicker/index.js +8 -0
  268. package/dist/esm/IconPicker/index.js.map +1 -0
  269. package/dist/esm/IconPicker/isIconPickerAllowed.d.ts +10 -0
  270. package/dist/esm/IconPicker/isIconPickerAllowed.d.ts.map +1 -0
  271. package/dist/esm/IconPicker/isIconPickerAllowed.js +12 -0
  272. package/dist/esm/IconPicker/isIconPickerAllowed.js.map +1 -0
  273. package/dist/esm/IconPicker/isSameIconPickerValue.d.ts +10 -0
  274. package/dist/esm/IconPicker/isSameIconPickerValue.d.ts.map +1 -0
  275. package/dist/esm/IconPicker/isSameIconPickerValue.js +4 -0
  276. package/dist/esm/IconPicker/isSameIconPickerValue.js.map +1 -0
  277. package/dist/esm/IconPicker/searchIconPickerIndex.d.ts +9 -0
  278. package/dist/esm/IconPicker/searchIconPickerIndex.d.ts.map +1 -0
  279. package/dist/esm/IconPicker/searchIconPickerIndex.js +9 -0
  280. package/dist/esm/IconPicker/searchIconPickerIndex.js.map +1 -0
  281. package/dist/esm/IconPicker/toIconPickerValue.d.ts +9 -0
  282. package/dist/esm/IconPicker/toIconPickerValue.d.ts.map +1 -0
  283. package/dist/esm/IconPicker/toIconPickerValue.js +6 -0
  284. package/dist/esm/IconPicker/toIconPickerValue.js.map +1 -0
  285. package/dist/esm/IconPicker/useGridColumns.d.ts +12 -0
  286. package/dist/esm/IconPicker/useGridColumns.d.ts.map +1 -0
  287. package/dist/esm/IconPicker/useGridColumns.js +26 -0
  288. package/dist/esm/IconPicker/useGridColumns.js.map +1 -0
  289. package/dist/esm/IconPicker/useIconPickerBrowser.d.ts +10 -0
  290. package/dist/esm/IconPicker/useIconPickerBrowser.d.ts.map +1 -0
  291. package/dist/esm/IconPicker/useIconPickerBrowser.js +45 -0
  292. package/dist/esm/IconPicker/useIconPickerBrowser.js.map +1 -0
  293. package/dist/esm/IconPicker/useIsVisible.d.ts +12 -0
  294. package/dist/esm/IconPicker/useIsVisible.d.ts.map +1 -0
  295. package/dist/esm/IconPicker/useIsVisible.js +23 -0
  296. package/dist/esm/IconPicker/useIsVisible.js.map +1 -0
  297. package/dist/esm/IconPicker/useNarrowViewport.d.ts +9 -0
  298. package/dist/esm/IconPicker/useNarrowViewport.d.ts.map +1 -0
  299. package/dist/esm/IconPicker/useNarrowViewport.js +15 -0
  300. package/dist/esm/IconPicker/useNarrowViewport.js.map +1 -0
  301. package/dist/esm/IconPicker/useRovingFocus.d.ts +29 -0
  302. package/dist/esm/IconPicker/useRovingFocus.d.ts.map +1 -0
  303. package/dist/esm/IconPicker/useRovingFocus.js +70 -0
  304. package/dist/esm/IconPicker/useRovingFocus.js.map +1 -0
  305. package/dist/esm/Toolbar/ToolbarButton.d.ts +4 -1
  306. package/dist/esm/Toolbar/ToolbarButton.d.ts.map +1 -1
  307. package/dist/esm/Toolbar/ToolbarButton.js +12 -2
  308. package/dist/esm/Toolbar/ToolbarButton.js.map +1 -1
  309. package/dist/esm/Toolbar/ToolbarDrawerContext.d.ts +13 -0
  310. package/dist/esm/Toolbar/ToolbarDrawerContext.d.ts.map +1 -0
  311. package/dist/esm/Toolbar/ToolbarDrawerContext.js +7 -0
  312. package/dist/esm/Toolbar/ToolbarDrawerContext.js.map +1 -0
  313. package/dist/esm/Toolbar/ToolbarDrawerItem.d.ts +23 -0
  314. package/dist/esm/Toolbar/ToolbarDrawerItem.d.ts.map +1 -0
  315. package/dist/esm/Toolbar/ToolbarDrawerItem.js +4 -0
  316. package/dist/esm/Toolbar/ToolbarDrawerItem.js.map +1 -0
  317. package/dist/esm/Toolbar/ToolbarDrawerPlacement.d.ts +57 -0
  318. package/dist/esm/Toolbar/ToolbarDrawerPlacement.d.ts.map +1 -0
  319. package/dist/esm/Toolbar/ToolbarDrawerPlacement.js +51 -0
  320. package/dist/esm/Toolbar/ToolbarDrawerPlacement.js.map +1 -0
  321. package/dist/esm/Toolbar/ToolbarDrawerTile.d.ts +43 -0
  322. package/dist/esm/Toolbar/ToolbarDrawerTile.d.ts.map +1 -0
  323. package/dist/esm/Toolbar/ToolbarDrawerTile.js +31 -0
  324. package/dist/esm/Toolbar/ToolbarDrawerTile.js.map +1 -0
  325. package/dist/esm/Toolbar/ToolbarFolder.d.ts +51 -5
  326. package/dist/esm/Toolbar/ToolbarFolder.d.ts.map +1 -1
  327. package/dist/esm/Toolbar/ToolbarFolder.js +109 -10
  328. package/dist/esm/Toolbar/ToolbarFolder.js.map +1 -1
  329. package/dist/esm/Toolbar/ToolbarFolderPresentation.d.ts +8 -0
  330. package/dist/esm/Toolbar/ToolbarFolderPresentation.d.ts.map +1 -0
  331. package/dist/esm/Toolbar/ToolbarFolderPresentation.js +4 -0
  332. package/dist/esm/Toolbar/ToolbarFolderPresentation.js.map +1 -0
  333. package/dist/esm/Toolbar/index.d.ts +2 -0
  334. package/dist/esm/Toolbar/index.d.ts.map +1 -1
  335. package/dist/esm/configuration/CratisComponentsDefaults.d.ts.map +1 -1
  336. package/dist/esm/configuration/CratisComponentsDefaults.js +1 -0
  337. package/dist/esm/configuration/CratisComponentsDefaults.js.map +1 -1
  338. package/dist/esm/styles.ConfigurationEditor.css +710 -0
  339. package/dist/esm/styles.IconPicker.css +464 -0
  340. package/dist/esm/styles.Toolbar.css +174 -0
  341. package/dist/esm/styles.css +971 -90
  342. package/dist/esm/types/parts.d.ts +69 -1
  343. package/dist/esm/types/parts.d.ts.map +1 -1
  344. package/dist/esm/types/parts.js +69 -1
  345. package/dist/esm/types/parts.js.map +1 -1
  346. package/package.json +11 -1
@@ -0,0 +1,76 @@
1
+ import type { IconPickerSummary } from './IconPickerSummary.js';
2
+ /**
3
+ * Overrides for every label an {@link IconPicker} renders or announces. Any field left unset falls back
4
+ * to a literal English default, so a host with its own translations passes them here.
5
+ */
6
+ export interface IconPickerLabels {
7
+ /** Shown in the trigger while nothing is selected. Defaults to `'Select an icon'`. */
8
+ placeholder?: string;
9
+ /** The popout's title. Defaults to `'Choose an icon'`. */
10
+ title?: string;
11
+ /** Accessible name of the search field. Defaults to `'Search icons'`. */
12
+ search?: string;
13
+ /** Placeholder of the search field. Defaults to `'Search by name or tag'`. */
14
+ searchPlaceholder?: string;
15
+ /** Accessible name of the button that clears the search. Defaults to `'Clear search'`. */
16
+ clearSearch?: string;
17
+ /** Accessible name of the button that closes the popout. Defaults to `'Close'`. */
18
+ close?: string;
19
+ /** Accessible name of the category filter. Defaults to `'Categories'`. */
20
+ categories?: string;
21
+ /** The category filter that lifts the filter and shows every group. Defaults to `'All'`. */
22
+ allCategories?: string;
23
+ /** The name of the group holding icons that list no category. Defaults to `'Other'`. */
24
+ uncategorized?: string;
25
+ /**
26
+ * Opens a whole category from its compact group.
27
+ * @param count How many icons the category holds.
28
+ * @returns The text to show. Defaults to `Show all <count>`.
29
+ */
30
+ showAll?: (count: number) => string;
31
+ /** Accessible name of the library filter. Defaults to `'Library'`. */
32
+ library?: string;
33
+ /** The library filter that lifts the filter. Defaults to `'All libraries'`. */
34
+ allLibraries?: string;
35
+ /**
36
+ * States what is showing: the count, and the active search, category and library.
37
+ * @param summary What is showing.
38
+ * @returns The text to show.
39
+ */
40
+ summary?: (summary: IconPickerSummary) => string;
41
+ /** Shown while the catalog is still loading. Defaults to `'Loading icons…'`. */
42
+ loading?: string;
43
+ /** Shown when the catalog holds no icons at all. Defaults to `'There are no icons to choose from.'`. */
44
+ empty?: string;
45
+ /**
46
+ * Shown when the search and filters match nothing.
47
+ * @param query The active search, which may be empty when only filters are active.
48
+ * @returns The text to show.
49
+ */
50
+ noResults?: (query: string) => string;
51
+ /** The button that lifts the search and every filter. Defaults to `'Clear filters'`. */
52
+ clearFilters?: string;
53
+ /** Shown when the catalog failed to load and the host gave no message. Defaults to `'The icons could not be loaded.'`. */
54
+ error?: string;
55
+ /**
56
+ * Shown when the selected icon is not in the catalog.
57
+ * @param identity The selection's qualified identity, written out.
58
+ * @returns The text to show.
59
+ */
60
+ missingSelection?: (identity: string) => string;
61
+ /** Marks an icon the library has deprecated. Defaults to `'Deprecated'`. */
62
+ deprecated?: string;
63
+ /** Why an icon cannot be selected in this field. Defaults to `'Not available for this field'`. */
64
+ notAllowed?: string;
65
+ /** Accessible name of the whole picker when the host gives none. Defaults to `'Icon'`. */
66
+ trigger?: string;
67
+ /**
68
+ * Credits a library, shown at the foot of the popout.
69
+ * @param name The library's name.
70
+ * @param version The library's version, when it has one.
71
+ * @param attribution The library's attribution, when it has one.
72
+ * @returns The text to show.
73
+ */
74
+ credit?: (name: string, version: string | undefined, attribution: string | undefined) => string;
75
+ }
76
+ //# sourceMappingURL=IconPickerLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerLabels.d.ts","sourceRoot":"","sources":["../../../IconPicker/IconPickerLabels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,wFAAwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAEpC,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,MAAM,CAAC;IAEjD,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wGAAwG;IACxG,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAEtC,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,0HAA0H;IAC1H,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAEhD,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,kGAAkG;IAClG,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;CACnG"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export {};
4
+ //# sourceMappingURL=IconPickerLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerLabels.js","sourceRoot":"","sources":["../../../IconPicker/IconPickerLabels.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG","sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { IconPickerSummary } from './IconPickerSummary';\n\n/**\n * Overrides for every label an {@link IconPicker} renders or announces. Any field left unset falls back\n * to a literal English default, so a host with its own translations passes them here.\n */\nexport interface IconPickerLabels {\n /** Shown in the trigger while nothing is selected. Defaults to `'Select an icon'`. */\n placeholder?: string;\n\n /** The popout's title. Defaults to `'Choose an icon'`. */\n title?: string;\n\n /** Accessible name of the search field. Defaults to `'Search icons'`. */\n search?: string;\n\n /** Placeholder of the search field. Defaults to `'Search by name or tag'`. */\n searchPlaceholder?: string;\n\n /** Accessible name of the button that clears the search. Defaults to `'Clear search'`. */\n clearSearch?: string;\n\n /** Accessible name of the button that closes the popout. Defaults to `'Close'`. */\n close?: string;\n\n /** Accessible name of the category filter. Defaults to `'Categories'`. */\n categories?: string;\n\n /** The category filter that lifts the filter and shows every group. Defaults to `'All'`. */\n allCategories?: string;\n\n /** The name of the group holding icons that list no category. Defaults to `'Other'`. */\n uncategorized?: string;\n\n /**\n * Opens a whole category from its compact group.\n * @param count How many icons the category holds.\n * @returns The text to show. Defaults to `Show all <count>`.\n */\n showAll?: (count: number) => string;\n\n /** Accessible name of the library filter. Defaults to `'Library'`. */\n library?: string;\n\n /** The library filter that lifts the filter. Defaults to `'All libraries'`. */\n allLibraries?: string;\n\n /**\n * States what is showing: the count, and the active search, category and library.\n * @param summary What is showing.\n * @returns The text to show.\n */\n summary?: (summary: IconPickerSummary) => string;\n\n /** Shown while the catalog is still loading. Defaults to `'Loading icons…'`. */\n loading?: string;\n\n /** Shown when the catalog holds no icons at all. Defaults to `'There are no icons to choose from.'`. */\n empty?: string;\n\n /**\n * Shown when the search and filters match nothing.\n * @param query The active search, which may be empty when only filters are active.\n * @returns The text to show.\n */\n noResults?: (query: string) => string;\n\n /** The button that lifts the search and every filter. Defaults to `'Clear filters'`. */\n clearFilters?: string;\n\n /** Shown when the catalog failed to load and the host gave no message. Defaults to `'The icons could not be loaded.'`. */\n error?: string;\n\n /**\n * Shown when the selected icon is not in the catalog.\n * @param identity The selection's qualified identity, written out.\n * @returns The text to show.\n */\n missingSelection?: (identity: string) => string;\n\n /** Marks an icon the library has deprecated. Defaults to `'Deprecated'`. */\n deprecated?: string;\n\n /** Why an icon cannot be selected in this field. Defaults to `'Not available for this field'`. */\n notAllowed?: string;\n\n /** Accessible name of the whole picker when the host gives none. Defaults to `'Icon'`. */\n trigger?: string;\n\n /**\n * Credits a library, shown at the foot of the popout.\n * @param name The library's name.\n * @param version The library's version, when it has one.\n * @param attribution The library's attribution, when it has one.\n * @returns The text to show.\n */\n credit?: (name: string, version: string | undefined, attribution: string | undefined) => string;\n}\n"]}
@@ -0,0 +1,12 @@
1
+ /** An icon library a host offers through an {@link IconPickerCatalog}: where its icons come from. */
2
+ export interface IconPickerLibrary {
3
+ /** The stable identity of the library. Every entry's `library` refers to it. */
4
+ id: string;
5
+ /** The name shown to people to tell this library's icons from another's. */
6
+ name: string;
7
+ /** The version of the library, shown beside its attribution when supplied. */
8
+ version?: string;
9
+ /** The attribution or license notice the library requires, shown when supplied. */
10
+ attribution?: string;
11
+ }
12
+ //# sourceMappingURL=IconPickerLibrary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerLibrary.d.ts","sourceRoot":"","sources":["../../../IconPicker/IconPickerLibrary.ts"],"names":[],"mappings":"AAGA,qGAAqG;AACrG,MAAM,WAAW,iBAAiB;IAC9B,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IAEX,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IAEb,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export {};
4
+ //# sourceMappingURL=IconPickerLibrary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerLibrary.js","sourceRoot":"","sources":["../../../IconPicker/IconPickerLibrary.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG","sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/** An icon library a host offers through an {@link IconPickerCatalog}: where its icons come from. */\nexport interface IconPickerLibrary {\n /** The stable identity of the library. Every entry's `library` refers to it. */\n id: string;\n\n /** The name shown to people to tell this library's icons from another's. */\n name: string;\n\n /** The version of the library, shown beside its attribution when supplied. */\n version?: string;\n\n /** The attribution or license notice the library requires, shown when supplied. */\n attribution?: string;\n}\n"]}
@@ -0,0 +1,20 @@
1
+ import type { IconPickerLibrary } from './IconPickerLibrary.js';
2
+ import type { IconPickerParts } from './IconPickerParts.js';
3
+ /** Props for {@link IconPickerLibraryFilter}. */
4
+ export interface IconPickerLibraryFilterProps {
5
+ /** The libraries on offer. */
6
+ libraries: readonly IconPickerLibrary[];
7
+ /** The id of the active library, or undefined for all. */
8
+ selected: string | undefined;
9
+ /** Changes the library filter. */
10
+ onSelect: (library: string | undefined) => void;
11
+ /** Accessible name of the filter. */
12
+ label: string;
13
+ /** The text of the option that shows every library. */
14
+ allLabel: string;
15
+ /** Pass-through attributes for the select. */
16
+ parts?: Pick<IconPickerParts, 'library'>;
17
+ }
18
+ /** The library filter: a native select, so it works with every input mode. Shown only for several libraries. */
19
+ export declare const IconPickerLibraryFilter: ({ libraries, selected, onSelect, label, allLabel, parts }: IconPickerLibraryFilterProps) => import("react").JSX.Element;
20
+ //# sourceMappingURL=IconPickerLibraryFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerLibraryFilter.d.ts","sourceRoot":"","sources":["../../../IconPicker/IconPickerLibraryFilter.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAEzD,iDAAiD;AACjD,MAAM,WAAW,4BAA4B;IACzC,8BAA8B;IAC9B,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAExC,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,kCAAkC;IAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAEhD,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IAEd,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IAEjB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;CAC5C;AAED,gHAAgH;AAChH,eAAO,MAAM,uBAAuB,8DAA+D,4BAA4B,gCAgB9H,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { classNames } from '../ClassNames/classNames.js';
3
+
4
+ const IconPickerLibraryFilter = ({ libraries, selected, onSelect, label, allLabel, parts }) => (jsxs("select", { ...parts?.library, "aria-label": label, value: selected ?? '', className: classNames('cratis-icon-picker__library', parts?.library?.className), "data-cratis-part": 'library', onChange: event => onSelect(event.target.value === '' ? undefined : event.target.value), children: [jsx("option", { value: '', children: allLabel }), libraries.map(library => (jsx("option", { value: library.id, children: library.name }, library.id)))] }));
5
+
6
+ export { IconPickerLibraryFilter };
7
+ //# sourceMappingURL=IconPickerLibraryFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerLibraryFilter.js","sources":["../../../IconPicker/IconPickerLibraryFilter.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { classNames } from '../ClassNames/classNames';\nimport type { IconPickerLibrary } from './IconPickerLibrary';\nimport type { IconPickerParts } from './IconPickerParts';\n\n/** Props for {@link IconPickerLibraryFilter}. */\nexport interface IconPickerLibraryFilterProps {\n /** The libraries on offer. */\n libraries: readonly IconPickerLibrary[];\n\n /** The id of the active library, or undefined for all. */\n selected: string | undefined;\n\n /** Changes the library filter. */\n onSelect: (library: string | undefined) => void;\n\n /** Accessible name of the filter. */\n label: string;\n\n /** The text of the option that shows every library. */\n allLabel: string;\n\n /** Pass-through attributes for the select. */\n parts?: Pick<IconPickerParts, 'library'>;\n}\n\n/** The library filter: a native select, so it works with every input mode. Shown only for several libraries. */\nexport const IconPickerLibraryFilter = ({ libraries, selected, onSelect, label, allLabel, parts }: IconPickerLibraryFilterProps) => (\n <select\n {...parts?.library}\n aria-label={label}\n value={selected ?? ''}\n className={classNames('cratis-icon-picker__library', parts?.library?.className)}\n data-cratis-part='library'\n onChange={event => onSelect(event.target.value === '' ? undefined : event.target.value)}\n >\n <option value=''>{allLabel}</option>\n {libraries.map(library => (\n <option key={library.id} value={library.id}>\n {library.name}\n </option>\n ))}\n </select>\n);\n"],"names":["_jsxs","_jsx"],"mappings":";;;AA6BO,MAAM,uBAAuB,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAgC,MAC3HA,IAAA,CAAA,QAAA,EAAA,EAAA,GACQ,KAAK,EAAE,OAAO,EAAA,YAAA,EACN,KAAK,EACjB,KAAK,EAAE,QAAQ,IAAI,EAAE,EACrB,SAAS,EAAE,UAAU,CAAC,6BAA6B,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAA,kBAAA,EAC9D,SAAS,EAC1B,QAAQ,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,QAAA,EAAA,CAEvFC,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,EAAE,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAU,EACnC,SAAS,CAAC,GAAG,CAAC,OAAO,KAClBA,GAAA,CAAA,QAAA,EAAA,EAAyB,KAAK,EAAE,OAAO,CAAC,EAAE,YACrC,OAAO,CAAC,IAAI,EAAA,EADJ,OAAO,CAAC,EAAE,CAEd,CACZ,CAAC,CAAA,EAAA,CACG;;"}
@@ -0,0 +1,65 @@
1
+ import type { HTMLAttributes, InputHTMLAttributes } from 'react';
2
+ /** Attributes passed through to one part of an {@link IconPicker}, including `data-*` attributes. */
3
+ export type IconPickerPartAttributes<TElement> = HTMLAttributes<TElement> & {
4
+ [attribute: `data-${string}`]: string | number | boolean | undefined;
5
+ };
6
+ /**
7
+ * Stable Cratis-owned parts for styling an {@link IconPicker}. Each is marked with a matching
8
+ * `data-cratis-part` attribute, and what is passed here is spread onto that element - the picker's own
9
+ * value, selection and event wiring always win.
10
+ */
11
+ export interface IconPickerParts {
12
+ /** The wrapper around the trigger and its messages. Carries `data-disabled`, `data-invalid`, `data-readonly` and `data-open`. */
13
+ root?: IconPickerPartAttributes<HTMLDivElement>;
14
+ /** The closed control that opens the popout. Carries `data-disabled`, `data-invalid`, `data-readonly`, `data-open` and `data-missing`. */
15
+ trigger?: IconPickerPartAttributes<HTMLButtonElement>;
16
+ /** The selected icon's glyph inside the trigger. */
17
+ glyph?: IconPickerPartAttributes<HTMLSpanElement>;
18
+ /** The selected icon's name inside the trigger. */
19
+ name?: IconPickerPartAttributes<HTMLSpanElement>;
20
+ /** The validation and missing-selection messages under the trigger. */
21
+ message?: IconPickerPartAttributes<HTMLParagraphElement>;
22
+ /** The popout, or the sheet it becomes on a narrow viewport. Carries `data-open`. */
23
+ popover?: IconPickerPartAttributes<HTMLElement>;
24
+ /** The dialog inside the popout. */
25
+ dialog?: IconPickerPartAttributes<HTMLElement>;
26
+ /** The popout's title. */
27
+ title?: IconPickerPartAttributes<HTMLHeadingElement>;
28
+ /** The button that closes the popout. */
29
+ close?: IconPickerPartAttributes<HTMLButtonElement>;
30
+ /** The search field. */
31
+ search?: Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'type'> & {
32
+ [attribute: `data-${string}`]: string | number | boolean | undefined;
33
+ };
34
+ /** The button that clears the search. */
35
+ clear?: IconPickerPartAttributes<HTMLButtonElement>;
36
+ /** The row of category filters. */
37
+ categories?: IconPickerPartAttributes<HTMLDivElement>;
38
+ /** Every category filter. Carries `data-selected` on the active one. */
39
+ category?: IconPickerPartAttributes<HTMLButtonElement>;
40
+ /** The library filter, shown when the catalog holds more than one library. */
41
+ library?: IconPickerPartAttributes<HTMLSelectElement>;
42
+ /** The line stating what is showing. */
43
+ summary?: IconPickerPartAttributes<HTMLParagraphElement>;
44
+ /** The loading, empty, no-results and error states. Carries `data-loading` while the catalog loads. */
45
+ status?: IconPickerPartAttributes<HTMLDivElement>;
46
+ /** One compact category group. */
47
+ group?: IconPickerPartAttributes<HTMLElement>;
48
+ /** The title of a category group. */
49
+ groupTitle?: IconPickerPartAttributes<HTMLHeadingElement>;
50
+ /** The button that opens a whole category from its group. */
51
+ showAll?: IconPickerPartAttributes<HTMLButtonElement>;
52
+ /** A grid of tiles. */
53
+ grid?: IconPickerPartAttributes<HTMLDivElement>;
54
+ /** One icon tile. Carries `data-selected` and `data-disabled`. */
55
+ tile?: IconPickerPartAttributes<HTMLDivElement>;
56
+ /** The fixed area a tile centers its glyph in. */
57
+ tileIcon?: IconPickerPartAttributes<HTMLSpanElement>;
58
+ /** The name beneath a tile's glyph. */
59
+ tileName?: IconPickerPartAttributes<HTMLSpanElement>;
60
+ /** The library a tile or the trigger names, shown when several libraries are offered. */
61
+ provider?: IconPickerPartAttributes<HTMLSpanElement>;
62
+ /** The credit line for the libraries on offer. */
63
+ attribution?: IconPickerPartAttributes<HTMLParagraphElement>;
64
+ }
65
+ //# sourceMappingURL=IconPickerParts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerParts.d.ts","sourceRoot":"","sources":["../../../IconPicker/IconPickerParts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAEjE,qGAAqG;AACrG,MAAM,MAAM,wBAAwB,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG;IACxE,CAAC,SAAS,EAAE,QAAQ,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACxE,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,iIAAiI;IACjI,IAAI,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAEhD,0IAA0I;IAC1I,OAAO,CAAC,EAAE,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IAEtD,oDAAoD;IACpD,KAAK,CAAC,EAAE,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAElD,mDAAmD;IACnD,IAAI,CAAC,EAAE,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAEjD,uEAAuE;IACvE,OAAO,CAAC,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;IAEzD,qFAAqF;IACrF,OAAO,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAEhD,oCAAoC;IACpC,MAAM,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAE/C,0BAA0B;IAC1B,KAAK,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;IAErD,yCAAyC;IACzC,KAAK,CAAC,EAAE,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IAEpD,wBAAwB;IACxB,MAAM,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,MAAM,CAAC,GAAG;QACnG,CAAC,SAAS,EAAE,QAAQ,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;KACxE,CAAC;IAEF,yCAAyC;IACzC,KAAK,CAAC,EAAE,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IAEpD,mCAAmC;IACnC,UAAU,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAEtD,wEAAwE;IACxE,QAAQ,CAAC,EAAE,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IAEvD,8EAA8E;IAC9E,OAAO,CAAC,EAAE,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IAEtD,wCAAwC;IACxC,OAAO,CAAC,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;IAEzD,uGAAuG;IACvG,MAAM,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAElD,kCAAkC;IAClC,KAAK,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAE9C,qCAAqC;IACrC,UAAU,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;IAE1D,6DAA6D;IAC7D,OAAO,CAAC,EAAE,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;IAEtD,uBAAuB;IACvB,IAAI,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAEhD,kEAAkE;IAClE,IAAI,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAEhD,kDAAkD;IAClD,QAAQ,CAAC,EAAE,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAErD,uCAAuC;IACvC,QAAQ,CAAC,EAAE,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAErD,yFAAyF;IACzF,QAAQ,CAAC,EAAE,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAErD,kDAAkD;IAClD,WAAW,CAAC,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;CAChE"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export {};
4
+ //# sourceMappingURL=IconPickerParts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerParts.js","sourceRoot":"","sources":["../../../IconPicker/IconPickerParts.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG","sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { HTMLAttributes, InputHTMLAttributes } from 'react';\n\n/** Attributes passed through to one part of an {@link IconPicker}, including `data-*` attributes. */\nexport type IconPickerPartAttributes<TElement> = HTMLAttributes<TElement> & {\n [attribute: `data-${string}`]: string | number | boolean | undefined;\n};\n\n/**\n * Stable Cratis-owned parts for styling an {@link IconPicker}. Each is marked with a matching\n * `data-cratis-part` attribute, and what is passed here is spread onto that element - the picker's own\n * value, selection and event wiring always win.\n */\nexport interface IconPickerParts {\n /** The wrapper around the trigger and its messages. Carries `data-disabled`, `data-invalid`, `data-readonly` and `data-open`. */\n root?: IconPickerPartAttributes<HTMLDivElement>;\n\n /** The closed control that opens the popout. Carries `data-disabled`, `data-invalid`, `data-readonly`, `data-open` and `data-missing`. */\n trigger?: IconPickerPartAttributes<HTMLButtonElement>;\n\n /** The selected icon's glyph inside the trigger. */\n glyph?: IconPickerPartAttributes<HTMLSpanElement>;\n\n /** The selected icon's name inside the trigger. */\n name?: IconPickerPartAttributes<HTMLSpanElement>;\n\n /** The validation and missing-selection messages under the trigger. */\n message?: IconPickerPartAttributes<HTMLParagraphElement>;\n\n /** The popout, or the sheet it becomes on a narrow viewport. Carries `data-open`. */\n popover?: IconPickerPartAttributes<HTMLElement>;\n\n /** The dialog inside the popout. */\n dialog?: IconPickerPartAttributes<HTMLElement>;\n\n /** The popout's title. */\n title?: IconPickerPartAttributes<HTMLHeadingElement>;\n\n /** The button that closes the popout. */\n close?: IconPickerPartAttributes<HTMLButtonElement>;\n\n /** The search field. */\n search?: Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'type'> & {\n [attribute: `data-${string}`]: string | number | boolean | undefined;\n };\n\n /** The button that clears the search. */\n clear?: IconPickerPartAttributes<HTMLButtonElement>;\n\n /** The row of category filters. */\n categories?: IconPickerPartAttributes<HTMLDivElement>;\n\n /** Every category filter. Carries `data-selected` on the active one. */\n category?: IconPickerPartAttributes<HTMLButtonElement>;\n\n /** The library filter, shown when the catalog holds more than one library. */\n library?: IconPickerPartAttributes<HTMLSelectElement>;\n\n /** The line stating what is showing. */\n summary?: IconPickerPartAttributes<HTMLParagraphElement>;\n\n /** The loading, empty, no-results and error states. Carries `data-loading` while the catalog loads. */\n status?: IconPickerPartAttributes<HTMLDivElement>;\n\n /** One compact category group. */\n group?: IconPickerPartAttributes<HTMLElement>;\n\n /** The title of a category group. */\n groupTitle?: IconPickerPartAttributes<HTMLHeadingElement>;\n\n /** The button that opens a whole category from its group. */\n showAll?: IconPickerPartAttributes<HTMLButtonElement>;\n\n /** A grid of tiles. */\n grid?: IconPickerPartAttributes<HTMLDivElement>;\n\n /** One icon tile. Carries `data-selected` and `data-disabled`. */\n tile?: IconPickerPartAttributes<HTMLDivElement>;\n\n /** The fixed area a tile centers its glyph in. */\n tileIcon?: IconPickerPartAttributes<HTMLSpanElement>;\n\n /** The name beneath a tile's glyph. */\n tileName?: IconPickerPartAttributes<HTMLSpanElement>;\n\n /** The library a tile or the trigger names, shown when several libraries are offered. */\n provider?: IconPickerPartAttributes<HTMLSpanElement>;\n\n /** The credit line for the libraries on offer. */\n attribution?: IconPickerPartAttributes<HTMLParagraphElement>;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ /** Where the popout opens relative to its trigger before it flips or shifts to stay in view. */
2
+ export type IconPickerPlacement = 'bottom start' | 'bottom' | 'bottom end' | 'top start' | 'top' | 'top end' | 'start' | 'end';
3
+ //# sourceMappingURL=IconPickerPlacement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerPlacement.d.ts","sourceRoot":"","sources":["../../../IconPicker/IconPickerPlacement.ts"],"names":[],"mappings":"AAGA,gGAAgG;AAChG,MAAM,MAAM,mBAAmB,GACzB,cAAc,GACd,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,KAAK,GACL,SAAS,GACT,OAAO,GACP,KAAK,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export {};
4
+ //# sourceMappingURL=IconPickerPlacement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerPlacement.js","sourceRoot":"","sources":["../../../IconPicker/IconPickerPlacement.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG","sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/** Where the popout opens relative to its trigger before it flips or shifts to stay in view. */\nexport type IconPickerPlacement =\n | 'bottom start'\n | 'bottom'\n | 'bottom end'\n | 'top start'\n | 'top'\n | 'top end'\n | 'start'\n | 'end';\n"]}
@@ -0,0 +1,32 @@
1
+ import type { IconPickerAllowed } from './IconPickerAllowed.js';
2
+ import type { IconPickerCatalog } from './IconPickerCatalog.js';
3
+ import type { IconPickerEntry } from './IconPickerEntry.js';
4
+ import type { IconPickerLabels } from './IconPickerLabels.js';
5
+ import type { IconPickerParts } from './IconPickerParts.js';
6
+ import type { IconPickerValue } from './IconPickerValue.js';
7
+ /** Props for {@link IconPickerPopout}. */
8
+ export interface IconPickerPopoutProps {
9
+ /** The catalog to browse. */
10
+ catalog: IconPickerCatalog;
11
+ /** The current selection, if any. */
12
+ value: IconPickerValue | null | undefined;
13
+ /** The field's restriction, if any. */
14
+ allowed?: IconPickerAllowed;
15
+ /** The resolved labels. */
16
+ labels: Required<IconPickerLabels>;
17
+ /** How many icons a compact category group lists before offering to show them all. */
18
+ compactGroupSize: number;
19
+ /** Picks an icon. */
20
+ onChoose: (entry: IconPickerEntry) => void;
21
+ /** Dismisses the popout without picking. */
22
+ onClose: () => void;
23
+ /** Pass-through attributes. */
24
+ parts?: IconPickerParts;
25
+ }
26
+ /**
27
+ * The content of the popout (or sheet): title and close, search, library and category filters, the
28
+ * statement of what is showing, the icons, and the libraries' credits. It owns the search and filter
29
+ * state, which therefore starts fresh each time the popout opens.
30
+ */
31
+ export declare const IconPickerPopout: ({ catalog, value, allowed, labels, compactGroupSize, onChoose, onClose, parts, }: IconPickerPopoutProps) => import("react").JSX.Element;
32
+ //# sourceMappingURL=IconPickerPopout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerPopout.d.ts","sourceRoot":"","sources":["../../../IconPicker/IconPickerPopout.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAKzD,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IAClC,6BAA6B;IAC7B,OAAO,EAAE,iBAAiB,CAAC;IAE3B,qCAAqC;IACrC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAE1C,uCAAuC;IACvC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAE5B,2BAA2B;IAC3B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAEnC,sFAAsF;IACtF,gBAAgB,EAAE,MAAM,CAAC;IAEzB,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE3C,4CAA4C;IAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,qFAS1B,qBAAqB,gCAiIvB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useRef } from 'react';
3
+ import { FaXmark } from 'react-icons/fa6';
4
+ import { Dialog } from 'react-aria-components/Dialog';
5
+ import { Heading } from 'react-aria-components/Heading';
6
+ import { classNames } from '../ClassNames/classNames.js';
7
+ import { IconPickerCategoryFilter } from './IconPickerCategoryFilter.js';
8
+ import { IconPickerLibraryFilter } from './IconPickerLibraryFilter.js';
9
+ import { IconPickerResults } from './IconPickerResults.js';
10
+ import { IconPickerSearch } from './IconPickerSearch.js';
11
+ import { iconPickerIdentity } from './iconPickerIdentity.js';
12
+ import { isIconPickerAllowed } from './isIconPickerAllowed.js';
13
+ import { useIconPickerBrowser } from './useIconPickerBrowser.js';
14
+
15
+ const IconPickerPopout = ({ catalog, value, allowed, labels, compactGroupSize, onChoose, onClose, parts, }) => {
16
+ const browser = useIconPickerBrowser(catalog.icons);
17
+ const results = useRef(null);
18
+ const hasSeveralLibraries = catalog.libraries.length > 1;
19
+ const libraryName = (id) => catalog.libraries.find(library => library.id === id)?.name ?? id;
20
+ const categoryName = browser.category === undefined ? undefined : browser.category === '' ? labels.uncategorized : browser.category;
21
+ const credited = catalog.libraries.filter(library => (browser.library === undefined || library.id === browser.library) &&
22
+ (library.attribution !== undefined || library.version !== undefined));
23
+ const moveToResults = () => (results.current?.querySelector('[role="option"][tabindex="0"]') ??
24
+ results.current?.querySelector('[role="option"]'))?.focus();
25
+ return (jsxs(Dialog, { ...parts?.dialog, className: classNames('cratis-icon-picker__dialog', parts?.dialog?.className), "data-cratis-part": 'dialog', children: [jsxs("div", { className: 'cratis-icon-picker__header', children: [jsx(Heading, { ...parts?.title, slot: 'title', className: classNames('cratis-icon-picker__title', parts?.title?.className), "data-cratis-part": 'title', children: labels.title }), jsx("button", { ...parts?.close, type: 'button', "aria-label": labels.close, className: classNames('cratis-icon-picker__close', parts?.close?.className), "data-cratis-part": 'close', onClick: onClose, children: jsx(FaXmark, { "aria-hidden": 'true', focusable: 'false' }) })] }), jsx(IconPickerSearch, { value: browser.query, onChange: browser.setQuery, label: labels.search, placeholder: labels.searchPlaceholder, clearLabel: labels.clearSearch, onMoveToResults: moveToResults, parts: parts }), (hasSeveralLibraries || browser.categories.length > 0) && (jsxs("div", { className: 'cratis-icon-picker__filters', children: [hasSeveralLibraries && (jsx(IconPickerLibraryFilter, { libraries: catalog.libraries, selected: browser.library, onSelect: browser.setLibrary, label: labels.library, allLabel: labels.allLibraries, parts: parts })), browser.categories.length > 0 && (jsx(IconPickerCategoryFilter, { categories: browser.categories, selected: browser.category, onSelect: browser.setCategory, label: labels.categories, allLabel: labels.allCategories, uncategorizedLabel: labels.uncategorized, parts: parts }))] })), catalog.icons.length > 0 && (jsx("p", { ...parts?.summary, role: 'status', className: classNames('cratis-icon-picker__summary', parts?.summary?.className), "data-cratis-part": 'summary', children: labels.summary({
26
+ count: browser.matchCount,
27
+ query: browser.query.trim(),
28
+ category: categoryName,
29
+ library: browser.library === undefined ? undefined : libraryName(browser.library),
30
+ }) })), jsx("div", { ref: results, className: 'cratis-icon-picker__body', children: jsx(IconPickerResults, { browser: browser, totalCount: catalog.icons.length, status: catalog.status ?? 'ready', error: catalog.error, labels: labels, compactGroupSize: compactGroupSize, grid: {
31
+ selectedIdentity: value ? iconPickerIdentity(value) : undefined,
32
+ isAllowed: entry => isIconPickerAllowed(entry, allowed),
33
+ providerName: library => (hasSeveralLibraries ? libraryName(library) : undefined),
34
+ deprecatedLabel: labels.deprecated,
35
+ notAllowedLabel: labels.notAllowed,
36
+ onChoose,
37
+ }, parts: parts }) }), credited.length > 0 && (jsx("div", { className: 'cratis-icon-picker__credits', children: credited.map(library => (jsx("p", { ...parts?.attribution, className: classNames('cratis-icon-picker__attribution', parts?.attribution?.className), "data-cratis-part": 'attribution', children: labels.credit(library.name, library.version, library.attribution) }, library.id))) }))] }));
38
+ };
39
+
40
+ export { IconPickerPopout };
41
+ //# sourceMappingURL=IconPickerPopout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerPopout.js","sources":["../../../IconPicker/IconPickerPopout.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useRef } from 'react';\nimport { FaXmark } from 'react-icons/fa6';\nimport { Dialog, type DialogProps } from 'react-aria-components/Dialog';\nimport { Heading } from 'react-aria-components/Heading';\nimport { classNames } from '../ClassNames/classNames';\nimport type { IconPickerAllowed } from './IconPickerAllowed';\nimport type { IconPickerCatalog } from './IconPickerCatalog';\nimport { IconPickerCategoryFilter } from './IconPickerCategoryFilter';\nimport type { IconPickerEntry } from './IconPickerEntry';\nimport type { IconPickerLabels } from './IconPickerLabels';\nimport { IconPickerLibraryFilter } from './IconPickerLibraryFilter';\nimport type { IconPickerParts } from './IconPickerParts';\nimport { IconPickerResults } from './IconPickerResults';\nimport { IconPickerSearch } from './IconPickerSearch';\nimport type { IconPickerValue } from './IconPickerValue';\nimport { iconPickerIdentity } from './iconPickerIdentity';\nimport { isIconPickerAllowed } from './isIconPickerAllowed';\nimport { useIconPickerBrowser } from './useIconPickerBrowser';\n\n/** Props for {@link IconPickerPopout}. */\nexport interface IconPickerPopoutProps {\n /** The catalog to browse. */\n catalog: IconPickerCatalog;\n\n /** The current selection, if any. */\n value: IconPickerValue | null | undefined;\n\n /** The field's restriction, if any. */\n allowed?: IconPickerAllowed;\n\n /** The resolved labels. */\n labels: Required<IconPickerLabels>;\n\n /** How many icons a compact category group lists before offering to show them all. */\n compactGroupSize: number;\n\n /** Picks an icon. */\n onChoose: (entry: IconPickerEntry) => void;\n\n /** Dismisses the popout without picking. */\n onClose: () => void;\n\n /** Pass-through attributes. */\n parts?: IconPickerParts;\n}\n\n/**\n * The content of the popout (or sheet): title and close, search, library and category filters, the\n * statement of what is showing, the icons, and the libraries' credits. It owns the search and filter\n * state, which therefore starts fresh each time the popout opens.\n */\nexport const IconPickerPopout = ({\n catalog,\n value,\n allowed,\n labels,\n compactGroupSize,\n onChoose,\n onClose,\n parts,\n}: IconPickerPopoutProps) => {\n const browser = useIconPickerBrowser(catalog.icons);\n const results = useRef<HTMLDivElement>(null);\n const hasSeveralLibraries = catalog.libraries.length > 1;\n const libraryName = (id: string) => catalog.libraries.find(library => library.id === id)?.name ?? id;\n const categoryName = browser.category === undefined ? undefined : browser.category === '' ? labels.uncategorized : browser.category;\n const credited = catalog.libraries.filter(\n library =>\n (browser.library === undefined || library.id === browser.library) &&\n (library.attribution !== undefined || library.version !== undefined),\n );\n\n const moveToResults = () =>\n (\n results.current?.querySelector<HTMLElement>('[role=\"option\"][tabindex=\"0\"]') ??\n results.current?.querySelector<HTMLElement>('[role=\"option\"]')\n )?.focus();\n\n return (\n <Dialog\n // SAFETY: spread only onto a React Aria Dialog, which narrows `role` to the dialog roles.\n {...(parts?.dialog as unknown as DialogProps | undefined)}\n className={classNames('cratis-icon-picker__dialog', parts?.dialog?.className)}\n data-cratis-part='dialog'\n >\n <div className='cratis-icon-picker__header'>\n <Heading\n {...parts?.title}\n slot='title'\n className={classNames('cratis-icon-picker__title', parts?.title?.className)}\n data-cratis-part='title'\n >\n {labels.title}\n </Heading>\n <button\n {...parts?.close}\n type='button'\n aria-label={labels.close}\n className={classNames('cratis-icon-picker__close', parts?.close?.className)}\n data-cratis-part='close'\n onClick={onClose}\n >\n <FaXmark aria-hidden='true' focusable='false' />\n </button>\n </div>\n <IconPickerSearch\n value={browser.query}\n onChange={browser.setQuery}\n label={labels.search}\n placeholder={labels.searchPlaceholder}\n clearLabel={labels.clearSearch}\n onMoveToResults={moveToResults}\n parts={parts}\n />\n {(hasSeveralLibraries || browser.categories.length > 0) && (\n <div className='cratis-icon-picker__filters'>\n {hasSeveralLibraries && (\n <IconPickerLibraryFilter\n libraries={catalog.libraries}\n selected={browser.library}\n onSelect={browser.setLibrary}\n label={labels.library}\n allLabel={labels.allLibraries}\n parts={parts}\n />\n )}\n {browser.categories.length > 0 && (\n <IconPickerCategoryFilter\n categories={browser.categories}\n selected={browser.category}\n onSelect={browser.setCategory}\n label={labels.categories}\n allLabel={labels.allCategories}\n uncategorizedLabel={labels.uncategorized}\n parts={parts}\n />\n )}\n </div>\n )}\n {catalog.icons.length > 0 && (\n <p\n {...parts?.summary}\n role='status'\n className={classNames('cratis-icon-picker__summary', parts?.summary?.className)}\n data-cratis-part='summary'\n >\n {labels.summary({\n count: browser.matchCount,\n query: browser.query.trim(),\n category: categoryName,\n library: browser.library === undefined ? undefined : libraryName(browser.library),\n })}\n </p>\n )}\n <div ref={results} className='cratis-icon-picker__body'>\n <IconPickerResults\n browser={browser}\n totalCount={catalog.icons.length}\n status={catalog.status ?? 'ready'}\n error={catalog.error}\n labels={labels}\n compactGroupSize={compactGroupSize}\n grid={{\n selectedIdentity: value ? iconPickerIdentity(value) : undefined,\n isAllowed: entry => isIconPickerAllowed(entry, allowed),\n providerName: library => (hasSeveralLibraries ? libraryName(library) : undefined),\n deprecatedLabel: labels.deprecated,\n notAllowedLabel: labels.notAllowed,\n onChoose,\n }}\n parts={parts}\n />\n </div>\n {credited.length > 0 && (\n <div className='cratis-icon-picker__credits'>\n {credited.map(library => (\n <p\n key={library.id}\n {...parts?.attribution}\n className={classNames('cratis-icon-picker__attribution', parts?.attribution?.className)}\n data-cratis-part='attribution'\n >\n {labels.credit(library.name, library.version, library.attribution)}\n </p>\n ))}\n </div>\n )}\n </Dialog>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { IconPickerBrowser } from './IconPickerBrowser.js';
2
+ import type { IconPickerCatalogStatus } from './IconPickerCatalogStatus.js';
3
+ import { type IconPickerGridProps } from './IconPickerGrid.js';
4
+ import type { IconPickerLabels } from './IconPickerLabels.js';
5
+ import type { IconPickerParts } from './IconPickerParts.js';
6
+ /** Props for {@link IconPickerResults}. */
7
+ export interface IconPickerResultsProps {
8
+ /** What the popout is showing. */
9
+ browser: IconPickerBrowser;
10
+ /** How many icons the catalog holds in all, before any search or filter. */
11
+ totalCount: number;
12
+ /** Whether the catalog is complete. */
13
+ status: IconPickerCatalogStatus;
14
+ /** What went wrong, when `status` is `error`. */
15
+ error?: string;
16
+ /** The resolved labels. */
17
+ labels: Required<IconPickerLabels>;
18
+ /** How many icons a compact category group lists before offering to show them all. */
19
+ compactGroupSize: number;
20
+ /** The props shared by every grid. */
21
+ grid: Omit<IconPickerGridProps, 'entries' | 'label'>;
22
+ /** Pass-through attributes. */
23
+ parts?: IconPickerParts;
24
+ }
25
+ /**
26
+ * The popout's body: the loading, error, empty and no-results states, and the icons themselves -
27
+ * compact category groups while browsing, or one grid while searching or inside a chosen category.
28
+ * Icons already loaded stay listed, and stay selectable, while a catalog is still loading or has failed.
29
+ */
30
+ export declare const IconPickerResults: ({ browser, totalCount, status, error, labels, compactGroupSize, grid, parts }: IconPickerResultsProps) => import("react").JSX.Element;
31
+ //# sourceMappingURL=IconPickerResults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerResults.d.ts","sourceRoot":"","sources":["../../../IconPicker/IconPickerResults.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA2B,CAAC;AACzE,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,qBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAEzD,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACnC,kCAAkC;IAClC,OAAO,EAAE,iBAAiB,CAAC;IAE3B,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IAEnB,uCAAuC;IACvC,MAAM,EAAE,uBAAuB,CAAC;IAEhC,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,2BAA2B;IAC3B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAEnC,sFAAsF;IACtF,gBAAgB,EAAE,MAAM,CAAC;IAEzB,sCAAsC;IACtC,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;IAErD,+BAA+B;IAC/B,KAAK,CAAC,EAAE,eAAe,CAAC;CAC3B;AAcD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,kFAAmF,sBAAsB,gCAyEtI,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useId } from 'react';
3
+ import { classNames } from '../ClassNames/classNames.js';
4
+ import { IconPickerGrid } from './IconPickerGrid.js';
5
+
6
+ const State = ({ role, loading, children, parts }) => (jsx("div", { ...parts?.status, role: role, className: classNames('cratis-icon-picker__status', parts?.status?.className), "data-cratis-part": 'status', "data-loading": loading || undefined, children: children }));
7
+ const IconPickerResults = ({ browser, totalCount, status, error, labels, compactGroupSize, grid, parts }) => {
8
+ const baseId = useId();
9
+ const categoryName = (category) => (category === '' ? labels.uncategorized : category);
10
+ const showGroups = browser.isGrouped && browser.matchCount > 0;
11
+ const showFlat = !browser.isGrouped && browser.matchCount > 0;
12
+ return (jsxs("div", { className: 'cratis-icon-picker__results', children: [status === 'loading' && (jsx(State, { role: 'status', loading: true, parts: parts, children: labels.loading })), status === 'error' && (jsx(State, { role: 'alert', parts: parts, children: error ?? labels.error })), status === 'ready' && totalCount === 0 && jsx(State, { role: 'status', parts: parts, children: labels.empty }), totalCount > 0 && browser.matchCount === 0 && (jsxs(State, { role: 'status', parts: parts, children: [jsx("span", { children: labels.noResults(browser.query.trim()) }), jsx("button", { type: 'button', className: 'cratis-icon-picker__link', onClick: browser.reset, children: labels.clearFilters })] })), showGroups &&
13
+ browser.groups.map(group => {
14
+ const titleId = `${baseId}-${group.category}`;
15
+ const overflow = group.entries.length > compactGroupSize;
16
+ return (jsxs("section", { ...parts?.group, "aria-labelledby": titleId, className: classNames('cratis-icon-picker__group', parts?.group?.className), "data-cratis-part": 'group', children: [jsxs("div", { className: 'cratis-icon-picker__group-header', children: [jsx("h3", { ...parts?.groupTitle, id: titleId, className: classNames('cratis-icon-picker__group-title', parts?.groupTitle?.className), "data-cratis-part": 'groupTitle', children: categoryName(group.category) }), overflow && (jsx("button", { ...parts?.showAll, type: 'button', "aria-describedby": titleId, className: classNames('cratis-icon-picker__link', parts?.showAll?.className), "data-cratis-part": 'showAll', onClick: () => browser.setCategory(group.category), children: labels.showAll(group.entries.length) }))] }), jsx(IconPickerGrid, { ...grid, entries: overflow ? group.entries.slice(0, compactGroupSize) : group.entries, label: categoryName(group.category), parts: parts })] }, group.category));
17
+ }), showFlat && jsx(IconPickerGrid, { ...grid, entries: browser.matches, label: labels.title, parts: parts })] }));
18
+ };
19
+
20
+ export { IconPickerResults };
21
+ //# sourceMappingURL=IconPickerResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerResults.js","sources":["../../../IconPicker/IconPickerResults.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useId, type ReactNode } from 'react';\nimport { classNames } from '../ClassNames/classNames';\nimport type { IconPickerBrowser } from './IconPickerBrowser';\nimport type { IconPickerCatalogStatus } from './IconPickerCatalogStatus';\nimport { IconPickerGrid, type IconPickerGridProps } from './IconPickerGrid';\nimport type { IconPickerLabels } from './IconPickerLabels';\nimport type { IconPickerParts } from './IconPickerParts';\n\n/** Props for {@link IconPickerResults}. */\nexport interface IconPickerResultsProps {\n /** What the popout is showing. */\n browser: IconPickerBrowser;\n\n /** How many icons the catalog holds in all, before any search or filter. */\n totalCount: number;\n\n /** Whether the catalog is complete. */\n status: IconPickerCatalogStatus;\n\n /** What went wrong, when `status` is `error`. */\n error?: string;\n\n /** The resolved labels. */\n labels: Required<IconPickerLabels>;\n\n /** How many icons a compact category group lists before offering to show them all. */\n compactGroupSize: number;\n\n /** The props shared by every grid. */\n grid: Omit<IconPickerGridProps, 'entries' | 'label'>;\n\n /** Pass-through attributes. */\n parts?: IconPickerParts;\n}\n\nconst State = ({ role, loading, children, parts }: { role: 'status' | 'alert'; loading?: boolean; children: ReactNode; parts?: IconPickerParts }) => (\n <div\n {...parts?.status}\n role={role}\n className={classNames('cratis-icon-picker__status', parts?.status?.className)}\n data-cratis-part='status'\n data-loading={loading || undefined}\n >\n {children}\n </div>\n);\n\n/**\n * The popout's body: the loading, error, empty and no-results states, and the icons themselves -\n * compact category groups while browsing, or one grid while searching or inside a chosen category.\n * Icons already loaded stay listed, and stay selectable, while a catalog is still loading or has failed.\n */\nexport const IconPickerResults = ({ browser, totalCount, status, error, labels, compactGroupSize, grid, parts }: IconPickerResultsProps) => {\n const baseId = useId();\n const categoryName = (category: string) => (category === '' ? labels.uncategorized : category);\n const showGroups = browser.isGrouped && browser.matchCount > 0;\n const showFlat = !browser.isGrouped && browser.matchCount > 0;\n\n return (\n <div className='cratis-icon-picker__results'>\n {status === 'loading' && (\n <State role='status' loading parts={parts}>\n {labels.loading}\n </State>\n )}\n {status === 'error' && (\n <State role='alert' parts={parts}>\n {error ?? labels.error}\n </State>\n )}\n {status === 'ready' && totalCount === 0 && <State role='status' parts={parts}>{labels.empty}</State>}\n {totalCount > 0 && browser.matchCount === 0 && (\n <State role='status' parts={parts}>\n <span>{labels.noResults(browser.query.trim())}</span>\n <button type='button' className='cratis-icon-picker__link' onClick={browser.reset}>\n {labels.clearFilters}\n </button>\n </State>\n )}\n {showGroups &&\n browser.groups.map(group => {\n const titleId = `${baseId}-${group.category}`;\n const overflow = group.entries.length > compactGroupSize;\n return (\n <section\n key={group.category}\n {...parts?.group}\n aria-labelledby={titleId}\n className={classNames('cratis-icon-picker__group', parts?.group?.className)}\n data-cratis-part='group'\n >\n <div className='cratis-icon-picker__group-header'>\n <h3\n {...parts?.groupTitle}\n id={titleId}\n className={classNames('cratis-icon-picker__group-title', parts?.groupTitle?.className)}\n data-cratis-part='groupTitle'\n >\n {categoryName(group.category)}\n </h3>\n {overflow && (\n <button\n {...parts?.showAll}\n type='button'\n aria-describedby={titleId}\n className={classNames('cratis-icon-picker__link', parts?.showAll?.className)}\n data-cratis-part='showAll'\n onClick={() => browser.setCategory(group.category)}\n >\n {labels.showAll(group.entries.length)}\n </button>\n )}\n </div>\n <IconPickerGrid\n {...grid}\n entries={overflow ? group.entries.slice(0, compactGroupSize) : group.entries}\n label={categoryName(group.category)}\n parts={parts}\n />\n </section>\n );\n })}\n {showFlat && <IconPickerGrid {...grid} entries={browser.matches} label={labels.title} parts={parts} />}\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { IconPickerParts } from './IconPickerParts.js';
2
+ /** Props for {@link IconPickerSearch}. */
3
+ export interface IconPickerSearchProps {
4
+ /** The search as typed. */
5
+ value: string;
6
+ /** Called as the search changes. */
7
+ onChange: (value: string) => void;
8
+ /** Accessible name of the field. */
9
+ label: string;
10
+ /** Placeholder of the field. */
11
+ placeholder: string;
12
+ /** Accessible name of the clear button. */
13
+ clearLabel: string;
14
+ /** Called when Down is pressed, so focus can move into the icons. */
15
+ onMoveToResults: () => void;
16
+ /** Pass-through attributes for the field and its clear button. */
17
+ parts?: Pick<IconPickerParts, 'search' | 'clear'>;
18
+ }
19
+ /** The popout's search field, with a button that clears it and hands focus back to the field. */
20
+ export declare const IconPickerSearch: ({ value, onChange, label, placeholder, clearLabel, onMoveToResults, parts, }: IconPickerSearchProps) => import("react").JSX.Element;
21
+ //# sourceMappingURL=IconPickerSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerSearch.d.ts","sourceRoot":"","sources":["../../../IconPicker/IconPickerSearch.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAEzD,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IAClC,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IAEd,oCAAoC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IAEd,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IAEpB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IAEnB,qEAAqE;IACrE,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B,kEAAkE;IAClE,KAAK,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;CACrD;AAED,iGAAiG;AACjG,eAAO,MAAM,gBAAgB,iFAQ1B,qBAAqB,gCA6CvB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useRef } from 'react';
3
+ import { FaMagnifyingGlass, FaXmark } from 'react-icons/fa6';
4
+ import { classNames } from '../ClassNames/classNames.js';
5
+
6
+ const IconPickerSearch = ({ value, onChange, label, placeholder, clearLabel, onMoveToResults, parts, }) => {
7
+ const input = useRef(null);
8
+ const onKeyDown = (event) => {
9
+ if (event.key !== 'ArrowDown')
10
+ return;
11
+ event.preventDefault();
12
+ onMoveToResults();
13
+ };
14
+ return (jsxs("div", { className: 'cratis-icon-picker__search', children: [jsx(FaMagnifyingGlass, { className: 'cratis-icon-picker__search-icon', "aria-hidden": 'true', focusable: 'false' }), jsx("input", { ...parts?.search, ref: input, type: 'text', role: 'searchbox', autoFocus: true, autoComplete: 'off', spellCheck: false, enterKeyHint: 'search', "aria-label": label, placeholder: placeholder, value: value, className: classNames('cratis-icon-picker__search-input', parts?.search?.className), "data-cratis-part": 'search', onChange: event => onChange(event.target.value), onKeyDown: onKeyDown }), value !== '' && (jsx("button", { ...parts?.clear, type: 'button', "aria-label": clearLabel, className: classNames('cratis-icon-picker__clear', parts?.clear?.className), "data-cratis-part": 'clear', onClick: () => {
15
+ onChange('');
16
+ input.current?.focus();
17
+ }, children: jsx(FaXmark, { "aria-hidden": 'true', focusable: 'false' }) }))] }));
18
+ };
19
+
20
+ export { IconPickerSearch };
21
+ //# sourceMappingURL=IconPickerSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerSearch.js","sources":["../../../IconPicker/IconPickerSearch.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useRef, type KeyboardEvent } from 'react';\nimport { FaMagnifyingGlass, FaXmark } from 'react-icons/fa6';\nimport { classNames } from '../ClassNames/classNames';\nimport type { IconPickerParts } from './IconPickerParts';\n\n/** Props for {@link IconPickerSearch}. */\nexport interface IconPickerSearchProps {\n /** The search as typed. */\n value: string;\n\n /** Called as the search changes. */\n onChange: (value: string) => void;\n\n /** Accessible name of the field. */\n label: string;\n\n /** Placeholder of the field. */\n placeholder: string;\n\n /** Accessible name of the clear button. */\n clearLabel: string;\n\n /** Called when Down is pressed, so focus can move into the icons. */\n onMoveToResults: () => void;\n\n /** Pass-through attributes for the field and its clear button. */\n parts?: Pick<IconPickerParts, 'search' | 'clear'>;\n}\n\n/** The popout's search field, with a button that clears it and hands focus back to the field. */\nexport const IconPickerSearch = ({\n value,\n onChange,\n label,\n placeholder,\n clearLabel,\n onMoveToResults,\n parts,\n}: IconPickerSearchProps) => {\n const input = useRef<HTMLInputElement>(null);\n const onKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key !== 'ArrowDown') return;\n event.preventDefault();\n onMoveToResults();\n };\n\n return (\n <div className='cratis-icon-picker__search'>\n <FaMagnifyingGlass className='cratis-icon-picker__search-icon' aria-hidden='true' focusable='false' />\n <input\n {...parts?.search}\n ref={input}\n type='text'\n role='searchbox'\n autoFocus\n autoComplete='off'\n spellCheck={false}\n enterKeyHint='search'\n aria-label={label}\n placeholder={placeholder}\n value={value}\n className={classNames('cratis-icon-picker__search-input', parts?.search?.className)}\n data-cratis-part='search'\n onChange={event => onChange(event.target.value)}\n onKeyDown={onKeyDown}\n />\n {value !== '' && (\n <button\n {...parts?.clear}\n type='button'\n aria-label={clearLabel}\n className={classNames('cratis-icon-picker__clear', parts?.clear?.className)}\n data-cratis-part='clear'\n onClick={() => {\n onChange('');\n input.current?.focus();\n }}\n >\n <FaXmark aria-hidden='true' focusable='false' />\n </button>\n )}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;MAiCa,gBAAgB,GAAG,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EACV,eAAe,EACf,KAAK,GACe,KAAI;AACxB,IAAA,MAAM,KAAK,GAAG,MAAM,CAAmB,IAAI,CAAC;AAC5C,IAAA,MAAM,SAAS,GAAG,CAAC,KAAsC,KAAI;AACzD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW;YAAE;QAC/B,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,eAAe,EAAE;AACrB,IAAA,CAAC;AAED,IAAA,QACIA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAA,CACvCC,GAAA,CAAC,iBAAiB,EAAA,EAAC,SAAS,EAAC,iCAAiC,EAAA,aAAA,EAAa,MAAM,EAAC,SAAS,EAAC,OAAO,EAAA,CAAG,EACtGA,GAAA,CAAA,OAAA,EAAA,EAAA,GACQ,KAAK,EAAE,MAAM,EACjB,GAAG,EAAE,KAAK,EACV,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,WAAW,EAChB,SAAS,EAAA,IAAA,EACT,YAAY,EAAC,KAAK,EAClB,UAAU,EAAE,KAAK,EACjB,YAAY,EAAC,QAAQ,EAAA,YAAA,EACT,KAAK,EACjB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,UAAU,CAAC,kCAAkC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAA,kBAAA,EAClE,QAAQ,EACzB,QAAQ,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,SAAS,EAAE,SAAS,EAAA,CACtB,EACD,KAAK,KAAK,EAAE,KACTA,GAAA,CAAA,QAAA,EAAA,EAAA,GACQ,KAAK,EAAE,KAAK,EAChB,IAAI,EAAC,QAAQ,EAAA,YAAA,EACD,UAAU,EACtB,SAAS,EAAE,UAAU,CAAC,2BAA2B,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAA,kBAAA,EAC1D,OAAO,EACxB,OAAO,EAAE,MAAK;oBACV,QAAQ,CAAC,EAAE,CAAC;AACZ,oBAAA,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE;AAC1B,gBAAA,CAAC,EAAA,QAAA,EAEDA,GAAA,CAAC,OAAO,EAAA,EAAA,aAAA,EAAa,MAAM,EAAC,SAAS,EAAC,OAAO,EAAA,CAAG,EAAA,CAC3C,CACZ,CAAA,EAAA,CACC;AAEd;;"}
@@ -0,0 +1,12 @@
1
+ /** What the popout is currently showing, for {@link IconPickerLabels.summary}. */
2
+ export interface IconPickerSummary {
3
+ /** How many icons match. */
4
+ count: number;
5
+ /** The active search, or an empty string. */
6
+ query: string;
7
+ /** The name of the active category filter, if any. */
8
+ category?: string;
9
+ /** The name of the active library filter, if any. */
10
+ library?: string;
11
+ }
12
+ //# sourceMappingURL=IconPickerSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerSummary.d.ts","sourceRoot":"","sources":["../../../IconPicker/IconPickerSummary.ts"],"names":[],"mappings":"AAGA,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAC9B,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IAEd,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IAEd,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export {};
4
+ //# sourceMappingURL=IconPickerSummary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconPickerSummary.js","sourceRoot":"","sources":["../../../IconPicker/IconPickerSummary.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG","sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/** What the popout is currently showing, for {@link IconPickerLabels.summary}. */\nexport interface IconPickerSummary {\n /** How many icons match. */\n count: number;\n\n /** The active search, or an empty string. */\n query: string;\n\n /** The name of the active category filter, if any. */\n category?: string;\n\n /** The name of the active library filter, if any. */\n library?: string;\n}\n"]}