openproject-primer_view_components 0.70.5 → 0.71.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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/app/assets/javascripts/components/primer/alpha/segmented_control.d.ts +2 -2
  4. data/app/assets/javascripts/components/primer/open_project/filterable_tree_view.d.ts +29 -0
  5. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view.d.ts +11 -1
  6. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.d.ts +5 -1
  7. data/app/assets/javascripts/components/primer/primer.d.ts +1 -0
  8. data/app/assets/javascripts/primer_view_components.js +1 -1
  9. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  10. data/app/assets/styles/primer_view_components.css +1 -1
  11. data/app/assets/styles/primer_view_components.css.map +1 -1
  12. data/app/components/primer/alpha/segmented_control.d.ts +2 -2
  13. data/app/components/primer/alpha/segmented_control.js +12 -0
  14. data/app/components/primer/alpha/segmented_control.ts +16 -1
  15. data/app/components/primer/alpha/stack.css +1 -1
  16. data/app/components/primer/alpha/stack.css.json +5 -1
  17. data/app/components/primer/alpha/stack.css.map +1 -1
  18. data/app/components/primer/alpha/stack.pcss +13 -0
  19. data/app/components/primer/alpha/stack.rb +2 -1
  20. data/app/components/primer/open_project/filterable_tree_view/sub_tree.rb +39 -0
  21. data/app/components/primer/open_project/filterable_tree_view.d.ts +29 -0
  22. data/app/components/primer/open_project/filterable_tree_view.html.erb +28 -0
  23. data/app/components/primer/open_project/filterable_tree_view.js +409 -0
  24. data/app/components/primer/open_project/filterable_tree_view.rb +254 -0
  25. data/app/components/primer/open_project/filterable_tree_view.ts +492 -0
  26. data/app/components/primer/open_project/tree_view/node.rb +19 -3
  27. data/app/components/primer/open_project/tree_view/sub_tree_node.rb +14 -4
  28. data/app/components/primer/open_project/tree_view/tree_view.d.ts +11 -1
  29. data/app/components/primer/open_project/tree_view/tree_view.js +120 -20
  30. data/app/components/primer/open_project/tree_view/tree_view.ts +137 -18
  31. data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.d.ts +5 -1
  32. data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.js +27 -4
  33. data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.ts +36 -5
  34. data/app/components/primer/open_project/tree_view.css +1 -1
  35. data/app/components/primer/open_project/tree_view.css.json +9 -0
  36. data/app/components/primer/open_project/tree_view.css.map +1 -1
  37. data/app/components/primer/open_project/tree_view.html.erb +4 -0
  38. data/app/components/primer/open_project/tree_view.pcss +48 -0
  39. data/app/components/primer/open_project/tree_view.rb +6 -1
  40. data/app/components/primer/primer.d.ts +1 -0
  41. data/app/components/primer/primer.js +1 -0
  42. data/app/components/primer/primer.ts +1 -0
  43. data/app/lib/primer/forms/base_component.rb +1 -1
  44. data/app/lib/primer/forms/dsl/text_field_input.rb +2 -0
  45. data/config/locales/en.yml +20 -0
  46. data/lib/primer/view_components/version.rb +2 -2
  47. data/previews/primer/open_project/filterable_tree_view_preview/_custom_select_js.html.erb +62 -0
  48. data/previews/primer/open_project/filterable_tree_view_preview/custom_checkbox_text.html.erb +26 -0
  49. data/previews/primer/open_project/filterable_tree_view_preview/custom_no_results_text.html.erb +28 -0
  50. data/previews/primer/open_project/filterable_tree_view_preview/custom_segmented_control.html.erb +31 -0
  51. data/previews/primer/open_project/filterable_tree_view_preview/default.html.erb +26 -0
  52. data/previews/primer/open_project/filterable_tree_view_preview/form_input.html.erb +32 -0
  53. data/previews/primer/open_project/filterable_tree_view_preview/playground.html.erb +26 -0
  54. data/previews/primer/open_project/filterable_tree_view_preview.rb +125 -0
  55. data/previews/primer/open_project/tree_view_preview/buttons.html.erb +4 -4
  56. data/previews/primer/open_project/tree_view_preview/default.html.erb +4 -4
  57. data/previews/primer/open_project/tree_view_preview/leaf_node_playground.html.erb +1 -1
  58. data/previews/primer/open_project/tree_view_preview/links.html.erb +4 -4
  59. data/previews/primer/open_project/tree_view_preview.rb +18 -8
  60. data/static/arguments.json +89 -3
  61. data/static/audited_at.json +2 -0
  62. data/static/constants.json +40 -1
  63. data/static/info_arch.json +220 -3
  64. data/static/previews.json +86 -0
  65. data/static/statuses.json +2 -0
  66. metadata +18 -2
@@ -8373,7 +8373,7 @@
8373
8373
  "name": "wrap",
8374
8374
  "type": "Symbol",
8375
8375
  "default": "`:nowrap`",
8376
- "description": "Specify whether items are forced onto one line or can wrap onto multiple lines. One of `nil`, `:nowrap`, or `:wrap`."
8376
+ "description": "Specify whether items are forced onto one line or can wrap onto multiple lines. One of `nil`, `:nowrap`, `:reverse`, or `:wrap`."
8377
8377
  },
8378
8378
  {
8379
8379
  "name": "justify",
@@ -18410,6 +18410,189 @@
18410
18410
  "previews": [],
18411
18411
  "subcomponents": []
18412
18412
  },
18413
+ {
18414
+ "fully_qualified_name": "Primer::OpenProject::FilterableTreeView",
18415
+ "description": "A TreeView and associated filter controls for searching nested hierarchies.\n\n## Filter controls\n\n`FilterableTreeView`s can be filtered using two controls, both present in the toolbar above the tree:\n\n1. A free-form query string from a text input field.\n2. A `SegmentedControl` with two options (by default):\n 1. The \"Selected\" option causes the component to only show checked nodes, provided they also satisfy the other\n filter criteria described here.\n 2. The \"All\" option causes the component to show all nodes, provided they also satisfy the other filter\n criteria described here.\n\n## Custom filter modes\n\nIn addition to the default filter modes of `'all'` and `'selected'` described above, `FilterableTreeView` supports\nadding custom filter modes. Adding a filter mode will cause its label to appear in the `SegmentedControl` in the\ntoolbar, and will be passed as the third argument to the filter function (see below).\n\nHere's how to add a custom filter mode in addition to the default ones:\n\n```erb\n<%= render(Primer::OpenProject::FilterableTreeView.new) do |tree_view| %>\n <%# remove this line to prevent adding the default modes %>\n <% tree_view.with_default_filter_modes %>\n <% tree_view.with_filter_mode(name: \"Custom\", system_arguments)\n<% end %>\n```\n\n## Filter behavior\n\nBy default, matching node text is identified by looking for an exact substring match, operating on a lowercased\nversion of both the query string and the node text. For more information, and to provide a customized filter\nfunction, please see the section titled \"Customizing the filter function\" below.\n\nNodes that match the filter appear as normal; nodes that do not match are presented as follows:\n\n1. Leaf nodes are hidden.\n2. Sub-tree nodes with no matching children are hidden.\n3. Sub-tree nodes with at least one matching child are disabled but still visible.\n\n## Checking behavior\n\nBy default, checking a node in a `FilterableTreeView` checks only that node (i.e. no child nodes are checked).\nTo aide in checking children in deeply nested or highly populated hierarchies, a third control exists in the\ntoolbar: the \"Include sub-items\" check box. If this feature is turned on, checking sub-tree nodes causes all\nchildren, both leaf and sub-tree nodes, to also be checked recursively. Moreover, turning this feature on will\ncause the children of any previously checked nodes to be checked recursively. Unchecking a node while in\n\"Include sub-items\" mode will restore that sub-tree and all its children to their previously checked state, so as\nnot to permanently override a user's selections. Unchecking the \"Include sub-items\" check box has a similar effect,\ni.e. restores all previous user selections under currently checked sub-trees.\n\n## JavaScript API\n\n`FilterableTreeView` does not yet have an extensive JavaScript API, but this may change in the future as the\ncomponent is further developed to fit additional use-cases.\n\n### Customizing the filter function\n\nThe filter function can be customized by setting the value of the `filterFn` property to a function with the\nfollowing signature:\n\n```typescript\nexport type FilterFn = (node: HTMLElement, query: string, filterMode?: string) => Range[] | null\n```\n\nThis function will be called once for each node in the tree every time filter controls change (i.e. when the\nfilter mode or query string are altered). The function is called with the following arguments:\n\n|Argument |Description |\n|:-----------|:----------------------------------------------------------------|\n|`node` |The HTML node element, i.e. the element with `role=treeitem` set.|\n|`query` |The query string. |\n|`filterMode`|The filter mode, either `'all'` or `'selected'`. |\n\nThe component expects the filter function to return specific values depending on the type of match:\n\n1. No match - return `null`\n2. Match but no highlights (eg. when the query string is empty) - return an empty array\n3. Match with highlights - return a non-empty array of `Range` objects\n\nExample:\n\n```javascript\nconst filterableTreeView = document.querySelector('filterable-tree-view')\nfilterableTreeView.filterFn = (node, query, filterMode) => {\n // custom filter implementation here\n}\n```\n\nYou can read about `Range` objects here: https://developer.mozilla.org/en-US/docs/Web/API/Range.\n\nFor a complete example demonstrating how to implement a working filter function complete with range highlighting,\nsee the default filter function available in the `FilterableTreeViewElement` JavaScript class, which is part of\nthe Primer source code.\n\n### Events\n\nCurrently `FilterableTreeView` does not emit any events aside from the events already emitted by the `TreeView`\ncomponent.",
18416
+ "accessibility_docs": null,
18417
+ "is_form_component": false,
18418
+ "is_published": true,
18419
+ "requires_js": false,
18420
+ "component": "OpenProject::FilterableTreeView",
18421
+ "status": "alpha",
18422
+ "a11y_reviewed": false,
18423
+ "short_name": "OpenProjectFilterableTreeView",
18424
+ "source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/filterable_tree_view.rb",
18425
+ "lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/filterable_tree_view/default/",
18426
+ "parameters": [
18427
+ {
18428
+ "name": "tree_view_arguments",
18429
+ "type": "Hash",
18430
+ "default": "`{}`",
18431
+ "description": "Arguments that will be passed to the underlying {{#link_to_component}}Primer::OpenProject::TreeView{{/link_to_component}} component."
18432
+ },
18433
+ {
18434
+ "name": "form_arguments",
18435
+ "type": "Hash",
18436
+ "default": "`{}`",
18437
+ "description": "Form arguments that will be passed to the underlying {{#link_to_component}}Primer::OpenProject::TreeView{{/link_to_component}} component. These arguments allow the selections made within a `FilterableTreeView` to be submitted to the server as part of a Rails form. Pass the `builder:` and `name:` options to this hash. `builder:` should be an instance of `ActionView::Helpers::FormBuilder`, which are created by the standard Rails `#form_with` and `#form_for` helpers. The `name:` option is the desired name of the field that will be included in the params sent to the server on form submission."
18438
+ },
18439
+ {
18440
+ "name": "filter_input_arguments",
18441
+ "type": "Hash",
18442
+ "default": "`DEFAULT_FILTER_INPUT_ARGUMENTS.dup`",
18443
+ "description": "Arguments that will be passed to the {{#link_to_component}}Primer::Alpha::TextField{{/link_to_component}} component."
18444
+ },
18445
+ {
18446
+ "name": "filter_mode_control_arguments",
18447
+ "type": "Hash",
18448
+ "default": "`DEFAULT_FILTER_MODE_CONTROL_ARGUMENTS.dup`",
18449
+ "description": "Arguments that will be passed to the {{#link_to_component}}Primer::Alpha::SegmentedControl{{/link_to_component}} component."
18450
+ },
18451
+ {
18452
+ "name": "include_sub_items_check_box_arguments",
18453
+ "type": "Hash",
18454
+ "default": "`DEFAULT_INCLUDE_SUB_ITEMS_CHECK_BOX_ARGUMENTS.dup`",
18455
+ "description": "Arguments that will be passed to the {{#link_to_component}}Primer::Alpha::CheckBox{{/link_to_component}} component."
18456
+ },
18457
+ {
18458
+ "name": "no_results_node_arguments",
18459
+ "type": "Hash",
18460
+ "default": "`DEFAULT_NO_RESULTS_NODE_ARGUMENTS.dup`",
18461
+ "description": "Arguments that will be passed to a {{#link_to_component}}Primer::OpenProject::TreeView::LeafNode{{/link_to_component}} component that appears when no items match the filter criteria."
18462
+ }
18463
+ ],
18464
+ "slots": [],
18465
+ "methods": [],
18466
+ "previews": [
18467
+ {
18468
+ "preview_path": "primer/open_project/filterable_tree_view/playground",
18469
+ "name": "playground",
18470
+ "snapshot": "false",
18471
+ "skip_rules": {
18472
+ "wont_fix": [
18473
+ "region"
18474
+ ],
18475
+ "will_fix": [
18476
+ "color-contrast"
18477
+ ]
18478
+ }
18479
+ },
18480
+ {
18481
+ "preview_path": "primer/open_project/filterable_tree_view/default",
18482
+ "name": "default",
18483
+ "snapshot": "interactive",
18484
+ "skip_rules": {
18485
+ "wont_fix": [
18486
+ "region"
18487
+ ],
18488
+ "will_fix": [
18489
+ "color-contrast"
18490
+ ]
18491
+ }
18492
+ },
18493
+ {
18494
+ "preview_path": "primer/open_project/filterable_tree_view/form_input",
18495
+ "name": "form_input",
18496
+ "snapshot": "false",
18497
+ "skip_rules": {
18498
+ "wont_fix": [
18499
+ "region"
18500
+ ],
18501
+ "will_fix": [
18502
+ "color-contrast"
18503
+ ]
18504
+ }
18505
+ },
18506
+ {
18507
+ "preview_path": "primer/open_project/filterable_tree_view/custom_segmented_control",
18508
+ "name": "custom_segmented_control",
18509
+ "snapshot": "interactive",
18510
+ "skip_rules": {
18511
+ "wont_fix": [
18512
+ "region"
18513
+ ],
18514
+ "will_fix": [
18515
+ "color-contrast"
18516
+ ]
18517
+ }
18518
+ },
18519
+ {
18520
+ "preview_path": "primer/open_project/filterable_tree_view/custom_no_results_text",
18521
+ "name": "custom_no_results_text",
18522
+ "snapshot": "false",
18523
+ "skip_rules": {
18524
+ "wont_fix": [
18525
+ "region"
18526
+ ],
18527
+ "will_fix": [
18528
+ "color-contrast"
18529
+ ]
18530
+ }
18531
+ },
18532
+ {
18533
+ "preview_path": "primer/open_project/filterable_tree_view/custom_checkbox_text",
18534
+ "name": "custom_checkbox_text",
18535
+ "snapshot": "false",
18536
+ "skip_rules": {
18537
+ "wont_fix": [
18538
+ "region"
18539
+ ],
18540
+ "will_fix": [
18541
+ "color-contrast"
18542
+ ]
18543
+ }
18544
+ }
18545
+ ],
18546
+ "subcomponents": []
18547
+ },
18548
+ {
18549
+ "fully_qualified_name": "Primer::OpenProject::FilterableTreeView::SubTree",
18550
+ "description": "A `FilterableTreeView` sub-tree node.\n\nThis component is part of the {{#link_to_component}}Primer::OpenProject::FilterableTreeView{{/link_to_component}} component and\nshould not be used directly.",
18551
+ "accessibility_docs": null,
18552
+ "is_form_component": false,
18553
+ "is_published": true,
18554
+ "requires_js": false,
18555
+ "component": "OpenProject::FilterableTreeView::SubTree",
18556
+ "status": "alpha",
18557
+ "a11y_reviewed": false,
18558
+ "short_name": "OpenProjectFilterableTreeViewSubTree",
18559
+ "source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/filterable_tree_view/sub_tree.rb",
18560
+ "lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/filterable_tree_view/sub_tree/default/",
18561
+ "parameters": [
18562
+ {
18563
+ "name": "node_variant",
18564
+ "type": "Symbol",
18565
+ "default": "N/A",
18566
+ "description": "The variant to use for this node. One of `:anchor`, `:button`, or `:div`."
18567
+ },
18568
+ {
18569
+ "name": "system_arguments",
18570
+ "type": "Hash",
18571
+ "default": "N/A",
18572
+ "description": "The arguments accepted by {{#link_to_component}}Primer::OpenProject::TreeView::SubTreeContainer{{/link_to_component}}."
18573
+ }
18574
+ ],
18575
+ "slots": [
18576
+ {
18577
+ "name": "nodes",
18578
+ "description": null,
18579
+ "parameters": []
18580
+ },
18581
+ {
18582
+ "name": "loader",
18583
+ "description": null,
18584
+ "parameters": []
18585
+ },
18586
+ {
18587
+ "name": "no_items_message",
18588
+ "description": "The message to display if this sub-tree contains no children.",
18589
+ "parameters": []
18590
+ }
18591
+ ],
18592
+ "methods": [],
18593
+ "previews": [],
18594
+ "subcomponents": []
18595
+ },
18413
18596
  {
18414
18597
  "fully_qualified_name": "Primer::OpenProject::FlexLayout",
18415
18598
  "description": "A layouting component used to arrange multiple components next / below each other",
@@ -20367,6 +20550,18 @@
20367
20550
  "default": "`false`",
20368
20551
  "description": "The checked state of the node's checkbox. One of `false`, `mixed`, or `true`."
20369
20552
  },
20553
+ {
20554
+ "name": "disabled",
20555
+ "type": "Boolean",
20556
+ "default": "`false`",
20557
+ "description": "Whether or not the node can be activated. Passing `false` here will cause the node to appear visually disabled but it is still keyboard-focusable."
20558
+ },
20559
+ {
20560
+ "name": "value",
20561
+ "type": "String",
20562
+ "default": "`nil`",
20563
+ "description": "If this node is checked, this value will be sent to the server on form submission."
20564
+ },
20370
20565
  {
20371
20566
  "name": "content_arguments",
20372
20567
  "type": "Hash",
@@ -20442,6 +20637,22 @@
20442
20637
  "Symbol"
20443
20638
  ]
20444
20639
  },
20640
+ {
20641
+ "name": "disabled",
20642
+ "description": "Whether or not this node is disabled, i.e. cannot be activated.",
20643
+ "parameters": [],
20644
+ "return_types": [
20645
+ "Boolean"
20646
+ ]
20647
+ },
20648
+ {
20649
+ "name": "disabled?",
20650
+ "description": "Whether or not this node is disabled, i.e. cannot be activated.",
20651
+ "parameters": [],
20652
+ "return_types": [
20653
+ "Boolean"
20654
+ ]
20655
+ },
20445
20656
  {
20446
20657
  "name": "level",
20447
20658
  "description": "The numeric depth of this node.",
@@ -20764,6 +20975,12 @@
20764
20975
  "default": "N/A",
20765
20976
  "description": "The variant to use for this node. One of `:anchor`, `:button`, or `:div`."
20766
20977
  },
20978
+ {
20979
+ "name": "sub_tree_component_klass",
20980
+ "type": "Class",
20981
+ "default": "`SubTree`",
20982
+ "description": "The class to use for the sub-tree instead of the default {{#link_to_component}}Primer::OpenProject::TreeView::SubTree{{/link_to_component}}"
20983
+ },
20767
20984
  {
20768
20985
  "name": "expanded",
20769
20986
  "type": "Boolean",
@@ -20773,8 +20990,8 @@
20773
20990
  {
20774
20991
  "name": "select_strategy",
20775
20992
  "type": "Symbol",
20776
- "default": "`:descendants`",
20777
- "description": "What should happen when this sub-tree node is checked. One of `:descendants` or `:self`."
20993
+ "default": "`:mixed_descendants`",
20994
+ "description": "What should happen when this sub-tree node is checked. One of `:descendants`, `:mixed_descendants`, or `:self`."
20778
20995
  },
20779
20996
  {
20780
20997
  "name": "system_arguments",
data/static/previews.json CHANGED
@@ -4228,6 +4228,92 @@
4228
4228
  }
4229
4229
  ]
4230
4230
  },
4231
+ {
4232
+ "name": "filterable_tree_view",
4233
+ "component": "OpenProject::FilterableTreeView",
4234
+ "status": "alpha",
4235
+ "lookup_path": "primer/open_project/filterable_tree_view",
4236
+ "examples": [
4237
+ {
4238
+ "preview_path": "primer/open_project/filterable_tree_view/playground",
4239
+ "name": "playground",
4240
+ "snapshot": "false",
4241
+ "skip_rules": {
4242
+ "wont_fix": [
4243
+ "region"
4244
+ ],
4245
+ "will_fix": [
4246
+ "color-contrast"
4247
+ ]
4248
+ }
4249
+ },
4250
+ {
4251
+ "preview_path": "primer/open_project/filterable_tree_view/default",
4252
+ "name": "default",
4253
+ "snapshot": "interactive",
4254
+ "skip_rules": {
4255
+ "wont_fix": [
4256
+ "region"
4257
+ ],
4258
+ "will_fix": [
4259
+ "color-contrast"
4260
+ ]
4261
+ }
4262
+ },
4263
+ {
4264
+ "preview_path": "primer/open_project/filterable_tree_view/form_input",
4265
+ "name": "form_input",
4266
+ "snapshot": "false",
4267
+ "skip_rules": {
4268
+ "wont_fix": [
4269
+ "region"
4270
+ ],
4271
+ "will_fix": [
4272
+ "color-contrast"
4273
+ ]
4274
+ }
4275
+ },
4276
+ {
4277
+ "preview_path": "primer/open_project/filterable_tree_view/custom_segmented_control",
4278
+ "name": "custom_segmented_control",
4279
+ "snapshot": "interactive",
4280
+ "skip_rules": {
4281
+ "wont_fix": [
4282
+ "region"
4283
+ ],
4284
+ "will_fix": [
4285
+ "color-contrast"
4286
+ ]
4287
+ }
4288
+ },
4289
+ {
4290
+ "preview_path": "primer/open_project/filterable_tree_view/custom_no_results_text",
4291
+ "name": "custom_no_results_text",
4292
+ "snapshot": "false",
4293
+ "skip_rules": {
4294
+ "wont_fix": [
4295
+ "region"
4296
+ ],
4297
+ "will_fix": [
4298
+ "color-contrast"
4299
+ ]
4300
+ }
4301
+ },
4302
+ {
4303
+ "preview_path": "primer/open_project/filterable_tree_view/custom_checkbox_text",
4304
+ "name": "custom_checkbox_text",
4305
+ "snapshot": "false",
4306
+ "skip_rules": {
4307
+ "wont_fix": [
4308
+ "region"
4309
+ ],
4310
+ "will_fix": [
4311
+ "color-contrast"
4312
+ ]
4313
+ }
4314
+ }
4315
+ ]
4316
+ },
4231
4317
  {
4232
4318
  "name": "flash",
4233
4319
  "component": "Flash",
data/static/statuses.json CHANGED
@@ -135,6 +135,8 @@
135
135
  "Primer::OpenProject::FileTreeView": "alpha",
136
136
  "Primer::OpenProject::FileTreeView::DirectoryNode": "alpha",
137
137
  "Primer::OpenProject::FileTreeView::FileNode": "alpha",
138
+ "Primer::OpenProject::FilterableTreeView": "alpha",
139
+ "Primer::OpenProject::FilterableTreeView::SubTree": "alpha",
138
140
  "Primer::OpenProject::FlexLayout": "open_project",
139
141
  "Primer::OpenProject::GridLayout": "open_project",
140
142
  "Primer::OpenProject::GridLayout::Area": "open_project",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openproject-primer_view_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.70.5
4
+ version: 0.71.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub Open Source
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-08-11 00:00:00.000000000 Z
12
+ date: 2025-08-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionview
@@ -109,6 +109,7 @@ files:
109
109
  - app/assets/javascripts/components/primer/open_project/collapsible.d.ts
110
110
  - app/assets/javascripts/components/primer/open_project/collapsible_section.d.ts
111
111
  - app/assets/javascripts/components/primer/open_project/danger_dialog_form_helper.d.ts
112
+ - app/assets/javascripts/components/primer/open_project/filterable_tree_view.d.ts
112
113
  - app/assets/javascripts/components/primer/open_project/page_header_element.d.ts
113
114
  - app/assets/javascripts/components/primer/open_project/sub_header_element.d.ts
114
115
  - app/assets/javascripts/components/primer/open_project/tree_view/tree_view.d.ts
@@ -561,6 +562,12 @@ files:
561
562
  - app/components/primer/open_project/file_tree_view/directory_node.rb
562
563
  - app/components/primer/open_project/file_tree_view/file_node.html.erb
563
564
  - app/components/primer/open_project/file_tree_view/file_node.rb
565
+ - app/components/primer/open_project/filterable_tree_view.d.ts
566
+ - app/components/primer/open_project/filterable_tree_view.html.erb
567
+ - app/components/primer/open_project/filterable_tree_view.js
568
+ - app/components/primer/open_project/filterable_tree_view.rb
569
+ - app/components/primer/open_project/filterable_tree_view.ts
570
+ - app/components/primer/open_project/filterable_tree_view/sub_tree.rb
564
571
  - app/components/primer/open_project/flex_layout.html.erb
565
572
  - app/components/primer/open_project/flex_layout.rb
566
573
  - app/components/primer/open_project/grid_layout.html.erb
@@ -850,6 +857,7 @@ files:
850
857
  - app/views/primer/view_components/select_panel_items/index.html.erb
851
858
  - app/views/primer/view_components/tree_view_items/async_alpha.html_fragment.erb
852
859
  - app/views/primer/view_components/tree_view_items/index.html_fragment.erb
860
+ - config/locales/en.yml
853
861
  - config/routes.rb
854
862
  - lib/postcss_mixins/activeIndicatorLine.pcss
855
863
  - lib/postcss_mixins/clearfix.pcss
@@ -1195,6 +1203,14 @@ files:
1195
1203
  - previews/primer/open_project/file_tree_view_preview.rb
1196
1204
  - previews/primer/open_project/file_tree_view_preview/default.html.erb
1197
1205
  - previews/primer/open_project/file_tree_view_preview/playground.html.erb
1206
+ - previews/primer/open_project/filterable_tree_view_preview.rb
1207
+ - previews/primer/open_project/filterable_tree_view_preview/_custom_select_js.html.erb
1208
+ - previews/primer/open_project/filterable_tree_view_preview/custom_checkbox_text.html.erb
1209
+ - previews/primer/open_project/filterable_tree_view_preview/custom_no_results_text.html.erb
1210
+ - previews/primer/open_project/filterable_tree_view_preview/custom_segmented_control.html.erb
1211
+ - previews/primer/open_project/filterable_tree_view_preview/default.html.erb
1212
+ - previews/primer/open_project/filterable_tree_view_preview/form_input.html.erb
1213
+ - previews/primer/open_project/filterable_tree_view_preview/playground.html.erb
1198
1214
  - previews/primer/open_project/flex_layout_preview.rb
1199
1215
  - previews/primer/open_project/grid_layout_preview.rb
1200
1216
  - previews/primer/open_project/heading_preview.rb