From 563504cd20d11f0b8dd5c52d298e6a5532513f75 Mon Sep 17 00:00:00 2001 From: Akshat Jawne <69530774+AkshatJawne@users.noreply.github.com> Date: Mon, 19 Aug 2024 09:41:35 -0600 Subject: [PATCH 01/22] docs: ui.combo_box (#718) Closes #687 --------- Co-authored-by: margaretkennedy <82049573+margaretkennedy@users.noreply.github.com> --- plugins/ui/docs/components/combo_box.md | 791 ++++++++++++++++++++++++ 1 file changed, 791 insertions(+) create mode 100644 plugins/ui/docs/components/combo_box.md diff --git a/plugins/ui/docs/components/combo_box.md b/plugins/ui/docs/components/combo_box.md new file mode 100644 index 000000000..7b2f62f90 --- /dev/null +++ b/plugins/ui/docs/components/combo_box.md @@ -0,0 +1,791 @@ +# Combo Box + +Combo boxes combine a text input field with a picker menu, enabling users to filter and select from longer lists based on their query. + +## Example + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_basic(): + option, set_option = ui.use_state("") + + return ui.combo_box( + ui.item("red panda"), + ui.item("cat"), + ui.item("dog"), + ui.item("aardvark"), + ui.item("kangaroo"), + ui.item("snake"), + ui.item("ant"), + label="Favorite Animal", + selected_key=option, + on_change=set_option, + ) + + +my_combo_box_basic = ui_combo_box_basic() +``` + +## UI Recommendations + +Recommendations for creating clear and effective combo boxes: + +1. The combo box's text input simplifies searching through large lists. For lists with fewer than 6 items, use radio buttons. For lists with more than 6 items, assess if the list is complex enough to need searching and filtering, and if not, use a picker instead. +2. Every combo box should have a label specified. Without one, the combo box is ambiguous and not accessible. +3. Options in the combo box should be kept short and concise; multiple lines are strongly discouraged. If more than one line is needed, consider using a description to add context to the option. +4. Choose a `width` for your combo boxes that can accommodate most of the available options. +5. The field labels, menu items, and placeholder text should all be in sentence case. +6. Identify which combo boxes are required or optional, and use the `is_required` field or the `necessity_indicator` to mark them accordingly. +7. A combo box's help text should provide actionable guidance on what to select and how to select it, offering additional context without repeating the placeholder text. +8. When an error occurs, the help text specified in a combo box is replaced by error text; thus, ensure both help and error text convey the same essential information to maintain consistent messaging and prevent loss of critical details. +9. Write error messages in a clear, concise, and helpful manner, guiding users to resolve the issue without ambiguity; ideally, they should be 1-2 short, complete sentences. + + +## Data sources + +For combo boxes, we can use a Deephaven table as a data source to populate the options. When using a table, it automatically uses the first column as both the key and label. If there are any duplicate keys, an error will be thrown; to avoid this, a `select_distinct` can be used on the table prior to using it as a combo box data source. + +```python +from deephaven import ui, empty_table +from deephaven.plot import express as dx + + +countries = dx.data.gapminder().select_distinct("Country") + + +my_combo_box_table_source_example = ui.combo_box(countries, label="Sample Combo box") +``` + +## Item table sources + +If you wish to manually specify the keys and labels, use a `ui.item_table_source` to dynamically derive the options from a table. + +```python +from deephaven import ui, empty_table + +account_icon = "vsAccount" +columns = [ + "Key=new Integer(i)", + "Label=new String(`Display `+i)", + "Icon=(String) account_icon", +] +column_types = empty_table(20).update(columns) + + +item_table_source = ui.item_table_source( + column_types, + key_column="Key", + label_column="Label", + icon_column="Icon", +) + + +my_combo_box_item_table_source_example = ui.combo_box( + item_table_source, label="User Combo box" +) +``` + + +## Custom Value + +By default, when a combo box loses focus, it resets its input value to match the selected option's text or clears the input if no option is selected. To allow users to enter a custom value, use the `allows_custom_value` prop to override this behavior. + + +```python +from deephaven import ui +from deephaven.plot import express as dx + +countries = dx.data.gapminder().select_distinct("Country") + + +@ui.component +def ui_combo_box_custom_value_examples(): + value, set_value = ui.use_state("") + value_2, set_value_2 = ui.use_state("") + return [ + ui.combo_box( + countries, + on_input_change=set_value, + allows_custom_value=True, + label="Allows custom value", + ), + ui.text_field(value=value), + ui.combo_box( + countries, + on_input_change=set_value_2, + allows_custom_value=False, + label="Does not allow custom value", + ), + ui.text_field(value=value_2), + ] + + +my_combo_box_custom_value_examples = ui_combo_box_custom_value_examples() +``` + + +## HTML Forms + +Combo boxes can support a `name` prop for integration with HTML forms, allowing for easy identification of a value on form submission. The `form_value` prop determines whether the text or key of the selected item is submitted in an HTML form; if `allows_custom_value` is true, only the text is submitted. + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_form_examples(): + return [ + ui.form( + ui.combo_box( + ui.item("Chocolate"), + ui.item("Mint"), + ui.item("Vanilla"), + ui.item("Strawberry"), + ui.item("Cookies and Cream"), + ui.item("Coffee"), + ui.item("Mango"), + label="Ice cream flavor", + allows_custom_value=True, + ), + ui.combo_box( + ui.item("Panda"), + ui.item("Cat"), + ui.item("Dog"), + ui.item("Hamster"), + ui.item("Rabbit"), + ui.item("Horse"), + label="Favourite Animal", + name="favouriteAnimalId", + ), + ui.button("Submit", type="submit"), + on_submit=lambda event: print(event), + ) + ] + + +my_combo_box_form_examples = ui_combo_box_form_examples() +``` + + +## Labeling + +The combo box can be labeled using the `label` prop, and if no label is provided, an `aria_label` must be provided to identify the control for accessibility purposes. + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_label_examples(): + return [ + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + label="Pick an option", + ), + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + aria_label="Pick an option", + ), + ] + + +my_combo_box_label_examples = ui_combo_box_label_examples() +``` + + +The `is_required` prop and the `necessity_indicator` props can be used to show whether selecting an option in the combo box is required or optional. + +When the `necessity_indicator` prop is set to "label", a localized string will be generated for "(required)" or "(optional)" automatically. + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_required_examples(): + return [ + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + label="Pick an option", + is_required=True, + ), + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + label="Pick an option", + is_required=True, + necessity_indicator="label", + ), + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Pick an option", + necessity_indicator="label", + ), + ] + + +my_combo_box_required_examples = ui_combo_box_required_examples() +``` + + +## Selection + +In a combo box, the `default_selected_key` or `selected_key` props set a selected option. + +The `default_selected_key` is useful for simpler scenarios where you don't need to control the state externally. The `selected_key` is used for scenarios where the state should be managed by the parent component, providing control and flexibility over the selection of the combo box. + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_selected_key_examples(): + option, set_option = ui.use_state("Option 1") + return [ + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + default_selected_key="Option 2", + label="Pick an option (uncontrolled)", + ), + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + selected_key=option, + on_change=set_option, + label="Pick an option (controlled)", + ), + ] + + +my_combo_box_selected_key_examples = ui_combo_box_selected_key_examples() +``` + + +## Sections + +Combo boxes support sections to group options. Sections can be used by wrapping groups of items in a Section element. Each Section takes a title and key prop. + +Note that, when searching for options, searching by section will not result in the respective options within that section appearing. + +Also, sections can only be used directly, not from a table data source. + +```python +from deephaven import ui + + +my_combo_box_section_example = ui.combo_box( + ui.section( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + title="Section 1", + ), + ui.section( + ui.item("Option 9"), + ui.item("Option 10"), + ui.item("Option 11"), + ui.item("Option 12"), + ui.item("Option 13"), + ui.item("Option 14"), + ui.item("Option 15"), + ui.item("Option 16"), + title="Section 2", + ), +) +``` + + +## Events + +Combo boxes support selection via mouse, keyboard, and touch. You can handle all these via the `on_change` prop, which receives the selected key as an argument. Additionally, combo boxes accept an `on_input_change` prop, which is triggered whenever the search value is edited by the user, whether through typing or option selection. + +Each interaction done in the combo box will trigger its associated event handler. For instance, typing in the input field will only trigger the `on_input_change`, not the `on_change`. + +Note, this is not the case for selections; when a selection is made, both the `on_change` and `on_input_change` are triggered. + + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_control_example(): + input_value, set_input_value = ui.use_state("") + selection_state, set_selection_state = ui.use_state("") + + def handle_input_change(new_value): + set_selection_state("") + set_input_value(new_value) + print(f"Text changed to {input_value}") + + def handle_selection_change(new_value): + set_input_value(new_value) + set_selection_state(new_value) + print(f"Selection changed to {selection_state}") + + return [ + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + input_value=input_value, + on_input_change=handle_input_change, + selected_key=selection_state, + on_change=handle_selection_change, + ) + ] + + +my_combo_box_control_example = ui_combo_box_control_example() +``` + + +## Complex items + +Items within a combo box can include additional content to better convey options. You can add icons, avatars, and descriptions to the children of an `ui.item`. When adding a description, set the `slot` prop to "description" to differentiate between the text elements. + +```python +from deephaven import ui + + +my_combo_box_complex_items_example = ui.combo_box( + ui.item( + ui.icon("vsGithubAlt"), + ui.text("Github"), + ui.text("Github Option", slot="description"), + text_value="Github", + ), + ui.item( + ui.icon("vsAzureDevops"), + ui.text("Azure"), + ui.text("Azure Option", slot="description"), + text_value="Azure", + ), +) +``` + + +## Validation + +The `is_required` prop ensures that the user selects an option. The related `validation_behaviour` prop allows the user to specify aria or native verification. + +When the prop is set to "native", the validation errors block form submission and are displayed as help text automatically. + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_validation_behaviour_example(): + return ui.form( + ui.combo_box( + ui.section(ui.item("Option 1"), ui.item("Option 2"), title="Section 1"), + validation_behavior="aria", + is_required=True, + ) + ) + + +my_combo_box_validation_behaviour_example = ui_combo_box_validation_behaviour_example() +``` + + +## Trigger Options + +By default, the combo box's menu opens when the user types into the input field ("input"). This behavior can be changed to open on focus ("focus") or only when the field button is clicked ("manual") using the `menu_trigger` prop. + + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_trigger_option_examples(): + return [ + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Select Option", + ), + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Select Option", + menu_trigger="focus", + ), + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Select Option", + menu_trigger="manual", + ), + ] + + +my_combo_box_trigger_option_examples = ui_combo_box_trigger_option_examples() +``` + + +## Label position + +By default, the position of a combo box's label is above the combo box, but it can be moved to the side using the `label_position` prop. + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_label_position_examples(): + return [ + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Test Label", + ), + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + label="Test Label", + label_position="side", + ), + ] + + +my_combo_box_label_position_examples = ui_combo_box_label_position_examples() +``` + + +## Quiet State + +The `is_quiet` prop makes a combo box "quiet". This can be useful when the combo box and its corresponding styling should not distract users from surrounding content. + +```python +from deephaven import ui + + +my_combo_box_is_quiet_example = ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + is_quiet=True, +) +``` + + +## Disabled State + +The `is_disabled` prop disables a combo box to prevent user interaction. This is useful when the combo box should be visible but unavailable for selection. + +```python +from deephaven import ui + + +my_combo_box_is_disabled_example = ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + ui.item("Option 9"), + is_disabled=True, +) +``` + + +## Read-only State + +The `is_read_only` prop prevents user input in a combo box, but the selected option should be visible. + +```python +from deephaven import ui + + +my_combo_box_is_read_only_example = ui.combo_box( + ui.item("Option 1", key="Option 1"), + ui.item("Option 2", key="Option 2"), + ui.item("Option 3", key="Option 3"), + ui.item("Option 4", key="Option 4"), + ui.item("Option 5", key="Option 5"), + ui.item("Option 6", key="Option 6"), + ui.item("Option 7", key="Option 7"), + ui.item("Option 8", key="Option 8"), + default_selected_key="Option 1", + is_read_only=True, +) +``` + + +## Help text + +A combo box can have both a `description` and an `error_message`. The description remains visible at all times. Use the error message to offer specific guidance on how to correct the input. + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_help_text_examples(): + return [ + ui.combo_box( + ui.section( + ui.item("Option 1", key="Option 1"), + ui.item("Option 2", key="Option 2"), + ui.item("Option 3", key="Option 3"), + ui.item("Option 4", key="Option 4"), + ui.item("Option 5", key="Option 5"), + ui.item("Option 6", key="Option 6"), + ui.item("Option 7", key="Option 7"), + ui.item("Option 8", key="Option 8"), + title="Section 1", + ), + label="Sample Label", + description="Enter a comment.", + ), + ui.combo_box( + ui.section( + ui.item("Option 1", key="Option 1"), + ui.item("Option 2", key="Option 2"), + ui.item("Option 3", key="Option 3"), + ui.item("Option 4", key="Option 4"), + ui.item("Option 5", key="Option 5"), + ui.item("Option 6", key="Option 6"), + ui.item("Option 7", key="Option 7"), + ui.item("Option 8", key="Option 8"), + title="Section 1", + ), + label="Sample Label", + validation_state="invalid", + error_message="Sample invalid error message.", + ), + ] + + +my_combo_box_help_text_examples = ui_combo_box_help_text_examples() +``` + + +## Contextual Help + +Using the `contextual_help` prop, a `ui.contextual_help` can be placed next to the label to provide additional information about the combo box. + +```python +from deephaven import ui + + +my_combo_box_contextual_help_example = ui.combo_box( + ui.section( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + title="Section 1", + ), + label="Sample Label", + contextual_help=ui.contextual_help(ui.heading("Content tips")), +) +``` + + +## Custom width + +The `width` prop adjusts the width of a combo box, and the `max_width` prop enforces a maximum width. + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_width_examples(): + return [ + ui.combo_box( + ui.item("Option 1", key="Option 1"), + ui.item("Option 2", key="Option 2"), + ui.item("Option 3", key="Option 3"), + ui.item("Option 4", key="Option 4"), + ui.item("Option 5", key="Option 5"), + ui.item("Option 6", key="Option 6"), + ui.item("Option 7", key="Option 7"), + ui.item("Option 8", key="Option 8"), + width="size-3600", + ), + ui.combo_box( + ui.item("Option 1", key="Option 1"), + ui.item("Option 2", key="Option 2"), + ui.item("Option 3", key="Option 3"), + ui.item("Option 4", key="Option 4"), + ui.item("Option 5", key="Option 5"), + ui.item("Option 6", key="Option 6"), + ui.item("Option 7", key="Option 7"), + ui.item("Option 8", key="Option 8"), + width="size-3600", + max_width="100%", + ), + ] + + +my_combo_box_width_examples = ui_combo_box_width_examples() +``` + + +## Align and Direction + +The `align` prop sets the text alignment of the options in the combo box, while the `direction` prop specifies which direction the menu will open. + +```python +from deephaven import ui + + +@ui.component +def ui_combo_box_alignment_direction_examples(): + return ui.view( + ui.flex( + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + align="end", + menu_width="size-3000", + ), + ui.combo_box( + ui.item("Option 1"), + ui.item("Option 2"), + ui.item("Option 3"), + ui.item("Option 4"), + ui.item("Option 5"), + ui.item("Option 6"), + ui.item("Option 7"), + ui.item("Option 8"), + direction="top", + ), + gap="size-150", + direction="column", + ), + padding=40, + ) + + +my_combo_box_alignment_direction_examples = ui_combo_box_alignment_direction_examples() +``` + + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.combo_box +``` \ No newline at end of file From 0cb525eaba603df6ec42441b68d0427ea06f4cf0 Mon Sep 17 00:00:00 2001 From: Akshat Jawne <69530774+AkshatJawne@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:16:35 -0600 Subject: [PATCH 02/22] docs: ui.checkbox (#722) Closes #720 --------- Co-authored-by: margaretkennedy <82049573+margaretkennedy@users.noreply.github.com> --- plugins/ui/docs/components/checkbox.md | 133 ++++++++++++++++++ .../src/deephaven/ui/components/checkbox.py | 3 + 2 files changed, 136 insertions(+) create mode 100644 plugins/ui/docs/components/checkbox.md diff --git a/plugins/ui/docs/components/checkbox.md b/plugins/ui/docs/components/checkbox.md new file mode 100644 index 000000000..dae59265f --- /dev/null +++ b/plugins/ui/docs/components/checkbox.md @@ -0,0 +1,133 @@ +# Checkbox + +Checkbox allows users to select or mark a single item as selected. + +To use multiple checkboxes together, use the `checkbox_group` component. + +## Example + +```python +from deephaven import ui + +cb = ui.checkbox("Unsubscribe") +``` + +## UI recommendations + +Recommendations for creating checkboxes: + +1. Use emphasized checkboxes for forms, settings, or to highlight selected items like cards or table rows. Use non-emphasized checkboxes in application panels with monochrome components to keep the focus on the main content. +2. Use standalone checkboxes when the context is clear without a text label, such as when a checkbox is associated with other controls within a panel. +3. Checkboxes and radio buttons should not be used interchangably. Use checkboxes to allow multiple selections (or none) from a list. Use radio buttons to select only one option from a list of mutually exclusive choices. +4. Checkboxes should be used when selecting (ie., multiple table rows), whereas switches should be used for activation (ie., on/off states). + + +Consider using a [`checkbox`](./checkbox.md) for individual selections or when marking a single item as selected. For a set of related checkboxes, use a [`checkbox_group`](./checkbox_group.md) to manage multiple selections within a group. If you need to display a list of checkboxes driven by a Deephaven table, use a [`list_view`](./list_view.md) to dynamically generate the checkboxes. + +## Content + +Checkbox's accept a child, which is rendered as the label of the checkbox. + +```python +from deephaven import ui + +my_checkbox_basic = ui.checkbox("Basic Checkbox") +``` + +## Value + +Checkboxes are not selected by default. Use the `default_selected` prop to set the initial state (uncontrolled) or the `is_selected` prop to control the selected state. + +```python +from deephaven import ui + + +@ui.component +def ui_checkbox_content_examples(): + selected, set_selected = ui.use_state(False) + return ui.flex( + ui.checkbox("Subscribe (uncontrolled)", default_selected=True), + ui.checkbox( + "Subscribe (uncontrolled)", is_selected=selected, on_change=set_selected + ), + direction="column", + ) + + +my_checkbox_content_examples = ui_checkbox_content_examples() +``` + + +## Indeterminate state + +A checkbox can be set to an indeterminate state using the `is_indeterminate` prop, which overrides its appearance. The Checkbox remains visually indeterminate until the prop is set to false, regardless of user interaction. + + +```python +from deephaven import ui + + +my_checkbox_is_indeterminate_example = ui.checkbox( + "Indeterminate State", is_indeterminate=True +) +``` + +## HTML Forms + +Checkbox's can support a `name` prop for integration with HTML forms, allowing for easy identification of a value on form submission. + +```python +from deephaven import ui + + +my_checkbox_name_example = ui.form(ui.checkbox("Sample Label", name="Sample Name")) +``` + +## Events + +Checkboxes accept an `on_change` prop, which is triggered whenever the Checkbox is clicked + +```python +from deephaven import ui + + +@ui.component +def ui_checkbox_event_example(): + selected, set_selected = ui.use_state(False) + return ui.flex( + ui.checkbox("Subscribe", is_selected=selected, on_change=set_selected), + ui.text(value="Subscribed!" if selected else "Not subscribed!"), + direction="column", + ) + + +my_checkbox_event_example = ui_checkbox_event_example() +``` +## Validation + +Checkboxes can indicate a validation state to show if the current value is invalid, via the `is_invalid` prop. Since the invalid state is only shown through a color change, ensure the validation error is also communicated in another accessible way. + +```python +from deephaven import ui + + +@ui.component +def ui_checkbox_validation_example(): + invalid, set_invalid = ui.use_state(False) + return [ + ui.button( + "Make checkbox valid" if invalid else "Make checkbox invalid", + on_press=lambda: set_invalid(not invalid), + ), + ui.checkbox("I accept the terms and conditions", is_invalid=invalid), + ] + + +my_checkbox_validation_example = ui_checkbox_validation_example() +``` + +## API reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.checkbox +``` diff --git a/plugins/ui/src/deephaven/ui/components/checkbox.py b/plugins/ui/src/deephaven/ui/components/checkbox.py index d8bb1029d..be74ab9e4 100644 --- a/plugins/ui/src/deephaven/ui/components/checkbox.py +++ b/plugins/ui/src/deephaven/ui/components/checkbox.py @@ -153,6 +153,9 @@ def checkbox( aria_errormessage: The id of the element that provides error information for the current element. UNSAFE_class_name: A CSS class to apply to the element. UNSAFE_style: A CSS style to apply to the element. + + Returns: + The rendered checkbox. """ return component_element( From efae3f30f540ecaa0c7267325f19e7e9c5edaf6f Mon Sep 17 00:00:00 2001 From: Matthew Runyon Date: Tue, 20 Aug 2024 13:23:49 -0500 Subject: [PATCH 03/22] docs: Fix context menu example (#743) --- plugins/ui/docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/ui/docs/README.md b/plugins/ui/docs/README.md index 87aac7a39..fe6817db4 100644 --- a/plugins/ui/docs/README.md +++ b/plugins/ui/docs/README.md @@ -1406,10 +1406,10 @@ t = ui.table( { "title": "Nested item 1", "action": lambda d: print("Nested item 1", d) - } + }, { "title": "Nested item 2", - "icon": "vsCheck" + "icon": "vsCheck", "action": lambda d: print("Nested item 2", d) } ] From 169354f60e027ea83051364d52def2482c9e8411 Mon Sep 17 00:00:00 2001 From: Matthew Runyon Date: Tue, 20 Aug 2024 13:26:46 -0500 Subject: [PATCH 04/22] fix: Plotly express ticking 3d plots reset pending orientation on tick (#677) Fixes #657, fixes #207 --- package-lock.json | 3030 +++++------------ plugins/plotly-express/setup.cfg | 2 +- plugins/plotly-express/src/js/package.json | 20 +- .../src/js/src/DashboardPlugin.tsx | 4 +- .../src/js/src/PlotlyExpressChartPanel.tsx | 8 +- 5 files changed, 936 insertions(+), 2128 deletions(-) diff --git a/package-lock.json b/package-lock.json index 40b99bef2..4c3380e08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2202,16 +2202,17 @@ } }, "node_modules/@deephaven/chart": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.88.0.tgz", + "integrity": "sha512-t0m2GE+o46pnyPLiF3gNbqxsrasoKKB37E5eFgyncmfye3JjYAoDEjdKZfp/ck4zHE68tO7N+e7fbyqju5Edpw==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "buffer": "^6.0.3", "fast-deep-equal": "^3.1.3", "lodash.debounce": "^4.0.8", @@ -2230,18 +2231,21 @@ } }, "node_modules/@deephaven/chart/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -2251,110 +2255,48 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@deephaven/chart/node_modules/@deephaven/components/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/chart/node_modules/@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0", - "license": "Apache-2.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "node_modules/@deephaven/chart/node_modules/@deephaven/jsapi-utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "dependencies": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" }, "engines": { "node": ">=16" } }, "node_modules/@deephaven/chart/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -2363,14 +2305,17 @@ } }, "node_modules/@deephaven/chart/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/chart/node_modules/buffer": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -2385,7 +2330,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -2393,7 +2337,8 @@ }, "node_modules/@deephaven/chart/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -2472,18 +2417,19 @@ } }, "node_modules/@deephaven/console": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/chart": "^0.75.1", - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.88.0.tgz", + "integrity": "sha512-RKyGJSXTxiFapPej5BnoHakgil9ATU9Xjt2nwZ5x630ATu9f6k3xfeHpOxeuvcr6IjdUsvPcMk74y5IRAOatJA==", + "dependencies": { + "@deephaven/chart": "^0.88.0", + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", "linkifyjs": "^4.1.0", @@ -2492,11 +2438,11 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "papaparse": "5.3.2", "popper.js": "^1.16.1", "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "shortid": "^2.2.16" + "shell-quote": "^1.7.2" }, "engines": { "node": ">=16" @@ -2506,85 +2452,22 @@ "react-dom": ">=16.8.0" } }, - "node_modules/@deephaven/console/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "node_modules/@deephaven/console/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -2594,30 +2477,33 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/console/node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" }, "engines": { "node": ">=16" @@ -2627,12 +2513,14 @@ } }, "node_modules/@deephaven/console/node_modules/@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0", - "license": "Apache-2.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "node_modules/@deephaven/console/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -2641,15 +2529,17 @@ } }, "node_modules/@deephaven/console/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/console/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -2684,45 +2574,46 @@ } }, "node_modules/@deephaven/dashboard-core-plugins": { - "version": "0.75.0", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/chart": "^0.75.0", - "@deephaven/components": "^0.75.0", - "@deephaven/console": "^0.75.0", - "@deephaven/dashboard": "^0.75.0", - "@deephaven/file-explorer": "^0.75.0", - "@deephaven/filters": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/grid": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.0", - "@deephaven/jsapi-bootstrap": "^0.75.0", - "@deephaven/jsapi-components": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/redux": "^0.75.0", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-0.88.0.tgz", + "integrity": "sha512-bdS6fLYruSpOLUJoE3fv3ohUvW96I81bL7in+kw1u7GweZiFBqvNA69FU+7J0mP5uAeZp8KBXo1AoGKpHk5rFQ==", + "dependencies": { + "@deephaven/chart": "^0.88.0", + "@deephaven/components": "^0.88.0", + "@deephaven/console": "^0.88.0", + "@deephaven/dashboard": "^0.88.0", + "@deephaven/file-explorer": "^0.88.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/grid": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/iris-grid": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", - "deep-equal": "^2.0.5", + "fast-deep-equal": "^3.1.3", "lodash.clamp": "^4.0.3", "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1", "memoize-one": "^5.1.1", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-markdown": "^8.0.7", "redux": "^4.2.0", "redux-thunk": "^2.4.1", "rehype-mathjax": "^4.0.3", "remark-gfm": "^3.0.1", - "remark-math": "^5.1.1", - "shortid": "^2.2.16" + "remark-math": "^5.1.1" }, "engines": { "node": ">=16" @@ -2733,85 +2624,22 @@ "react-redux": "^7.2.4" } }, - "node_modules/@deephaven/dashboard-core-plugins/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -2821,37 +2649,39 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/dashboard": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/redux": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.88.0.tgz", + "integrity": "sha512-TFQK3jhJB1L85Pg2rvsfwgHKmZfjanNfQvNconfKTMDMRaeADRL+KnDvHedRHesJNcjRs1lO3Tlt/qrMTv0aEQ==", + "dependencies": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/utils": "^0.88.0", "fast-deep-equal": "^3.1.3", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "shortid": "^2.2.16" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" }, "engines": { "node": ">=16" @@ -2859,16 +2689,17 @@ "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0", - "react-is": ">=16.8.0", "react-redux": "^7.2.4" } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/golden-layout": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "dependencies": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" }, "peerDependencies": { "react": ">=16.8.0", @@ -2876,13 +2707,15 @@ } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" }, "engines": { "node": ">=16" @@ -2892,16 +2725,17 @@ } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/jsapi-components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.88.0.tgz", + "integrity": "sha512-As2Gj6zH7qJabM5C6Qo/r0uBacf4u97o++7OHxI4mUn/PohUJV2tF8T8C9z0BCSype5sqw3k0U4/Dq2zoU9WgQ==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", "js-cookie": "^3.0.5", @@ -2916,27 +2750,30 @@ } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0", - "license": "Apache-2.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/jsapi-utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "dependencies": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" }, "engines": { "node": ">=16" } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -2944,36 +2781,17 @@ "node": ">=16" } }, - "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/plugin": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/redux": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.88.0.tgz", + "integrity": "sha512-Non+QSAxaZZjYZtwfaUXqnEQ9wNJkFwH9GPyuD3oJljYQxzO/LvcLznzMR6eKrCRCQWasv1X4BY6cbRWbI32HQ==", "dependencies": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.1", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", "fast-deep-equal": "^3.1.3", + "proxy-memoize": "^3.0.0", "redux-thunk": "2.4.1" }, "engines": { @@ -2984,15 +2802,17 @@ } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/dashboard-core-plugins/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3035,14 +2855,15 @@ } }, "node_modules/@deephaven/file-explorer": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-0.88.0.tgz", + "integrity": "sha512-VswIr1yIlwOzmEl2PQlQ72a8p+0xFlQGX5hld++ewKwhWlYNaVeyOHXkVigDKRuDGfLeD5Sn1d2IBEjWJ7Mc1w==", + "dependencies": { + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", @@ -3057,18 +2878,21 @@ } }, "node_modules/@deephaven/file-explorer/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -3078,91 +2902,27 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@deephaven/file-explorer/node_modules/@deephaven/components/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/file-explorer/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -3171,15 +2931,17 @@ } }, "node_modules/@deephaven/file-explorer/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/file-explorer/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3188,8 +2950,9 @@ } }, "node_modules/@deephaven/filters": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.88.0.tgz", + "integrity": "sha512-aOJ4pxx7+mhHj/nULwAgnhN78oxAjta0LI1LiLuqGxH6f6WV8fG6tN1tpuL4UbMx/TwT5Al5l/a9p51CaOZnBg==", "engines": { "node": ">=16" } @@ -3207,10 +2970,11 @@ } }, "node_modules/@deephaven/grid": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.88.0.tgz", + "integrity": "sha512-VR7Ts+uEjWhP809gElld2zSpherIxQz74ddTPPtHEdWSGtW51RXsws/5BlS8TIKStTxUrvMjmzGbAJij3SQ2aA==", "dependencies": { - "@deephaven/utils": "^0.75.0", + "@deephaven/utils": "^0.88.0", "classnames": "^2.3.1", "color-convert": "^2.0.1", "event-target-shim": "^6.0.2", @@ -3228,15 +2992,17 @@ } }, "node_modules/@deephaven/grid/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/grid/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -3246,11 +3012,13 @@ }, "node_modules/@deephaven/grid/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@deephaven/grid/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3259,8 +3027,9 @@ } }, "node_modules/@deephaven/icons": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.88.0.tgz", + "integrity": "sha512-3B+CQJmpRbCGqf0B65ek77M59/kQLGr4TmSglYzTTGFrW6TbptO3Q9uTQ0LMIAhkHSDw6gjLUBR3DtVPzm3dUA==", "dependencies": { "@fortawesome/fontawesome-common-types": "^6.1.1" }, @@ -3270,21 +3039,22 @@ } }, "node_modules/@deephaven/iris-grid": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/console": "^0.75.1", - "@deephaven/filters": "^0.75.0", - "@deephaven/grid": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.88.0.tgz", + "integrity": "sha512-LJIGuP8PiwK8L1yok/IJtMIWpcU5+/T1FHPtfzwsXydRhAKnhUX+/KLaomD8IFFt5wGCQjimlwRGfeQ+fEPdMg==", + "dependencies": { + "@deephaven/components": "^0.88.0", + "@deephaven/console": "^0.88.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/grid": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@dnd-kit/core": "^6.1.0", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.2", @@ -3297,10 +3067,10 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "shortid": "^2.2.16" + "react-transition-group": "^4.4.2" }, "engines": { "node": ">=10" @@ -3310,85 +3080,22 @@ "react-dom": ">=16.8.0" } }, - "node_modules/@deephaven/iris-grid/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -3398,30 +3105,33 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" }, "engines": { "node": ">=16" @@ -3431,16 +3141,17 @@ } }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/jsapi-components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.88.0.tgz", + "integrity": "sha512-As2Gj6zH7qJabM5C6Qo/r0uBacf4u97o++7OHxI4mUn/PohUJV2tF8T8C9z0BCSype5sqw3k0U4/Dq2zoU9WgQ==", "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", "js-cookie": "^3.0.5", @@ -3455,27 +3166,30 @@ } }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0", - "license": "Apache-2.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/jsapi-utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "dependencies": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" }, "engines": { "node": ">=16" } }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -3484,15 +3198,17 @@ } }, "node_modules/@deephaven/iris-grid/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/iris-grid/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3650,16 +3366,17 @@ } }, "node_modules/@deephaven/plugin": { - "version": "0.75.0", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.88.0.tgz", + "integrity": "sha512-yV5dIsfFyIfxOARligKeC64TskpuKKvtDm242RUvPO7UWuYHJt9RgN+Y9VC5MCY7dbOgZmX7xlz2TtMamYmUYQ==", + "dependencies": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/iris-grid": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", "@fortawesome/fontawesome-common-types": "^6.1.1", "@fortawesome/react-fontawesome": "^0.2.0" }, @@ -3671,18 +3388,21 @@ } }, "node_modules/@deephaven/plugin/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -3692,94 +3412,31 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@deephaven/plugin/node_modules/@deephaven/components/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "node_modules/@deephaven/plugin/node_modules/@deephaven/golden-layout": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "dependencies": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" }, "peerDependencies": { "react": ">=16.8.0", @@ -3791,8 +3448,9 @@ "license": "Apache-2.0" }, "node_modules/@deephaven/plugin/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -3801,15 +3459,17 @@ } }, "node_modules/@deephaven/plugin/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/plugin/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3826,14 +3486,16 @@ } }, "node_modules/@deephaven/react-hooks": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.88.0.tgz", + "integrity": "sha512-2nfDWZ2mU3uNMxBu5WOD+bie9svrEXYEdDWglkZqcb77ZrI9pcLiuybz4ybGnN/NNnweyqvHD0q3Mi+VqXDdyw==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.debounce": "^4.0.8", - "shortid": "^2.2.16" + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" }, "engines": { "node": ">=16" @@ -3842,75 +3504,10 @@ "react": ">=16.8.0" } }, - "node_modules/@deephaven/react-hooks/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "node_modules/@deephaven/react-hooks/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -3919,15 +3516,17 @@ } }, "node_modules/@deephaven/react-hooks/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, "node_modules/@deephaven/react-hooks/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -3953,11 +3552,12 @@ } }, "node_modules/@deephaven/storage": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.88.0.tgz", + "integrity": "sha512-SL1nNK6Qnap9il8L4URz5dklhzgdpqaJ1KqXyWZCSJe4GpOCfRQLbsaBIWR426AELXR38ZJ2nf3tWy0hiig/7w==", "dependencies": { - "@deephaven/filters": "^0.75.0", - "@deephaven/log": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/log": "^0.88.0", "lodash.throttle": "^4.1.1" }, "engines": { @@ -3968,8 +3568,9 @@ } }, "node_modules/@deephaven/storage/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -3979,7 +3580,8 @@ }, "node_modules/@deephaven/storage/node_modules/event-target-shim": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", "engines": { "node": ">=10.13.0" }, @@ -4588,8 +4190,9 @@ } }, "node_modules/@internationalized/date": { - "version": "3.5.4", - "license": "Apache-2.0", + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz", + "integrity": "sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==", "dependencies": { "@swc/helpers": "^0.5.0" } @@ -31995,15 +31598,15 @@ "version": "0.11.2", "license": "Apache-2.0", "dependencies": { - "@deephaven/chart": "0.75.0", - "@deephaven/components": "0.75.0", - "@deephaven/dashboard": "0.75.0", - "@deephaven/dashboard-core-plugins": "0.75.0", - "@deephaven/icons": "0.75.0", - "@deephaven/jsapi-bootstrap": "0.75.0", - "@deephaven/log": "0.75.0", - "@deephaven/plugin": "0.75.0", - "@deephaven/utils": "0.75.0", + "@deephaven/chart": "0.88.0", + "@deephaven/components": "0.88.0", + "@deephaven/dashboard": "0.88.0", + "@deephaven/dashboard-core-plugins": "0.88.0", + "@deephaven/icons": "0.88.0", + "@deephaven/jsapi-bootstrap": "0.88.0", + "@deephaven/log": "0.88.0", + "@deephaven/plugin": "0.88.0", + "@deephaven/utils": "0.88.0", "deep-equal": "^2.2.1", "nanoid": "^5.0.7", "plotly.js": "^2.29.1", @@ -32012,7 +31615,7 @@ "react-redux": "^7.2.9" }, "devDependencies": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", + "@deephaven/jsapi-types": "1.0.0-dev0.35.2", "@types/deep-equal": "^1.0.1", "@types/plotly.js": "^2.12.18", "@types/plotly.js-dist-min": "^2.3.1", @@ -32029,47 +31632,22 @@ "react-dom": "^17.0.2" } }, - "plugins/plotly-express/src/js/node_modules/@deephaven/chart": { - "version": "0.75.0", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/utils": "^0.75.0", - "buffer": "^6.0.3", - "deep-equal": "^2.0.5", - "lodash.debounce": "^4.0.8", - "lodash.set": "^4.3.2", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "plotly.js": "^2.29.1", - "prop-types": "^15.7.2", - "react-plotly.js": "^2.6.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, "plugins/plotly-express/src/js/node_modules/@deephaven/components": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "dependencies": { - "@adobe/react-spectrum": "^3.34.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -32079,37 +31657,39 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" }, "peerDependencies": { "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0" } }, "plugins/plotly-express/src/js/node_modules/@deephaven/dashboard": { - "version": "0.75.0", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/redux": "^0.75.0", - "@deephaven/utils": "^0.75.0", - "deep-equal": "^2.0.5", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.88.0.tgz", + "integrity": "sha512-TFQK3jhJB1L85Pg2rvsfwgHKmZfjanNfQvNconfKTMDMRaeADRL+KnDvHedRHesJNcjRs1lO3Tlt/qrMTv0aEQ==", + "dependencies": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/utils": "^0.88.0", + "fast-deep-equal": "^3.1.3", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "shortid": "^2.2.16" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" }, "engines": { "node": ">=16" @@ -32117,134 +31697,33 @@ "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0", - "react-is": ">=16.8.0", "react-redux": "^7.2.4" } }, "plugins/plotly-express/src/js/node_modules/@deephaven/dashboard/node_modules/@deephaven/golden-layout": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "plugins/plotly-express/src/js/node_modules/@deephaven/dashboard/node_modules/@deephaven/golden-layout/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "engines": { - "node": ">=10" + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, - "plugins/plotly-express/src/js/node_modules/@deephaven/dashboard/node_modules/@deephaven/golden-layout/node_modules/@deephaven/components/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, "plugins/plotly-express/src/js/node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "dependencies": { - "@deephaven/components": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" }, "engines": { "node": ">=16" @@ -32254,27 +31733,30 @@ } }, "plugins/plotly-express/src/js/node_modules/@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0", - "license": "Apache-2.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "plugins/plotly-express/src/js/node_modules/@deephaven/jsapi-utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "dependencies": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" }, "engines": { "node": ">=16" } }, "plugins/plotly-express/src/js/node_modules/@deephaven/log": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -32283,14 +31765,16 @@ } }, "plugins/plotly-express/src/js/node_modules/@deephaven/redux": { - "version": "0.75.1", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.88.0.tgz", + "integrity": "sha512-Non+QSAxaZZjYZtwfaUXqnEQ9wNJkFwH9GPyuD3oJljYQxzO/LvcLznzMR6eKrCRCQWasv1X4BY6cbRWbI32HQ==", "dependencies": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.1", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", "fast-deep-equal": "^3.1.3", + "proxy-memoize": "^3.0.0", "redux-thunk": "2.4.1" }, "engines": { @@ -32300,172 +31784,14 @@ "redux": "^4.2.0" } }, - "plugins/plotly-express/src/js/node_modules/@deephaven/redux/node_modules/@adobe/react-spectrum": { - "version": "3.33.1", - "license": "Apache-2.0", - "dependencies": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "plugins/plotly-express/src/js/node_modules/@deephaven/redux/node_modules/@deephaven/components": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "plugins/plotly-express/src/js/node_modules/@deephaven/redux/node_modules/@deephaven/golden-layout": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "plugins/plotly-express/src/js/node_modules/@deephaven/redux/node_modules/@deephaven/plugin": { - "version": "0.75.1", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, "plugins/plotly-express/src/js/node_modules/@deephaven/utils": { - "version": "0.75.0", - "license": "Apache-2.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==", "engines": { "node": ">=16" } }, - "plugins/plotly-express/src/js/node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "plugins/plotly-express/src/js/node_modules/event-target-shim": { "version": "6.0.2", "license": "MIT", @@ -35160,15 +34486,17 @@ } }, "@deephaven/chart": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.88.0.tgz", + "integrity": "sha512-t0m2GE+o46pnyPLiF3gNbqxsrasoKKB37E5eFgyncmfye3JjYAoDEjdKZfp/ck4zHE68tO7N+e7fbyqju5Edpw==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "buffer": "^6.0.3", "fast-deep-equal": "^3.1.3", "lodash.debounce": "^4.0.8", @@ -35181,17 +34509,21 @@ }, "dependencies": { "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -35201,110 +34533,59 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - } + "react-window": "^1.8.6" } }, "@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "@deephaven/jsapi-utils": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "requires": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" } }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "buffer": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -35354,17 +34635,19 @@ } }, "@deephaven/console": { - "version": "0.75.1", - "requires": { - "@deephaven/chart": "^0.75.1", - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.88.0.tgz", + "integrity": "sha512-RKyGJSXTxiFapPej5BnoHakgil9ATU9Xjt2nwZ5x630ATu9f6k3xfeHpOxeuvcr6IjdUsvPcMk74y5IRAOatJA==", + "requires": { + "@deephaven/chart": "^0.88.0", + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", "linkifyjs": "^4.1.0", @@ -35373,86 +34656,29 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "papaparse": "5.3.2", "popper.js": "^1.16.1", "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "shortid": "^2.2.16" + "shell-quote": "^1.7.2" }, "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - }, "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -35462,38 +34688,49 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" } }, "@deephaven/jsapi-bootstrap": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" } }, "@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -35525,119 +34762,64 @@ } }, "@deephaven/dashboard-core-plugins": { - "version": "0.75.0", - "requires": { - "@deephaven/chart": "^0.75.0", - "@deephaven/components": "^0.75.0", - "@deephaven/console": "^0.75.0", - "@deephaven/dashboard": "^0.75.0", - "@deephaven/file-explorer": "^0.75.0", - "@deephaven/filters": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/grid": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.0", - "@deephaven/jsapi-bootstrap": "^0.75.0", - "@deephaven/jsapi-components": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/redux": "^0.75.0", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-0.88.0.tgz", + "integrity": "sha512-bdS6fLYruSpOLUJoE3fv3ohUvW96I81bL7in+kw1u7GweZiFBqvNA69FU+7J0mP5uAeZp8KBXo1AoGKpHk5rFQ==", + "requires": { + "@deephaven/chart": "^0.88.0", + "@deephaven/components": "^0.88.0", + "@deephaven/console": "^0.88.0", + "@deephaven/dashboard": "^0.88.0", + "@deephaven/file-explorer": "^0.88.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/grid": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/iris-grid": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", - "deep-equal": "^2.0.5", + "fast-deep-equal": "^3.1.3", "lodash.clamp": "^4.0.3", "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1", "memoize-one": "^5.1.1", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-markdown": "^8.0.7", "redux": "^4.2.0", "redux-thunk": "^2.4.1", "rehype-mathjax": "^4.0.3", "remark-gfm": "^3.0.1", - "remark-math": "^5.1.1", - "shortid": "^2.2.16" + "remark-math": "^5.1.1" }, "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - }, "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -35647,57 +34829,67 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" } }, "@deephaven/dashboard": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/redux": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.88.0.tgz", + "integrity": "sha512-TFQK3jhJB1L85Pg2rvsfwgHKmZfjanNfQvNconfKTMDMRaeADRL+KnDvHedRHesJNcjRs1lO3Tlt/qrMTv0aEQ==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/utils": "^0.88.0", "fast-deep-equal": "^3.1.3", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "shortid": "^2.2.16" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" } }, "@deephaven/golden-layout": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "requires": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" } }, "@deephaven/jsapi-bootstrap": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" } }, "@deephaven/jsapi-components": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.88.0.tgz", + "integrity": "sha512-As2Gj6zH7qJabM5C6Qo/r0uBacf4u97o++7OHxI4mUn/PohUJV2tF8T8C9z0BCSype5sqw3k0U4/Dq2zoU9WgQ==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", "js-cookie": "^3.0.5", @@ -35706,55 +34898,54 @@ } }, "@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "@deephaven/jsapi-utils": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "requires": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" } }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, - "@deephaven/plugin": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - } - }, "@deephaven/redux": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.88.0.tgz", + "integrity": "sha512-Non+QSAxaZZjYZtwfaUXqnEQ9wNJkFwH9GPyuD3oJljYQxzO/LvcLznzMR6eKrCRCQWasv1X4BY6cbRWbI32HQ==", "requires": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.1", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", "fast-deep-equal": "^3.1.3", + "proxy-memoize": "^3.0.0", "redux-thunk": "2.4.1" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -35768,13 +34959,15 @@ } }, "@deephaven/file-explorer": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-0.88.0.tgz", + "integrity": "sha512-VswIr1yIlwOzmEl2PQlQ72a8p+0xFlQGX5hld++ewKwhWlYNaVeyOHXkVigDKRuDGfLeD5Sn1d2IBEjWJ7Mc1w==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", @@ -35783,17 +34976,21 @@ }, "dependencies": { "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -35803,94 +35000,39 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - } + "react-window": "^1.8.6" } }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, "@deephaven/filters": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.88.0.tgz", + "integrity": "sha512-aOJ4pxx7+mhHj/nULwAgnhN78oxAjta0LI1LiLuqGxH6f6WV8fG6tN1tpuL4UbMx/TwT5Al5l/a9p51CaOZnBg==" }, "@deephaven/golden-layout": { "version": "0.40.4", @@ -35900,9 +35042,11 @@ } }, "@deephaven/grid": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.88.0.tgz", + "integrity": "sha512-VR7Ts+uEjWhP809gElld2zSpherIxQz74ddTPPtHEdWSGtW51RXsws/5BlS8TIKStTxUrvMjmzGbAJij3SQ2aA==", "requires": { - "@deephaven/utils": "^0.75.0", + "@deephaven/utils": "^0.88.0", "classnames": "^2.3.1", "color-convert": "^2.0.1", "event-target-shim": "^6.0.2", @@ -35914,43 +35058,55 @@ }, "dependencies": { "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.4" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, "@deephaven/icons": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.88.0.tgz", + "integrity": "sha512-3B+CQJmpRbCGqf0B65ek77M59/kQLGr4TmSglYzTTGFrW6TbptO3Q9uTQ0LMIAhkHSDw6gjLUBR3DtVPzm3dUA==", "requires": { "@fortawesome/fontawesome-common-types": "^6.1.1" } }, "@deephaven/iris-grid": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/console": "^0.75.1", - "@deephaven/filters": "^0.75.0", - "@deephaven/grid": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/storage": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.88.0.tgz", + "integrity": "sha512-LJIGuP8PiwK8L1yok/IJtMIWpcU5+/T1FHPtfzwsXydRhAKnhUX+/KLaomD8IFFt5wGCQjimlwRGfeQ+fEPdMg==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/console": "^0.88.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/grid": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/jsapi-components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/storage": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@dnd-kit/core": "^6.1.0", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.2", @@ -35963,85 +35119,28 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "shortid": "^2.2.16" + "react-transition-group": "^4.4.2" }, "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - }, "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -36051,34 +35150,39 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" } }, "@deephaven/jsapi-bootstrap": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" } }, "@deephaven/jsapi-components": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/jsapi-bootstrap": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.88.0.tgz", + "integrity": "sha512-As2Gj6zH7qJabM5C6Qo/r0uBacf4u97o++7OHxI4mUn/PohUJV2tF8T8C9z0BCSype5sqw3k0U4/Dq2zoU9WgQ==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-bootstrap": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", "js-cookie": "^3.0.5", @@ -36087,30 +35191,40 @@ } }, "@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "@deephaven/jsapi-utils": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "requires": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" } }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -37192,16 +36306,16 @@ "@deephaven/js-plugin-plotly-express": { "version": "file:plugins/plotly-express/src/js", "requires": { - "@deephaven/chart": "0.75.0", - "@deephaven/components": "0.75.0", - "@deephaven/dashboard": "0.75.0", - "@deephaven/dashboard-core-plugins": "0.75.0", - "@deephaven/icons": "0.75.0", - "@deephaven/jsapi-bootstrap": "0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "0.75.0", - "@deephaven/plugin": "0.75.0", - "@deephaven/utils": "0.75.0", + "@deephaven/chart": "0.88.0", + "@deephaven/components": "0.88.0", + "@deephaven/dashboard": "0.88.0", + "@deephaven/dashboard-core-plugins": "0.88.0", + "@deephaven/icons": "0.88.0", + "@deephaven/jsapi-bootstrap": "0.88.0", + "@deephaven/jsapi-types": "1.0.0-dev0.35.2", + "@deephaven/log": "0.88.0", + "@deephaven/plugin": "0.88.0", + "@deephaven/utils": "0.88.0", "@types/deep-equal": "^1.0.1", "@types/plotly.js": "^2.12.18", "@types/plotly.js-dist-min": "^2.3.1", @@ -37220,39 +36334,22 @@ "vite": "~4.1.4" }, "dependencies": { - "@deephaven/chart": { - "version": "0.75.0", - "requires": { - "@deephaven/components": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/utils": "^0.75.0", - "buffer": "^6.0.3", - "deep-equal": "^2.0.5", - "lodash.debounce": "^4.0.8", - "lodash.set": "^4.3.2", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "plotly.js": "^2.29.1", - "prop-types": "^15.7.2", - "react-plotly.js": "^2.6.0" - } - }, "@deephaven/components": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "^3.34.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -37262,298 +36359,101 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" + "react-window": "^1.8.6" } }, "@deephaven/dashboard": { - "version": "0.75.0", - "requires": { - "@deephaven/components": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", - "@deephaven/redux": "^0.75.0", - "@deephaven/utils": "^0.75.0", - "deep-equal": "^2.0.5", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.88.0.tgz", + "integrity": "sha512-TFQK3jhJB1L85Pg2rvsfwgHKmZfjanNfQvNconfKTMDMRaeADRL+KnDvHedRHesJNcjRs1lO3Tlt/qrMTv0aEQ==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/redux": "^0.88.0", + "@deephaven/utils": "^0.88.0", + "fast-deep-equal": "^3.1.3", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "shortid": "^2.2.16" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" }, "dependencies": { "@deephaven/golden-layout": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "requires": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" - }, - "dependencies": { - "@deephaven/components": { - "version": "0.75.1", - "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - } - } - } + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" } } } }, "@deephaven/jsapi-bootstrap": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.88.0.tgz", + "integrity": "sha512-M2/nIQ69MfAruEQnT5ZG1bN/bZWAlNZD81AjlZ319kOZsYqwOhOoeGsFRFfOpjWeB8PZsUTmN2ukg4NOXVgH8A==", "requires": { - "@deephaven/components": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0" + "@deephaven/components": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0" } }, "@deephaven/jsapi-types": { - "version": "1.0.0-dev0.34.0" + "version": "1.0.0-dev0.35.2", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-1.0.0-dev0.35.2.tgz", + "integrity": "sha512-VM1WAps/+KEXdxIiaEGutcjgaf5p1LNf6AA+Hv7sTIaENYYJpndZqD6bGFcuuiUVTYDlnFF0hohN4l6lOsjcQw==" }, "@deephaven/jsapi-utils": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.88.0.tgz", + "integrity": "sha512-12vAmMzltyJZ3vJJlV6CbnII29XEBoCqCdI8xZcMaHJiqjgoL9A7YV7GIWClzGZrFZMY7voeHJDkLReH0rpszQ==", "requires": { - "@deephaven/filters": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.clamp": "^4.0.3", - "shortid": "^2.2.16" + "nanoid": "^5.0.7" } }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/redux": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.88.0.tgz", + "integrity": "sha512-Non+QSAxaZZjYZtwfaUXqnEQ9wNJkFwH9GPyuD3oJljYQxzO/LvcLznzMR6eKrCRCQWasv1X4BY6cbRWbI32HQ==", "requires": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/plugin": "^0.75.1", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/jsapi-utils": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/plugin": "^0.88.0", "fast-deep-equal": "^3.1.3", + "proxy-memoize": "^3.0.0", "redux-thunk": "2.4.1" - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - }, - "@deephaven/components": { - "version": "0.75.1", - "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - } - }, - "@deephaven/golden-layout": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" - } - }, - "@deephaven/plugin": { - "version": "0.75.1", - "requires": { - "@deephaven/components": "^0.75.1", - "@deephaven/golden-layout": "^0.75.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.1", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - } - } } }, "@deephaven/utils": { - "version": "0.75.0" - }, - "buffer": { - "version": "6.0.3", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { "version": "6.0.2" @@ -38688,31 +37588,37 @@ } }, "@deephaven/plugin": { - "version": "0.75.0", - "requires": { - "@deephaven/components": "^0.75.0", - "@deephaven/golden-layout": "^0.75.0", - "@deephaven/icons": "^0.75.0", - "@deephaven/iris-grid": "^0.75.0", - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.88.0.tgz", + "integrity": "sha512-yV5dIsfFyIfxOARligKeC64TskpuKKvtDm242RUvPO7UWuYHJt9RgN+Y9VC5MCY7dbOgZmX7xlz2TtMamYmUYQ==", + "requires": { + "@deephaven/components": "^0.88.0", + "@deephaven/golden-layout": "^0.88.0", + "@deephaven/icons": "^0.88.0", + "@deephaven/iris-grid": "^0.88.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", "@fortawesome/fontawesome-common-types": "^6.1.1", "@fortawesome/react-fontawesome": "^0.2.0" }, "dependencies": { "@deephaven/components": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.88.0.tgz", + "integrity": "sha512-2GrvHOZmRrkuuisVxV1QD0U23OgIhuRXjvUTSNksOlXHd5pElZBIXQCzRfC/dnPMDnfHoV6sHC9aJHTvaSRk2w==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/icons": "^0.75.0", - "@deephaven/log": "^0.75.0", - "@deephaven/react-hooks": "^0.75.1", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/icons": "^0.88.0", + "@deephaven/log": "^0.88.0", + "@deephaven/react-hooks": "^0.88.0", + "@deephaven/utils": "^0.88.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@react-spectrum/theme-default": "^3.5.1", "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", "@react-types/shared": "^3.22.1", "@react-types/textfield": "^3.9.1", "bootstrap": "4.6.2", @@ -38722,99 +37628,45 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "shortid": "^2.2.16" - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - } + "react-window": "^1.8.6" } }, "@deephaven/golden-layout": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.88.0.tgz", + "integrity": "sha512-30SuCWmbRUxaJVR66D3sHwiEq2XHrEjzyT7Tg0pNutH/iD+2XIY5rAZyTqepX4cmSjBuBEOPVva7bf2R8+ZHTA==", "requires": { - "@deephaven/components": "^0.75.1", - "jquery": "^3.6.0" + "@deephaven/components": "^0.88.0", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" } }, "@deephaven/jsapi-types": { "version": "1.0.0-dev0.34.0" }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -38824,87 +37676,35 @@ "requires": {} }, "@deephaven/react-hooks": { - "version": "0.75.1", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.88.0.tgz", + "integrity": "sha512-2nfDWZ2mU3uNMxBu5WOD+bie9svrEXYEdDWglkZqcb77ZrI9pcLiuybz4ybGnN/NNnweyqvHD0q3Mi+VqXDdyw==", "requires": { - "@adobe/react-spectrum": "3.33.1", - "@deephaven/log": "^0.75.0", - "@deephaven/utils": "^0.75.0", + "@adobe/react-spectrum": "3.35.1", + "@deephaven/log": "^0.88.0", + "@deephaven/utils": "^0.88.0", "lodash.debounce": "^4.0.8", - "shortid": "^2.2.16" + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" }, "dependencies": { - "@adobe/react-spectrum": { - "version": "3.33.1", - "requires": { - "@internationalized/string": "^3.2.0", - "@react-aria/i18n": "^3.10.0", - "@react-aria/ssr": "^3.9.1", - "@react-aria/utils": "^3.23.0", - "@react-aria/visually-hidden": "^3.8.8", - "@react-spectrum/actionbar": "^3.4.1", - "@react-spectrum/actiongroup": "^3.10.1", - "@react-spectrum/avatar": "^3.0.8", - "@react-spectrum/badge": "^3.1.9", - "@react-spectrum/breadcrumbs": "^3.9.3", - "@react-spectrum/button": "^3.16.0", - "@react-spectrum/buttongroup": "^3.6.9", - "@react-spectrum/calendar": "^3.4.5", - "@react-spectrum/checkbox": "^3.9.2", - "@react-spectrum/combobox": "^3.12.1", - "@react-spectrum/contextualhelp": "^3.6.7", - "@react-spectrum/datepicker": "^3.9.2", - "@react-spectrum/dialog": "^3.8.7", - "@react-spectrum/divider": "^3.5.9", - "@react-spectrum/dnd": "^3.3.6", - "@react-spectrum/form": "^3.7.2", - "@react-spectrum/icon": "^3.7.9", - "@react-spectrum/illustratedmessage": "^3.4.9", - "@react-spectrum/image": "^3.4.9", - "@react-spectrum/inlinealert": "^3.2.1", - "@react-spectrum/labeledvalue": "^3.1.10", - "@react-spectrum/layout": "^3.6.1", - "@react-spectrum/link": "^3.6.3", - "@react-spectrum/list": "^3.7.6", - "@react-spectrum/listbox": "^3.12.5", - "@react-spectrum/menu": "^3.17.0", - "@react-spectrum/meter": "^3.4.9", - "@react-spectrum/numberfield": "^3.8.2", - "@react-spectrum/overlays": "^5.5.3", - "@react-spectrum/picker": "^3.14.1", - "@react-spectrum/progress": "^3.7.3", - "@react-spectrum/provider": "^3.9.3", - "@react-spectrum/radio": "^3.7.2", - "@react-spectrum/searchfield": "^3.8.2", - "@react-spectrum/slider": "^3.6.5", - "@react-spectrum/statuslight": "^3.5.9", - "@react-spectrum/switch": "^3.5.1", - "@react-spectrum/table": "^3.12.6", - "@react-spectrum/tabs": "^3.8.6", - "@react-spectrum/tag": "^3.2.2", - "@react-spectrum/text": "^3.5.1", - "@react-spectrum/textfield": "^3.11.2", - "@react-spectrum/theme-dark": "^3.5.7", - "@react-spectrum/theme-default": "^3.5.7", - "@react-spectrum/theme-light": "^3.4.7", - "@react-spectrum/tooltip": "^3.6.3", - "@react-spectrum/view": "^3.6.6", - "@react-spectrum/well": "^3.4.9", - "@react-stately/collections": "^3.10.4", - "@react-stately/data": "^3.11.0", - "@react-types/shared": "^3.22.0" - } - }, "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/utils": { - "version": "0.75.0" + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.88.0.tgz", + "integrity": "sha512-IEyymRaTypTnCEvdoVvHYgm0mZYkyW8TVKWrBKL71dBGfmOx2jzxG4/tamTP2AcllBo9gAxdscmaBF7SKtKQ/A==" }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -38919,21 +37719,27 @@ } }, "@deephaven/storage": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.88.0.tgz", + "integrity": "sha512-SL1nNK6Qnap9il8L4URz5dklhzgdpqaJ1KqXyWZCSJe4GpOCfRQLbsaBIWR426AELXR38ZJ2nf3tWy0hiig/7w==", "requires": { - "@deephaven/filters": "^0.75.0", - "@deephaven/log": "^0.75.0", + "@deephaven/filters": "^0.88.0", + "@deephaven/log": "^0.88.0", "lodash.throttle": "^4.1.1" }, "dependencies": { "@deephaven/log": { - "version": "0.75.0", + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.88.0.tgz", + "integrity": "sha512-50DiVOWAob0J00BZMELJ1RTwkGg407Gj2b8ls8PFV3HmmKJ2+IDvH6J7prt70w3D/dsXxE04gtkh+4/SU2TiyQ==", "requires": { "event-target-shim": "^6.0.2" } }, "event-target-shim": { - "version": "6.0.2" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", + "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" } } }, @@ -39230,7 +38036,9 @@ "dev": true }, "@internationalized/date": { - "version": "3.5.4", + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz", + "integrity": "sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==", "requires": { "@swc/helpers": "^0.5.0" } diff --git a/plugins/plotly-express/setup.cfg b/plugins/plotly-express/setup.cfg index a324fe491..94db3d940 100644 --- a/plugins/plotly-express/setup.cfg +++ b/plugins/plotly-express/setup.cfg @@ -25,7 +25,7 @@ package_dir= =src packages=find_namespace: install_requires = - deephaven-core>=0.34.0 + deephaven-core>=0.36.0 deephaven-plugin>=0.6.0 plotly deephaven-plugin-utilities diff --git a/plugins/plotly-express/src/js/package.json b/plugins/plotly-express/src/js/package.json index 0bcae483f..1decd219f 100644 --- a/plugins/plotly-express/src/js/package.json +++ b/plugins/plotly-express/src/js/package.json @@ -36,7 +36,7 @@ "update-dh-packages": "node ../../../../tools/update-dh-packages.mjs" }, "devDependencies": { - "@deephaven/jsapi-types": "1.0.0-dev0.34.0", + "@deephaven/jsapi-types": "1.0.0-dev0.35.2", "@types/deep-equal": "^1.0.1", "@types/plotly.js": "^2.12.18", "@types/plotly.js-dist-min": "^2.3.1", @@ -53,15 +53,15 @@ "react-dom": "^17.0.2" }, "dependencies": { - "@deephaven/chart": "0.75.0", - "@deephaven/components": "0.75.0", - "@deephaven/dashboard": "0.75.0", - "@deephaven/dashboard-core-plugins": "0.75.0", - "@deephaven/icons": "0.75.0", - "@deephaven/jsapi-bootstrap": "0.75.0", - "@deephaven/log": "0.75.0", - "@deephaven/plugin": "0.75.0", - "@deephaven/utils": "0.75.0", + "@deephaven/chart": "0.88.0", + "@deephaven/components": "0.88.0", + "@deephaven/dashboard": "0.88.0", + "@deephaven/dashboard-core-plugins": "0.88.0", + "@deephaven/icons": "0.88.0", + "@deephaven/jsapi-bootstrap": "0.88.0", + "@deephaven/log": "0.88.0", + "@deephaven/plugin": "0.88.0", + "@deephaven/utils": "0.88.0", "deep-equal": "^2.2.1", "nanoid": "^5.0.7", "plotly.js": "^2.29.1", diff --git a/plugins/plotly-express/src/js/src/DashboardPlugin.tsx b/plugins/plotly-express/src/js/src/DashboardPlugin.tsx index b6560a393..a6021c6c9 100644 --- a/plugins/plotly-express/src/js/src/DashboardPlugin.tsx +++ b/plugins/plotly-express/src/js/src/DashboardPlugin.tsx @@ -1,4 +1,4 @@ -import { useCallback, DragEvent, useEffect } from 'react'; +import { useCallback, useEffect } from 'react'; import { nanoid } from 'nanoid'; import { DashboardPluginComponentProps, @@ -23,7 +23,7 @@ export function DashboardPlugin( panelId = nanoid(), widget, }: { - dragEvent?: DragEvent; + dragEvent?: MouseEvent; fetch: () => Promise; metadata?: Record; panelId?: string; diff --git a/plugins/plotly-express/src/js/src/PlotlyExpressChartPanel.tsx b/plugins/plotly-express/src/js/src/PlotlyExpressChartPanel.tsx index 60c83a5a0..bf9193952 100644 --- a/plugins/plotly-express/src/js/src/PlotlyExpressChartPanel.tsx +++ b/plugins/plotly-express/src/js/src/PlotlyExpressChartPanel.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useRef, useState } from 'react'; +import React, { useCallback, useState } from 'react'; import Plotly from 'plotly.js-dist-min'; import { ChartPanel, ChartPanelProps } from '@deephaven/dashboard-core-plugins'; import type { dh } from '@deephaven/jsapi-types'; @@ -12,7 +12,7 @@ export function PlotlyExpressChartPanel( ): JSX.Element { const dh = useApi(); const { fetch, metadata = {}, ...rest } = props; - const containerRef = useRef(null); + const [container, setContainer] = useState(null); const [model, setModel] = useState(); const makeModel = useCallback(async () => { @@ -22,13 +22,13 @@ export function PlotlyExpressChartPanel( return m; }, [dh, fetch]); - useHandleSceneTicks(model, containerRef.current); + useHandleSceneTicks(model, container); return ( Date: Tue, 20 Aug 2024 13:40:30 -0600 Subject: [PATCH 05/22] docs: ui.illustrated_message (#739) Closes #707 --------- Co-authored-by: margaretkennedy <82049573+margaretkennedy@users.noreply.github.com> Co-authored-by: Don --- plugins/ui/docs/README.md | 26 +++-- .../ui/docs/components/illustrated_message.md | 95 +++++++++++++++++++ .../ui/components/illustrated_message.py | 20 +--- 3 files changed, 119 insertions(+), 22 deletions(-) create mode 100644 plugins/ui/docs/components/illustrated_message.md diff --git a/plugins/ui/docs/README.md b/plugins/ui/docs/README.md index fe6817db4..ebb5d2272 100644 --- a/plugins/ui/docs/README.md +++ b/plugins/ui/docs/README.md @@ -767,20 +767,34 @@ my_form = ui_form() You can also create a form on which the user can click **Submit** and react to that on a specified callback. In this example, we create a [Form](https://react-spectrum.adobe.com/react-spectrum/forms.html) that takes a name and age, and when the user clicks **Submit**, the values entered in the form are sent to the user on the form's `on_submit` callback. ```python +from deephaven import ui +import deephaven.plot.express as dx + + +stocks = dx.data.stocks() + + @ui.component -def ui_form_submit(): +def illustrated_message_placeholder_example(): + input, set_input = ui.use_state("") + filter, set_filter = ui.use_state("") + def handle_submit(data): - print(f"Hello {data['name']}, you are {data['age']} years old") + set_filter(input) - return ui.form( - ui.text_field(default_value="Douglas", name="name"), - ui.number_field(default_value=42, name="age"), + my_form_submit = ui.form( + ui.text_field(value=input, on_change=set_input, default_value=""), ui.button("Submit", type="submit"), on_submit=handle_submit, ) + return [ + (ui.illustrated_message("Please enter a filter"), my_form_submit) + if filter == "" + else stocks.where(f"Sym=`{filter}`") + ] -my_form_submit = ui_form_submit() +my_illustrated_message_placeholder_example = illustrated_message_placeholder_example() ``` ![Submitting a form and printing out the data.](_assets/form_submit.png) diff --git a/plugins/ui/docs/components/illustrated_message.md b/plugins/ui/docs/components/illustrated_message.md new file mode 100644 index 000000000..6ccbb3e42 --- /dev/null +++ b/plugins/ui/docs/components/illustrated_message.md @@ -0,0 +1,95 @@ +# Illustrated Message + +An illustrated message displays an illustration along with a message, typically used for empty states or error pages. + + +## Example + +```python +from deephaven import ui + +my_illustrated_message_basic = ui.illustrated_message( + ui.icon("vsError"), + ui.heading("Access denied"), + ui.content("You do not have permissions to access this page."), +) +``` + +## UI recommendations + +Recommendations for creating an illustrated message: + +1. The message should be concise and, if applicable, describe the next step a user can take. +2. The heading should be no longer than 6 words and should not be a replacement for the message text. +2. Use sentence case for the heading and message text. +3. Use illustrations that are relevant to the message and help convey the context effectively. +4. Reserve illustrated messages for situations where they add value and clarity, rather than using them for minor notifications or messages. + +## Content + +An illustrated message is made up of three parts: an illustration, a heading, and a body. + +You can populate these sections by providing the following components as children: an `ui.icon` for the illustration, a `ui.heading` for the heading, and `ui.content` for the body. + +```python +from deephaven import ui + + +my_illustrated_message_content_example = ui.illustrated_message( + ui.icon("vsWarning"), + ui.heading("Invalid input"), + ui.content("No special characters allowed."), +) +``` + +## Labeling + +If the heading of an illustrated message isn't specified, set the `aria-label` prop for accessibility purposes. + +```python +from deephaven import ui + + +my_illustrated_message_labeling_example = ui.illustrated_message( + ui.icon("vsWorkspaceTrusted", aria_label="Trusted Workspace") +) +``` + +## Placeholder + +Using an illustrated message as a placeholder for a table or list can clearly indicate the absence of data and provide context-specific guidance. + +```python +from deephaven import ui +import deephaven.plot.express as dx + +_stocks = dx.data.stocks() + + +@ui.component +def illustrated_message_placeholder_example(): + filter, set_filter = ui.use_state("") + return [ + ui.text_field( + value=filter, label="Sym Filter", is_required=True, on_change=set_filter + ), + ui.illustrated_message( + ui.icon("vsFilter"), + ui.heading("Filter required"), + ui.content("Enter a filter to display filtered table"), + width="100%", + ) + if filter == "" + else _stocks.where(f"Sym=`{filter.upper()}`"), + ] + + +my_illustrated_message_placeholder_example = illustrated_message_placeholder_example() +``` + + +## API reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.illustrated_message +``` diff --git a/plugins/ui/src/deephaven/ui/components/illustrated_message.py b/plugins/ui/src/deephaven/ui/components/illustrated_message.py index ac99d327b..9d0317ff8 100644 --- a/plugins/ui/src/deephaven/ui/components/illustrated_message.py +++ b/plugins/ui/src/deephaven/ui/components/illustrated_message.py @@ -56,6 +56,7 @@ def illustrated_message( ) -> Element: """ An IllustratedMessage displays an illustration and a message, usually for an empty state or an error page. + Args: *children: The content of the IllustratedMessage which consist of three areas: an illustration, a title, and a body. flex: When used in a flex layout, specifies how the element will grow or shrink to fit the space available. @@ -98,23 +99,10 @@ def illustrated_message( UNSAFE_class_name: Set the CSS className for the element. Only use as a last resort. Use style props instead. UNSAFE_style: Set the inline style for the element. Only use as a last resort. Use style props instead. - Examples: - no_results = ui.illustrated_message( - ui.heading("No Results"), - ui.content("Try another search"), - ) - warning = ui.illustrated_message( - ui.icon("vsWarning"), - ui.heading("Invalid input"), - ui.content("No special characters allowed."), - ) - error_message = ui.illustrated_message( - ui.icon("vsError"), - ui.heading("Access denied"), - ui.content("You do not have permissions to access this page."), - ) - + Returns: + The rendered IllustratedMessage component. """ + return component_element( "IllustratedMessage", *children, From 753eb380d2f5edc7f22bf7dc9c980b75bfe40776 Mon Sep 17 00:00:00 2001 From: Mike Bender Date: Tue, 20 Aug 2024 16:12:29 -0400 Subject: [PATCH 06/22] docs: Add docs for deephaven.ui installation (#725) - Give details on how to install the deephaven.ui plugin for both an existing implementation and a new implementation - Fixes #726 --------- Co-authored-by: margaretkennedy <82049573+margaretkennedy@users.noreply.github.com> --- plugins/ui/docs/installation.md | 70 +++++++++++++++++++++++++++++++++ plugins/ui/docs/sidebar.json | 4 ++ 2 files changed, 74 insertions(+) create mode 100644 plugins/ui/docs/installation.md diff --git a/plugins/ui/docs/installation.md b/plugins/ui/docs/installation.md new file mode 100644 index 000000000..8ad1ee057 --- /dev/null +++ b/plugins/ui/docs/installation.md @@ -0,0 +1,70 @@ +# Installation + +deephaven.ui is a plugin that works with [Deephaven](https://deephaven.io/core/docs/). Use the deephaven.ui plugin to build dynamic components and layouts using Deephaven. + +## New installation + +If you don't already have Deephaven installed, you can install via Docker or pip. + +### Install and run with Docker + +deephaven.ui can be run from a pre-built Docker image. Simply run the following to get the latest image: + +```sh +docker run --name deephaven -p 10000:10000 ghcr.io/deephaven/server-ui:latest +``` + +See the [Deephaven Docker install documentation](https://deephaven.io/core/docs/getting-started/docker-install/) for more information. + +### Install and run with pip + +deephaven.ui can easily be installed using the Python package manager pip. Simply run: + +```sh +pip install deephaven-server deephaven-plugin-ui +``` + +Then you can run the Deephaven server with: + +```sh +deephaven server +``` + +See the [Deephaven pip install documentation](https://deephaven.io/core/docs/getting-started/pip-install/) for more information. + +## Existing installation + +Installing Deephaven plugins is different whether you have Deephaven installed via Docker or via pip. + +### Add to existing Docker install + +With a running Docker container named `deephaven`, run the following from the command line: + +```sh +docker exec deephaven pip install deephaven-plugin-ui +``` + +See the [documentation for installing packages in a running container](https://deephaven.io/core/docs/how-to-guides/install-and-use-python-packages/#install-packages-in-a-running-docker-container-from-the-command-line) for more details. + +### Add to existing pip installation + +With an existing `pip` installation of Deephaven server, just `pip install` the plugin: + +```sh +pip install deephaven-plugin-ui +``` + +See the [documentation for using Python packages in Deephaven](https://deephaven.io/core/docs/how-to-guides/install-and-use-python-packages/#use-python-packages-in-deephaven) for more details. + +# Verifying installation + +After you have deephaven.ui installed, verify it is working correctly. Run Deephaven, and in the console enter the following command: + +```python +from deephaven import ui + +hello_world = ui.heading("Hello World!") +``` + +A panel will appear that displays the "Hello world!" text: +![Basic Hello World example.](../_assets/hello_world.png) diff --git a/plugins/ui/docs/sidebar.json b/plugins/ui/docs/sidebar.json index ef7c21150..04fee0f3d 100644 --- a/plugins/ui/docs/sidebar.json +++ b/plugins/ui/docs/sidebar.json @@ -14,6 +14,10 @@ "label": "Introduction", "path": "README.md" }, + { + "label": "Installation", + "path": "installation.md" + }, { "label": "Components", "items": [ From c091daca448fa3f2aea91e63a44a2bd7d7de5961 Mon Sep 17 00:00:00 2001 From: Mike Bender Date: Tue, 20 Aug 2024 16:13:19 -0400 Subject: [PATCH 07/22] fix: use_effect behaviour (#734) - `use_effect` hook was not actually triggering the effects and cleanup methods correctly based on the dependencies passed in - Was only being called when dependencies were changed, cleanup was not being called on unmount, and we didn't handle no dependencies being passed in correctly (should call previous cleanup/effect on each render) - Effects were being run during the render, instead of after the render as they are supposed to - Re-wire `use_effect` to correctly implement the `use_effect` behaviour as defined in the React [useEffect docs](https://react.dev/reference/react/useEffect#examples-dependencies). - Re-organized unit tests, and added tests for `use_effect` - Manual testing with a counter component using the three different effect types, and also a "nested" component that tests unmount/mount behaviour: ``` from deephaven import ui @ui.component def ui_effect_test_counter(name = "test"): count, set_count = ui.use_state(0) def make_effect(effect_name: str): def cleanup(): print(f"{name}-{effect_name}-cleanup") def effect(): print(f"{name}-{effect_name}-effect") return cleanup return effect ui.use_effect(make_effect("no_deps")) ui.use_effect(make_effect("empty_deps"), []) ui.use_effect(make_effect("count_dep"), [count]) return ui.action_button(f"Count is {count}", on_press=lambda: set_count(count + 1)) @ui.component def ui_nested_effect(): is_shown, set_is_shown = ui.use_state(True) return [ ui.toggle_button("Show counter", is_selected=is_shown, on_change=set_is_shown), ui_effect_test_counter("nested") if is_shown else None ] effect_test_counter = ui_effect_test_counter() nested_effect = ui_nested_effect() ``` - Fixes #737 --- .../deephaven/ui/_internal/RenderContext.py | 166 ++++++++- .../ui/src/deephaven/ui/elements/Element.py | 3 + .../deephaven/ui/elements/FunctionElement.py | 3 +- .../ui/src/deephaven/ui/hooks/use_callback.py | 6 +- .../ui/src/deephaven/ui/hooks/use_effect.py | 56 ++- plugins/ui/src/deephaven/ui/hooks/use_memo.py | 3 +- .../ui/object_types/ElementMessageStream.py | 16 +- .../ui/src/deephaven/ui/renderer/Renderer.py | 100 +++++- plugins/ui/test/__init__.py | 10 + plugins/ui/test/deephaven/ui/BaseTest.py | 18 +- .../ui/test/deephaven/ui/hooks/__init__.py | 0 .../test/deephaven/ui/hooks/render_utils.py | 61 ++++ .../ui/test/deephaven/ui/hooks/test_effect.py | 190 ++++++++++ .../ui/hooks/test_execution_context.py | 51 +++ .../test/deephaven/ui/hooks/test_liveness.py | 129 +++++++ .../ui/test/deephaven/ui/hooks/test_memo.py | 71 ++++ .../ui/test/deephaven/ui/hooks/test_ref.py | 27 ++ .../ui/test/deephaven/ui/hooks/test_state.py | 45 +++ .../ui/{test_hooks.py => hooks/test_table.py} | 332 +----------------- plugins/ui/test/deephaven/ui/test_render.py | 138 ++++---- plugins/ui/test/deephaven/ui/test_renderer.py | 210 +++++++++++ plugins/ui/tox.ini | 2 +- 22 files changed, 1202 insertions(+), 435 deletions(-) create mode 100644 plugins/ui/test/deephaven/ui/hooks/__init__.py create mode 100644 plugins/ui/test/deephaven/ui/hooks/render_utils.py create mode 100644 plugins/ui/test/deephaven/ui/hooks/test_effect.py create mode 100644 plugins/ui/test/deephaven/ui/hooks/test_execution_context.py create mode 100644 plugins/ui/test/deephaven/ui/hooks/test_liveness.py create mode 100644 plugins/ui/test/deephaven/ui/hooks/test_memo.py create mode 100644 plugins/ui/test/deephaven/ui/hooks/test_ref.py create mode 100644 plugins/ui/test/deephaven/ui/hooks/test_state.py rename plugins/ui/test/deephaven/ui/{test_hooks.py => hooks/test_table.py} (62%) create mode 100644 plugins/ui/test/deephaven/ui/test_renderer.py diff --git a/plugins/ui/src/deephaven/ui/_internal/RenderContext.py b/plugins/ui/src/deephaven/ui/_internal/RenderContext.py index 28e89c298..bc6b3516e 100644 --- a/plugins/ui/src/deephaven/ui/_internal/RenderContext.py +++ b/plugins/ui/src/deephaven/ui/_internal/RenderContext.py @@ -6,7 +6,9 @@ Any, Callable, Dict, + List, Optional, + Tuple, TypeVar, Union, Generator, @@ -58,6 +60,16 @@ The child contexts for a RenderContext. """ +RenderCleanup = Callable[[], None] +""" +A function that cleans up an effect. +""" + +RenderEffect = Callable[[], None] +""" +A function that performs an effect. +""" + @dataclass class ValueWithLiveness(Generic[T]): @@ -188,6 +200,30 @@ class RenderContext: representing the new rendered state. """ + _collected_effects: List[Tuple[RenderCleanup, RenderEffect]] + """ + Effects currently owned by this RenderContext. Takes a tuple of a cleanup function and an effect function. + When the current render cycle is complete, first it will call all the cleanup functions in the set, then it will call all the effect functions. + """ + + _collected_unmount_listeners: List[Callable[[], None]] + """ + Unmount listeners currently owned by this RenderContext. If currently open and rendering, this will be a fresh set, + representing the new rendered state. + When the context is deleted or unmounted, it will call all the listeners in this set. + """ + + _collected_contexts: List[ContextKey] + """ + Child contexts currently owned by this RenderContext. If currently open and rendering, this will be a fresh set, + representing the new rendered state. + """ + + _is_mounted: bool + """ + Flag to indicate if this context is mounted. It is unusable after being unmounted. + """ + def __init__(self, on_change: OnChangeCallable, on_queue_render: OnChangeCallable): """ Create a new render context. @@ -204,11 +240,18 @@ def __init__(self, on_change: OnChangeCallable, on_queue_render: OnChangeCallabl self._on_change = on_change self._on_queue_render = on_queue_render self._collected_scopes = set() + self._collected_effects = [] + self._collected_unmount_listeners = [] + self._collected_contexts = [] self._top_level_scope = None + self._is_mounted = True def __del__(self): + logger.debug("Deleting context") for scope in self._collected_scopes: scope.release() + if self._is_mounted: + self.unmount() @contextmanager def open(self) -> Generator[RenderContext, None, None]: @@ -222,6 +265,8 @@ def open(self) -> Generator[RenderContext, None, None]: Returns: A context manager to manage RenderContext resources. """ + self._assert_mounted() + if self._hook_index != _READY_TO_OPEN or self._top_level_scope is not None: raise RuntimeError( "RenderContext.open() was already called, and is not reentrant" @@ -233,17 +278,46 @@ def open(self) -> Generator[RenderContext, None, None]: old_context = get_context() except NoContextException: pass - logger.debug("old context is %s and new context is %s", old_context, self) + logger.debug("Opening context %s (old context is %s)", self, old_context) _set_context(self) # Keep a reference to old liveness scopes, and make a collection to track our new ones old_liveness_scopes = self._collected_scopes self._top_level_scope = LivenessScope() self._collected_scopes = {self._top_level_scope} + + # Reset the after render listeners. No need to retain the old ones. + self._collected_effects = [] + + # Keep a reference to old unmount listeners, and make a collection to track our new ones + old_unmount_listeners = self._collected_unmount_listeners + self._collected_unmount_listeners = [] + + # Keep a reference to old child contexts, and make a collection to track our new ones + old_contexts = self._collected_contexts + self._collected_contexts = [] + try: with self._top_level_scope.open(): yield self + # Release all child contexts that are no longer referenced + for context_key in old_contexts: + if context_key not in self._collected_contexts: + self.delete_child_context(context_key) + + # Call the unmount listeners for anything that was unmounted + for listener in old_unmount_listeners: + if listener not in self._collected_unmount_listeners: + listener() + + # Call all the cleanup functions registered, then all the effect functions + for cleanup, effect in self._collected_effects: + cleanup() + + for cleanup, effect in self._collected_effects: + effect() + # Following the "yield" so we don't do this if there was an error, remove all scopes we're still using. # Then, release all leftover scopes that are no longer referenced - we always release after creating new # ones, so that each reused object's refcount goes from 1 -> 2 -> 1, instead of 1 -> 0 -> 1 which would @@ -266,7 +340,9 @@ def open(self) -> Generator[RenderContext, None, None]: raise e finally: # Do this even if there was an error, old context must be restored - logger.debug("Resetting to old context %s", old_context) + logger.debug( + "Closing context %s, resetting to old context %s", self, old_context + ) _set_context(old_context) # Reset count for next use to safeguard double-opening @@ -274,6 +350,9 @@ def open(self) -> Generator[RenderContext, None, None]: # Clear the top level scope to ensure nothing tries to use it until opened again self._top_level_scope = None + # Reset the after render listeners. No need to retain the old ones. + self._collected_effects = [] + if self._hook_count != hook_count: # It isn't ideal to throw this anywhere - but this speaks to a malformed component, and there is no # good way to recover from that. We don't want to prevent liveness wiring above from working, so we @@ -284,6 +363,24 @@ def open(self) -> Generator[RenderContext, None, None]: ) ) + def _assert_active(self) -> None: + """ + Verify that this context is active on this thread. + """ + if self is not get_context(): + raise RuntimeError( + "RenderContext method called when RenderContext not opened" + ) + + def _assert_mounted(self) -> None: + """ + Verify that this context is mounted. + """ + if not self._is_mounted: + raise RuntimeError( + "RenderContext method called when RenderContext is unmounted" + ) + def has_state(self, key: StateKey) -> bool: """ Check if the given key is in the state. @@ -294,6 +391,7 @@ def get_state(self, key: StateKey) -> Any: """ Get the state for the given key. """ + self._assert_active() wrapper = self._state[key] # This value (and any objects created when this value was created) must be retained by the current context, @@ -331,7 +429,6 @@ def set_state(self, key: StateKey, value: T | UpdaterFunction[T]) -> None: key: The key to set the state for. value: The value to set the state to. Can be a callable that takes the old value and returns the new value. """ - if key not in self._state: raise KeyError(f"Key {key} not initialized") @@ -342,6 +439,7 @@ def update_state(): new_value = _value_or_call(partial(value, old_value)) else: new_value = _value_or_call(value) + logger.debug("Setting state %s to %s in %s", key, new_value, self) self._state[key] = new_value # This is not the initial state, queue up the state change on the render loop @@ -353,11 +451,24 @@ def get_child_context(self, key: ContextKey) -> "RenderContext": """ logger.debug("Getting child context for key %s", key) if key not in self._children_context: - logger.debug("Creating new child context for key %s", key) child_context = RenderContext(self._on_change, self._on_queue_render) + logger.debug( + "Created new child context %s for key %s in %s", + child_context, + key, + self, + ) self._children_context[key] = child_context + self._collected_contexts.append(key) return self._children_context[key] + def delete_child_context(self, key: ContextKey) -> None: + """ + Unmount and delete the child context for the given key. + """ + self._children_context[key].unmount() + del self._children_context[key] + def next_hook_index(self) -> int: """ Increment the hook index. @@ -381,9 +492,30 @@ def manage(self, liveness_scope: LivenessScope) -> None: Args: liveness_scope: the new LivenessScope to track """ - assert self is get_context() + self._assert_active() self._collected_scopes.add(cast(LivenessScope, liveness_scope.j_scope)) + def add_effect(self, cleanup: RenderCleanup, effect: RenderEffect) -> None: + """ + Add an effect for after this context is rendered. + This RenderContext must be open to call this method. + Args: + cleanup: the cleanup function to run from the previous effect. All cleanups are run before any effects. + effect: the new effect to run. + """ + self._assert_active() + self._collected_effects.append((cleanup, effect)) + + def add_unmount_listener(self, listener: Callable[[], None]) -> None: + """ + Add a listener for when this context is unmounted. + This RenderContext must be open to call this method. + Args: + listener: the new listener to track + """ + self._assert_active() + self._collected_unmount_listeners.append(listener) + def export_state(self) -> ExportedRenderState: """ Export the state of this context. This is used to serialize the state for the client. @@ -432,3 +564,27 @@ def import_state(self, state: dict[str, Any]) -> None: for key, child_state in state["children"].items(): self.get_child_context(key).import_state(child_state) logger.debug("New state is %s", self._state) + + def unmount(self) -> None: + """ + Unmount this context. This will unmount all child contexts, call all unmount listeners, and clear the state. + """ + self._assert_mounted() + + logger.debug("Unmounting context %s", self) + self._is_mounted = False + for context in self._children_context.values(): + context.unmount() + + for listener in self._collected_unmount_listeners: + listener() + + # Clear all our children states so we don't hold a reference to anything. + self._hook_index = _READY_TO_OPEN + self._hook_count = -1 + self._state.clear() + self._children_context.clear() + self._collected_scopes.clear() + self._collected_effects.clear() + self._collected_unmount_listeners.clear() + self._collected_contexts.clear() diff --git a/plugins/ui/src/deephaven/ui/elements/Element.py b/plugins/ui/src/deephaven/ui/elements/Element.py index e0c00ad0c..810f52fea 100644 --- a/plugins/ui/src/deephaven/ui/elements/Element.py +++ b/plugins/ui/src/deephaven/ui/elements/Element.py @@ -28,6 +28,9 @@ def render(self, context: RenderContext) -> PropsType: Renders this element, and returns the result as a dictionary of props for the element. If you just want to render children, pass back a dict with children only, e.g. { "children": ... } + Args: + context: Deprecated. The context to render the element in. Should already be opened before calling this method. + Returns: The props of this element. """ diff --git a/plugins/ui/src/deephaven/ui/elements/FunctionElement.py b/plugins/ui/src/deephaven/ui/elements/FunctionElement.py index e0bb202bb..bcf63188c 100644 --- a/plugins/ui/src/deephaven/ui/elements/FunctionElement.py +++ b/plugins/ui/src/deephaven/ui/elements/FunctionElement.py @@ -33,7 +33,6 @@ def render(self, context: RenderContext) -> PropsType: Returns: The props of this element. """ - with context.open(): - children = self._render() + children = self._render() return {"children": children} diff --git a/plugins/ui/src/deephaven/ui/hooks/use_callback.py b/plugins/ui/src/deephaven/ui/hooks/use_callback.py index cd4bf7f02..6f4a60ca0 100644 --- a/plugins/ui/src/deephaven/ui/hooks/use_callback.py +++ b/plugins/ui/src/deephaven/ui/hooks/use_callback.py @@ -1,12 +1,14 @@ from __future__ import annotations -from typing import Callable +from typing import Any, Callable, TypeVar from .use_memo import use_memo from ..types import Dependencies +T = TypeVar("T", bound=Callable[..., Any]) -def use_callback(func: Callable, dependencies: Dependencies) -> Callable: + +def use_callback(func: T, dependencies: Dependencies) -> T: """ Memoize a callback function. The callback will only be recreated if the dependencies change. diff --git a/plugins/ui/src/deephaven/ui/hooks/use_effect.py b/plugins/ui/src/deephaven/ui/hooks/use_effect.py index e11e05fa6..6938ed9fb 100644 --- a/plugins/ui/src/deephaven/ui/hooks/use_effect.py +++ b/plugins/ui/src/deephaven/ui/hooks/use_effect.py @@ -1,15 +1,23 @@ from __future__ import annotations -from typing import Callable, Any, cast, Sequence +from typing import Callable, Any, cast, Sequence, Union +from .use_callback import use_callback from .use_ref import use_ref, Ref from deephaven.liveness_scope import LivenessScope from .._internal import get_context from ..types import Dependencies +CleanupFunction = Callable[[], None] +EffectFunction = Callable[[], Union[CleanupFunction, None]] -def use_effect(func: Callable[[], Any], dependencies: Dependencies): + +def use_effect( + func: EffectFunction, dependencies: Union[Dependencies, None] = None +) -> None: """ Call a function when the dependencies change. Optionally return a cleanup function to be called when dependencies change again or component is unmounted. + If no dependencies are passed in, the effect will be called on every render. + If an empty list is passed in, the effect will only be called once when the component mounts. Args: func: The function to call when the dependencies change. @@ -19,26 +27,50 @@ def use_effect(func: Callable[[], Any], dependencies: Dependencies): None """ deps_ref: Ref[set[Any] | Sequence[Any] | None] = use_ref(None) - cleanup_ref = use_ref(lambda: None) + cleanup_ref: Ref[Union[CleanupFunction, None]] = use_ref(lambda: None) scope_ref: Ref[LivenessScope | None] = use_ref(None) + is_mounted_ref: Ref[bool] = use_ref(False) + is_dirty = ( + not is_mounted_ref.current + or dependencies is None + or deps_ref.current != dependencies + ) - # Check if the dependencies have changed - if deps_ref.current != dependencies: - if cleanup_ref.current is not None: - # Call the cleanup function from the previous effect - cleanup_ref.current() - + def run_effect(): # Dependencies have changed, so call the effect function and store the new cleanup that's returned, wrapped # with a new liveness scope. We will only open this scope once to capture the operations in the function, # and will pass ownership to the current RenderContext, which will release it when appropriate. liveness_scope = LivenessScope() + with liveness_scope.open(): - cleanup_ref.current = func() + effect_result = func() + cleanup_ref.current = effect_result scope_ref.current = liveness_scope # Update the dependencies deps_ref.current = dependencies - # Whether new or existing, continue to retain the liveness scope from the most recently invoked effect. - get_context().manage(cast(LivenessScope, scope_ref.current)) + def cleanup(): + if is_dirty and cleanup_ref.current is not None: + cleanup_ref.current() + cleanup_ref.current = None + + def effect(): + is_mounted_ref.current = True + + if is_dirty: + run_effect() + + # Whether new or existing, continue to retain the liveness scope from the most recently invoked effect. + get_context().manage(cast(LivenessScope, scope_ref.current)) + + def unmount(): + is_mounted_ref.current = False + cleanup() + + handle_unmount = use_callback(unmount, []) + + # We want to listen for when the render cycle is complete or the component is unmounted + get_context().add_effect(cleanup, effect) + get_context().add_unmount_listener(handle_unmount) diff --git a/plugins/ui/src/deephaven/ui/hooks/use_memo.py b/plugins/ui/src/deephaven/ui/hooks/use_memo.py index 406714539..58be11ee1 100644 --- a/plugins/ui/src/deephaven/ui/hooks/use_memo.py +++ b/plugins/ui/src/deephaven/ui/hooks/use_memo.py @@ -20,7 +20,8 @@ def use_memo(func: Callable[[], T], dependencies: Dependencies) -> T: Returns: The memoized result of the function call. """ - if not isinstance(dependencies, (list, tuple)): + # Add a safety net in case someone passes in an incorrect value, ignoring the type specifications + if not isinstance(dependencies, (list, tuple)): # type: ignore raise TypeError( f"dependencies must be a list or tuple, got {type(dependencies)}" ) diff --git a/plugins/ui/src/deephaven/ui/object_types/ElementMessageStream.py b/plugins/ui/src/deephaven/ui/object_types/ElementMessageStream.py index b622466f7..7b2d9c10a 100644 --- a/plugins/ui/src/deephaven/ui/object_types/ElementMessageStream.py +++ b/plugins/ui/src/deephaven/ui/object_types/ElementMessageStream.py @@ -281,6 +281,14 @@ def start(self) -> None: self._connection.on_data(b"", []) def on_close(self) -> None: + assert not self._is_closed + + logger.debug("Closing ElementMessageStream") + + # The connection is closed, so this component will not update anymore + # delete the context so the objects in the collected scope are released + self._context.unmount() + del self._context self._is_closed = True def on_data(self, payload: bytes, references: list[Any]) -> None: @@ -426,6 +434,9 @@ def _send_document_update( root: The root node of the document to send state: The state of the node to preserve """ + if self._is_closed: + logger.error("Stream is closed, cannot render document") + sys.exit() # TODO(#67): Send a diff of the document instead of the entire document. encoder_result = self._encoder.encode_node(root) @@ -447,11 +458,6 @@ def _send_document_update( logger.debug("Registering callable %s", callable_id) callable_dict[callable_id] = wrap_callable(callable) self._callable_dict = callable_dict - if self._is_closed: - # The connection is closed, so this component will not update anymore - # delete the context so the objects in the collected scope are released - del self._context - sys.exit() self._connection.on_data(payload.encode(), new_objects) def _send_document_error(self, error: Exception, stack_trace: str) -> None: diff --git a/plugins/ui/src/deephaven/ui/renderer/Renderer.py b/plugins/ui/src/deephaven/ui/renderer/Renderer.py index 4052b9b28..496f5e7ed 100644 --- a/plugins/ui/src/deephaven/ui/renderer/Renderer.py +++ b/plugins/ui/src/deephaven/ui/renderer/Renderer.py @@ -1,6 +1,6 @@ from __future__ import annotations import logging -from typing import Any +from typing import Any, Dict, List, Tuple, Union from .._internal import RenderContext from ..elements import Element, PropsType from .RenderedNode import RenderedNode @@ -8,6 +8,47 @@ logger = logging.getLogger(__name__) +def _get_context_key(item: Any, index_key: str) -> Union[str, None]: + """ + Get a key for an item provided at the array/dict `index_key`. This is used to uniquely identify the item in the + render context. + + Args: + item: The item to get a key for. + index_key: The key of the item in the array/dict. + + Returns: + The key for the item in the render context. + - If `item` is an `Element` generate a key based on the `index_key` and the `name` of the `Element`. + - If the item is another iterable, just return the `index_key`. + - Otherwise, return `None` as the key. + - TODO #731: use a `key` prop if it exists on the `Element`. + """ + if isinstance(item, Element): + return f"{index_key}-{item.name}" + if isinstance(item, (Dict, List, Tuple)): + return index_key + return None + + +def _render_child_item(item: Any, index_key: str, context: RenderContext) -> Any: + """ + Renders a child item with a child context. If the child item does not need to be rendered, just return the item. + + Args: + item: The item to render. + index_key: The key of the item in the array/dict. + context: The context to render the item in. + + Returns: + The rendered item. + """ + key = _get_context_key(item, index_key) + return ( + _render_item(item, context.get_child_context(key)) if key is not None else item + ) + + def _render_item(item: Any, context: RenderContext) -> Any: """ Render an item. If the item is a list or tuple, render each item in the list. @@ -15,6 +56,9 @@ def _render_item(item: Any, context: RenderContext) -> Any: Args: item: The item to render. context: The context to render the item in. + + Returns: + The rendered item. """ logger.debug("_render_item context is %s", context) if isinstance(item, (list, tuple)): @@ -44,12 +88,16 @@ def _render_list( Args: item: The list to render. context: The context to render the list in. + + Returns: + The rendered list. """ logger.debug("_render_list %s", item) - return [ - _render_item(value, context.get_child_context(str(key))) - for key, value in enumerate(item) - ] + with context.open(): + return [ + _render_child_item(value, str(key), context) + for key, value in enumerate(item) + ] def _render_dict(item: PropsType, context: RenderContext) -> PropsType: @@ -60,12 +108,29 @@ def _render_dict(item: PropsType, context: RenderContext) -> PropsType: Args: item: The dictionary to render. context: The context to render the dictionary in. + + Returns: + The rendered dictionary. + """ + logger.debug("_render_dict %s", item) + + with context.open(): + return _render_dict_in_open_context(item, context) + + +def _render_dict_in_open_context(item: PropsType, context: RenderContext) -> PropsType: + """ + Render a dictionary. You may be able to pass in an element as a prop that needs to be rendered, not just as a child. + For example, a `label` prop of a button can accept a string or an element. + + Args: + item: The dictionary to render. + context: The context to render the dictionary in. + + Returns: + The rendered dictionary. """ - logger.debug("_render_props %s", item) - return { - key: _render_item(value, context.get_child_context(key)) - for key, value in item.items() - } + return {key: _render_child_item(value, key, context) for key, value in item.items()} def _render_element(element: Element, context: RenderContext) -> RenderedNode: @@ -79,12 +144,13 @@ def _render_element(element: Element, context: RenderContext) -> RenderedNode: Returns: The RenderedNode representing the element. """ - logger.debug("Rendering %s: ", element.name) + logger.debug("Rendering element %s in context %s", element.name, context) - props = element.render(context) + with context.open(): + props = element.render(context) - # We also need to render any elements that are passed in as props - props = _render_dict(props, context) + # We also need to render any elements that are passed in as props (including `children`) + props = _render_dict_in_open_context(props, context) return RenderedNode(element.name, props) @@ -107,5 +173,11 @@ def __init__(self, context: RenderContext): def render(self, element: Element) -> RenderedNode: """ Render an element. Will update the liveness scope with the new objects from the render. + + Args: + element: The element to render. + + Returns: + The rendered element. """ return _render_element(element, self._context) diff --git a/plugins/ui/test/__init__.py b/plugins/ui/test/__init__.py index e69de29bb..8718e3915 100644 --- a/plugins/ui/test/__init__.py +++ b/plugins/ui/test/__init__.py @@ -0,0 +1,10 @@ +from deephaven_server.server import Server + +# Create a Server instance to initialize the JVM +# Otherwise we get errors whenever we try to import anything or run tests +# We don't even need to start the server, just create an instance. +# https://github.com/deephaven/deephaven-core/blob/b5cae98c2f11b032cdd1b9c248dc5b4a0f95314a/py/embedded-server/deephaven_server/server.py#L152 +# Whenever you import anything from the deephaven namespace, it will check if the JVM is ready: +# https://github.com/deephaven/deephaven-core/blob/b5cae98c2f11b032cdd1b9c248dc5b4a0f95314a/py/server/deephaven/__init__.py#L15 +if Server.instance is None: + Server(port=11000, jvm_args=["-Xmx4g"]) diff --git a/plugins/ui/test/deephaven/ui/BaseTest.py b/plugins/ui/test/deephaven/ui/BaseTest.py index 81a9a3bb1..67c6e0763 100644 --- a/plugins/ui/test/deephaven/ui/BaseTest.py +++ b/plugins/ui/test/deephaven/ui/BaseTest.py @@ -1,19 +1,19 @@ import unittest from unittest.mock import patch - -from deephaven_server import Server +from deephaven_server.server import Server class BaseTestCase(unittest.TestCase): @classmethod def setUpClass(cls): - try: - # Use port 11000 so it doesn't conflict with another server - cls.s = Server(port=11000, jvm_args=["-Xmx4g"]) - cls.s.start() - except Exception as e: - # server is already running - pass + # try: + # if Server.instance is None: + # # Use port 11000 so it doesn't conflict with another server + # s = Server(port=11000, jvm_args=["-Xmx4g"]) + # s.start() + # except Exception as e: + # # server is already running + # pass # these mocks need to be setup after the deephaven server is # initialized because they access the deephaven namespace diff --git a/plugins/ui/test/deephaven/ui/hooks/__init__.py b/plugins/ui/test/deephaven/ui/hooks/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/ui/test/deephaven/ui/hooks/render_utils.py b/plugins/ui/test/deephaven/ui/hooks/render_utils.py new file mode 100644 index 000000000..24e7a56d9 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/render_utils.py @@ -0,0 +1,61 @@ +from __future__ import annotations +from queue import Queue +from typing import Any, Callable, TypedDict, Union + + +class RenderHookResult(TypedDict): + context: object + result: Any + rerender: Callable[..., Any] + unmount: Callable[[], None] + + +def render_hook( + fn: Callable[..., Any], + *args: Any, + queue: Union[Queue[Any], None] = None, + **kwargs: Any, +) -> RenderHookResult: + """ + Render a hook function and return the context, result, and a rerender function for updating it + + Args: + fn: + The function to render. Pass in a function with a hook call within it. + Re-render will call the same function but with the new args passed in. + args: + Any extra positional arguments to pass to the function. + queue: + The queue to put items on. If not provided, a new queue will be created. + kwargs: + Any extra keyword arguments to pass to the function. + """ + from deephaven.ui._internal.RenderContext import RenderContext + + if queue is None: + queue = Queue() + + context = RenderContext(lambda x: queue.put(x), lambda x: queue.put(x)) + + def _rerender(*args: Any, **kwargs: Any) -> Any: + while not queue.empty(): + item = queue.get() + item() + with context.open(): + new_result = fn(*args, **kwargs) + return_dict["result"] = new_result + return new_result + + def _unmount() -> None: + context.unmount() + + return_dict: RenderHookResult = { + "context": context, + "result": None, + "rerender": _rerender, + "unmount": _unmount, + } + + _rerender(*args, **kwargs) + + return return_dict diff --git a/plugins/ui/test/deephaven/ui/hooks/test_effect.py b/plugins/ui/test/deephaven/ui/hooks/test_effect.py new file mode 100644 index 000000000..d0e70d8bb --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_effect.py @@ -0,0 +1,190 @@ +from __future__ import annotations +import itertools +from typing import Any, Callable, Union +from unittest.mock import Mock +from ..BaseTest import BaseTestCase +from .render_utils import render_hook + + +class UseEffectTestCase(BaseTestCase): + def reset_mocks(self): + self.called_funcs.clear() + self.render_start.reset_mock() + self.render_end.reset_mock() + self.cleanup.reset_mock() + self.effect.reset_mock() + + def make_effect( + self, name: str = "effect", cleanup: Union[Callable[[], None], None] = None + ): + if cleanup is None: + cleanup = self.cleanup + + def effect(): + self.called_funcs.append(name) + return cleanup + + return Mock(side_effect=effect) + + def setUp(self) -> None: + # Used to make sure functions are called in the correct order + self.called_funcs: list[str] = [] + + self.render_start = Mock( + side_effect=lambda: self.called_funcs.append("render_start") + ) + self.render_end = Mock( + side_effect=lambda: self.called_funcs.append("render_end") + ) + self.cleanup = Mock(side_effect=lambda: self.called_funcs.append("cleanup")) + self.effect = self.make_effect() + + return super().setUp() + + def _test_use_effect( + self, + effect: Union[Callable[[], Callable[[], None]], None] = None, + dependencies: Any = None, + ): + if effect is None: + effect = self.effect + + from deephaven.ui.hooks import use_effect + + self.render_start() + use_effect(effect, dependencies) + self.render_end() + + def test_no_dependencies(self) -> None: + """ + Test the use_effect hook with no dependencies. + Should call the effect each time after the render, and the previous cleanup before that + """ + result = render_hook(self._test_use_effect) + self.assertEqual(result["result"], None) + self.assertEqual(self.effect.call_count, 1) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual(self.called_funcs, ["render_start", "render_end", "effect"]) + + self.reset_mocks() + + cleanup2 = Mock(side_effect=lambda: self.called_funcs.append("cleanup2")) + effect2 = self.make_effect("effect2", cleanup2) + + # Re-render with no dependencies still + rerender_result = result["rerender"](effect=effect2) + self.assertEqual(rerender_result, None) + self.assertEqual(self.effect.call_count, 0) + self.assertEqual(effect2.call_count, 1) + # Make sure the old cleanup was called before the new effect + self.assertEqual(self.cleanup.call_count, 1) + self.assertEqual(cleanup2.call_count, 0) + self.assertEqual( + self.called_funcs, ["render_start", "render_end", "cleanup", "effect2"] + ) + + self.reset_mocks() + cleanup2.reset_mock() + effect2.reset_mock() + + # Now unmount + result["unmount"]() + self.assertEqual(self.render_start.call_count, 0) + self.assertEqual(self.render_end.call_count, 0) + self.assertEqual(effect2.call_count, 0) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(cleanup2.call_count, 1) + self.assertEqual(self.called_funcs, ["cleanup2"]) + + def test_empty_dependencies(self) -> None: + """ + Test the use_effect hook with empty dependencies. + It should call the effect once on mount, and cleanup once on unmount. + """ + result = render_hook(self._test_use_effect, dependencies=[]) + self.assertEqual(result["result"], None) + self.assertEqual(self.effect.call_count, 1) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual(self.called_funcs, ["render_start", "render_end", "effect"]) + + self.reset_mocks() + + # Re-render with empty dependencies. Should not call the effect again + rerender_result = result["rerender"](dependencies=[]) + self.assertEqual(rerender_result, None) + self.assertEqual(self.effect.call_count, 0) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual(self.called_funcs, ["render_start", "render_end"]) + + self.reset_mocks() + + # Now unmount + result["unmount"]() + self.assertEqual(self.render_start.call_count, 0) + self.assertEqual(self.render_end.call_count, 0) + self.assertEqual(self.effect.call_count, 0) + self.assertEqual(self.cleanup.call_count, 1) + self.assertEqual(self.called_funcs, ["cleanup"]) + + def test_dependencies(self) -> None: + """ + Test the use_effect hook with dependencies. + It should call the effect only when the dependencies are changed, and when the component mounts. + It should call the previous cleanup when dependencies are changed, and when the component unmounts. + """ + self.reset_mocks() + + result = render_hook(self._test_use_effect, dependencies=[1]) + self.assertEqual(result["result"], None) + self.assertEqual(self.effect.call_count, 1) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual(self.called_funcs, ["render_start", "render_end", "effect"]) + + self.reset_mocks() + + # Re-render with the same dependencies. Should not call the effect again + rerender_result = result["rerender"](dependencies=[1]) + self.assertEqual(rerender_result, None) + self.assertEqual(self.effect.call_count, 0) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual(self.called_funcs, ["render_start", "render_end"]) + + self.reset_mocks() + cleanup2 = Mock(side_effect=lambda: self.called_funcs.append("cleanup2")) + effect2 = self.make_effect("effect2", cleanup2) + + # Re-render with different dependencies. Should call the effect again, and cleanup the old effect + rerender_result = result["rerender"](effect=effect2, dependencies=[2]) + self.assertEqual(rerender_result, None) + self.assertEqual(self.effect.call_count, 0) + self.assertEqual(effect2.call_count, 1) + self.assertEqual(self.cleanup.call_count, 1) + self.assertEqual(cleanup2.call_count, 0) + self.assertEqual(self.render_start.call_count, 1) + self.assertEqual(self.render_end.call_count, 1) + self.assertEqual( + self.called_funcs, ["render_start", "render_end", "cleanup", "effect2"] + ) + + self.reset_mocks() + cleanup2.reset_mock() + effect2.reset_mock() + + # Now unmount + result["unmount"]() + self.assertEqual(self.render_start.call_count, 0) + self.assertEqual(self.render_end.call_count, 0) + self.assertEqual(self.cleanup.call_count, 0) + self.assertEqual(effect2.call_count, 0) + self.assertEqual(cleanup2.call_count, 1) + self.assertEqual(self.called_funcs, ["cleanup2"]) diff --git a/plugins/ui/test/deephaven/ui/hooks/test_execution_context.py b/plugins/ui/test/deephaven/ui/hooks/test_execution_context.py new file mode 100644 index 000000000..d04fd5c3d --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_execution_context.py @@ -0,0 +1,51 @@ +import threading +from ..BaseTest import BaseTestCase +from .render_utils import render_hook + + +class UseExecutionContextTestCase(BaseTestCase): + def test_execution_context(self): + from deephaven.ui.hooks import use_execution_context, use_state, use_memo + from deephaven import empty_table + + def _test_execution_context(): + with_exec_ctx = use_execution_context() + + def table_func(): + # This would fail if not using an execution context + empty_table(0).update("X=1") + + def thread_func(): + with_exec_ctx(table_func) + + def start_thread(): + thread = threading.Thread(target=thread_func) + thread.start() + thread.join() + + use_memo(start_thread, []) + + render_hook(_test_execution_context) + + def test_execution_context_custom(self): + from deephaven.ui.hooks import use_execution_context, use_memo + from deephaven import empty_table + from deephaven.execution_context import make_user_exec_ctx + + def _test_execution_context(): + with_exec_ctx = use_execution_context(make_user_exec_ctx()) + + def table_func(): + # This would fail if not using an execution context + empty_table(0).update("X=1") + + def thread_func(): + with_exec_ctx(table_func) + + def start_thread(): + thread = threading.Thread(target=thread_func) + thread.start() + + use_memo(start_thread, []) + + render_hook(_test_execution_context) diff --git a/plugins/ui/test/deephaven/ui/hooks/test_liveness.py b/plugins/ui/test/deephaven/ui/hooks/test_liveness.py new file mode 100644 index 000000000..83ab3cc70 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_liveness.py @@ -0,0 +1,129 @@ +from typing import Callable +from ..BaseTest import BaseTestCase +from .render_utils import render_hook + + +class UseLivenessTestCase(BaseTestCase): + def test_liveness_use_state_interactions(self): + from deephaven.ui.hooks import use_state, use_liveness_scope + from deephaven import new_table, dtypes as dht + from deephaven.table import Table + from deephaven.column import int_col + from deephaven.stream import blink_to_append_only + from deephaven.stream.table_publisher import table_publisher + from deephaven.update_graph import exclusive_lock + from deephaven.liveness_scope import liveness_scope + + # create a table publisher to mutate data outside the component + cols = {"X": dht.int32} + table, publisher = table_publisher(name="test table", col_defs=cols) + table = blink_to_append_only(table).update("Timestamp=now()") + + # tracking for use_state setters to mutate component state, to let us lock and confirm + replace_a: Callable = lambda: None + a: Table = None + + def _test_reused_tables(): + """ + Doesn't re-render size + """ + nonlocal a, replace_a + a, set_a = use_state(lambda: table.where("X=1")) + + # When "a" changes, recompute table - don't return or otherwise track this table w.r.t. liveness + replace_a = use_liveness_scope(lambda: set_a(table.where("X=2")), []) + + return a.size + + # initial render, verify value is zero + rendered = render_hook(_test_reused_tables) + self.assertEqual(0, rendered["result"]) + + # render again, so that we drop the old liveness scope + result = rendered["rerender"]() + self.assertEqual(0, result) + + # append a row while we have the same table + publisher.add(new_table(cols=[int_col("X", [1])])) + # wait for the row to appear + with exclusive_lock(a): + table.await_update(2_000) + + # assert count correctly increased + result = rendered["rerender"]() + self.assertEqual(1, result) + + # replace the table with a new instance that must now be retained instead, back to zero + with liveness_scope(): + replace_a() + result = rendered["rerender"]() + self.assertEqual(0, result) + + # add a row to that new table, ensure we see it + publisher.add(new_table(cols=[int_col("X", [2])])) + # wait for the row to appear + with exclusive_lock(a): + table.await_update(2_000) + + # assert count correctly increased + result = rendered["rerender"]() + self.assertEqual(1, result) + + def test_liveness_use_memo_interactions(self): + from deephaven.ui.hooks import use_memo, use_state + from deephaven import new_table, dtypes as dht + from deephaven.column import int_col + from deephaven.stream.table_publisher import table_publisher + from deephaven.update_graph import exclusive_lock + from deephaven.time import dh_now + from deephaven.liveness_scope import liveness_scope + + # create a table publisher to mutate data outside the component + cols = {"X": dht.int32} + table, publisher = table_publisher(name="test table", col_defs=cols) + table = table.update("Timestamp=now()").with_attributes({"BlinkTable": True}) + + # tracking for use_state setters to mutate component state, to let us lock and confirm + set_a: Callable = lambda v: None + local_rows = None + + def _test_reused_tables(): + """ + Doesn't re-render size + """ + nonlocal set_a + a, set_a = use_state(0) + # When "a" changes, recompute table - don't return or otherwise track this table w.r.t. liveness + nonlocal local_rows + + def helper(): + now = dh_now() + return table.where("Timestamp > now").last_by(by=["X"]) + + local_rows = use_memo(helper, [a]) + + return local_rows.size + + # initial render, verify value is zero + rendered = render_hook(_test_reused_tables) + self.assertEqual(0, rendered["result"]) + + # render again, so that we drop the old liveness scope + result = rendered["rerender"]() + self.assertEqual(0, result) + + # append a row, "a" stayed the same + publisher.add(new_table(cols=[int_col("X", [1])])) + # wait for the row to appear + with exclusive_lock(local_rows): + table.await_update(2_000) + + # assert count correctly increased + result = rendered["rerender"]() + self.assertEqual(1, result) + + # poke "a", verify the memoized table was replaced, no more rows + with liveness_scope(): + set_a(1) + result = rendered["rerender"]() + self.assertEqual(0, result) diff --git a/plugins/ui/test/deephaven/ui/hooks/test_memo.py b/plugins/ui/test/deephaven/ui/hooks/test_memo.py new file mode 100644 index 000000000..1882a2e7f --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_memo.py @@ -0,0 +1,71 @@ +from ..BaseTest import BaseTestCase +from .render_utils import render_hook +from operator import itemgetter +from typing import Any, Callable +from unittest.mock import Mock + + +class UseMemoTestCase(BaseTestCase): + def test_ref(self): + from deephaven.ui.hooks import use_ref + + def _test_ref(value: Any = None): + ref = use_ref(value) + return ref + + # Initial render doesn't set anything + render_result = render_hook(_test_ref) + result, rerender = itemgetter("result", "rerender")(render_result) + self.assertEqual(result.current, None) + + # Doesn't update the value on second call to use_ref + result = rerender(1) + self.assertEqual(result.current, None) + + # Set the current value, and it should be returned + result.current = 2 + result = rerender(3) + self.assertEqual(result.current, 2) + + def test_memo(self): + from deephaven.ui.hooks import use_memo + + def _test_memo(fn: Callable[[], Any] = lambda: "foo", a: Any = 1, b: Any = 2): + return use_memo(fn, [a, b]) + + # Initial render + render_result = render_hook(_test_memo) + result, rerender = itemgetter("result", "rerender")(render_result) + self.assertEqual(result, "foo") + + # Rerender with new function but same deps + # Should not re-run the function + mock = Mock(return_value="bar") + result = rerender(mock) + self.assertEqual(result, "foo") + self.assertEqual(mock.call_count, 0) + + # Rerender with new deps + # Should re-run the function + result = rerender(mock, 3, 4) + self.assertEqual(result, "bar") + self.assertEqual(mock.call_count, 1) + + # Rerender with the same new deps + # Should not re-run the function + result = rerender(mock, 3, 4) + self.assertEqual(result, "bar") + self.assertEqual(mock.call_count, 1) + + # Rerender with new deps and new function + mock = Mock(return_value="biz") + result = rerender(mock, b=4) + self.assertEqual(result, "biz") + self.assertEqual(mock.call_count, 1) + + def _test_memo_set(fn: Callable[[], Any] = lambda: "foo"): + # passing in a set for dependencies should raise a TypeError + return use_memo(fn, {}) # type: ignore + + # passing in a non-list/tuple for dependencies should raise a TypeError + self.assertRaises(TypeError, render_hook, _test_memo_set) diff --git a/plugins/ui/test/deephaven/ui/hooks/test_ref.py b/plugins/ui/test/deephaven/ui/hooks/test_ref.py new file mode 100644 index 000000000..b816107f8 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_ref.py @@ -0,0 +1,27 @@ +from ..BaseTest import BaseTestCase +from .render_utils import render_hook +from operator import itemgetter +from typing import Any + + +class UseRefTestCase(BaseTestCase): + def test_ref(self): + from deephaven.ui.hooks import use_ref + + def _test_ref(value: Any = None): + ref = use_ref(value) + return ref + + # Initial render doesn't set anything + render_result = render_hook(_test_ref) + result, rerender = itemgetter("result", "rerender")(render_result) + self.assertEqual(result.current, None) + + # Doesn't update the value on second call to use_ref + result = rerender(1) + self.assertEqual(result.current, None) + + # Set the current value, and it should be returned + result.current = 2 + result = rerender(3) + self.assertEqual(result.current, 2) diff --git a/plugins/ui/test/deephaven/ui/hooks/test_state.py b/plugins/ui/test/deephaven/ui/hooks/test_state.py new file mode 100644 index 000000000..c39121984 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/hooks/test_state.py @@ -0,0 +1,45 @@ +from operator import itemgetter +from ..BaseTest import BaseTestCase +from .render_utils import render_hook + + +class UseStateTestCase(BaseTestCase): + def test_state(self): + from deephaven.ui.hooks import use_state + + def _test_state(value1: int = 1, value2: int = 2): + value1, set_value1 = use_state(value1) + value2, set_value2 = use_state(value2) + return value1, set_value1, value2, set_value2 + + # Initial render + render_result = render_hook(_test_state) + + result, rerender = itemgetter("result", "rerender")(render_result) + val1, set_val1, val2, set_val2 = result + + self.assertEqual(val1, 1) + self.assertEqual(val2, 2) + + # Rerender with new values, but should retain existing state + rerender(value1=3, value2=4) + result = itemgetter("result")(render_result) + val1, set_val1, val2, set_val2 = result + self.assertEqual(val1, 1) + self.assertEqual(val2, 2) + + # Set to a new value + set_val1(3) + rerender() + result = itemgetter("result")(render_result) + val1, set_val1, val2, set_val2 = result + self.assertEqual(val1, 3) + self.assertEqual(val2, 2) + + # Set other state to a new value + set_val2(4) + rerender() + result = itemgetter("result")(render_result) + val1, set_val1, val2, set_val2 = result + self.assertEqual(val1, 3) + self.assertEqual(val2, 4) diff --git a/plugins/ui/test/deephaven/ui/test_hooks.py b/plugins/ui/test/deephaven/ui/hooks/test_table.py similarity index 62% rename from plugins/ui/test/deephaven/ui/test_hooks.py rename to plugins/ui/test/deephaven/ui/hooks/test_table.py index cbc3a327c..dc09aa643 100644 --- a/plugins/ui/test/deephaven/ui/test_hooks.py +++ b/plugins/ui/test/deephaven/ui/hooks/test_table.py @@ -1,52 +1,15 @@ -import threading -import unittest +from __future__ import annotations from operator import itemgetter +import threading from queue import Queue -from time import sleep -from typing import Callable -from unittest.mock import Mock -from .BaseTest import BaseTestCase +from typing import Any, Callable, Union +from ..BaseTest import BaseTestCase +from .render_utils import render_hook LISTENER_TIMEOUT = 2.0 QUEUE_TIMEOUT = 1.0 -def render_hook(fn: Callable, queue=None): - """ - Render a hook function and return the context, result, and a rerender function for updating it - - Args: - fn: Callable: - The function to render. Pass in a function with a hook call within it. - Re-render will call the same function but with the new args passed in. - queue: Queue: - The queue to put items on. If not provided, a new queue will be created. - """ - from deephaven.ui._internal.RenderContext import RenderContext - - if queue is None: - queue = Queue() - - context = RenderContext(lambda x: queue.put(x), lambda x: queue.put(x)) - - return_dict = {"context": context, "result": None, "rerender": None} - - def _rerender(*args, **kwargs): - while not queue.empty(): - item = queue.get() - item() - with context.open(): - new_result = fn(*args, **kwargs) - return_dict["result"] = new_result - return new_result - - return_dict["rerender"] = _rerender - - _rerender() - - return return_dict - - class NotifyQueue(Queue): """ A queue that notifies a function when an item is put on it @@ -56,7 +19,9 @@ def __init__(self): super().__init__() self._notify_fn = None - def put(self, item: object, block: bool = True, timeout: float = None) -> None: + def put( + self, item: object, block: bool = True, timeout: Union[float, None] = None + ) -> None: """ Put an item on the queue and notify the function @@ -88,110 +53,7 @@ def unregister_notify(self) -> None: self._notify_fn = None -class HooksTest(BaseTestCase): - def test_state(self): - from deephaven.ui.hooks import use_state - - def _test_state(value1=1, value2=2): - value1, set_value1 = use_state(value1) - value2, set_value2 = use_state(value2) - return value1, set_value1, value2, set_value2 - - # Initial render - render_result = render_hook(_test_state) - - result, rerender = itemgetter("result", "rerender")(render_result) - val1, set_val1, val2, set_val2 = result - - self.assertEqual(val1, 1) - self.assertEqual(val2, 2) - - # Rerender with new values, but should retain existing state - rerender(value1=3, value2=4) - result = itemgetter("result")(render_result) - val1, set_val1, val2, set_val2 = result - self.assertEqual(val1, 1) - self.assertEqual(val2, 2) - - # Set to a new value - set_val1(3) - rerender() - result = itemgetter("result")(render_result) - val1, set_val1, val2, set_val2 = result - self.assertEqual(val1, 3) - self.assertEqual(val2, 2) - - # Set other state to a new value - set_val2(4) - rerender() - result = itemgetter("result")(render_result) - val1, set_val1, val2, set_val2 = result - self.assertEqual(val1, 3) - self.assertEqual(val2, 4) - - def test_ref(self): - from deephaven.ui.hooks import use_ref - - def _test_ref(value=None): - ref = use_ref(value) - return ref - - # Initial render doesn't set anything - render_result = render_hook(_test_ref) - result, rerender = itemgetter("result", "rerender")(render_result) - self.assertEqual(result.current, None) - - # Doesn't update the value on second call to use_ref - result = rerender(1) - self.assertEqual(result.current, None) - - # Set the current value, and it should be returned - result.current = 2 - result = rerender(3) - self.assertEqual(result.current, 2) - - def test_memo(self): - from deephaven.ui.hooks import use_memo - - def _test_memo(fn=lambda: "foo", a=1, b=2): - return use_memo(fn, [a, b]) - - # Initial render - render_result = render_hook(_test_memo) - result, rerender = itemgetter("result", "rerender")(render_result) - self.assertEqual(result, "foo") - - # Rerender with new function but same deps - # Should not re-run the function - mock = Mock(return_value="bar") - result = rerender(mock) - self.assertEqual(result, "foo") - self.assertEqual(mock.call_count, 0) - - # Rerender with new deps - # Should re-run the function - result = rerender(mock, 3, 4) - self.assertEqual(result, "bar") - self.assertEqual(mock.call_count, 1) - - # Rerender with the same new deps - # Should not re-run the function - result = rerender(mock, 3, 4) - self.assertEqual(result, "bar") - self.assertEqual(mock.call_count, 1) - - # Rerender with new deps and new function - mock = Mock(return_value="biz") - result = rerender(mock, b=4) - self.assertEqual(result, "biz") - self.assertEqual(mock.call_count, 1) - - def _test_memo_set(fn=lambda: "foo"): - return use_memo(fn, {}) - - # passing in a non-list/tuple for dependencies should raise a TypeError - self.assertRaises(TypeError, render_hook, _test_memo_set) - +class UseTableTestCase(BaseTestCase): def verify_table_updated(self, table_writer, table, update): from deephaven.ui.hooks import use_table_listener from deephaven.table_listener import TableUpdate @@ -369,7 +231,7 @@ def _test_table_data(t=table): queue = NotifyQueue() - render_result = render_hook(_test_table_data, queue) + render_result = render_hook(_test_table_data, queue=queue) result, rerender = itemgetter("result", "rerender")(render_result) @@ -754,177 +616,3 @@ def _test_cell_data(t=None): result, rerender = itemgetter("result", "rerender")(render_result) self.assertEqual(result, None) - - def test_execution_context(self): - from deephaven.ui.hooks import use_execution_context, use_state, use_memo - from deephaven import empty_table - - def _test_execution_context(): - with_exec_ctx = use_execution_context() - - def table_func(): - # This would fail if not using an execution context - empty_table(0).update("X=1") - - def thread_func(): - with_exec_ctx(table_func) - - def start_thread(): - thread = threading.Thread(target=thread_func) - thread.start() - thread.join() - - use_memo(start_thread, []) - - render_hook(_test_execution_context) - - def test_execution_context_custom(self): - from deephaven.ui.hooks import use_execution_context, use_memo - from deephaven import empty_table - from deephaven.execution_context import make_user_exec_ctx - - def _test_execution_context(): - with_exec_ctx = use_execution_context(make_user_exec_ctx()) - - def table_func(): - # This would fail if not using an execution context - empty_table(0).update("X=1") - - def thread_func(): - with_exec_ctx(table_func) - - def start_thread(): - thread = threading.Thread(target=thread_func) - thread.start() - - use_memo(start_thread, []) - - render_hook(_test_execution_context) - - def test_liveness_use_state_interactions(self): - from deephaven.ui.hooks import use_state, use_liveness_scope - from deephaven import new_table, dtypes as dht - from deephaven.table import Table - from deephaven.column import int_col - from deephaven.stream import blink_to_append_only - from deephaven.stream.table_publisher import table_publisher - from deephaven.update_graph import exclusive_lock - from deephaven.liveness_scope import liveness_scope - - # create a table publisher to mutate data outside the component - cols = {"X": dht.int32} - table, publisher = table_publisher(name="test table", col_defs=cols) - table = blink_to_append_only(table).update("Timestamp=now()") - - # tracking for use_state setters to mutate component state, to let us lock and confirm - replace_a: Callable = lambda: None - a: Table = None - - def _test_reused_tables(): - """ - Doesn't re-render size - """ - nonlocal a, replace_a - a, set_a = use_state(lambda: table.where("X=1")) - - # When "a" changes, recompute table - don't return or otherwise track this table w.r.t. liveness - replace_a = use_liveness_scope(lambda: set_a(table.where("X=2")), []) - - return a.size - - # initial render, verify value is zero - rendered = render_hook(_test_reused_tables) - self.assertEqual(0, rendered["result"]) - - # render again, so that we drop the old liveness scope - result = rendered["rerender"]() - self.assertEqual(0, result) - - # append a row while we have the same table - publisher.add(new_table(cols=[int_col("X", [1])])) - # wait for the row to appear - with exclusive_lock(a): - table.await_update(2_000) - - # assert count correctly increased - result = rendered["rerender"]() - self.assertEqual(1, result) - - # replace the table with a new instance that must now be retained instead, back to zero - with liveness_scope(): - replace_a() - result = rendered["rerender"]() - self.assertEqual(0, result) - - # add a row to that new table, ensure we see it - publisher.add(new_table(cols=[int_col("X", [2])])) - # wait for the row to appear - with exclusive_lock(a): - table.await_update(2_000) - - # assert count correctly increased - result = rendered["rerender"]() - self.assertEqual(1, result) - - def test_liveness_use_memo_interactions(self): - from deephaven.ui.hooks import use_memo, use_state - from deephaven import new_table, dtypes as dht - from deephaven.column import int_col - from deephaven.stream.table_publisher import table_publisher - from deephaven.update_graph import exclusive_lock - from deephaven.time import dh_now - from deephaven.liveness_scope import liveness_scope - - # create a table publisher to mutate data outside the component - cols = {"X": dht.int32} - table, publisher = table_publisher(name="test table", col_defs=cols) - table = table.update("Timestamp=now()").with_attributes({"BlinkTable": True}) - - # tracking for use_state setters to mutate component state, to let us lock and confirm - set_a: Callable = lambda v: None - local_rows = None - - def _test_reused_tables(): - """ - Doesn't re-render size - """ - nonlocal set_a - a, set_a = use_state(0) - # When "a" changes, recompute table - don't return or otherwise track this table w.r.t. liveness - nonlocal local_rows - - def helper(): - now = dh_now() - return table.where("Timestamp > now").last_by(by=["X"]) - - local_rows = use_memo(helper, [a]) - - return local_rows.size - - # initial render, verify value is zero - rendered = render_hook(_test_reused_tables) - self.assertEqual(0, rendered["result"]) - - # render again, so that we drop the old liveness scope - result = rendered["rerender"]() - self.assertEqual(0, result) - - # append a row, "a" stayed the same - publisher.add(new_table(cols=[int_col("X", [1])])) - # wait for the row to appear - with exclusive_lock(local_rows): - table.await_update(2_000) - - # assert count correctly increased - result = rendered["rerender"]() - self.assertEqual(1, result) - - # poke "a", verify the memoized table was replaced, no more rows - with liveness_scope(): - set_a(1) - result = rendered["rerender"]() - self.assertEqual(0, result) - - -if __name__ == "__main__": - unittest.main() diff --git a/plugins/ui/test/deephaven/ui/test_render.py b/plugins/ui/test/deephaven/ui/test_render.py index 1992b4e82..0eb559c7d 100644 --- a/plugins/ui/test/deephaven/ui/test_render.py +++ b/plugins/ui/test/deephaven/ui/test_render.py @@ -1,10 +1,16 @@ +from __future__ import annotations +from deephaven.ui._internal.RenderContext import RenderContext, OnChangeCallable +from typing import Dict, Any from unittest.mock import Mock from .BaseTest import BaseTestCase +run_on_change: OnChangeCallable = lambda x: x() + def make_render_context( - on_change=lambda x: x(), on_queue=lambda x: x() -) -> "deephaven.ui._internal.RenderContext": + on_change: OnChangeCallable = run_on_change, + on_queue: OnChangeCallable = run_on_change, +) -> RenderContext: from deephaven.ui._internal.RenderContext import RenderContext return RenderContext(on_change, on_queue) @@ -12,7 +18,7 @@ def make_render_context( class RenderTestCase(BaseTestCase): def test_empty_render(self): - on_change = Mock(side_effect=lambda x: x()) + on_change = Mock(side_effect=run_on_change) rc = make_render_context(on_change) self.assertEqual(rc._hook_index, -2) self.assertEqual(rc._state, {}) @@ -20,9 +26,7 @@ def test_empty_render(self): on_change.assert_not_called() def test_hook_index(self): - from deephaven.ui._internal.RenderContext import RenderContext - - on_change = Mock(side_effect=lambda x: x()) + on_change = Mock(side_effect=run_on_change) rc = make_render_context(on_change) # Set up the hooks used with initial render (3 hooks) @@ -52,9 +56,7 @@ def test_hook_index(self): self.assertEqual(rc.next_hook_index(), 3) def test_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - - on_change = Mock(side_effect=lambda x: x()) + on_change = Mock(side_effect=run_on_change) rc = make_render_context(on_change) with rc.open(): @@ -70,14 +72,9 @@ def test_state(self): self.assertEqual(on_change.call_count, 0) def test_context(self): - from deephaven.ui._internal.RenderContext import RenderContext - - on_change = Mock(side_effect=lambda x: x()) + on_change = Mock(side_effect=run_on_change) rc = make_render_context(on_change) - child_context0 = rc.get_child_context(0) - child_context1 = rc.get_child_context(1) - self.assertEqual(on_change.call_count, 0) with rc.open(): @@ -92,39 +89,42 @@ def test_context(self): self.assertEqual(rc.get_state(0), 1) self.assertEqual(on_change.call_count, 1) - with child_context0.open(): - self.assertEqual(child_context0.has_state(0), False) - self.assertRaises(KeyError, child_context0.get_state, 0) - child_context0.init_state(0, 2) - self.assertEqual(child_context0.has_state(0), True) - self.assertEqual(child_context0.get_state(0), 2) - # The initial setting of the child context state shouldn't trigger a change, so we should still be at 1 - self.assertEqual(on_change.call_count, 1) - child_context0.set_state(0, 20) - self.assertEqual(child_context0.get_state(0), 20) - # Now it should have been triggered after calling it again - self.assertEqual(on_change.call_count, 2) - - with child_context1.open(): - self.assertEqual(child_context1.has_state(0), False) - self.assertRaises(KeyError, child_context1.get_state, 0) - child_context1.init_state(0, 3) - with rc.open(): - # This "assert" on rc is deliberate, making sure that changing another context doesn't affect a parent - self.assertEqual(rc.get_state(0), 1) + child_context0 = rc.get_child_context("0") + child_context1 = rc.get_child_context("1") + + with child_context0.open(): + self.assertEqual(child_context0.has_state(0), False) + self.assertRaises(KeyError, child_context0.get_state, 0) + child_context0.init_state(0, 2) + self.assertEqual(child_context0.has_state(0), True) + self.assertEqual(child_context0.get_state(0), 2) + # The initial setting of the child context state shouldn't trigger a change, so we should still be at 1 + self.assertEqual(on_change.call_count, 1) + child_context0.set_state(0, 20) + self.assertEqual(child_context0.get_state(0), 20) + # Now it should have been triggered after calling it again + self.assertEqual(on_change.call_count, 2) + + with child_context1.open(): + self.assertEqual(child_context1.has_state(0), False) + self.assertRaises(KeyError, child_context1.get_state, 0) + child_context1.init_state(0, 3) + self.assertEqual(child_context1.get_state(0), 3) + # Shouldn't have triggered a change + self.assertEqual(on_change.call_count, 2) + + # Check that changing a child context doesn't affect the parent or sibling + with rc.open(): + # This "assert" on rc is deliberate, making sure that changing another context doesn't affect a parent + self.assertEqual(rc.get_state(0), 1) with child_context0.open(): # This "assert" on child_context0 is deliberate, making sure that changing another context doesn't # affect a sibling self.assertEqual(child_context0.get_state(0), 20) - self.assertEqual(child_context1.get_state(0), 3) - # Shouldn't have triggered a change - self.assertEqual(on_change.call_count, 2) class RenderExportTestCase(BaseTestCase): def test_export_empty_context(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() with rc.open(): @@ -134,8 +134,6 @@ def test_export_empty_context(self): self.assertEqual(state, {}) def test_export_basic_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() with rc.open(): @@ -147,17 +145,15 @@ def test_export_basic_state(self): self.assertEqual(state, {"state": {0: 1, 1: 2, 2: 3}}) def test_export_nested_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() with rc.open(): rc.init_state(0, 1) - child_context0 = rc.get_child_context(0) + child_context0 = rc.get_child_context("0") with child_context0.open(): child_context0.init_state(0, 2) child_context0.init_state(1, 3) - child_context1 = child_context0.get_child_context(0) + child_context1 = child_context0.get_child_context("0") with child_context1.open(): child_context1.init_state(0, 4) child_context1.init_state(1, 5) @@ -168,14 +164,15 @@ def test_export_nested_state(self): { "state": {0: 1}, "children": { - 0: {"state": {0: 2, 1: 3}, "children": {0: {"state": {0: 4, 1: 5}}}} + "0": { + "state": {0: 2, 1: 3}, + "children": {"0": {"state": {0: 4, 1: 5}}}, + } }, }, ) def test_ignore_empty_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() with rc.open(): @@ -186,9 +183,9 @@ def test_ignore_empty_state(self): rc.set_state(1, None) rc.set_state(2, None) - child_context0 = rc.get_child_context(0) + child_context0 = rc.get_child_context("0") with child_context0.open(): - child_context1 = child_context0.get_child_context(0) + child_context1 = child_context0.get_child_context("0") with child_context1.open(): child_context1.init_state(0, None) @@ -198,9 +195,7 @@ def test_ignore_empty_state(self): class RenderImportTestCase(BaseTestCase): def test_import_empty_context(self): - from deephaven.ui._internal.RenderContext import RenderContext - - on_change = Mock(side_effect=lambda x: x()) + on_change = Mock(side_effect=run_on_change) rc = make_render_context(on_change) # Empty context should reset the state if there was one @@ -209,14 +204,12 @@ def test_import_empty_context(self): self.assertEqual(rc.has_state(0), True) self.assertEqual(rc.get_state(0), 2) - state = {} + state: Dict[str, Any] = {} rc.import_state(state) with rc.open(): self.assertEqual(rc.has_state(0), False) def test_import_basic_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() state = {"state": {0: 3}} rc.import_state(state) @@ -225,28 +218,49 @@ def test_import_basic_state(self): self.assertEqual(rc.get_state(0), 3) def test_import_nested_state(self): - from deephaven.ui._internal.RenderContext import RenderContext - rc = make_render_context() state = { "state": {0: 1}, "children": { - 0: {"state": {0: 2, 1: 3}, "children": {0: {"state": {0: 4, 1: 5}}}} + "0": {"state": {0: 2, 1: 3}, "children": {"0": {"state": {0: 4, 1: 5}}}} }, } rc.import_state(state) with rc.open(): self.assertEqual(rc.has_state(0), True) self.assertEqual(rc.get_state(0), 1) - child_context0 = rc.get_child_context(0) + child_context0 = rc.get_child_context("0") with child_context0.open(): self.assertEqual(child_context0.has_state(0), True) self.assertEqual(child_context0.get_state(0), 2) self.assertEqual(child_context0.has_state(1), True) self.assertEqual(child_context0.get_state(1), 3) - child_context1 = child_context0.get_child_context(0) + child_context1 = child_context0.get_child_context("0") with child_context1.open(): self.assertEqual(child_context1.has_state(0), True) self.assertEqual(child_context1.get_state(0), 4) self.assertEqual(child_context1.has_state(1), True) self.assertEqual(child_context1.get_state(1), 5) + + +class RenderUnmountChildrenTestCase(BaseTestCase): + def test_unmount_children(self): + rc = make_render_context() + + with rc.open(): + rc.init_state(0, 1) + child_context0 = rc.get_child_context("0") + with child_context0.open(): + child_context0.init_state(0, 2) + child_context0.init_state(1, 3) + child_context1 = child_context0.get_child_context("0") + with child_context1.open(): + child_context1.init_state(0, 4) + child_context1.init_state(1, 5) + + with rc.open(): + # Children should be unmounted if nothing is rendered while this context is opened + pass + + state = rc.export_state() + self.assertEqual(state, {"state": {0: 1}}) diff --git a/plugins/ui/test/deephaven/ui/test_renderer.py b/plugins/ui/test/deephaven/ui/test_renderer.py new file mode 100644 index 000000000..51f0ed664 --- /dev/null +++ b/plugins/ui/test/deephaven/ui/test_renderer.py @@ -0,0 +1,210 @@ +from __future__ import annotations +from unittest.mock import Mock +from typing import Any, Callable, List, Union +from deephaven.ui.renderer.Renderer import Renderer +from deephaven.ui.renderer.RenderedNode import RenderedNode +from deephaven.ui._internal.RenderContext import RenderContext, OnChangeCallable +from deephaven import ui +from .BaseTest import BaseTestCase + +run_on_change: OnChangeCallable = lambda x: x() + + +class RendererTestCase(BaseTestCase): + def test_render_children(self): + def find_node(root: RenderedNode, name: str) -> RenderedNode: + """ + Recursively find a node by name given the root node + Looks at the name of the node, then all of it's children to find the node + """ + if root.name == name: + return root + children: Union[Any, List[Any]] = ( + root.props.get("children", []) if root.props != None else [] + ) + children = [children] if not isinstance(children, List) else children + + for child in children: + try: + if isinstance(child, RenderedNode): + result = find_node(child, name) + return result + except ValueError: + pass + raise ValueError(f"Could not find node with name {name}") + + def find_toggle_button(root: RenderedNode) -> RenderedNode: + return find_node(root, "deephaven.ui.components.ToggleButton") + + def find_action_button(root: RenderedNode) -> RenderedNode: + return find_node(root, "deephaven.ui.components.ActionButton") + + on_change: Callable[[Callable[[], None]], None] = Mock( + side_effect=run_on_change + ) + on_queue: Callable[[Callable[[], None]], None] = Mock(side_effect=run_on_change) + + called_funcs: List[str] = [] + + def make_effect(name: str): + def cleanup(): + called_funcs.append((f"{name}_cleanup")) + + def effect(): + called_funcs.append((f"{name}_effect")) + return cleanup + + return effect + + @ui.component + def ui_counter(): + count, set_count = ui.use_state(0) + + ui.use_effect(make_effect("counter_no_deps")) + ui.use_effect(make_effect("counter_empty_deps"), []) + ui.use_effect(make_effect("counter_with_deps"), [count]) + + return ui.action_button( + f"Count is {count}", on_press=lambda _: set_count(count + 1) + ) + + @ui.component + def ui_parent(): + is_shown, set_is_shown = ui.use_state(True) + + ui.use_effect(make_effect("parent_no_deps")) + ui.use_effect(make_effect("parent_empty_deps"), []) + ui.use_effect(make_effect("parent_with_deps"), [is_shown]) + + return [ + ui.toggle_button( + "Show counter", is_selected=is_shown, on_change=set_is_shown + ), + ui_counter() if is_shown else None, + ] + + rc = RenderContext(on_change, on_queue) + + renderer = Renderer(rc) + + result = renderer.render(ui_parent()) + + # Check that the rendered tree is correct + assert result.props != None + self.assertEqual(len(result.props["children"]), 2) + toggle_btn = find_toggle_button(result) + assert toggle_btn.props != None + self.assertEqual(toggle_btn.props["isSelected"], True) + + count_btn = find_action_button(result) + assert count_btn.props != None + self.assertEqual(count_btn.props["children"], "Count is 0") + + # Check that effects were called in the correct order + self.assertEqual( + called_funcs, + [ + "counter_no_deps_effect", + "counter_empty_deps_effect", + "counter_with_deps_effect", + "parent_no_deps_effect", + "parent_empty_deps_effect", + "parent_with_deps_effect", + ], + ) + called_funcs.clear() + + # Press the counter button + count_btn.props["onPress"](None) + + # Re-render + result = renderer.render(ui_parent()) + + # Check that the rendered tree is correct + assert result.props != None + self.assertEqual(len(result.props["children"]), 2) + count_btn = find_action_button(result) + assert count_btn.props != None + self.assertEqual(count_btn.props["children"], "Count is 1") + + # Only the counter with deps effect and no deps effects should have been called + self.assertEqual( + called_funcs, + [ + "counter_no_deps_cleanup", + "counter_with_deps_cleanup", + "counter_no_deps_effect", + "counter_with_deps_effect", + "parent_no_deps_cleanup", + "parent_no_deps_effect", + ], + ) + called_funcs.clear() + + # Toggle the visibility of the child component + toggle_btn = find_toggle_button(result) + assert toggle_btn.props != None + toggle_btn.props["onChange"](False) + + # Re-render + result = renderer.render(ui_parent()) + + # Counter button should no longer be in the tree + self.assertRaises(ValueError, lambda: find_action_button(result)) + + # Cleanup effects on counter should have been called, and parents no dep and with deps effect should be called + self.assertEqual( + called_funcs, + [ + "counter_no_deps_cleanup", + "counter_empty_deps_cleanup", + "counter_with_deps_cleanup", + "parent_no_deps_cleanup", + "parent_with_deps_cleanup", + "parent_no_deps_effect", + "parent_with_deps_effect", + ], + ) + called_funcs.clear() + + # Toggle the visibility of the child component + toggle_btn = find_toggle_button(result) + assert toggle_btn.props != None + toggle_btn.props["onChange"](True) + + # Re-render + result = renderer.render(ui_parent()) + + # Counter button should be back in the tree, and back at count 0 + count_btn = find_action_button(result) + assert count_btn.props != None + self.assertEqual(count_btn.props["children"], "Count is 0") + + # Effects on counter should have been called, and parents no dep and with deps effect should be called + self.assertEqual( + called_funcs, + [ + "counter_no_deps_effect", + "counter_empty_deps_effect", + "counter_with_deps_effect", + "parent_no_deps_cleanup", + "parent_with_deps_cleanup", + "parent_no_deps_effect", + "parent_with_deps_effect", + ], + ) + called_funcs.clear() + + # Unmounting should call all the cleanup methods + rc.unmount() + self.assertEqual( + called_funcs, + [ + "counter_no_deps_cleanup", + "counter_empty_deps_cleanup", + "counter_with_deps_cleanup", + "parent_no_deps_cleanup", + "parent_empty_deps_cleanup", + "parent_with_deps_cleanup", + ], + ) diff --git a/plugins/ui/tox.ini b/plugins/ui/tox.ini index b214f738a..a66bff89f 100644 --- a/plugins/ui/tox.ini +++ b/plugins/ui/tox.ini @@ -5,4 +5,4 @@ isolated_build = True deps = deephaven-server commands = - python -m unittest discover \ No newline at end of file + python -m unittest {posargs} \ No newline at end of file From ff48512329a2fdd0793a13a628282e21f70d2cc6 Mon Sep 17 00:00:00 2001 From: dgodinez-dh <77981300+dgodinez-dh@users.noreply.github.com> Date: Wed, 21 Aug 2024 07:00:14 -0600 Subject: [PATCH 08/22] feat: Javascript DatePicker Implementation (#667) Closes https://github.com/deephaven/deephaven-plugins/issues/369 Implements JS side of DatePicker. --------- Co-authored-by: Mike Bender --- package-lock.json | 2 + plugins/ui/DESIGN.md | 51 ++- plugins/ui/docs/components/date_picker.md | 172 +++++++++ .../ui/src/deephaven/ui/_internal/utils.py | 39 +- .../deephaven/ui/components/date_picker.py | 19 +- plugins/ui/src/js/package.json | 1 + plugins/ui/src/js/src/elements/DatePicker.tsx | 95 +++++ .../elements/hooks/useDatepickerProps.test.ts | 67 ++++ .../src/elements/hooks/useDatepickerProps.ts | 363 ++++++++++++++++++ plugins/ui/src/js/src/elements/index.ts | 1 + .../js/src/elements/model/ElementConstants.ts | 1 + plugins/ui/src/js/src/widget/WidgetUtils.tsx | 2 + .../ui/test/deephaven/ui/test_date_picker.py | 31 +- tests/app.d/ui_render_all.py | 2 +- ...all-components-render-1-chromium-linux.png | Bin 69539 -> 61777 bytes ...-all-components-render-1-firefox-linux.png | Bin 102533 -> 97133 bytes ...I-all-components-render-1-webkit-linux.png | Bin 73139 -> 67920 bytes 17 files changed, 804 insertions(+), 42 deletions(-) create mode 100644 plugins/ui/docs/components/date_picker.md create mode 100644 plugins/ui/src/js/src/elements/DatePicker.tsx create mode 100644 plugins/ui/src/js/src/elements/hooks/useDatepickerProps.test.ts create mode 100644 plugins/ui/src/js/src/elements/hooks/useDatepickerProps.ts diff --git a/package-lock.json b/package-lock.json index 4c3380e08..9b0105e41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31895,6 +31895,7 @@ "@deephaven/redux": "^0.86.0", "@deephaven/utils": "^0.87.0", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "classnames": "^2.5.1", "json-rpc-2.0": "^1.6.0", "nanoid": "^5.0.7", @@ -36503,6 +36504,7 @@ "@deephaven/redux": "^0.86.0", "@deephaven/utils": "^0.87.0", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "@types/react": "^17.0.2", "@vitejs/plugin-react-swc": "^3.0.0", "classnames": "^2.5.1", diff --git a/plugins/ui/DESIGN.md b/plugins/ui/DESIGN.md index d1d68068c..9c6d4986b 100644 --- a/plugins/ui/DESIGN.md +++ b/plugins/ui/DESIGN.md @@ -1020,11 +1020,12 @@ A tabs component can be used to organize content in a collection of tabs, allowi ###### Parameters -| Parameter | Type | Description | -| ----------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `*children` | `Tab \| TabList \| TabPanels` | The tab panels to render within the tabs component. | -| `on_change` | `Callable[[Key], None] \| None` | Alias of `on_selection_change`. Handler that is called when the tab selection changes. | -| `**props` | `Any` | Any other [Tabs](https://react-spectrum.adobe.com/react-spectrum/Tabs.html#tabs-props) prop +| Parameter | Type | Description | +| ----------- | ------------------------------- | ------------------------------------------------------------------------------------------- | +| `*children` | `Tab \| TabList \| TabPanels` | The tab panels to render within the tabs component. | +| `on_change` | `Callable[[Key], None] \| None` | Alias of `on_selection_change`. Handler that is called when the tab selection changes. | +| `**props` | `Any` | Any other [Tabs](https://react-spectrum.adobe.com/react-spectrum/Tabs.html#tabs-props) prop | + | | @@ -1314,14 +1315,24 @@ list_view5 = ui.list_view( A date picker that can be used to select a date. -There are three types that can be passed in to the props that control the date format: +The date picker accepts the following date types as inputs: +`None`, `LocalDate`, `ZoneDateTime`, `Instant`, `int`, `str`, `datetime.datetime`, `numpy.datetime64`, `pandas.Timestamp` + +The input will be converted to one of three Java date types: 1. `LocalDate`: A LocalDate is a date without a time zone in the ISO-8601 system, such as "2007-12-03" or "2057-01-28". This will create a date picker with a granularity of days. 2. `Instant`: An Instant represents an unambiguous specific point on the timeline, such as 2021-04-12T14:13:07 UTC. - This will create a date picker with a granularity of seconds in UTC. + This will create a date picker with a granularity of seconds in UTC. The time zone will be rendered as the time zone in user settings. 3. `ZonedDateTime`: A ZonedDateTime represents an unambiguous specific point on the timeline with an associated time zone, such as 2021-04-12T14:13:07 America/New_York. - This will create a date picker with a granularity of seconds in the specified time zone. + This will create a date picker with a granularity of seconds in the specified time zone. The time zone will be rendered as the specified time zone. + +The input is coverted according to the following rules: + +1. If the input is one of the three Java date types, use that type. +2. A date string such as "2007-12-03" will parse to a `LocalDate` +3. A string with a date, time, and timezone such as "2021-04-12T14:13:07 America/New_York" will parse to a `ZonedDateTime` +4. All other types will attempt to convert in this order: `Instant`, `ZonedDateTime`, `LocalDate` The format of the date picker and the type of the value passed to the `on_change` handler is determined by the type of the following props in order of precedence: @@ -1340,7 +1351,6 @@ ui.date_picker( default_value: Date | None = None, min_value: Date | None = None, max_value: Date | None = None, - unavailable_values: Sequence[Date] | None = None, granularity: Granularity | None = None, on_change: Callable[[Date], None] | None = None, **props: Any @@ -1349,24 +1359,23 @@ ui.date_picker( ###### Parameters -| Parameter | Type | Description | -| -------------------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `placeholder_value` | `Date \| None` | A placeholder date that influences the format of the placeholder shown when no value is selected. Defaults to today at midnight in the user's timezone. | -| `value` | `Date \| None` | The current value (controlled). | -| `default_value` | `Date \| None` | The default value (uncontrolled). | -| `min_value` | `Date \| None` | The minimum allowed date that a user may select. | -| `max_value` | `Date \| None` | The maximum allowed date that a user may select. | -| `unavailable_values` | `Sequence[Date] \| None` | A list of dates that cannot be selected. | -| `granularity` | `Granularity \| None` | Determines the smallest unit that is displayed in the date picker. By default, this is `"DAY"` for `LocalDate`, and `"SECOND"` otherwise. | -| `on_change` | `Callable[[Date], None] \| None` | Handler that is called when the value changes. The exact `Date` type will be the same as the type passed to `value`, `default_value` or `placeholder_value`, in that order of precedence. | -| `**props` | `Any` | Any other [DatePicker](https://react-spectrum.adobe.com/react-spectrum/DatePicker.html) prop, with the exception of `isDateUnavailable`, `validate`, and `errorMessage` (as a callback) | +| Parameter | Type | Description | +| ------------------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | +| `placeholder_value` | `Date \| None` | A placeholder date that influences the format of the placeholder shown when no value is selected. Defaults to today at the current time on the server machine time zone. | +| `value` | `Date \| None` | The current value (controlled). | +| `default_value` | `Date \| None` | The default value (uncontrolled). | +| `min_value` | `Date \| None` | The minimum allowed date that a user may select. | +| `max_value` | `Date \| None` | The maximum allowed date that a user may select. | | +| `granularity` | `Granularity \| None` | Determines the smallest unit that is displayed in the date picker. By default, this is `"DAY"` for `LocalDate`, and `"SECOND"` otherwise. | +| `on_change` | `Callable[[Date], None] \| None` | Handler that is called when the value changes. The exact `Date` type will be the same as the type passed to `value`, `default_value` or `placeholder_value`, in that order of precedence. | +| `**props` | `Any` | Any other [DatePicker](https://react-spectrum.adobe.com/react-spectrum/DatePicker.html) prop, with the exception of `isDateUnavailable`, `validate`, and `errorMessage` (as a callback) | ```py import deephaven.ui as ui from deephaven.time import to_j_local_date, dh_today, to_j_instant, to_j_zdt -zoned_date_time = to_j_zdt("1995-03-22T11:11:11.23142 UTC") +zoned_date_time = to_j_zdt("1995-03-22T11:11:11.23142 America/New_York") instant = to_j_instant("2022-01-01T00:00:00 ET") local_date = to_j_local_date(dh_today()) diff --git a/plugins/ui/docs/components/date_picker.md b/plugins/ui/docs/components/date_picker.md new file mode 100644 index 000000000..017e81acc --- /dev/null +++ b/plugins/ui/docs/components/date_picker.md @@ -0,0 +1,172 @@ +# Date Picker + +Date Pickers allow users to select a Date and Time from a pop up Calendar. + +## Example + +```python +from deephaven import ui + +dp = ui.date_picker( + label="Date Picker", + default_value="2024-01-02T10:30:00 UTC", + on_change=print, +) +``` + +## Date types + +The date picker accepts the following date types as inputs: +`None`, `LocalDate`, `ZoneDateTime`, `Instant`, `int`, `str`, `datetime.datetime`, `numpy.datetime64`, `pandas.Timestamp` + +The input will be converted to one of three Java date types: + +1. `LocalDate`: A LocalDate is a date without a time zone in the ISO-8601 system, such as "2007-12-03" or "2057-01-28". + This will create a date picker with a granularity of days. +2. `Instant`: An Instant represents an unambiguous specific point on the timeline, such as 2021-04-12T14:13:07 UTC. + This will create a date picker with a granularity of seconds in UTC. The time zone will be rendered as the time zone in user settings. +3. `ZonedDateTime`: A ZonedDateTime represents an unambiguous specific point on the timeline with an associated time zone, such as 2021-04-12T14:13:07 America/New_York. + This will create a date picker with a granularity of seconds in the specified time zone. The time zone will be rendered as the specified time zone. + +The input is coverted according to the following rules: + +1. If the input is one of the three Java date types, use that type. +2. A date string such as "2007-12-03" will parse to a `LocalDate` +3. A string with a date, time, and timezone such as "2021-04-12T14:13:07 America/New_York" will parse to a `ZonedDateTime` +4. All other types will attempt to convert in this order: `Instant`, `ZonedDateTime`, `LocalDate` + +The format of the date picker and the type of the value passed to the `on_change` handler +is determined by the type of the following props in order of precedence: + +1. `value` +2. `default_value` +3. `placeholder_value` + +If none of these are provided, the `on_change` handler will be passed an `Instant`. + +## Controlled mode with value + +Setting the `value` prop will put the date_picker in controlled mode. Selecting a new date will call the `on_change` callback. +Then `value` must be updated programatically to render the new value. This can be done using the `use_state` hook. + +```python +from deephaven import ui +from deephaven.time import to_j_local_date, dh_today, to_j_instant, to_j_zdt + +zoned_date_time = to_j_zdt("1995-03-22T11:11:11.23142 America/New_York") +instant = to_j_instant("2022-01-01T00:00:00 ET") +local_date = to_j_local_date(dh_today()) + + +@ui.component +def date_picker_test(value): + date, set_date = ui.use_state(value) + return [ui.date_picker(on_change=set_date, value=date), ui.text(str(date))] + + +zoned_date_picker = date_picker_test(zoned_date_time) +instant_date_picker = date_picker_test(instant) +local_date_picker = date_picker_test(local_date) +``` + +## Uncontrolled mode with default_value + +If the `value` prop is omitted, the date_picker will be in uncontrolled mode. It will store its state internally and automatically update when a new date is selected. +In this mode, setting the `default_value` prop will determine the initial value displayed by the date_picker. + +```python +from deephaven.time import dh_now +from deephaven import ui + +dp = ui.date_picker( + label="Date Picker", + default_value=dh_now(), + on_change=print, +) +``` + +## Uncontrolled mode with placeholder_value + +If both `value` and `default_value` are omitted, the date_picker will be in uncontrolled mode displaying no date selected. When opened, the date picker will suggest the date from the `placeholder_value` prop. +Omitting `placeholder_value` will default it to today at the current time on the server machine time zone. + +```python +from deephaven import ui + +dp1 = ui.date_picker( + label="Date Picker", + placeholder_value="2022-10-01T08:30:00 ET", + on_change=print, +) + +dp2 = ui.date_picker( + label="Date Picker", + on_change=print, +) +``` + +## Events + +Date Pickers accept a value to display and can trigger actions based on events such as setting state when changed. See the [API Reference](#api-reference) for a full list of available events. + +## Variants + +Date Pickers can have different variants to indicate their purpose. + +```python +from deephaven import ui + + +@ui.component +def date_picker_variants(): + return [ + ui.date_picker(description="description"), + ui.date_picker(error_message="error", validation_state="valid"), + ui.date_picker(error_message="error", validation_state="invalid"), + ui.date_picker(min_value="2024-01-01", max_value="2024-01-05"), + ui.date_picker(value="2024-07-27T16:10:10 America/New_York", hour_cycle=24), + ui.date_picker(granularity="YEAR"), + ui.date_picker(granularity="MONTH"), + ui.date_picker(granularity="DAY"), + ui.date_picker(granularity="HOUR"), + ui.date_picker(granularity="MINUTE"), + ui.date_picker(granularity="SECOND"), + ] + + +date_picker_variants_example = date_picker_variants() +``` + +## Time table filtering + +Date Pickers can be used to filter tables with time columns. + +```python +from deephaven.time import dh_now +from deephaven import time_table, ui + + +@ui.component +def date_table_filter(table, start_date, end_date, time_col="Timestamp"): + after_date, set_after_date = ui.use_state(start_date) + before_date, set_before_date = ui.use_state(end_date) + return [ + ui.date_picker(label="Start Date", value=after_date, on_change=set_after_date), + ui.date_picker(label="End Date", value=before_date, on_change=set_before_date), + table.where(f"{time_col} >= after_date && {time_col} < before_date"), + ] + + +SECONDS_IN_DAY = 86400 +today = dh_now() +_table = time_table("PT1s").update_view( + ["Timestamp=today.plusSeconds(SECONDS_IN_DAY*i)", "Row=i"] +) +date_filter = date_table_filter(_table, today, today.plusSeconds(SECONDS_IN_DAY * 10)) +``` + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.date_picker +``` diff --git a/plugins/ui/src/deephaven/ui/_internal/utils.py b/plugins/ui/src/deephaven/ui/_internal/utils.py index 534deca51..25f8e0909 100644 --- a/plugins/ui/src/deephaven/ui/_internal/utils.py +++ b/plugins/ui/src/deephaven/ui/_internal/utils.py @@ -5,6 +5,7 @@ import sys from functools import partial from deephaven.time import to_j_instant, to_j_zdt, to_j_local_date +from deephaven.dtypes import ZonedDateTime, Instant from ..types import Date, JavaDate @@ -18,6 +19,8 @@ "java.time.LocalDate": to_j_local_date, } +_LOCAL_DATE = "java.time.LocalDate" + def get_component_name(component: Any) -> str: """ @@ -225,6 +228,15 @@ def _convert_to_java_date( Returns: The Java date type. """ + # For strings, parseInstant and parseZonedDateTime both succeed for the same strings + # Try parsing as a ZonedDateTime first per the documentation + if isinstance(date, str): + try: + return to_j_zdt(date) # type: ignore + except Exception: + # ignore, try next + pass + try: return to_j_instant(date) # type: ignore except Exception: @@ -288,7 +300,16 @@ def _wrap_date_callable( Returns: The wrapped callable. """ - return lambda date: wrap_callable(date_callable)(converter(date)) + # When the user is typing a date, they may enter a value that does not parse + # This will skip those errors rather than printing them to the screen + def no_error_date_callable(date: Date) -> None: + wrapped_date_callable = wrap_callable(date_callable) + try: + wrapped_date_callable(converter(date)) + except Exception: + pass + + return no_error_date_callable def _get_first_set_key(props: dict[str, Any], sequence: Sequence[str]) -> str | None: @@ -341,7 +362,7 @@ def _prioritized_callable_converter( def convert_list_prop( key: str, value: list[Date] | None, -) -> list[JavaDate] | None: +) -> list[str] | None: """ Convert a list of Dates to Java date types. @@ -357,7 +378,7 @@ def convert_list_prop( if not isinstance(value, list): raise TypeError(f"{key} must be a list of Dates") - return [_convert_to_java_date(date) for date in value] + return [str(_convert_to_java_date(date)) for date in value] def convert_date_props( @@ -365,6 +386,7 @@ def convert_date_props( simple_date_props: set[str], callable_date_props: set[str], priority: Sequence[str], + granularity_key: str, default_converter: Callable[[Date], Any] = to_j_instant, ) -> None: """ @@ -376,6 +398,7 @@ def convert_date_props( callable_date_props: A set of callable date keys to convert. The prop value should be a callable that takes a Date. priority: The priority of the props to check. + granularity_key: The key for the granularity default_converter: The default converter to use if none of the priority props are present. Returns: @@ -388,6 +411,16 @@ def convert_date_props( # the simple props must be converted before this to simplify the callable conversion converter = _prioritized_callable_converter(props, priority, default_converter) + # based on the convert set the granularity if it is not set + # Local Dates will default to DAY but we need to default to SECOND for the other types + if props.get(granularity_key) is None and converter != to_j_local_date: + props[granularity_key] = "SECOND" + + # now that the converter is set, we can convert simple props to strings + for key in simple_date_props: + if props.get(key) is not None: + props[key] = str(props[key]) + for key in callable_date_props: if props.get(key) is not None: if not callable(props[key]): diff --git a/plugins/ui/src/deephaven/ui/components/date_picker.py b/plugins/ui/src/deephaven/ui/components/date_picker.py index 51e47e131..fba8aa4d6 100644 --- a/plugins/ui/src/deephaven/ui/components/date_picker.py +++ b/plugins/ui/src/deephaven/ui/components/date_picker.py @@ -30,6 +30,8 @@ ) from ..types import Date, Granularity from .basic import component_element +from .make_component import make_component +from deephaven.time import dh_now DatePickerElement = Element @@ -43,6 +45,7 @@ } _LIST_DATE_PROPS = {"unavailable_values"} _CALLABLE_DATE_PROPS = {"on_change"} +_GRANULARITY_KEY = "granularity" # The priority of the date props to determine the format of the date passed to the callable date props _DATE_PROPS_PRIORITY = ["value", "default_value", "placeholder_value"] @@ -66,18 +69,21 @@ def _convert_date_picker_props( _SIMPLE_DATE_PROPS, _CALLABLE_DATE_PROPS, _DATE_PROPS_PRIORITY, + _GRANULARITY_KEY, ) return props +@make_component def date_picker( - placeholder_value: Date | None = None, + placeholder_value: Date | None = dh_now(), value: Date | None = None, default_value: Date | None = None, min_value: Date | None = None, max_value: Date | None = None, - unavailable_values: Sequence[Date] | None = None, + # TODO (issue # 698) we need to implement unavailable_values + # unavailable_values: Sequence[Date] | None = None, granularity: Granularity | None = None, page_behavior: PageBehavior | None = None, hour_cycle: HourCycle | None = None, @@ -167,7 +173,6 @@ def date_picker( default_value: The default value (uncontrolled). min_value: The minimum allowed date that a user may select. max_value: The maximum allowed date that a user may select. - unavailable_values: A list of dates that cannot be selected. granularity: Determines the smallest unit that is displayed in the date picker. By default, this is `"DAY"` for `LocalDate`, and `"SECOND"` otherwise. page_behavior: Controls the behavior of paging. Pagination either works by @@ -266,9 +271,9 @@ def date_picker( _convert_date_picker_props(props) - props["unavailable_values"] = use_memo( - lambda: convert_list_prop("unavailable_values", props["unavailable_values"]), - [unavailable_values], - ) + # props["unavailable_values"] = use_memo( + # lambda: convert_list_prop("unavailable_values", props["unavailable_values"]), + # [unavailable_values], + # ) return component_element("DatePicker", **props) diff --git a/plugins/ui/src/js/package.json b/plugins/ui/src/js/package.json index de3455007..ec91fc381 100644 --- a/plugins/ui/src/js/package.json +++ b/plugins/ui/src/js/package.json @@ -59,6 +59,7 @@ "@deephaven/redux": "^0.86.0", "@deephaven/utils": "^0.87.0", "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", "classnames": "^2.5.1", "json-rpc-2.0": "^1.6.0", "nanoid": "^5.0.7", diff --git a/plugins/ui/src/js/src/elements/DatePicker.tsx b/plugins/ui/src/js/src/elements/DatePicker.tsx new file mode 100644 index 000000000..1ab5d2f3f --- /dev/null +++ b/plugins/ui/src/js/src/elements/DatePicker.tsx @@ -0,0 +1,95 @@ +import React, { useCallback, useState, useEffect } from 'react'; +import { useSelector } from 'react-redux'; +import { + DatePicker as DHCDatePicker, + DatePickerProps as DHCDatePickerProps, +} from '@deephaven/components'; +import { useDebouncedCallback, usePrevious } from '@deephaven/react-hooks'; +import { getSettings, RootState } from '@deephaven/redux'; +import { DateValue, toTimeZone, ZonedDateTime } from '@internationalized/date'; +import { + SerializedDatePickerProps, + useDatePickerProps, +} from './hooks/useDatepickerProps'; + +const VALUE_CHANGE_DEBOUNCE = 250; + +const EMPTY_FUNCTION = () => undefined; + +function isStringInstant(value?: string | null): boolean { + return value != null && value.endsWith('Z'); +} + +function isDatePickerInstant( + props: SerializedDatePickerProps> +): boolean { + const { value, defaultValue, placeholderValue } = props; + if (value != null) { + return isStringInstant(value); + } + if (defaultValue != null) { + return isStringInstant(defaultValue); + } + return isStringInstant(placeholderValue); +} + +export function DatePicker( + props: SerializedDatePickerProps> +): JSX.Element { + const isDatePickerInstantValue = isDatePickerInstant(props); + const settings = useSelector(getSettings); + const { timeZone } = settings; + + const { + defaultValue = null, + value: propValue, + onChange: propOnChange = EMPTY_FUNCTION, + ...otherProps + } = useDatePickerProps(props, timeZone); + + const [value, setValue] = useState(propValue ?? defaultValue); + + const debouncedOnChange = useDebouncedCallback( + propOnChange, + VALUE_CHANGE_DEBOUNCE + ); + + const onChange = useCallback( + newValue => { + setValue(newValue); + debouncedOnChange(newValue); + }, + [debouncedOnChange] + ); + + // When the time zone changes, the serialized prop value will change, so we need to update the value state + const prevTimeZone = usePrevious(timeZone); + useEffect(() => { + // The timezone is intially undefined, so we don't want to trigger a change in that case + if ( + isDatePickerInstantValue && + prevTimeZone !== undefined && + timeZone !== prevTimeZone && + value instanceof ZonedDateTime + ) { + const newValue = toTimeZone(value, timeZone); + setValue(toTimeZone(value, timeZone)); + debouncedOnChange(newValue); + } + }, [ + isDatePickerInstantValue, + value, + debouncedOnChange, + timeZone, + prevTimeZone, + ]); + + return ( + // eslint-disable-next-line react/jsx-props-no-spreading + + ); +} + +DatePicker.displayName = 'DatePicker'; + +export default DatePicker; diff --git a/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.test.ts b/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.test.ts new file mode 100644 index 000000000..435ba2b3c --- /dev/null +++ b/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.test.ts @@ -0,0 +1,67 @@ +import { parseDateValue, parseNullableDateValue } from './useDatepickerProps'; + +const DEFAULT_TIME_ZONE = 'UTC'; +const NY_TIME_ZONE = 'America/New_York'; + +describe('parseDateValue', () => { + const isoDate = '2021-02-03'; + const isoDateTime = '2021-03-03T04:05:06'; + const isoZonedDateTime = '2021-04-04T05:06:07-04:00[America/New_York]'; + const nonIsoZonedDateTime = '2021-04-04T05:06:07 America/New_York'; + const instantString = '2021-03-03T04:05:06Z'; + const instantStringUTC = '2021-03-03T04:05:06Z[UTC]'; + const utcOutput = '2021-03-03T04:05:06+00:00[UTC]'; + const nyOutput = '2021-03-02T23:05:06-05:00[America/New_York]'; + const invalidDate = 'invalid-date'; + + it('should return null if the value is null', () => { + expect(parseNullableDateValue(DEFAULT_TIME_ZONE, null)).toBeNull(); + }); + + it('should return undefined if the value is undefined', () => { + expect(parseDateValue(DEFAULT_TIME_ZONE, undefined)).toBeUndefined(); + }); + + it('should parse an ISO 8601 date string', () => { + expect(parseDateValue(DEFAULT_TIME_ZONE, isoDate)?.toString()).toEqual( + isoDate + ); + }); + + it('should parse an ISO 8601 date time string', () => { + expect(parseDateValue(DEFAULT_TIME_ZONE, isoDateTime)?.toString()).toEqual( + isoDateTime + ); + }); + + it('should parse an ISO 8601 zoned date time string', () => { + expect( + parseDateValue(DEFAULT_TIME_ZONE, isoZonedDateTime)?.toString() + ).toEqual(isoZonedDateTime); + }); + + it('should parse a non-ISO 8601 zoned date time string', () => { + expect( + parseDateValue(DEFAULT_TIME_ZONE, nonIsoZonedDateTime)?.toString() + ).toEqual(isoZonedDateTime); + }); + + it('should parse an instant string', () => { + expect( + parseDateValue(DEFAULT_TIME_ZONE, instantString)?.toString() + ).toEqual(utcOutput); + expect( + parseDateValue(DEFAULT_TIME_ZONE, instantStringUTC)?.toString() + ).toEqual(utcOutput); + }); + + it('should throw an error if the value is invalid', () => { + expect(() => parseDateValue(DEFAULT_TIME_ZONE, invalidDate)).toThrow(); + }); + + it('should parse an instant time string with a different time zone', () => { + expect(parseDateValue(NY_TIME_ZONE, instantString)?.toString()).toEqual( + nyOutput + ); + }); +}); diff --git a/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.ts b/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.ts new file mode 100644 index 000000000..7c03fddcb --- /dev/null +++ b/plugins/ui/src/js/src/elements/hooks/useDatepickerProps.ts @@ -0,0 +1,363 @@ +import { useCallback, useMemo } from 'react'; +import { + DateValue, + CalendarDate, + CalendarDateTime, + ZonedDateTime, + parseDate, + parseDateTime, + parseZonedDateTime, + toTimeZone, +} from '@internationalized/date'; +import { + DeserializedFocusEventCallback, + SerializedFocusEventCallback, + useFocusEventCallback, +} from './useFocusEventCallback'; +import { + DeserializedKeyboardEventCallback, + SerializedKeyboardEventCallback, + useKeyboardEventCallback, +} from './useKeyboardEventCallback'; + +type MappedDateValue = T extends ZonedDateTime + ? ZonedDateTime + : T extends CalendarDateTime + ? CalendarDateTime + : T extends CalendarDate + ? CalendarDate + : never; + +type Granularity = 'day' | 'hour' | 'minute' | 'second'; + +export type SerializedDateValue = string | null; + +export type SerializedDateValueCallback = (value: SerializedDateValue) => void; + +export type DeserializedDateValueCallback = ( + value: MappedDateValue +) => void; + +export interface SerializedDatePickerPropsInterface { + /** Handler that is called when the element receives focus. */ + onFocus?: SerializedFocusEventCallback; + + /** Handler that is called when the element loses focus. */ + onBlur?: SerializedFocusEventCallback; + + /** Handler that is called when a key is pressed */ + onKeyDown?: SerializedKeyboardEventCallback; + + /** Handler that is called when a key is released */ + onKeyUp?: SerializedKeyboardEventCallback; + + /** Handler that is called when the value changes */ + onChange?: SerializedDateValueCallback; + + /** The current value (controlled) */ + value?: string | null; + + /** The default value (uncontrolled) */ + defaultValue?: string | null; + + /** The minimum allowed date that a user may select */ + minValue?: string; + + /** The maximum allowed date that a user may select */ + maxValue?: string; + + /** A placeholder date that influences the format of the placeholder shown when no value is selected */ + placeholderValue?: string; + + /** Dates that are unavailable */ + unavailableValues?: string[] | null; + + /** Determines the smallest unit that is displayed in the date picker. */ + granularity?: Granularity; +} + +export interface DeserializedDatePickerPropsInterface { + /** Handler that is called when the element receives focus. */ + onFocus?: DeserializedFocusEventCallback; + + /** Handler that is called when the element loses focus. */ + onBlur?: DeserializedFocusEventCallback; + + /** Handler that is called when a key is pressed */ + onKeyDown?: DeserializedKeyboardEventCallback; + + /** Handler that is called when a key is released */ + onKeyUp?: DeserializedKeyboardEventCallback; + + /** Handler that is called when the value changes */ + onChange?: DeserializedDateValueCallback; + + /** The current value (controlled) */ + value?: DateValue | null; + + /** The default value (uncontrolled) */ + defaultValue?: DateValue | null; + + /** The minimum allowed date that a user may select */ + minValue?: DateValue; + + /** The maximum allowed date that a user may select */ + maxValue?: DateValue; + + /** A placeholder date that influences the format of the placeholder shown when no value is selected */ + placeholderValue?: DateValue; + + /** Callback that is called for each date of the calendar. If it returns true, then the date is unavailable */ + isDateUnavailable?: (date: DateValue) => boolean; + + /** Determines the smallest unit that is displayed in the date picker. */ + granularity?: Granularity; +} + +export type SerializedDatePickerProps = TProps & + SerializedDatePickerPropsInterface; + +export type DeserializedDatePickerProps = Omit< + TProps, + keyof SerializedDatePickerPropsInterface +> & + DeserializedDatePickerPropsInterface; + +/** + * Uses the toString representation of the DateValue as the serialized value. + * @param value DateValue to serialize + * @returns Serialized DateValue + */ +export function serializeDateValue( + value: MappedDateValue +): SerializedDateValue { + if (value == null) { + return null; + } + + return value.toString(); +} + +/** + * Get a callback function that can be passed to the onChange event handler + * props of a Spectrum DatePicker. + * @param callback Callback to be called with the serialized value + * @returns A callback to be passed into the Spectrum component that transforms + * the value and calls the provided callback + */ +export function useOnChangeCallback( + callback?: SerializedDateValueCallback +): (value: MappedDateValue) => void { + return useCallback( + (value: MappedDateValue) => { + if (callback == null) { + return; + } + callback(serializeDateValue(value)); + }, + [callback] + ); +} + +/** + * Use memo to get a DateValue from a nullable string. + * + * @param value the string date value + * @returns DateValue or null + */ +export function useNullableDateValueMemo( + timeZone: string, + value?: string | null +): DateValue | null | undefined { + return useMemo( + () => parseNullableDateValue(timeZone, value), + [timeZone, value] + ); +} + +export function parseNullableDateValue( + timeZone: string, + value?: string | null +): DateValue | null | undefined { + if (value === null) { + return value; + } + + return parseDateValue(timeZone, value); +} + +/** + * Use memo to get a DateValue from a string. + * + * @param value the string date value + * @returns DateValue + */ +export function useDateValueMemo( + timeZone: string, + value?: string +): DateValue | undefined { + return useMemo(() => parseDateValue(timeZone, value), [timeZone, value]); +} + +/** + * Parses a date value string into a DateValue. + * + * @param value the string date value + * @returns DateValue + */ +export function parseDateValue( + timeZone: string, + value?: string +): DateValue | undefined { + if (value === undefined) { + return value; + } + + // Try to parse and ISO 8601 date string, e.g. "2021-02-03" + try { + return parseDate(value); + } catch (ignore) { + // ignore + } + + // Note that the Python API will never send a string like this. This is here for correctness. + // Try to parse an ISO 8601 date time string, e.g. "2021-03-03T04:05:06" + try { + return parseDateTime(value); + } catch (ignore) { + // ignore + } + + // Try to parse an ISO 8601 zoned date time string, e.g. "2021-04-04T05:06:07[America/New_York]" + try { + return parseZonedDateTime(value); + } catch (ignore) { + // ignore + } + + // Try to parse a non-ISO 8601 zoned date time string, e.g. "2021-04-04T05:06:07 America/New_York" + const parts = value.split(' '); + if (parts.length === 2) { + const isoString = `${parts[0]}[${parts[1]}]`; + try { + return parseZonedDateTime(isoString); + } catch (ignore) { + // ignore + } + } + + // This is an edge case. The Python API will parse these to an Instant, + // but the user may explicitly create a ZonedDateTime with a UTC offset. + // Try to parse an ZonedDateTime "2021-04-04T05:06:07Z[UTC]" + if (value.endsWith('Z[UTC]')) { + try { + return parseZonedDateTime(value.replace('Z', '')); + } catch (ignore) { + // ignore + } + } + + // Try to parse an Instant "2021-04-04T05:06:07Z" + if (value.endsWith('Z')) { + try { + return toTimeZone( + parseZonedDateTime(`${value.slice(0, -1)}[UTC]`), + timeZone + ); + } catch (ignore) { + // ignore + } + } + + throw new Error(`Invalid date value string: ${value}`); +} + +/** + * Get a callback function that can be passed to the isDateUnavailable prop of a Spectrum DatePicker. + * + * @param unavailableSet Set of unavailable date strings + * @returns A callback to be passed into the Spectrum component that checks if the date is unavailable + */ +export function useIsDateUnavailableCallback( + unavailableSet: Set +): (date: DateValue) => boolean { + return useCallback( + (date: DateValue) => unavailableSet.has(date.toString()), + [unavailableSet] + ); +} + +/** + * Wrap DatePicker props with the appropriate serialized event callbacks. + * @param props Props to wrap + * @returns Wrapped props + */ +export function useDatePickerProps( + { + onFocus, + onBlur, + onKeyDown, + onKeyUp, + onChange: serializedOnChange, + value: serializedValue, + defaultValue: serializedDefaultValue, + minValue: serializedMinValue, + maxValue: serializedMaxValue, + placeholderValue: serializedPlaceholderValue, + unavailableValues, + granularity: upperCaseGranularity, + ...otherProps + }: SerializedDatePickerProps, + timeZone: string +): DeserializedDatePickerProps { + const serializedOnFocus = useFocusEventCallback(onFocus); + const serializedOnBlur = useFocusEventCallback(onBlur); + const serializedOnKeyDown = useKeyboardEventCallback(onKeyDown); + const serializedOnKeyUp = useKeyboardEventCallback(onKeyUp); + const onChange = useOnChangeCallback(serializedOnChange); + const deserializedValue = useNullableDateValueMemo(timeZone, serializedValue); + const deserializedDefaultValue = useNullableDateValueMemo( + timeZone, + serializedDefaultValue + ); + const deserializedMinValue = useDateValueMemo(timeZone, serializedMinValue); + const deserializedMaxValue = useDateValueMemo(timeZone, serializedMaxValue); + const deserializedPlaceholderValue = useDateValueMemo( + timeZone, + serializedPlaceholderValue + ); + // TODO (issue #698) currently unavailableValues is commented out in Python + // The problem is that the dates need to match down to the second (or millisecond) + // using this approach. We should restrict them to LocalDate then convert + // the input to this function to a CalendarDate to check for availability. + const unavailableSet = useMemo(() => { + if (unavailableValues == null) { + return new Set(); + } + const set = new Set(); + unavailableValues.forEach(value => { + const valueForTZ = parseDateValue(timeZone, value)?.toString(); + if (valueForTZ != null) { + set.add(valueForTZ); + } + }); + return set; + }, [unavailableValues, timeZone]); + const isDateUnavailable = useIsDateUnavailableCallback(unavailableSet); + + return { + onFocus: serializedOnFocus, + onBlur: serializedOnBlur, + onKeyDown: serializedOnKeyDown, + onKeyUp: serializedOnKeyUp, + onChange: serializedOnChange == null ? undefined : onChange, + value: deserializedValue, + defaultValue: deserializedDefaultValue, + minValue: deserializedMinValue, + maxValue: deserializedMaxValue, + placeholderValue: deserializedPlaceholderValue, + isDateUnavailable, + granularity: upperCaseGranularity?.toLowerCase() as Granularity, + ...otherProps, + }; +} diff --git a/plugins/ui/src/js/src/elements/index.ts b/plugins/ui/src/js/src/elements/index.ts index d33e06393..d3f8aa3bd 100644 --- a/plugins/ui/src/js/src/elements/index.ts +++ b/plugins/ui/src/js/src/elements/index.ts @@ -2,6 +2,7 @@ export * from './ActionButton'; export * from './ActionGroup'; export * from './Button'; export * from './ComboBox'; +export * from './DatePicker'; export * from './Form'; export * from './hooks'; export * from './HTMLElementView'; diff --git a/plugins/ui/src/js/src/elements/model/ElementConstants.ts b/plugins/ui/src/js/src/elements/model/ElementConstants.ts index 1b74e80c5..9dbfc6c6a 100644 --- a/plugins/ui/src/js/src/elements/model/ElementConstants.ts +++ b/plugins/ui/src/js/src/elements/model/ElementConstants.ts @@ -32,6 +32,7 @@ export const ELEMENT_NAME = { comboBox: uiComponentName('ComboBox'), content: uiComponentName('Content'), contextualHelp: uiComponentName('ContextualHelp'), + datePicker: uiComponentName('DatePicker'), flex: uiComponentName('Flex'), form: uiComponentName('Form'), fragment: uiComponentName('Fragment'), diff --git a/plugins/ui/src/js/src/widget/WidgetUtils.tsx b/plugins/ui/src/js/src/widget/WidgetUtils.tsx index 7b6a5ed98..6673cae95 100644 --- a/plugins/ui/src/js/src/widget/WidgetUtils.tsx +++ b/plugins/ui/src/js/src/widget/WidgetUtils.tsx @@ -51,6 +51,7 @@ import { ActionGroup, Button, ComboBox, + DatePicker, Form, IllustratedMessage, Image, @@ -103,6 +104,7 @@ export const elementComponentMap = { [ELEMENT_NAME.comboBox]: ComboBox, [ELEMENT_NAME.content]: Content, [ELEMENT_NAME.contextualHelp]: ContextualHelp, + [ELEMENT_NAME.datePicker]: DatePicker, [ELEMENT_NAME.flex]: Flex, [ELEMENT_NAME.form]: Form, [ELEMENT_NAME.fragment]: React.Fragment, diff --git a/plugins/ui/test/deephaven/ui/test_date_picker.py b/plugins/ui/test/deephaven/ui/test_date_picker.py index d7a2d9624..34bf84a11 100644 --- a/plugins/ui/test/deephaven/ui/test_date_picker.py +++ b/plugins/ui/test/deephaven/ui/test_date_picker.py @@ -7,16 +7,27 @@ class DatePickerTest(BaseTestCase): def test_convert_date_props(self): from deephaven.time import to_j_instant, to_j_zdt, to_j_local_date from deephaven.ui.components.date_picker import _convert_date_picker_props - from deephaven.ui._internal.utils import get_jclass_name, convert_list_prop + from deephaven.ui._internal.utils import ( + get_jclass_name, + convert_list_prop, + _convert_to_java_date, + ) - def verify_is_local_date(date): - self.assertEqual(get_jclass_name(date), "java.time.LocalDate") + def verify_is_local_date(dateStr): + self.assertEqual( + get_jclass_name(_convert_to_java_date(dateStr)), "java.time.LocalDate" + ) - def verify_is_instant(date): - self.assertEqual(get_jclass_name(date), "java.time.Instant") + def verify_is_instant(dateStr): + self.assertEqual( + get_jclass_name(_convert_to_java_date(dateStr)), "java.time.Instant" + ) - def verify_is_zdt(date): - self.assertEqual(get_jclass_name(date), "java.time.ZonedDateTime") + def verify_is_zdt(dateStr): + self.assertEqual( + get_jclass_name(_convert_to_java_date(dateStr)), + "java.time.ZonedDateTime", + ) def empty_on_change(): pass @@ -68,10 +79,10 @@ def empty_on_change(): verify_is_local_date(props1["max_value"]) verify_is_zdt(props1["min_value"]) - verify_is_instant(props1["unavailable_dates"][0]) + verify_is_zdt(props1["unavailable_dates"][0]) verify_is_local_date(props1["unavailable_dates"][1]) - verify_is_instant(props1["value"]) - verify_is_instant(props1["default_value"]) + verify_is_zdt(props1["value"]) + verify_is_zdt(props1["default_value"]) verify_is_local_date(props1["placeholder_value"]) props2["on_change"]("2021-01-01") diff --git a/tests/app.d/ui_render_all.py b/tests/app.d/ui_render_all.py index 187303de1..e7b7fb40a 100644 --- a/tests/app.d/ui_render_all.py +++ b/tests/app.d/ui_render_all.py @@ -55,7 +55,7 @@ def ui_components(): # TODO: #201 ui.combo_box("Combo Box"), ui.content("Content"), ui.contextual_help("Contextual Help"), - # TODO: #367 ui.date_picker("Date Picker"), + ui.date_picker(label="Date Picker"), ui.flex("Flex default child A", "Flex default child B"), ui.flex("Flex column child A", "Flex column child B", direction="column"), ui.form("Form"), diff --git a/tests/ui.spec.ts-snapshots/UI-all-components-render-1-chromium-linux.png b/tests/ui.spec.ts-snapshots/UI-all-components-render-1-chromium-linux.png index d602a813f9deeede2981589327c053cd42782d2f..f4c2a82fd9186b0e955c3020d7d96a19acd3af50 100644 GIT binary patch literal 61777 zcmce8byQVf+wDP=kOpZGX{EcQML@cwyBp~aB?KwyE@_bNR_Qo^bax}&eHZ$B<9_dZ zzxRIkk9!7Vu*W$2?6vmVYdveu`OIer$;pVJJSKPyfk05+h>IvdAdkS|gJ^^Y;NQsD z19$Kb#$G{87*gC%vVILlI+BT~mGi0=wb>)^C;d!H9pp5nMO*%OOp8 z>kc>3cK^xh|8hSb;FG6P3y1gT@c03y?w_MUBypcVJr-nq2J_d|n|vPrwC zbsMTzmM*Bj<0g{f3wQ{TTlW*z6Y>)B(r#9zv*vA05mwq_i!@D=`=;K3m`+X5DER;~ zf?>sfV5YrGtkkc|k`N|?dU5fnuC7ivqm*I!AtcX+2(`1P=aa>EX~{R_er%D8#db7^xG%N{`3 zUg?+B=H&%KjR^?}?YWXgS!Ujb6;x&^8KwN|wen;=U}0fV($39GVAj;%+1uN1v+zQE z;7&Qt=*K@yPXxTAp>eb))Toqxt_!t&uo2WTObG+o>YAR>WKh|mZl1F6;U+@$!h?lC zljNRfF}$}>YE9v#i6K~Am{EE#MnvtCYRapH2}uu&jy1n*>(omB592+U&@PG7pUPU8 zkqPlB__^tzsED=Gd;g0j-VbhR8+Apu>R0(xXj?AT7`*=i(8<`m%KcUBu*>Wq^oMZ zS72KCtUWaG5&9`c;@As50|R?=nGI`+92^{)NWt}iq*RxB0`u>^45;U7F{;dtWK&b0 zj(*D8eE>Vy?8^o>x+8(oJKSqOFwmgg=)!IN%Wtw`jevlFX(J>6^?p?+VuRc5swo*b zvEck-J#&0=5{t`{(B~hFquJ!Oc{qwhtKy#+kC(=Obf!Yya(udb^PJ&wct8|g*lXsz zwdXBu-X$H5#p0JoaV6Tdo}A{xYb5ma8gi=w*4L!Z-d)y6#?3T(-iWNEX%q9l?RXX& zi1hd|3kwVCukhzDUL5Q@Y3YOXl}aH(%wpT%jerv~jwFxoJ*l z8T2+6l#nnt%YS#AS4K^K*KB_!1D>ymOxjyh!?|m2&#M!STHS+lTP%9@%5yI$%>`Y{ zfdMNktC$z}*68;5Je_7bDJD+}|I#o9oTV@PSth%ZVxR~&Q_4eFLHS9cr+l9@a4>oF zC)VLl_t4ayT3XFY*t_y6PR3lG9)*U5;a{w7__eh;ZjUqLAwyRkp))g$in(EN4BE=6 z*}S)Tv=6~u3?h$1TD=`MHrkCV3`p8p@Q`tWNAnds{= zpX44?VT8?@)z(dz+v4J4QBhF`o)oAXXJr9x2`53lf~za{2^lN7A_eATRrRo@_V~!G zx8&-%;;azZAGW@CrXk~VA4&>$Z4R5oO73JxyO)S-&X zx1^?}Eo^L@IpG_hnBWo?PvY3a5XOu$Kd01DQ>(kKQX

QT1Q8^B1R)-QvI-G}+<_ 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 XsCA}yr6>l#G9pZkElyS%y8ZTFQ(wl` literal 69539 zcmbSz1yokuy6%Tc2?CPRf}|4C4T91g(xG&Bw}K)d-QC^Y-Q8W%-Q9Ph|K8`Ez5jFW zxpxi5VDa&-wPwHX6LWb>NeDiBit`i#fjkoy`XB>=K!ejqp>U7DuhH>GPT&`mm5d-C zB)=bT69Rb&5&pm{XCJ#WXQzsGeh+&fN%lnAgILs7MfzQi#t=J-`RMqZPMHr{XcC3Y zHbgKi`OY{m&nL4i&xh48M^h~=|7*%?ieJVU&1AgLM4jEFm$w$oX-f2{^6CSyZnG|X zdsh3`o&)6P{iJq3y?)5$eCe;Vb!DFK@G9L{=?q!5|O$q zxBX3H`tQTh_o1o4ktn>#()jxf@(Cpn^7!|uJMX(kh<`qWfr9_*?k}E@{EuJcUAA(E zCo*Q9$qm6?_&KnA82y$60;$W%&2?5ks!gr*OwJ5vn5E=T6GreZ$ADJtV1+{bP+}(x zfpBH@aB!z&7}1s?Od6Nhd8i3@9cM@;$ji%bF-Sn%)7zI1d;9t>b#G>ORQZGuu=flF z(+qx@N_$ut!B^5)JbLjXe2^3hagfC94ifE&aH(KMnQcoIqNFwEUD(ekh}WhwEa0UpElXy?V@4 zzif2#>}^0t3ziln(FC+Xs@tQ9!7)2_IX>oYpnAs`w9B!Az=j1p+$IPt3aSX@NRyxzPKjxJ@)xG|bmt|FL zX({8fg|6|=9S;qu;lc+>)HEdsezp^=fvs{isz;Mljd%JH+3{LT-I~{vnyMOMlHk&sa$uh>?H$$565)EkhL~cBZCI8;jckV7EvS&XdVIx5 zFnKLYJj&5(`n^htEmIx0SBuh((&VKtyu!WMmE&6UE4#EFyPfI!jS(qF$MKygFC@a3o)rAaIEt@4 zpfbfxU=I@*t}nb(+~zASw|cwI7ZMJ-kH}K8-V8+)ziLpl+Pzv$>F_^sELnfk6VsSn zIEa8nV|ry+@=`W1-d4|IGB`PzxNJEfoe$I%vKt8Tpr_p@il8CAI}}WgI7cBnUUlni z9t>Q3_1&dfzo%fQ>SOWQx;?fefT>tli9@Uc*0>1Sf(O_0G+ z+rXKM5%~|fI6P;!E>7nHxrh~|rGx78t)sSSNiEL7A+ltytd|x7?N`sXm8incEM2xI zi?kBB&El_bYqyBU4h3b2KqcI5FP^=<5iDSFvaFgNoynrY^le!@**w-2={7;~I=+M5 zH@URk&Qr*h3c(6mOa400IjSk@AH8;Xf)o$ z`7PwBAqN~02`Sq*^~Fxf1}deisF0EpA-UAF+AjS~kqDZ*=WaJoh*o0yR3zfK7Z-=l zuTF85yHERuyMvoP!F}UPvjlxJ4f;l3T@0pWY|c;5I5yZ)lq_UuVSIC9AZ6w9*bA9p zc>4u5_UZn9P*_|@Ovuda;ny#Gj}Y${mzU#0t@&SviKGql+}G}{F2@C1*5sH>*zQhq zxt>(|hgt7VhjlFLaP}wa5$b89@ZsU(Z^V}5=KiF~NR=Ubf7_OJa>DU^@y#ZYW#9A| z9`p4|*T^%DJe{CG>)x6p)5MNtcGo3&26MOy2Qz)&N zU7k-kbGihv`K4!}(&>d>PF5Br6$Oc>Hhl5y>@1lJeO42^`LYL;l++AwZZ1`Y>Gj!Y z*GNqLG!j20XkS{5U+9jNZ)5+?Sr#8-uR<^@MS8ah6uchK7c* zadE@L!$t+P5j|t$vWkj|YHGVT(N>0rI7BO_6B@5PwY8ZK-q&Ym8@82-y-s6LOgpwr z6EYmwVt(;fJDUARNC;X$$F<`KOITQ#j|MavAE?l1I7`H|TGknc0xYZ(lGiH~Z3Ehg z3hd!F|+-73=yCpi4LTsWKod^_U*L{83V(l9RVGpI>p1m!Eb~k zHiIW8D}!DMYU`}e-tTwBLBwI;-`@1hbX@N@+||3?FC0>EyqVF7MG<)aR8#h!wfm$w3Hnz3_vv9fBE-5p(-rf<%#|WSubb6z!QHiuKetcdZ&_L1F zrM}x4iH(h&sW3I7HG8z+e7l=J$ARgBU2k!Lf`%|K*lhZ8{B;dlGWH_r1M%gujOJ%vD54L$7b)e1U3?&o zb(i-U8YzpIhOTowuXbED4C#0b8BB$FM(_d7z@TL=vB_gtcFe7+LI(z)f<&VSbd(gA(=#xj z!SjC%`$(-_nS&oDMkf1riQIktvM*!(GJ|9F*>EXWOds>Mc00@Rat=LYuw71Go}1P| zT}G8J;l3p*AcKA;(qw7Q;K{kZd<`2tA8>frSx z@n2AxzTz`sttwTfp$rji9maA9PR<$D>k`LhvVbX1L z;cj%y>@kPR!xSp|+VJVXm^NXU?5gA3^WPUN{_}#;9LYz$pR7y-vDutEe?@MwWD10c zcITA1W_9trUva!B$NhZ)*FP^{9I{8FB1L2#NS&}Woe0WXs&PZajF_upDT%8qy}%6G zwA>KnfRsAq<-|OOWH!TtF-2x0;vPk&Hd9v>J+^pC1~06qxLaLZa}p6g8zkDwo`tdt z8C)wHHbsIYJ|zd0$leNsSWQ=K*F{hDr+X6*Q<7yot{I65CRg}TT3uw5gb$gn9iQ!k zg2*j`<@jA!4(cbEnU%h<+%tc1te|{4)?FohHIn8Jd^m?Yf~Ak&#Y|k)utD5k$AWv0 zp7}h9G~)SU#8nEvJcN*5RHdp+P3u{CI5+!L$3gurIr1`xGOlpi5l2+mLY(uNohiet_ZO{Q*)VL; zOrI;0bYI&GhrE!F*0avsqfc)LF6oi@|pdQHZWWs4NjyKob5!QG_x$9pKi?jdSWlW zvXz~^bt;XEQ_g0hE@aNnpC&_^P@wivNolMz8mh6;K+Jv0*$yUTbfc1*d~SF%O1bOP0v|GLX_QF7QqauWIL>$!d8kdYG9X3)mgo_Vc4AX@A}Lz z`lryJbae&brfyDIl*d)kF+~c_L_mVS26JJzKNJ@%HIaXdT}PdMp+pywwTorz*Yqi| z1oBSHK*F8l)WCVyS$2H(Fbfv;LB;);oth*(TYp z_>wl)6ponaw{G<(H#H#xa71w&h0WaM2OFlu5g|Et8phl*B>96)c?eT+SEC$I-;eXJg6W)VS@%wUDD<1hxsw=3s>~iJ#dL$|JKuUIe@Hvoo(v<_Q;OR3 zP8_MjOKI##xWEN%Wiu-%Oqf-ea=V^fq!-lFF`1lqg$h%Vi7JFWhHQAZ2W(g$Q3Y10 zidPzcmlKdse?#ioxw3LnM$acCsi*EV-=n5tx8~_$EGU(9!zi^IX(>IEzwdVo&ScW+G2*bUBxr zMqBNMv(=Bov&qr-Hp?z0jpbS#_|Dlruyv5p?*veOqwyW7g8N=2PEzNTmz# zOG6w7z8%GQUmmPl=UO2aEj-8VOjkm{9pj8y`Vt>qOdpaG>;6jA1zLvxH$f_si9H@W zZT*G$lg^=*k@V}~5>*;<&DEm?+Soa_PX#eGImv5*-;O0>*~886daIuW>BjZK5w!>+ z)`VKmkB^6=(3=msA4i~W7(m{dN0(6Uy>TU!!5WWa^+d7wR;qk-#3G%%j!xv+^fLVZ zhAh14Wsfc9g;{UXL=oLOqPfX=^fLu1MTYBpOWnKySLN5IJ5&7vJ;>Zv z<(~89aujJ)FzLSikr`=Ox>U}fdnB&3BoY-;He|#++l_OXd&*YAyu#UEU^<{xzn|u7 zf8rno$wPL0!q~h=dZt(JoM*FARn~lLFg@X798nSG)ErwAQ64btfIMUAE*oIHsYA?|7HghEkQHV>LW@2y_#cS&GX97#(EWI4X za71UA?Di#Qjl7$M_;N!mkHMsOXc-rJ{mLyhj6>04mx|RhP_SyuY!U~JulQ+>h8zGs zmOME=C`-mBqZhYZr-=|{{1Z6+pECik%{VhNvxAT~$4vWKk6|W`yXiDG>rfM+tXXH3 z6qVn;KnxN}wcYgFWj|~=W|MtX1j2AQp)j&SHAZQ|Mu#<#IBIs(|GAY>O8sUgMa~%yG9qBAG~JTO(%PauRS3>NIsBm-~Y5OCtC;FqLVSZz_~& z$mQeMK%1;$j@`tmv@IWTsfxi7xvk0%?IvDaxYr*(M&QYZg6IoxEI{rHaLsxi&3JR) zEDNVS%YoJ6E~P z@rxm;yga5^0ABssF|CN`{jU7j7}Lpz&!34%lX6XR<2hZrmk*yr(HbS1sqg;!6cG{! zuu&T!4_%MhS~f<)#OUZoDZoQz!;z34!}yY)HH^h)Jo^el6l`97FE|QcxuE3^J?22+ zlex>z%nUXVafgPc-9JXJswhlW?q8;_#1q&=z$a-ej$VH@nR>XJD9j&5b)VJR{ZmcH zh=d}yiz=7M)BcP;tpK7R*R!Dk9rJ?WO^%MKf4jBA^7)LrEkwWNWV)~Eoz(rTLg%Qb zlG-u7?`k17^V;lm&d0G%!-cb|GpgJ9i~u^qcf4NY5aJ*qng|soC2r?~LW!F2ZaAXt zdd2%+cN(;!+M&s+uVt-_Xo5Dpsi<#T0=O@hWs+6%@1V4(Fk_N4r%6xzl9h5JGAe0k zXqM;?8^4&T)tYC`!@@&Mg4Pxw+nPU|)oE_;Mj7}zo4wV_y{6jotWV78vND5BxUN3* z$SdsE+sA6Ou;}b+Y*sqBPG}Ivy}C8QAw)Eoe+Eq)!jF4p>`qiZ5VDeLb(6(!-E`*u^D4ciL5%$|Yd z16d7LIsBxkS9;t-zB~2t3uR{x*ULACpj-jfJIclrN%$paJ8HaX_3h3OXpqb3=;+w( z&mNy0W-njy1xXPHS#J*WUj!s4XZTnO3NqQP2luSvj^8e9o7J8ju6Xp|3Amk~xIF1r>k^-Rxp6P|gxc^+Air~&v?UnsTh*?+ z1<~<6jJr6MxxVqt_Z;$?$_|a`s=P_%W=SCQl|U0jU2509J(=Q|tf{m{2vFSG%BJf|B^mX;2$6Nk zu(v8AWP%pJ2I{aMhDKTQ(|fnW#=08n8b&So_XpaqpuV4jpiz%CDJ~gSkPB8 zkyfN2TB(Vv(NOxlKVNsVc2!eZ%PXAO6H(A^ydW*3ii%y9o}6syG7590^dZ3&lldyH z$P-0NYx$e+n$z_~r}l8^XlWdW?Yj0l3ZFfvy1wF%hzcxzX@!EDs?(Xg)m2(Uh2q1U zXL0OyPh-()9s9bEEG;5v)UIv{29`SlSU#Af7MuVY5jyGE>ltphHeG?*?eTU2vv1q# z;+t>|4vwnwcr_-XCqo+k+ok+aiKj!65VUgP>!t;UNRxG51k0!ov8;Zb zS?swg2)_Z9)o(!M^5|fw6<$|Yw?MTjHFae@!POwR5)l8PU~0-@1UEC=R6v9m)4prF z{6-UfztO}A{5ug#k=>ZrIj6NN4&YR_4H|&-QZAS*_HAt{9(IO~L~#)JPW^RGhA0qVcqG|H`m8pB?04}*|B3hX zr%^xg3E7Mj893zJM@lJQ+1ZQ-wT})mPk(vsq#9yVT9pFPPns5BfrUtoU7!&G>BB>3 zs!e9b5}Th(bWssevrs&mh9WLl9=%>j<$Y$iz}PU%bdro>)Kyii!b|vX7&8=t#`hyvnYfmu zz_EMh0LDWn_q-BEP+nH~RA17jU7a{@*k%kgdwKrH-_6bnB$L61F|2UQ{OPdLpU~W7 zUZ>E((KmZ>CDWF+&YCC!*EAisP1oApD*9v+z)@twR80M~~juk%g(O-}>O7 zA{BFv(L}zjZMkRQ>}>7LjWZ>w2~a$&qalL1%6At-%Nu!g?71cC;~(<#v$NF+%XqV9 zhlfRiFpQoK_sy9Yov?rmPNpvblo6n1f52-662$|lfu4@e;pzn2gO}ZIPgPpl;c8_w zwUs1Fb$%A=E3Xs(qn-H?6H|A$bAmZac$?kngrONtp9Bn+kH)9%+S&I4b{EAzs^y!c zWZM_bCE~sHiWHXx8oW+kB<2lwnX{Nw7v#m|ZFQK7m#_ioU!ql{^!am=nn?{%N+{{* zvVio5qG>um)zfk95iozgv0!(cZl*)8WaS0_U3A9GT}@4`VXpdeXdz(j0@}6QJ}c;X zM4L9#XJhJbf(`YgZKP=fqFh%FjCNFzM67C@J*qsaiyQxENGU;JghCi=hEf)Gr^~h{ zV(PtlT$l1Ht_u8aoZGq&SgLI}u8xQLV(N=ZN^lu$<*Yj3V8mxIe*F_~NDSn|Y1~@k zB5_c#{sPI|Pd~p9GcvcTL!+ydxM^mysnm<~!%+j-@5qGAPU$>EB=m;jy6KJ6-NSm3 zlDYzGJ_lnXx)=U9r~WTR3+bIdN)O4lu{(3$&q==mdSN+@c@Imk3yw@K>T|ca#FIf3k-z8*aIcTMI`r`bE+%xZW}%`zg3{0P;LXVL%iM?IRZS0K&=9ney}c*Nr?s z23S<8Ue~JE#NKpuAQN!La%mwY3@lV}q-SR8uOafh%0CRvl11MZi{_M8RAimA(`{e= zd5N%=Bae#CInmLp4XV`iI6t40b1rzd!+ z24zk0k3)j<)vKI!3fJF>FBHSLkLP@DiQ9U+$})0)l2yWzzwm;?kdKe=5fKRm>)_NB zo4M(M&ySC<1ds@MKC9L-!vf((4TvgLs;0*r7bySm0xa<;{Pf4WT)h~&08^ul(ppm! zHKNDHywGg?ZBwFw*g6#z^$W!BLaELb+B6XywzH9wF4rR?dvH&b=w|FrwigEKx$j$n zuo-~wH_+1~Dq0f~5rd26l=!mYCFyE-TwR`KoC;+YEHWM@ye|#8T9I9$Z1$JF&jI*6 zwr<9%%F2$m@@IE07CwZivz4yLzrM8aB~egH_k9-;@N-@7Tuc}l9tKL*(2Q-ST1Vep zSkL0Ta6?G2a}3bYwpP{8UqQReC;e^+Qp^ZZ5+-y~YHI2<67-lB0v6NWc*65F?R8G) zg9A{%3PFDfgd7mULlu=&{P20s0(gQce3BP-T6LBt=I!g0 zTAp~MAHEqxEIaogZk=wA?pTJWhd#*#aSLVX*C#=@fh3w%O*$^35NRD99|OveHW@X+ z*J1Q8x|OQ^{QSJVg>}EbQ(Ij-XR7)oac&r zb#ar~iy~-f=);aB3{uOg*q-s#5PirN|1wX45D7>*0gnd|Tdtafn|(^-Clo$7-?7yD zR{E@;D8yk*TM>^#Lx+RUU)v*L8|#^|IJdsNq8YioyzIM(C5H^cay_#<5h~mBJw@KT zKP~?7eY+aOobc7vHJhEuq0!OO+M8AWtQFiYbW-V?r3x3XGkkX2&Yqq>!=`peN?zXf zyr0XAkT%USND4@ByDKX~1MF-Z&-u_Nq%pK*vX+vc3Qi;(!twKYe^}bsn2Z!@)zK`f zoSna0ok*RcVzP5C17eaZX4=f+QUF5?88i5)i30r)Oq-QG$UQi8lllsK5zh;AH)?B4DC6 z@TC*16IO)j;&V~37*qQA@L=w9%uUo~#Ds)seUf@-X(?hW&rFnBon39EXC*5u%O|9+ z-egq3fyRdyhu7{$m@|_I0tfNkO6jKT+^pIz{tmeteb(N2dN#gx^OUD|2wAnY-R5{+ zjGKGHRySD3xLj{83cTD_wbxg)*Jo>-c*w~otbSyeBEv$W)m*$d#C<+U?%?m_=H+R) zE!#MzMsIPnwWOFS%;b;gUDPurHk`dRG|S(950e?w_%>rKP2}sKP_? zdM`OMHB-lB`QfN9bP08pyc5ERZQ`&z$8p|_={j8}7%<1PGkdd3*8B7*=_C)H8M) zLU7L`!Z6XF9$W0c(TDmEV^CuY`S0Wc^8ese`VToNvFFJoP)WPHWxOz$Apsq-)T)&f zBrna8xbi54ki4{vjdSlIf9{{?ut5*yuUK}|;!U_w*nFjoR>jU}oMc#)mKOGHwI@|U zHqdm>v_XS4huQ6qW6GV`JTb@-I)h}i%*ai^%$L$tepaq%3^yc;I{{e( zQ+nd{i*9J&2v2c)vszUe+Ba{|v~}^htuHKx#{}AeHu7+YOU__?`a`(7o}8z!xqeBY zRyWjc)uB@of1x58=or{CdC3;tA ze8ef^+PY73^Qc_DUux@WgFJ=HPVfX{TaIij~sJTX^u z{*KL*nL}T_kz?OKv`gDf{q}gqti0Y{niuYKQDl-Y=1-hs)7@vUQpV-v`^nbW z@o?LRG5)6GM|HJz@}31x50ICR`{eVV7EI8PyB!^Rz#{7nM1lg^?fFx_ejUx$GVsHQ zQ)dgkjXi`+5*-s$;yft%M>6X=1{!$W_?a(ZobeF;-_9UTm{z5iP#;G#no z!e-b@0ZdKXE#wA9`Iln@dp z+o6_DvcPT27>^PhZrjn_O-yqJ0ltvc@RXFgf5d7sPgRNPVsq&qmVI#atv9u-jq{vTs-I*%W#-xp;(y>`2MG`7R;_vV8m-RuF4AZw~cXxL~ zi8)7tr7}N1-?UfauUTKEe;s^qw(-J@u)u+c_YCQbhGwq$Rd{uEwG29j8`ZpBb%B#4 z3psg5W1{=Y3i_2o<=DruIF6W@=x9{Fqob$lPIFNxOB*Y1O>Y$EV8n$p(GJNo#1ppG z_6+ww@mz)oN5?~Qvuy+6_0Y&9qBn-;(o`x;@1R_xnLn3I;&a%R7Va!Dj5@W>w9t~P z4b3I}sp>nlp>US@IxAY^#f&+plgZnb{=NlMVnp4f!a$T_tByU~2{Ypx%lEzc`awda zua{PrgTTUW+30@PbnF2~1iOqB9Ua|%?`Zv5zca~$XOnX;j;=;VR<_~FQOmj)lU$D+ z4NV=NB^Q5XZ@=E{hC=JwKd+}bV&~Q(Azj?@+~FAL8w<)^>lBnWeG8DPS+uv)XodV8ev2ZNMkyb-AM!{n+~PVh{0_GW2_K zrENnH@gEK;(f?_I_H`Hd^EG|kQZ*kSo@8P1@O}Y;jTXY9b$UQ#@lF*eE{Dlq0c}qA9*g<~)7soLu7E&ZR%WK^1CB@i7vOjLkDBVMF{(rD4JN%WQ0Jmm z6O&Uz=cFC%nK9zO$cEg%-dR>5Eqob z_KKC^jx&=tHY}*zhSR9m+ny>*4)FfxLXkCMhGQbayeC1W46~}5En04G-J3~>w-tQZ z=`&TIqH*sEX0OeHj>yrjmf$iFeujtlR#w;A+XyH+X@!KVbo9(}6xZcNwwfM$@i!;; z2rGbuFVygp)udKOz#JiNM0hyR1MA#0V#UZ(u;%_}Of*{e{7;7`jscdBVRRnZ2gL~2 zh#-Kx6MeAcYcCbwkCq&nzUjY5DZIc36d4(*tqV8$QC&h3xJ;@)n*fyJ%&qaVGg)ud zvTBPx8t2an1whCDa{Xjnt$X^PuYxxRwgQlV0{SA%JsEiA{v%pRLKHzl0Hfl{dRK}8C)~_TL#=I}ZdO%AN%~(S+g)C8Cc?8qu*3e^ zz7GMu*sjpdViS{~Xmo5WEIIQ+>#%;rWzMOZjg1Wk2AYICLt9S=jW0VVo5PNog^7vO zb7d8y_N@T$wH6&y4-X^*o+`Q!LY^wACj`YI@0<{-7mK(n$*#n&Pdh#Fbb zpZ~ebKl|T$*#CC*`;X)|)9#V6si~=sPF4#XE1rK*Q4!J`ARRu~8r z!NmI(1YV;vtVh#t)b*D8hAJ!{YkS)$e zr5p;vAns@^s4D6!>zQ>=? zqaSk+2^p+_`Drgk7Si-dC{2dT3kH&?QE>5;ku*)@o+wBtG`yH?r%kk3;@t-;T3B9S+S3fhPhGlYkY^X>Z9)(4T;S!}O=-ai0n^m}JQr84@u^E%9?A*SCOq zLz~Ct(LZPe+?zlEcAhh%br=~%TEtxf&ZyTao>8}c_jAf*@>Z;R3 z1dx7H1t_LZYepl9d#|Gmyoo4Kt#jipE#cTZc3;^;`U@tvB20{94lkB2{ifF@ew ziT?7*XwT>!PYK)3znT~1mWM_I09xohioqr*VqCn5!mmm0>+8dE!HG8C>+PSLp{D9J zDkuS7^|ZUA?ndR#AFznP(t$NxvuLtD`WH6X%i)N6w=}Uiq z{}(F{1>pUrv%I)~Uxxb|J^v%^i+=cn{d4(-G~b8UtH86T>le^?x2qR%CpB7v z;;cs_w4Q+{Cp8+mO7~qI^&lCdQAd?Ohng@;zu%PAGgED#vmN#H^n4Q55(OkJ{32tW z&f3A)+1l>z*VVInnH54L(Tg0Sfl+L3P0qVDgVy>YFiuEfBESoI6b9%(CYSZXy#v0? z>}3RAE&8aG_Mc0ZRbZvcUnX)-GBBr=y}rl$n~(|3a2XOn$Z5~&)Q-oU&|qaJCM`YG zi|s0)x=bmXK`|c1=#X4kXkNYF`?CYv@LF^m9}IWG(x0Me^Mo2wQX3pL0_vvf_+Bp| z?wH#c_7>BO znXZ%U$fS!!_Lx7;ZGTV;Pexjrp6=7+irqo=Bt=zqSy^%E(53g?z%75izu`m?EtOo5OYIZn6@%jCXQ(Zm*ZL>9OlJ+D~I1=*Fk~ z!rl+DwRE3vH;K~1%5K%N(r$P^m1JSfoVCues)63J7UjyG2>qGUolJ9bA@p|rWFToL zXufwdDFN!~XZKP6onN8ADf7Q)JZ~E&63o(42{_GxXjvVbn%+=)@EjR(B5u$+!c8Mg zG8#{Kwzj@H@|a)k`=3T^fU37UcU_65;QJvaKuKL(RJ8aH-VbngeXnU~lCa>PC>?f4 zg3(@O*tX8Z#3X_n9TjzW>HOuTZ+uwKYC*1)@IJR$e=JkWP*;ezuM$K zLcAQ7ciV3!67hR^03suPbTH9-&H}Y-+25Z07#33`0(w>^CN(E}d!my=J_?+0qt@M- zih-jaX~xXg6(!vYsZH-TQX;Z$-O9_0)(-8z_C|dBond%*s7csL;J?T4Z9DN469@~V zOivTT6t%(6lFOdfP`>y*@fep32qX4V7xLzsw&|ZhK}r=1Iu#8`nD~;Uc8R0p1mKj; z+pb{G?;Vw7wsVKt+W1w;2v`sDe6eUKO@xFg%Q8f!-^djf?mQ@@@C~>1CPvm(7i~$e z3~7v+A$4|HxzZK34^xEG3$eVU0+(C!#qH|M&CLx^j;2|f5Tt2soQVusj6p#`u;#wm za3N`g5hbh>+r4Mtzs-10_reoosGGlzQ>u*?UlBkyVupWYxTwk~KZOitGu>1u{#RN5 zB-vuQ!+LL)(s)Sk)dK$J+Fo{P(mzs`8(sYCgaL#yIYpHKf_zQ_S`eF-1+l@ZR)*D; zD$~vr@atFMSc14AyF$wO-o}RFfNthU(wMHEo*uwz6FmCW`?;I-C0`${O-)a;v$HYU zXV??Tjjeu@`lzNh7a7NgJO1locq);ge^gN5V5_6DwzN$yAbDe=65%@9`O47mp#tym zJ4k^5nm7+{Zu8M*y?+g)8=;=;&)qDu_tB99>VZ%tk+66@?tbTq!ks|)0?mvs)3Xv<%fnn&FrlShvS*@)& z$i3sziaXS;$2#nDK3n4jhtsXGGHD}Q*NV9`r;27iA|eudSEN zdJpR+gL_;+E`iDOW(w;(+5*UKn#eu9qqeut1Jw*X1UWU-@Y^r3qLISwf~08HOsaL zm`-1*8L0gp+36Nwqo3dB|3sHUARGAc9e-`s{NHbV{J*4){~wzv{}*>mjIXMy3JcSj znNN955Rjq#zzo0ph3BX&8;FP0F*&Jt4+SjK5JtR*U8bkR^3?a{ORy$R0U|&=MtY`_ zscdRsp!4~Xesc^xHKt}}AFDt6k8rFEXKMvSvcVfnTKJfQdHXiwlkv#+u*fV%ANoAH zi zvK!?l6aB3-9d7_*`o(IUtMWdv%HyGs?>!6NJ%#{b=6}fODDnR$qr2C8&&;8{SR10Z zBpJ&N;7=(?B&*B+JxQ9X)foXghoj?GDJ9R&l(?jzKwcCWG9XWDzGUFA{}r7-=li-2?daeHa%_xWgstl_d8!!d1)s?N z-`LhIe-2)?e(r`g=01Kz239*^rGvf&@Jsh0KdpZPg$9rhy<9EP@4Z6mR3?h9qUhiLGGEF zHdj)9h|Um)#`?R!9U0Ycp|U>QmLZLL^SFH^*5D8Or*B>KODc5X0@Jm8u~sN8TA^XDQW5zlF_2+oUo-rhpDK?RqM7ZQbX5VAt7J zJjAz6(~*xXrMnw_M25^at=eDiwa(knhMg4VLN{ir3~~w|nYlt{1_lQ11X>jBp%Tj~ z)sblH8B4!Pm+Lbnf}+qq-FsW+B-4(EjoOK#4+;$&QL2EdjEuaZ+k&uSHThsuG2 z6|k5W2Px-44?Di!l{A`x+pF_Zpo)+L)2LO$-Al`zgsL-|-bD7taeSk`GG3{91$4bJ z(+v=%Yoz`y-o6PD!M^8|{n0XR;rQ?*)CljkB}*qK4##k{?W+>Zv9U3~DN0b0cUli( zkW|4xl|&J~xF0-hV|G4Xf(!ZOY8e9uE=KR%_}~%-kP(q4%dE~@V37wBYEa5qLz^xJ zw9Gf3{TDVDV8Xv6I|dt?Kkfvf1V<F zRYbZ9r9vdi7)8o90sqDs-)w-wW0iT#-p-u|5b78&6xk?U1lRHGjg&rQyz!i9gt!%U z;S0T!bw$~B2%ujf`Zy2o9*E}nOLTzLwP1V#AA{rn>x~2dq2vA6R};890#g%E@%#`5M($Wm8{sfsL``R_Qry%bBGH1>Hmcy+PWxgl&$^4zw zhbIt|XDU6#0LYWovZ&MH)-kOOHnoVOe&qTO*1`(*5hO3hBjx?OM7Mozmq{vlN5`x4 znsd&|`*${F2RhHE4L@g6E}OH0q@YAG*CJ&B?7biT+zWx2h~0E)$xvcck!=B7WG$T0 z9|suVSd^ooR%DR(OwB?)dY5zV^QJMYVx-+a`rZBQ(eco|ahGUh?hCX-XZ>$gWJX(Kpc?~^VAGY=DQ$eW&J}lQqg4?Tb z^oUSy+S85oq!h4<;^?RgNez#Qa@5b{S9b!0ySbGH2n5yY8b(2V&w=%r$VduZ-vkT| zRyVNR9Ze1`_n{&~O6dxOL?|gg0=QT6U_t^W8ZcP|f4<<>x-uptEU*)7(E9vYTIR@k zKj2#8&e2D`FC{?`Sn}5=Vu9gDio#Lmq;+=I89ZC}fA%l&!TpVah(7A)yqRvg`@eA9 zO_B|G#pUH-3$|KaDYxM=aJipO$wLNpsS)GuK@!VidJ!D&*V8XeC4+Oa)_am0)m6`HTxJ2%yP%6h!H@};B3=>c zo(KW3Tbr+QMUva~;Md{~w$+96UH=>%z#j~H7uXhl8DepK3IzYY0Yai^K{$l`DFQ;q zb$_pYEFGX7_bB!p_7%~%@TZe>lcjnFY8SH z2c}(A;|~AtY(P8b|3bjS5ouafeUN!C4K!dG5x&j5Fi0YGNolbreH3sQdj^7Gx5*2( z+t{}~ErYF_#{F0BLP`b9^EVMKbs?_gq?gQIEt_LKYWJ`pE5xy=Qbj;G2K#G4w&AuC z@!o~&iWz9;gQ@C=7#sf)e(%#G06WpWYUx-F@+rOk=*5kdPt6RU>7($FVo-vkh%)o@ z2|y~C6_Np5fsy4bfb2?}!1^zk+ZRPsORI%pkv}gWv}Xl4?P5NvswPhsXsTq%b$|M` z%nliRc7+6u3eOKm*-0C@$6<63$P2`5j5nhMC+NMsy%)~)?*jP;vh&~J(zhN@m+_>@ zWXZj*b68&cMdTqXJ96p(*zc?6wL;*naP5s8Dlb=~%sM$t=^$Tn<2t{-oZdd!8*%!T z2xWG*r}KHJ?WdXiUGmNR+;!3Q*+PwzMiw(o#5GuX=J9X+0WLgVPs8fhn61!Dn7##? z5Wsb}Jp&!}mscuj%{rpZvcYEJF^kt{or}Ox3U+l*(ssD9-;~Hao9CY2cX?Z{Qo+J* zy^&a|U$~wK2n^=@&yYkW2mVK@ud%_iOQ`H#X7`|^dYcQL^QKNCS*bu@~ zyIbiBxmRhhSlz-%puP=F&YY{MZ*W>yS4$51FBt~C>I5|87Azv3D8p%@5e)=)q!B&e z_!f_Y*UJ>75FPI+LuHhY)S&@@-QC&!9`HiIZGwh}hsV+AXMO;P`uleYbu~!7ubq}5 zu4I%3k)H#lr0EJ(n#ao~{L5^21tvbUeLz9r7zckh%Qq%uzNB~xLrlqbGDvrNy3&#-^c`*EJ_JU#{Nd8{=N?U2AHMHO~-uC0!CtT{88DKj$~>lUe} zxz)NFwcVXrU0=^gO>OPyIR5D{&OBFRy<0o#dKu%+Qv8-Vrq0C6s>2^2jtCy!IY@~0 z^HOF0T(#7DO0a*N`EL23wA~N4qoYGlM>i@ml1jDq9dVF)-BAFQ?q#=5%Xj3YwGp2? z)INr_B1NkGjQM+~rMSq*3pSF{U{^lKfmY^VZ*N~rg_Nu;N8!E{cnL`}8hYLJ$<%iF z{ZLEC)YOz_kzyCprMGjEl)k?HM%#TtaE9}Fg(Sp%I4wP0fM39-V(+Z?I_gMIM@JXz ztN=Ry)m1Ht=Ud;Hm(xHX>76xRJ7F8$5{!;MMIz*yOiXf+TZs^H0od)MX?rgZyY1GC zE4JRxW6Flsslb<}Qf`XFndvHie-juR^ulQ zR+ycR*Ct1;fMh^NN6)n}Prbu1862FoxMlzNag1Jv$!gr%mDsI2b)n&dOVW^jj{*%Y zyYWFOPkQImU+Q&Eh`8L~WgEuRg>B14FC#O&>_tF@Sz;B@ z-yM5;aMwb&-2McnK13vyL06I%=abe97ZnxNitLYEQg-(C_Hh{Kw~$d7KOAOGTRsaN zHL{S8j54yKR-+q1o`Jjh96IMPFttb**EII~9fV_PHt6K1{fut;_`|_(p|-f=aPiU&+w$H4}y9@^oKP z3yhJG(e~D6dPW)=-__andpL(H9<%H#Qct)iUt7HH*d2EUe=3cbE!4-H?xQ(Cqy*(M zA$K>I$6yexQAdhqj1;I>l^c1f1jO5pCZTmmQfm}hk46TKGT4~boL|)*d`ur`fepya zEM#Ug2^DJnV)hsW6lKTS>%1AY8XLCb^R9`4NAh{*nVmCG?(99+S?ASE{y;U3=UlA- zFKhs1hQ5XAs2EE*9dq(Mp=>5%U3F6jo55|NSyDUt5(knRp?kdp4M z`y8F`y?18Ko%zkIS!?!REEb%z&pvNF&!^tp8IHAI8m$!q0=FM*ojrPbG1{+_%clC| zx~Zwzb@iGM3&+RX@CZ*Qqw6Tn@R5+hqGKv!zWQI-t&MoMYXg;f%l&SIh5OMa2VqmD zoYCM}N=k|pKaGF$BQ$TXVEG(nBSS-U9`?(#^Y;P*0$NG=?{4O&wLZ=~O+k5G+k>B+ zksd)ii3etvX}X+~Y{qY)Ihn+4}Svtwgo;!dQBtu1w5$t08r9 zMUMVUUcuGX)xfY!ep3a+oZg!LMAMjj2|!`vsP@Hy z@ZsOY{-}g+J+?lJAD|&|)sT~YfHq9heQ^NU_b?+X3)aM&w{GRwPs%=}`76ng%gImt zfd1(5V|vTU1?dJ7iMYvXerr&}n6z%59X*p~W-l`zT&+)X-PM9ZZbup#TSPqFKAW4qO3SXl{M;Xbs%l;gX03Q-#np;|=Ozs;QrY|pq zy{Rx7%~eAojDM!SS+*HAfSZuOo%7RNS6B9)PQH)NEhi@@50AId=Z=pnL&8R$Moq2r zGAAP!7t#=;ob=zAvwDffnX7O_SB`~z`(Buawt`1yCK@C9iy1@RrW7XKUZmSMYcc)! z!1_PZv(&MeRVZ}7m7CvNZKa(?@lAqwTGgA1mKOQ_5FMmr)V}afh@1RSNkPrj)47LA zs5`QbZO2hdeeyQBztV24+N{dD#tBDOR8bL&@P|R~GrYiS!`eC%Q*Id?B~yu7$i^?} z=?4erQ3)50xKf$U>>Y_jJ5$Zi?25+1Rgnf)Y&bYLcs|wEsxKbiMdEt(<=-c;U!Sb4 zsugyHKNatZm6n#iv4XAoGB;J9BSdm2*VP#|C9hx^(q6lbk?_Vv)oLq3CMJ1ss%mIl zO;6osWgVZYw4bVN)LY2Y;d}9raH0OvGe=ov$3egyp9}ATIHp}28+Y#+r-Q8G^J2rv z^hbjcLPU^)HI-9Uu`zK#Ob&!T#2BrA`vz<8#HM{6pO&262iDs!>)}x#ZR1BrNAE3D zLTe`3mWFO?Yb!$^x?fzJrEnSjdc_{Gz>htHfk7ovqV)f1dOUo9&Xr)iqa&i$$cwh~yIE{>oIa@W7RRAAp0_`3pK7fO68KbGQ| z9^}vQnr&o52`=_-4Io2sE#>EL*Oz%PTa*jB`{k~{=c-IX0))+f1JldpbbYljZu~-J zQ{g*I`o_kFwb-F8;MRu7+z~`HGjs1)ySLM({mJJPJC2Rx^B<(@5+bXrL>PLyh)ea2 zyHQ7Rdv~nLcX-M4XCV1kpw_6dIx!X_y^d6JGydAG50&CFMe4qR_?t7%lG63t4;z2a zKPI_gVq_wbuXSBo$BwJCQLZpONIi%(HLZ-iB)4I8ot^bCWnz0iE4H|ZNYg{o`|wZ` zDSZtbH#V#sOiU5z(lb9U+htl&2)!E`2$Ac=@yMTi7LR*F6)y5r9Pf=`y>}hWty{Mq z^4wqNszi+V>QxA=(X_x$g) zcc)Y1rDxSA*1FfAM8eE*gPCG$WAox=a{AQwYp)5W-6yO2{c;*W0yeeEND=*R$@A<% z*7_9U)wuoM-(f%+vTYY`_d@68<;@IS+&lSbA7UcDi2m5{tYJp46vCXq<`cm@>wbq$$YeSgJ3X?>?D)4jqKl>mY|2WKhZ@&+ubu^ zeTej-gEU-ZZ*T91bVgvVx$u0wUir=OQs>^S7Kb_q>4>|3H^5Wcs4op4KgRT2hfJQQ z7#OrzHd3fZZ*>r>2Hg6`w+6F421v&h!YKpNOK<9l6yevyzCSgwtXLRu0!|57S?Gi* zF-C2q;rF&T5s&7>s*YjP92QQ8oskz&6X}p4taC`VDCU6jBc+p&lba&Dx}IRTx^ghZ zs##;hO$<@J0{jyx(~qzmuQ3ip~Dyyb0}aJzw8e zU442}&0LQoq;ZZ`>C5pO_E;oFpKkp@?EUlV^Up3{v$`MHx66uO>zdygFSRhyZ4wg` zJ8)T7B6Edtdd^_TfaBYlH2Aq<=d*a4b-7P}Kiv(PJsvadv95uh9`PCOy0ECBupuyw z__&~v30@tn8kLt<7Mo2h!B7O=7xnVVI~1eoYR9Y*d4)W+odeejyKdG@q*nyYf6b+XhQ&Ai zmx6FOUVt+h_IQ|VZtdTBZwIPYxRglmLG5(x0X5CqpFeGOcXpw2AkWMk%7sy2Y^)3< zeK#>mV%x|_>HcaY`ge;&3lkHS!0U=)Y8#W@)>=tg$hYrybad#`Vu{5tM2Mu&xN1Pb zUtu#>7}^;Dfhb}i!I4yKkdF64=NYlE!DDvI=6fM5DtgBO|NZadjKuoqt9>6G?{vn< z5o;HXnc$C}zkbgRWG~dufq0zCp6%RbysqYYRiqN%K#Ke0VN3(51m8?*A&*@=x=PlqEMa8g9_qSmi&w zp37s>6c=HCp?*(hX|S%VK-mF?A<}OSimr zOq%||K>)}8%wYCVs~c{u%*h3Yk&k}#-m9`*J3Jd&!3&)0nPSt{*4~`1P#6?`OZ9u} z$av?4v$4tv8=|SqHKz+2kj>33Pt7E?CMIJC{*@s-m0ss z3)3NS6{L#A7MqQ>*iP8-2!*Bwl$qJvsg~7xr^wwA%@V_9s@j+^GdCAUQQ9iks;9XC z)8a~vUsJ<=@&0x`O4*e2vq|T2?P06TDYGqV(q*clLl9~`bLMn9XxZBGUp6(((Yv;X z*)vgSJGjPt8N~kV*Fiqj_{lm;(I#g(KKk)$!E!Rte9{5Ffq0Vzdn!t9`@ghW@2xHL ze(yI-ZvDav3$gDJK{b1VYMq@<*RTGkXVE`<1&A=v25t@!7~e->irrYK9@{F}x_7h| z$7&nK-@(}qZv!oGsX^W|0^aE$JjOy1Yl_1dKs(l$Sx-;T92_{}>)yvVd<#rzdeW^L zotqgbO>;PViR{N$s5z&~(}vg!?=XGAV`N{DX@iwv(R0sg?^|4HMtZ*UesNaJH&}w) zuwYFyX(IMIwD4pINq7a`!AC|fxP+M&M7{eBi=`{CAG3UUMt|B=5DHcb^w%3lMh`Z* z%AL>F{-i_Ws~)coK!U(Mf3+$n*I#+O;aexuHD}PLvg^D&Y0>Yd1Tp@^e5t{&;JHX@ z)z`02?QBl>xj3t@j@R--ptGRP?cu*|asB#qw(=Zp{?#nB-KM|Fr`tY>qU<=V_fJ*g z+Ll02i4D+5gY#VUvqO0r8iEST^S(htpe-SYDKnHhOn5v*<-d-pJfYYd$6;}j(CK`z zsl=c;^a-(1J6x_i9_2D^mQ7}nQkI1D}g(Lr&}_ggCrp+Xq_;Om-8j}<0vVj^T5C|G%_hMp8AYFP|NEaqPTE0pm9mb;mW}yq%VJ~ zghHsdZ(u;TK(V9l;qi*?=H$sRZk>X~xyyxXdc?z*ZXC|1lWPjsk`fwAt2QZ}MBp0) z@44iwM?da}xHHv0YR@GDNvl&=I`8fK`~rNn?njruPegfr?n|LilL-)7>s4k-i*O*D zYHHF#WgbM}s0#R=TvkMAns}x4nL3~}0pg)TP0cnP+N&#Tcf7xo3qkcT>-#oskmcJI z9V}g`Q=|?%lg$5Y@uKD@+Ek zqot+Al>-NVs=UB^mqP|KvY}}I((Mv4J{?Y~d+*GsFk4JjTx^UqSGy!H;3-iw)oIRS$8zdF9W{s)7lGXVrf)}v(o&L`h)BS#p7fb#bKye z;yLU|2p52U^9lwh*w`=S-gq{XHH>9IihSbVx{2ehk03xVXLm)PYPTS(%xcS!uB`UzInaugemI2sP;!-9bY`AylAN zp5Lf-NtPv7D?FBfX4mu9 zgYkT$nt+_{)$sfLy(#^MzpnzYqQl`ucu+SlAye(9rhg=YQ)}X@``{57)ddH2GW^ZgfEI zYri!u<4dI7Y$@rdxI2Zl*qGUKWZ_Y2s(;d1e+?0DCGw8Mi-?#6=sF`n`y(R6B;wvA zr=?YG)jxB+u&`&dFWY1?IlSx6bp-|ka`9&XWE^VKV)=Ztc)TD&^k{WO;{+>1Hs)It z<&0q)UG~xnH&UjOi_7%`6-L5^jfr|d?!K|Rp0Ad40)l9@|0@Lf?17uZl?UticRha) z`7Am=V>phSot0>BZ|8sD?d39E(`j~Aitp)rm;5xprlJBA$e%BF6K2$MluM*#6s)I8 zF9y@ly}ys|6)3EMBbUK!GGEIx?P^cn#nW= zShI7~Y)(}uNJ{>yw9Qf~GQhxi63^-wgFY~j=?znAz**D9KD5`NnKj@L-dbMfGC6!#pg1{Hxbisf>LJgImoEVuSE|(>TN}-TF8!&x6nQvs z2fdSyMZ7#bckkU32*fLBNs^~@2OjO9BBhj{M+-8L&cu#Dd|d5@|2#wpgGxzqUCD*B zPUR@~Ky1}yWbk}{MJ9YH^}QIXcLV6gd!iUQ_N^6FRVVA;*0~&S&qW_upNNuBP-OkU z^6nBv%X&6L_TlVcYj7ZQaVbE2$c#J;Fu#|+m&$8@`pPsCT7%e00%O_V_t8Ly7Qa1l z-1ez$W5Nzn0?JqEfkjBKQKU>gKTUt+R~{C_#6rg}D5$_huBT}TdBOry4{vYpRoHgA zZq;%u_gqe;nwgxX_#22PY#i;bu`7a)s@DDLr$%ca;>PBEXJK0R#?sgAPlNsVxZx<8 z`}wx>3UFs$!NI*~*LHSxRH={t?7W194FGCP8s!&kPtNHac87#F#!LObd{(Y>z?Q>; zUf(v$e{eUv6K^!vexkjn%lW{dHGJPod~if2I_23;|m#d;&wE!qXtSJpr46PpgYWu&D+P9SMk6bx0%`KvE$xSg2wWWwz`JE$p5qfi#i zY)|a*!R$q~Old|A3#zPig3aP}NEV(v2r{>O-*C&~q3wbK~0JgU@U@CZWJb51aHw!m&guS96 zV-Z%6i0nB&-Or1UR~NDRoR6+S#~UClEKWzukSH=a(Ad#m0iZaPMLEi4F&x(B{mHep zH1?a*4<9~MvK_X#$!OT8c_uyzRl)buo5you@<_hE{9eBNvO2F36$vu$raMWYh?w|8 zR|_L{7pleMsDCQA$}c1rP7 zq^z}FZV71=+$x`WigE++_S94oz&2wUotNeXgW{Oj!kO(;fXhlvON*RulFw0zWT+)5dl8B9jwQ37YmNO!y&dJ{PP!xiT}e(EYRnRMv7#W9PL zhx_<=EiGfxTVQZkkh$NnIWV05ezK44&S0Y7&iMNg513kbczJ^^Y=2+WttAif0MIC& zMp1M~gESN-ZSEle;0KbVks(7&bVYP&U}-inAvLGciZdUJYT(0Oq0-p+h-Z%j7;h%M z9xer-B9S~y8c8SREi_9a$w^6s8W*sxrA911{28|J`8`YFVhB9=#E-Q__i5pW zSI`xT0)kW;8yQP_y!C{Q0jK+Wfp^SgqPe=cxuW5llG9hj98_vE+!}In;p4+Y14Dg% zZ9P4?5%%!k+o6pp@G9KIiGxOXF9TgfUvNp)7G7ZH45>j-9y}5~Qt9LltQ!bi;mKbJ zf!rf7Fc(a*rp#;<6l_`F8cVUSLr)ZMssJ}3s*?5E3OeKTwZE{9?2|b0<@Zm0+(SR( zUdnxzC6~kESbER0dj}zM;y#(h)`Z9Nd4QQ#Gb>-O3SLJzi{=#>8wDF1g^G-5=(rq| zvBSe;gI)tj#B_{|Su0PFkc{vC1whcWXt7{ZDOB_0`x>QqIi~@yE++CWGfgh&aErIW z2T$Col3PpM=z~=oO`FUMG^E+vshQv92M8x6Aemc|&<770!=HGf8y#hLZVTFXFSKVh@AEc71kzQ^K4Jg?t#T& z_4&U)G-#vKq^*6L0)-%4Zt8AM<7MGqaK1uP(%TH^oRPSV{yv$o(9fBl<1fo5 zzBX%HT4`G?*78Y9e?7OZyLHRQlqqY79{x0u@9zWefQ0-$LxwSPn7u+onUj&PC||u3 z6ARxMz_#HH)LN{C=gmFkfdI!6*@uRPZEQ;Ps(6xUiCI#})nBpDDN$a^E3B=oK_w^O z4AJ#S=llO|0Xslo9>>zC*y1XHgp}C7`FExR6?n3~o|~aZ2_$1%-9yP4LZI%6ZxnAM zUc8HefuXp#Shwot$xWjSBe^3hvUW13Q>Vh_h+CizdYwN7dr`IxXM|MJwEfJZk z1~e@SA=LG?oHQKl>|aC4ow%C6H{SukEa=%uRyHXP78Y&vT~4lokElptxS+hG#e)2n zrzb=Tu>_l6-~OEzOwccO&Uci(dM78h(gaUSy3o>9$2d|v8Q1Dwa`N{@OyTS4s`qf1 zAT8B1Fi@O~?z+e9!P=-)h}7aA4PM?UtpLw(xlYkY>I4>7CQ61c=mS55L-o6;x;&5BF{oq&D_dG z5ri`m_ZT!lz<##bSzBA*T=|&k)?YltfQ*b>iWWOQ3~1TX$L6A&bYPdIrn1SYLeZ;R>Y;eE9G|Ay0j(+R~(?F;mT)4TCD5 z##Ot5E0PMI$t4}g9+VpZHmjAtCp*@mwKWWA952+Ds{n$6-Qsf6Jy#vMSP5$Ecgj{&(E!aYIj}`giUZ;0S1g zCPP|V+g0ZASoNUlGiFlC+n)83{5H0>sDxGa72%JHbTc@f%FDy^L`6aQRc6mc*woUZ zpOfqv6N7VLJAmVBdo2$cPd-nns7LGYo6_w=0?L}KG7IF>cRE_=VQ1tiS%O|)p42XW2HR>h^ zr@58*eceNkg*$?N0tL98zx`l~v+dH$*E@1$pUCaIY_9$imgOItbA|g{QG~ocs@3oP zVi;W~%Pl41*^@Fg5Jw{fsk6J&nKvjJE3N}4b#Z%Nrq+O_mlWpQ^5xMBv&moDD+!{3 zSGF$WVKWxfm6^R2UtYj|*86pt^AWHvL)OS6Ura7kTOm}U^R zen8*tI#U8|NV+rKFH^fUrkn&0XA<|3)(1avnN2f&NMFtxyw+LThoeq%lq;MDQ^i0V zl!5thLE0g++=uw7ZAfI$8ZWKLz(XLgk*kyKR>giM(!!_er z5E-$%AATH%Fb}uA)134E4MS7 zbb{tpGa>l9J3AGY7y2$P=WsYkNpbObiA7f5+(em$C)X{=u%D^6^cP5Gq_q%2alBmj zhFY&^sT+kbN2Lt1vMjDoKl)H;IFY+?0j(`pwewjn+wd;5vH;sWesW9=WMZGkOMVH6 zH^D&j<_Ur3FL~c!o+4yD1_Xcrn{c|W+Su6a19)yeT|S(b@H@%Do|-5tb1AE8UWp$8hKg86LIZb9C9|ZXKkjx|*87@$uqj zt)xv#OhwQrgsdAD=|`ZVLd??qZyW{&h1%u3Bf;~dOc%&9d7MWI2Q4{Vkk8J+;305q zyT7>X>M9VKP>+e`t$JS}sj<{-0y1=(t34_zD_P^j4GN+V#?$>E0?#U&6})r0a_dNO zH#aw)r2K5I8|m|$ZYa}*V}8MT2@3dX_;8K6Sd|!9-5z7qgCL^R)Y4`n`fyy&pF*Od z3Mld<0w?*I2+|aZn+zhLNcJYKVpmo^o>%YY^-G%r5{>ILb&)QBerRvd+=Dm$S^EH@*(lffr?EGG(w&i+8D8iJSj5*1KDtNiMx`#08T+ zF(kc=vY8j>8xEyeB*22bFoAmKFXPfIV^K)TgT(=egHL!imZDy*h$&; z&&RBxeU%}VuwNZo0dbJt6*jk;f}&#m^4|Z9YQ(rTIA(RG&7!XcD}H~2Cg%E7#p%ng zmfUT`R#bmfAouImEvH?oc0XZa-^jLLoqAnY=N?JQCnUt-Id*`t3JVJtUXMc8uBQ`% zGQ5=SHxl`)kc1}2-z|Kt=scV*#|}&TN@W~XoW3rp{YF4aoUHvR2oBDx!vG&U2@%n& z8Ecq8JiLtnTlqhOg%9OH&@AaTCXLcU^)P?Z04*II2t6$ec6I~0W0)1>WH{c>YPzY{ zHZ&eiPxtEg#PsJ&A=6vS5D?6~zC=QL0DE=?mzhn%%c#E}jLQ8<+=yCW+tmk;m-S-8f(Y6!D6#Z5yabY0{`|?zaF696!j+5Z13+= zzItWa|NZ1gdmXTI>a{lB=mSHA?Ep`v9JOe^E-5KtQSJHkurVhmC-SO-hcMA>q7I`Qa0V}cGod7-*Tr4ah6tY*ZhDJy8py8BrK3X4}--xZB zA(4PUod8Ol8izSv6hFT}zkq-^W(#vkO-bx!kK4}+d#OsO9-&%WSrKr!FgSJnNvyYj zl%d=5h3hj11sPceZ|fmQDV%T)8X6ih8JN9I0FA1cspQxxLw)!#qWi;pjem=EjsdvJjdUi)5RB2cTShhX%r}ieN${K!%HJd{j>U~W8}sNGp&%AaHHp^ zZC;1t*?#>ru`AV@5!gMu#^@uc)OMD-aaV(nWGra%NGI$~&+v9n_Ld>s#5Y@gQPRl* z9!Z7mnSj3j5-2nQFS_?2ND^h1bobu9du3bi!R2|iJ?A+;ey@->fy@0FhrX<6RsTN4Yq+XB3)~|l=q5;iYJ@KSr*#a7TadhxnT=o$K}V;y-3fYfjznD*uf{B zKo^Hz=p3m+Mkg9E{+K6_fK7db0cJr`R@PwK_kJMKwq~3Y-xu3&sY7Uru*kcArNlcW zHifU}JUJ0P?A9#}cS7V11q~wz9Qutz` zf}=uZN=w`qQ3nP?L#4lle$C)AGBR3>AL4rv0n~PY(}8ZrYpi_`V_PlXvb_dULBH@A z8Y&tt2@MVCK}*80Jh;)((VwG-rJ=YiU3}?Wq*i3mc=e>Exf%1x6Oh+M$HpG4&DdWE z2m<H0c(KoZi0icOwfE zk`XP^O73;_CoTwyb35KSMk%)iO z>@N?2CLKb=h>2gn*gc=Y;JYr2 zh@zoetePuYeP8Y)z#ebP445k`c_jul32F(S83j=8nLK1SX={GTL#5Hz-yf0Z2F*gJ zeU?GEh_E;n<$3AzP*7V``Z)b<4u{mDZrp)R3(JOeD!4Jk;-NpEKuh)4-gG)|Zyu&t zs)@z-EK)2|f7|g_Xn&g!IvX3?r>R%{LjwcZ6)s^4|L97kXeGutaKm!vc&a4ASNJ(3 zE*#F|GGX=KMMvd#tZ-<1jCh;B{pDxKca8cMw*PWks7pfViC>uVGK{gr+<)CyH4JW$ zNW}DfH?=A(x>;fxZww=19Jv=E%XlL3BE-k-e#)TR4;p{sN9{pxjPDH#%kk%=$^ZsH z_xI&Rh{A=M7kphFVI>m5;ZlroV4@g?p+>RN7qp+l1kVL7?h1s|2yuO2y@vQ)h-(P- z?+d_BiQ<2kf5b2U7t#=0gt`GKQGfeO0GzJ{M~xYbb$vzOC3|zca#g)GUD3HrDxYuQ z%a{dmMhI+f%@3j`+qIioiDhZ8eX!Cg8nd~@!9`Q|;(rqX{Cj8a5IuTPVE-3<2TILiLrEp@IUR_OWoQY1IPNWh3Qw)Zu6gumah!22{d%Gc zz=q39OA+&Y1`25sKM5zwHeMZxBFjp~mYRttaEv9XrBzQ>Te<(!MkM}w2>dW4{LQUh=#A_8NZb+&0o=B>xup`@F87!izF9T2XtOcljuyx#`1HgQ2~J`2=-Cs*1{tI6s-9H`noa@MPJ z@QaT}q-0&yzPH=qah75jvH_l+ua~>mxYK-e%r{Iq{ zCNt47vjP!3(3xhvrjh0!l|9hSC3^P}0q@}2Zj2mkBHQPs1qlXVD}lI2Hue8^zW(J{ zxWk{epZIKb;fsPn_;!=|;+NU(xvFQ-{~T>i3wjBvmcK7B8Kr)D=J8WP=pR*|09oRz z6&j?=-EMiV7UddSLmA1G(ucxs3p?*2{fWc*;23MyZ6Tff+&$@s$>(P6oS8p=*0$#7 z4je8U9BrKFymbrc_!0chzY;i+Nx8`GX;AB6f4|a3J`{6Bse{+j89*_>X}SJGk&?vg z-I?n+2-P;HYX$MG>TD-E2iJ~P2Gg|)Aj$c`nQi(m$4r&|Ojp+z15=`zU)j+q^FFrD zlZSV4U!M~# z!p69V#i+f1V8R^Fvs%^tazTwLTdj5sQ6?#ca9r;_N5ytpI%HR702l{pXke z-fzr`{DE9+bZ`Xpz9nYH#-{_L5|@8OHMky!o(`1)(wt*Phg?KFw|9cj<^{SWN0c%V z60x(t;G~`#5jz4MYzV#+#JYIzVd`jW!*T)-6WW4M9$#ocVVe2*`C-zif(|190e=A> zUtC0TVlGqm{(Rs1m)&R_v~^uw0Hr-a;|H2=rME@l#Ta9=b^(MJ+5V|d0`dojj|RKDQClA& z+Ry*q)*+T?Zv2v~S#^`xO|Rhc@^V6CUzq?EwQslX<8YhNDCakwWiS)+Noe#ouC3+e zi*7_ZJIc2{_URFy7-3;e&&+r>>HY>tDIE2OiB9j|;Enx|gcTfQhMQ&Poq@_F#@M*H zM+b&BHuEhQ9Y>VmB6{wf$7d&8K!hq1`J|@(KodRek+)6_r@fHbFyVFx?A(?cZ%Mz9n<-?p;VJ$UIm1 z!1`j_tnc$81rXmt8CQBX2R4lj4e7~f33E6^RjKdZiGjH2Xk&&VLDA*Fl;JRH$BgYrw0fK2sEU> zxGbf3$vr?oosxp>L5m~IOFNH`m+o~bQeqJP04}^+pV@Ti6RYu|#Wg%^Y~m0hINBs{ znxo2gOIzO@g2zw@cPw|HQGDaJt}7sL>*>luwPW9`2b|nxe)f#RrMg2)&o^*`m(w+# zY4O2WlB@Fr2PcQ_SgtCWW$||;dlywl6RLK6`~qbA=ufd3wT}%?A_gRgyrQC`#V%Y$ zB6H*3;N3q6)CJ@s>r(KJWXwN`{O!|vnKZFzm?j{xs9`%oLqmf=2S$^_F7T%VT=1Aj zS-E7}aZbg_;@vG#K?UE|d9iPAY8AHBi}btXQT_~7$n>gnn5)-8HEp0{azVW6ziz(+ ztLNeR@JsUDPM~6IT~2m8uAUMSapir0Q+SPyrAv+=QRd?O+@L!iBVxOjwg zbr&MjX#k~lzBskj*H3Mr*hNS-p0T>_ehCW73(UPwNJK#|s#>F?D%mNOpkk~-^aLz7 ztf{_2oi>B_IMHN91<2=LEr885OZ10~Ek8JIXviZB7y zTMkAi2_<{v*Ks^}J)NP5=#dW;)D+Iho zF6Zd%`s;tTauX*qtXnZ_dv9F#m=Uep(IN5ja*;>*6cn^tMz~#^w)cP? zibZF{CXGtPKXt#eUc-TX8g@|-tw~dP-n#4e`7=2Vsx1bhi*|K!NtKALuQ8%B4cxyR1Ilv?vb?J0;0I5;KdVJwI)o?Ey0`xgZNR*@7r6mk!6ok=6(%#!wQ1T}2f&DxQhF5TY-}|wtejq7? z#Kj|~uH!$$c*}vxZqxVv#4T5~imy8!m|N*N;;47}rtj82>t%gU*3k{m?^+EvdB(Ln zYsGRz;2IY_($u6F-6hIe04h|30Vmsja{EuxZ9*a^x326lde|W4bCqi~r@t3oeM_W< z7WDt63gGXiQYp&xuo$Q~9+Z+c12~1-LGjJgzP9gDx_n_VmE)tw?i0AorC5wkx&Y!I z+}j^BjR10gI5#y_d0)E8PydODT#@+uwmnomKsm3?nj4$`(&!7sCdp2DLoDWjB!s9 z$D+iv(u0^9ZW8frIB|haF*29N{;UY#1IE1<#L+uma)P{$K-SKy9!Qwos>_wp5mKF@YUAfUZ zP{b8EnSo*}t@l``!D~nLB{dYESE^=@kIL}f$D{Zd5!R0~o1TAX=pLq8%jYcJ_`8gI(TjEb-z23Vra59UsSv1nCm&ZEW zg(;l?6%_u&vqIuxsC+~Rtu+_vSaBC6MwUq#^^l#RVN^Dg`LFyW(}$XwDKg9VO_^ei z$7)O-aCvB4+@X&!kA(vk9!9c0V@|4CB^ z(atbv9-gv%w+YNrZMx2^EDTRLg&~F zvP8XWUcpo5Z1ODG)$dond3Yead^%JVQ6?REFMW)ROdj$8wGLKG_};p@-klw8y~OQ6 zXdjAb5sBQkF{UpJR|}^5+}9@Z^Ygq5ObfHN^J#g6B>S8-2xfpClGe!qCi=P8WYt-s zSrsB4UQCUOjWlg(`W_*~QS(XRMs&wWcVf!?kX`{RjH;U5kSYKwNQ`$8sK<~|;ltUy zsw--nu#k|Dh?vy0E8BZf;J9dNA~JT)xY+gfUp`u!QBYA~y+~1TfjiIhKt*Y@&1KZpJ6fT^3Lxpgcme6NyGLm+32C5?j) zSXlP=2J`;!{GwSHvh~(m28?kphiJjTR}TUqi_^bA^*OsZ9@kj1Zw`F>F_p?!*Djs} z);e7NUho@a3`5YE-8%2@RWQZ@3WX$l--G)-^cjA#9r{`MW0bHjKS6u^_%T#6Ak8gw zpLy%YCq2l*BL+%#h}>t4y9p4~z{m(NWzEkT{@QK8S3~mi`iIKIFyVaK$N!+H|9b!` z|L!Ard!(Ve|4*$kkZBJYevRtM80 zcsaeplCPW&7*ti&#!JntcNa2%R=nYkM&iX_Ft_$xkQ;^UqNS5qbR#3b&`Py#6Al_%&Y|`So_2Mr+I%mi zpg`)iu&_Y+t?bw6sQu4L?}^eX%9FwAVLj&+wUe`&LXB!Z2?=`;jJRvOsd7lFN%K`e zND%^XRSb=ddd_w1-fI0!?Z#y`pQbe!nf$MTP9^>^G0Ocd&7v4R@$@q7&pMu{&bwus zUL(&n8YBS=n&nh!97s=$=FKMJ@JDkjw7^+2U_9v44Q64;uzSoi!e)*IY5_Q%)XCyS z0WAj=2Rmhh*-`xMqi4B_CEtwgC#pKz9q*KI0GHkxAEaKhb9VNd1y{vHss7x1uhevE z|1{w0WzcOq4pVhdj^9Zdw_GUxt!aMz9JMS)~6b>ij1^0G|t1uKiiq4S1wgjInaZ znu~#E{)r0Jmpw;r52!WX2b>iY-b^p=*AYl~V<%0C@t7y|f^*~N#cg|wndJMxYi%s9 z9GvYN4dwqT$r|;&V3j?I-j&u!JHdX>Jq*BE`x!=$W9Xvmf zo8jc-fDs!M7}x`GF$5e=iV*}4hNS*KGJE_3A+EKGwb0@5{PCZGT+Ep5Kr6#lQjlRPcj2^X>xD^Sda zFBYHm{VO0U1Gg#~j>-5eq&Iu;n-|y@?CScY=HVHUIa@QrN>w48& znp=SS-F0C1zRza6`NsYd4?YWUm#lF;`b8*&py&hd5cnYg-D4^p>8(z93RYntKl3!I z3f}L0tP8}CW3VjT-MYT|vA*mrMMNHv7y1iguRkkmE2}F$-riDzPdOVI;gLi~#lXJ0 zHBqPVA{?Cu>#l&YNDNQ@Yq}0!IsCs61#)4LHNvk9S#*$CFCgHvj_&!kOry|nc2)y| z0^qJs=Xhxeb&CdDK>2P!ipkRkrOOqQQ-=S6U`7nV9WLiNM#ZYM2rb&Bz-n8&T7nEw(JG8O6va5$9AslAJ=%<`N)wNVY)9gYPoK>wSK=^Y)kTa& z3TSRWf8+-OptoHB(ejKu746 zP#a3{r?hq`_Wcb`KVywYJJLH_Q~kP?d_^gY7`Vo+Z9dZxAnJTZb;GP z)ezBrj!DY4jUkq~$&_+!4B+@lo1-?n0;Q5=AdX_`)r) zmEL(P&LBSSB}Fd)#Txj7`&u*iQ$hC3z5IH_;hng6;L16FyRdN9m8x1=+0_R(-0Ttj zJ@(r7wb3&rYgSf;EWF5iL#%P%W z4WTfZFi+cuYskNU|2`2sUWvqp>U__gSxiEd)T=8Rm@o>HIhP_>nupy@!cKL5{7Auz zJGycEW^7lCN!>(9=bY(SagN=AXf#_d5hv%|gF#|SjLyAd1oROV9difu@O0y7CjA

    s&H-wws&n7k`p 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�?d9W{sI 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 z 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

    3^^oXN{Px%YGe!oX83y(^nlulq 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 bSQpTW+Q5k-|F@|S@FOFkC|)e8=l_2JtF=m9 literal 102533 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�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�X5z#S7JmD8i<{Q_pjM1-sT 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 Wp+AogH-?Rgcq}C^`3 Date: Wed, 21 Aug 2024 07:03:21 -0600 Subject: [PATCH 09/22] fix: Match package.json engine version to .nvmrc in widget template (#693) - Match `package.json` engine version to `.nvmrc` - Match `package-lock.json` version to `package.json` - Delete extra `package-lock.json` in `src/js/src` - Widget template readme mentions `pre-commit` command. Add it to `requirements.js` --- .../requirements.txt | 1 + .../src/js/.nvmrc | 2 +- .../src/js/package-lock.json | 63 +- .../src/js/package.json | 5 +- .../src/js/src/package-lock.json | 13031 ---------------- 5 files changed, 39 insertions(+), 13063 deletions(-) delete mode 100644 templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/package-lock.json diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/requirements.txt b/templates/widget/{{ cookiecutter.python_project_name }}/requirements.txt index 3834991c9..c901c3334 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/requirements.txt +++ b/templates/widget/{{ cookiecutter.python_project_name }}/requirements.txt @@ -1,4 +1,5 @@ build pip +pre-commit setuptools tox \ No newline at end of file diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/.nvmrc b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/.nvmrc index 67d2ffed5..a2ad731bb 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/.nvmrc +++ b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/.nvmrc @@ -1 +1 @@ -v20.13.1 \ No newline at end of file +v18.20.4 \ No newline at end of file diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package-lock.json b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package-lock.json index b67c4267d..cf23e606b 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package-lock.json +++ b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package-lock.json @@ -1,12 +1,12 @@ { "name": "{{ cookiecutter.javascript_project_name }}", - "version": "0.1.0", + "version": "0.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "{{ cookiecutter.javascript_project_name }}", - "version": "0.1.0", + "version": "0.0.1", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "^0.58.0", @@ -26,9 +26,6 @@ "typescript": "^4.5.4", "vite": "~4.1.4" }, - "engines": { - "node": "18.13.0" - }, "peerDependencies": { "react": "^17.0.2" } @@ -171,13 +168,13 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "nanoid": "^5.0.7" + "react-window": "^1.8.6" }, "engines": { "node": ">=10" @@ -209,11 +206,11 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "papaparse": "5.3.2", "popper.js": "^1.16.1", "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "nanoid": "^5.0.7" + "shell-quote": "^1.7.2" }, "engines": { "node": ">=16" @@ -237,8 +234,8 @@ "deep-equal": "^2.0.5", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "nanoid": "^5.0.7" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" }, "engines": { "node": ">=16" @@ -333,10 +330,10 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "nanoid": "^5.0.7" + "react-transition-group": "^4.4.2" }, "engines": { "node": ">=10" @@ -6142,9 +6139,21 @@ "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" }, "node_modules/nanoid": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", - "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } }, "node_modules/native-promise-only": { "version": "0.8.1", @@ -7463,13 +7472,13 @@ "lodash.debounce": "^4.0.8", "lodash.flatten": "^4.4.0", "memoizee": "^0.4.15", + "nanoid": "^5.0.7", "popper.js": "^1.16.1", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", "react-transition-group": "^4.4.2", "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "nanoid": "^5.0.7" + "react-window": "^1.8.6" } }, "@deephaven/console": { @@ -7494,11 +7503,11 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "papaparse": "5.3.2", "popper.js": "^1.16.1", "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "nanoid": "^5.0.7" + "shell-quote": "^1.7.2" } }, "@deephaven/dashboard": { @@ -7515,8 +7524,8 @@ "deep-equal": "^2.0.5", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "nanoid": "^5.0.7" + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" } }, "@deephaven/filters": { @@ -7585,10 +7594,10 @@ "memoize-one": "^5.1.1", "memoizee": "^0.4.15", "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", "prop-types": "^15.7.2", "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "nanoid": "^5.0.7" + "react-transition-group": "^4.4.2" } }, "@deephaven/jsapi-bootstrap": { @@ -12069,9 +12078,9 @@ "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" }, "nanoid": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", - "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", + "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==" }, "native-promise-only": { "version": "0.8.1", diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package.json b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package.json index 50d404d82..d2ba089d3 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package.json +++ b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/package.json @@ -40,8 +40,5 @@ }, "files": [ "dist/index.js" - ], - "engines": { - "node": "18.13.0" - } + ] } diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/package-lock.json b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/package-lock.json deleted file mode 100644 index 8d4b53f88..000000000 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/package-lock.json +++ /dev/null @@ -1,13031 +0,0 @@ -{ - "name": "{{ cookiecutter.javascript_project_name }}", - "version": "0.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "{{ cookiecutter.javascript_project_name }}", - "version": "0.1.0", - "license": "Apache-2.0", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/dashboard": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-bootstrap": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/plugin": "^0.58.0", - "nanoid": "^5.0.7" - }, - "devDependencies": { - "@deephaven/tsconfig": "^0.72.0", - "@types/react": "^17.0.2", - "@types/react-dom": "^17.0.2", - "@vitejs/plugin-react-swc": "^3.0.0", - "react": "^17.0.2", - "typescript": "^4.5.4", - "vite": "~4.1.4" - }, - "peerDependencies": { - "react": "^17.0.2" - } - }, - "node_modules/@adobe/react-spectrum": { - "version": "3.34.1", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.34.1.tgz", - "integrity": "sha512-J1HOjntW+H8xusfc5xLnIlUXNOzllp4f7qzh3LlDOsZuH8oBH8sIYmBVp4ijVhRFUKa10qg088role1On3UGbg==", - "dependencies": { - "@internationalized/string": "^3.2.1", - "@react-aria/i18n": "^3.10.2", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/actionbar": "^3.4.3", - "@react-spectrum/actiongroup": "^3.10.3", - "@react-spectrum/avatar": "^3.0.10", - "@react-spectrum/badge": "^3.1.11", - "@react-spectrum/breadcrumbs": "^3.9.5", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/buttongroup": "^3.6.11", - "@react-spectrum/calendar": "^3.4.7", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/combobox": "^3.12.3", - "@react-spectrum/contextualhelp": "^3.6.9", - "@react-spectrum/datepicker": "^3.9.4", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/divider": "^3.5.11", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/icon": "^3.7.11", - "@react-spectrum/illustratedmessage": "^3.4.11", - "@react-spectrum/image": "^3.4.11", - "@react-spectrum/inlinealert": "^3.2.3", - "@react-spectrum/labeledvalue": "^3.1.12", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/link": "^3.6.5", - "@react-spectrum/list": "^3.7.8", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/meter": "^3.4.11", - "@react-spectrum/numberfield": "^3.9.1", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/picker": "^3.14.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/provider": "^3.9.5", - "@react-spectrum/radio": "^3.7.4", - "@react-spectrum/searchfield": "^3.8.4", - "@react-spectrum/slider": "^3.6.7", - "@react-spectrum/statuslight": "^3.5.11", - "@react-spectrum/switch": "^3.5.3", - "@react-spectrum/table": "^3.12.8", - "@react-spectrum/tabs": "^3.8.8", - "@react-spectrum/tag": "^3.2.4", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/theme-dark": "^3.5.8", - "@react-spectrum/theme-default": "^3.5.8", - "@react-spectrum/theme-light": "^3.4.8", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/view": "^3.6.8", - "@react-spectrum/well": "^3.4.11", - "@react-stately/collections": "^3.10.5", - "@react-stately/data": "^3.11.2", - "@react-types/shared": "^3.22.1", - "client-only": "^0.0.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@choojs/findup": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", - "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", - "dependencies": { - "commander": "^2.15.1" - }, - "bin": { - "findup": "bin/findup.js" - } - }, - "node_modules/@deephaven/chart": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.58.0.tgz", - "integrity": "sha512-rP4MKR3OswDRbt58I2r65ADHbYHVeSlBFxEoZDK3oJjkh5XEnsd0RpvEQn3gAFmQuUxk9JPUPnRx+d/6iu6zPQ==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "deep-equal": "^2.0.5", - "lodash.debounce": "^4.0.8", - "lodash.set": "^4.3.2", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "plotly.js": "^2.18.2", - "prop-types": "^15.7.2", - "react-plotly.js": "^2.6.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/components": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.58.0.tgz", - "integrity": "sha512-yfdyi2LTKs/0N930kuFo9j407XW04jqUHVToEhNzTkgBibNZ4XJ8GwEHJDRg+pYOl/vlvIzNI/OJLd9q+IuEdw==", - "dependencies": { - "@adobe/react-spectrum": "^3.29.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^17.x", - "react-dom": "^17.x" - } - }, - "node_modules/@deephaven/console": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.58.0.tgz", - "integrity": "sha512-jfQVsBmzJO/qnv4pQyJcyZZ3EdBPUeHa5r94VdtL0XKTVqiViF4jrUH2+mfdW5SLNwpwnjhBdfPZ7da1ynJxWQ==", - "dependencies": { - "@deephaven/chart": "^0.58.0", - "@deephaven/components": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-bootstrap": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/storage": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "linkifyjs": "^4.1.0", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "papaparse": "5.3.2", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x", - "react-dom": "^17.x" - } - }, - "node_modules/@deephaven/dashboard": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.58.0.tgz", - "integrity": "sha512-3D3xo10uU/fnQmyLiLOh14RdjEqk6NIu79MuuBJw8ESaDx9BN9ESZyU02QU/JcwXZjahJoRIsquvD4f0iTawGA==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/golden-layout": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/redux": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "deep-equal": "^2.0.5", - "lodash.ismatch": "^4.1.1", - "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.0.0", - "react-dom": "^17.0.0", - "react-is": "^17.0.0", - "react-redux": "^7.2.4" - } - }, - "node_modules/@deephaven/filters": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.58.0.tgz", - "integrity": "sha512-7FRCEAjoo0e0gRZbdDxoTrC8SSqwL9IDH4Z23OjIOQ5RBS7MypFeomFLLJns9Sg1rOXXixG0Of7Zqv6cR8hC6Q==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@deephaven/golden-layout": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.58.0.tgz", - "integrity": "sha512-AN5AWH1Qr1Mof95ZWBGPRds+L4WBa0ePRTpmjDffcEuoPjKbd2KDzuiRp3au/QsrkfcyLz4rWQmSd+1dHb/qeQ==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "jquery": "^3.6.0" - }, - "peerDependencies": { - "react": "^17.x", - "react-dom": "^17.x" - } - }, - "node_modules/@deephaven/grid": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.58.0.tgz", - "integrity": "sha512-BmSuLKm70qzHEZPaq8pc3CCOXcxHw9KmWwuZTQnjMMGHSyGmDgseydODwOatbuW4QohY+B03Uf1GdaEpAT0GVw==", - "dependencies": { - "@deephaven/utils": "^0.58.0", - "classnames": "^2.3.1", - "color-convert": "^2.0.1", - "event-target-shim": "^6.0.2", - "linkifyjs": "^4.1.0", - "lodash.clamp": "^4.0.3", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "prop-types": "^15.7.2" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/icons": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.58.0.tgz", - "integrity": "sha512-jD8rEOCTbelkXT2BRGTRamP8bmHmk/Hdo8uu6s3ydjI2d52Rp7YaCjsspNS9fGV1XhpNF6N2lTC3rdtUWXvMFg==", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^6.1.1" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0" - } - }, - "node_modules/@deephaven/iris-grid": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.58.0.tgz", - "integrity": "sha512-HYMOxjmS/gpkTHshDOYsplvVgy9RW7mGvySpj4G00k5M595PJuqZ8q3VfnxVH0Tswb44bk1WmQhvHndAvWMg2A==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/console": "^0.58.0", - "@deephaven/filters": "^0.58.0", - "@deephaven/grid": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/storage": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@dnd-kit/core": "^6.0.5", - "@dnd-kit/sortable": "^7.0.0", - "@dnd-kit/utilities": "^3.2.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "deep-equal": "^2.0.5", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^17.x", - "react-dom": "^17.x" - } - }, - "node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.58.0.tgz", - "integrity": "sha512-w7oubRFxkTbitfDs7JNALrsRZqHYtgbfllcaUnlTFXD688E/8kSjVVi4yaE8aKWmMDCQLFU0QoFsfC1Z+kxWeA==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/jsapi-types": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-0.58.0.tgz", - "integrity": "sha512-CjJXqHPPTWAqCYJRXC/Zb2VEdaXutyx55Hlzeeg/1vYnWY5t5Lxld4PQkuO4rvsJzzkuEWzdgggMw7Iu9ZVuQQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@deephaven/jsapi-utils": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.58.0.tgz", - "integrity": "sha512-isX/HdSl8XBQSPJHockM5ybGOBRplT/4M10b4loB4nZpY0y5bCY2H7sdutsICE6FTSMInAD+cMGNH6nPF+IGfg==", - "dependencies": { - "@deephaven/filters": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "lodash.clamp": "^4.0.3", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@deephaven/log": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.58.0.tgz", - "integrity": "sha512-al05eDP3qamkWuqaQlsMESEn+rTRiaMZLAI8ePlHnlcEPrQS2ymkcO6sY6Am4yk3l5JQg8FKHA8LjHFZfkvTsQ==", - "dependencies": { - "event-target-shim": "^6.0.2" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@deephaven/plugin": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.58.0.tgz", - "integrity": "sha512-QmmaMfNbsKi2hLJqwxilE57Mqio1mT9HhmIyc0qa0G60kPI1NuMAV3TJWu4+s9xQBMqolzrD8OD3jfLzrfK5VA==", - "dependencies": { - "@deephaven/components": "^0.58.0", - "@deephaven/golden-layout": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/iris-grid": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/react-hooks": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.58.0.tgz", - "integrity": "sha512-XeQgk8VqaTwcI68660pNd5q611EkKtqIxKaZnPMR5GzbHn1zE55fFAUi5UdgrSJhhe2oaIz2tFbVd8uaduANsw==", - "dependencies": { - "@adobe/react-spectrum": "^3.29.0", - "@deephaven/log": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "lodash.debounce": "^4.0.8", - "nanoid": "^5.0.7" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/redux": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.58.0.tgz", - "integrity": "sha512-RnhldimzNK1AJv9OIcKgXMZ5BXe+1Rm6/BXjDnAnl8HREEGtuVvIUna2g3s+FoOokfQCRIIzNkPXTwyJDGRO2A==", - "dependencies": { - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/plugin": "^0.58.0", - "deep-equal": "^2.0.5", - "redux-thunk": "2.4.1" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "redux": "^4.2.0" - } - }, - "node_modules/@deephaven/storage": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.58.0.tgz", - "integrity": "sha512-GGgcqHdgQCko1vxSJttwDw04u4atbv51C/t8IJPdHoTzd1HoY/yYhX639UranueS5LygBTwu4QCM73CMuHS0eg==", - "dependencies": { - "@deephaven/filters": "^0.58.0", - "@deephaven/log": "^0.58.0", - "lodash.throttle": "^4.1.1" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": "^17.x" - } - }, - "node_modules/@deephaven/tsconfig": { - "version": "0.72.0", - "resolved": "https://registry.npmjs.org/@deephaven/tsconfig/-/tsconfig-0.72.0.tgz", - "integrity": "sha512-ER4+KsrTBO8rhd4YA6SY5dRBZjUajrNKb2yQijSXNZTbWbQCet/522Yui2YCgWFBRbM5GvYGDoUcc/07tZeLZQ==", - "dev": true - }, - "node_modules/@deephaven/utils": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.58.0.tgz", - "integrity": "sha512-5zmnUYwAT6ognsZ7SjhEF6OS1xjF4nP3RixEO+CEZdBxen5Q8pZ2CjhPv2FvuqAUGEx+MhPq/yD1AXvzu3HITw==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@dnd-kit/accessibility": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.0.tgz", - "integrity": "sha512-ea7IkhKvlJUv9iSHJOnxinBcoOI3ppGnnL+VDJ75O45Nss6HtZd8IdN8touXPDtASfeI2T2LImb8VOZcL47wjQ==", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@dnd-kit/core": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.1.0.tgz", - "integrity": "sha512-J3cQBClB4TVxwGo3KEjssGEXNJqGVWx17aRTZ1ob0FliR5IjYgTxl5YJbKTzA6IzrtelotH19v6y7uoIRUZPSg==", - "dependencies": { - "@dnd-kit/accessibility": "^3.1.0", - "@dnd-kit/utilities": "^3.2.2", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@dnd-kit/sortable": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-7.0.2.tgz", - "integrity": "sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==", - "dependencies": { - "@dnd-kit/utilities": "^3.2.0", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@dnd-kit/core": "^6.0.7", - "react": ">=16.8.0" - } - }, - "node_modules/@dnd-kit/utilities": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", - "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@formatjs/ecma402-abstract": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.2.tgz", - "integrity": "sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA==", - "dependencies": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.6.tgz", - "integrity": "sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/icu-skeleton-parser": "1.8.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.0.tgz", - "integrity": "sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz", - "integrity": "sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==", - "hasInstallScript": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.2.tgz", - "integrity": "sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==", - "hasInstallScript": true, - "dependencies": { - "@fortawesome/fontawesome-common-types": "6.5.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/react-fontawesome": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", - "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", - "dependencies": { - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "~1 || ~6", - "react": ">=16.3" - } - }, - "node_modules/@internationalized/date": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.2.tgz", - "integrity": "sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@internationalized/message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.2.tgz", - "integrity": "sha512-MHAWsZWz8jf6jFPZqpTudcCM361YMtPIRu9CXkYmKjJ/0R3pQRScV5C0zS+Qi50O5UAm8ecKhkXx6mWDDcF6/g==", - "dependencies": { - "@swc/helpers": "^0.5.0", - "intl-messageformat": "^10.1.0" - } - }, - "node_modules/@internationalized/number": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.1.tgz", - "integrity": "sha512-N0fPU/nz15SwR9IbfJ5xaS9Ss/O5h1sVXMZf43vc9mxEG48ovglvvzBjF53aHlq20uoR6c+88CrIXipU/LSzwg==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@internationalized/string": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.1.tgz", - "integrity": "sha512-vWQOvRIauvFMzOO+h7QrdsJmtN1AXAFVcaLWP9AseRN2o7iHceZ6bIXhBD4teZl8i91A3gxKnWBlGgjCwU6MFQ==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@mapbox/geojson-rewind": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", - "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", - "dependencies": { - "get-stream": "^6.0.1", - "minimist": "^1.2.6" - }, - "bin": { - "geojson-rewind": "geojson-rewind" - } - }, - "node_modules/@mapbox/geojson-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", - "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" - }, - "node_modules/@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mapbox/mapbox-gl-supported": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", - "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", - "peerDependencies": { - "mapbox-gl": ">=0.32.1 <2.0.0" - } - }, - "node_modules/@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" - }, - "node_modules/@mapbox/tiny-sdf": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", - "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" - }, - "node_modules/@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" - }, - "node_modules/@mapbox/vector-tile": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", - "dependencies": { - "@mapbox/point-geometry": "~0.1.0" - } - }, - "node_modules/@mapbox/whoots-js": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", - "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@plotly/d3": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.1.tgz", - "integrity": "sha512-x49ThEu1FRA00kTso4Jdfyf2byaCPLBGmLjAYQz5OzaPyLUhHesX3/Nfv2OHEhynhdy2UB39DLXq6thYe2L2kg==" - }, - "node_modules/@plotly/d3-sankey": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", - "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", - "dependencies": { - "d3-array": "1", - "d3-collection": "1", - "d3-shape": "^1.2.0" - } - }, - "node_modules/@plotly/d3-sankey-circular": { - "version": "0.33.1", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", - "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", - "dependencies": { - "d3-array": "^1.2.1", - "d3-collection": "^1.0.4", - "d3-shape": "^1.2.0", - "elementary-circuits-directed-graph": "^1.0.4" - } - }, - "node_modules/@plotly/mapbox-gl": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/@plotly/mapbox-gl/-/mapbox-gl-1.13.4.tgz", - "integrity": "sha512-sR3/Pe5LqT/fhYgp4rT4aSFf1rTsxMbGiH6Hojc7PH36ny5Bn17iVFUjpzycafETURuFbLZUfjODO8LvSI+5zQ==", - "dependencies": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.1.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/@plotly/point-cluster": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", - "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", - "dependencies": { - "array-bounds": "^1.0.1", - "binary-search-bounds": "^2.0.4", - "clamp": "^1.0.1", - "defined": "^1.0.0", - "dtype": "^2.0.0", - "flatten-vertex-data": "^1.0.2", - "is-obj": "^1.0.1", - "math-log2": "^1.0.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0" - } - }, - "node_modules/@react-aria/actiongroup": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-aria/actiongroup/-/actiongroup-3.7.3.tgz", - "integrity": "sha512-o1qw7w7GdL8vsOuzBc2mil+MM1CWWDDZ1+VhWnVwoDVt5Pxj36981leTh/WTS58IQ34N7p/jVdQMraQ25EJJyA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/actiongroup": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/breadcrumbs": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.11.tgz", - "integrity": "sha512-bQz4g2tKvcWxeqPGj9O0RQf++Ka8f2o/pJMJB+QQ27DVQWhxpQpND//oFku2aFYkxHB/fyD9qVoiqpQR25bidw==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/link": "^3.6.5", - "@react-aria/utils": "^3.23.2", - "@react-types/breadcrumbs": "^3.7.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/button": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.9.3.tgz", - "integrity": "sha512-ZXo2VGTxfbaTEnfeIlm5ym4vYpGAy8sGrad8Scv+EyDAJWLMKokqctfaN6YSWbqUApC3FN63IvMqASflbmnYig==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/calendar": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.6.tgz", - "integrity": "sha512-PA0Ur5WcODMn7t2gCUvq61YktkB+WlSZjzDr5kcY3sdl53ZjiyqCa2hYgrb6R0J859LVJXAp+5Qaproz8g1oLA==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-stately/calendar": "^3.4.4", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/checkbox": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.1.tgz", - "integrity": "sha512-b4rtrg5SpRSa9jBOqzJMmprJ+jDi3KyVvUh+DsvISe5Ti7gVAhMBgnca1D0xBp22w2jhk/o4gyu1bYxGLum0GA==", - "dependencies": { - "@react-aria/form": "^3.0.3", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/toggle": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-stately/checkbox": "^3.6.3", - "@react-stately/form": "^3.0.1", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/combobox": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.8.4.tgz", - "integrity": "sha512-HyTWIo2B/0xq0Of+sDEZCfJyf4BvCvDYIWG4UhjqL1kHIHIGQyyr+SldbVUjXVYnk8pP1eGB3ttiREujjjALPQ==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/listbox": "^3.11.5", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/menu": "^3.13.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/combobox": "^3.8.2", - "@react-stately/form": "^3.0.1", - "@react-types/button": "^3.9.2", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/datepicker": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.9.3.tgz", - "integrity": "sha512-1AjCAizd88ACKjVNhFazX4HZZFwWi2rsSlGCTm66Nx6wm5N/Cpbm466dpYEFyQUsKSOG4CC65G1zfYoMPe48MQ==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@internationalized/number": "^3.5.1", - "@internationalized/string": "^3.2.1", - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/spinbutton": "^3.6.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/datepicker": "^3.9.2", - "@react-stately/form": "^3.0.1", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/datepicker": "^3.7.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/dialog": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.12.tgz", - "integrity": "sha512-7UJR/h/Y364u6Ltpw0bT51B48FybTuIBacGpEJN5IxZlpxvQt0KQcBDiOWfAa/GQogw4B5hH6agaOO0nJcP49Q==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/dnd": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.5.3.tgz", - "integrity": "sha512-0gi6sRnr97fSQnGy+CMt+99/+vVqr+qv2T9Ts8X9TAzxHNokz5QfSL88QSlTU36EnAVLxPY18iZQWCExSjKpEQ==", - "dependencies": { - "@internationalized/string": "^3.2.1", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/dnd": "^3.2.8", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/focus": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.16.2.tgz", - "integrity": "sha512-Rqo9ummmgotESfypzFjI3uh58yMpL+E+lJBbQuXkBM0u0cU2YYzu0uOrFrq3zcHk997udZvq1pGK/R+2xk9B7g==", - "dependencies": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/form": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.3.tgz", - "integrity": "sha512-5Q2BHE4TTPDzGY2npCzpRRYshwWUb3SMUA/Cbz7QfEtBk+NYuVaq3KjvqLqgUUdyKtqLZ9Far0kIAexloOC4jw==", - "dependencies": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/grid": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.8.8.tgz", - "integrity": "sha512-7Bzbya4tO0oIgqexwRb8D6ZdC0GASYq9f/pnkrqocgvG9e1SCld4zOioKbYQDvAK/NnbCgXmmdqFAcLM/iazaA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/grid": "^3.8.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/checkbox": "^3.7.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/gridlist": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.7.5.tgz", - "integrity": "sha512-RmHEJ++vngHYEWbUCtLLmGh7H3vNd2Y9S0q/9SgHFPbqPZycT5mxDZ2arqpOXeHRVRvPBaW9ZlMxI2bPOePrYw==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/grid": "^3.8.8", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/i18n": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.10.2.tgz", - "integrity": "sha512-Z1ormoIvMOI4mEdcFLYsoJy9w/EzBdBmgfLP+S/Ah+1xwQOXpgwZxiKOhYHpWa0lf6hkKJL34N9MHJvCJ5Crvw==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@internationalized/message": "^3.1.2", - "@internationalized/number": "^3.5.1", - "@internationalized/string": "^3.2.1", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/interactions": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.21.1.tgz", - "integrity": "sha512-AlHf5SOzsShkHfV8GLLk3v9lEmYqYHURKcXWue0JdYbmquMRkUsf/+Tjl1+zHVAQ8lKqRnPYbTmc4AcZbqxltw==", - "dependencies": { - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/label": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.6.tgz", - "integrity": "sha512-ap9iFS+6RUOqeW/F2JoNpERqMn1PvVIo3tTMrJ1TY1tIwyJOxdCBRgx9yjnPBnr+Ywguep+fkPNNi/m74+tXVQ==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/link": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.6.5.tgz", - "integrity": "sha512-kg8CxKqkciQFzODvLAfxEs8gbqNXFZCW/ISOE2LHYKbh9pA144LVo71qO3SPeYVVzIjmZeW4vEMdZwqkNozecw==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/link": "^3.5.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/listbox": { - "version": "3.11.5", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.11.5.tgz", - "integrity": "sha512-y3a3zQYjT+JKgugCMMKS7K9sRoCoP1Z6Fiiyfd77OHXWzh9RlnvWGsseljynmbxLzSuPwFtCYkU1Jz4QwsPUIg==", - "dependencies": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/listbox": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/live-announcer": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.2.tgz", - "integrity": "sha512-aOyPcsfyY9tLCBhuUaYCruwcd1IrYLc47Ou+J7wMzjeN9v4lsaEfiN12WFl8pDqOwfy6/7It2wmlm5hOuZY8wQ==", - "dependencies": { - "@swc/helpers": "^0.5.0" - } - }, - "node_modules/@react-aria/menu": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.13.1.tgz", - "integrity": "sha512-jF80YIcvD16Fgwm5pj7ViUE3Dj7z5iewQixLaFVdvpgfyE58SD/ZVU9/JkK5g/03DYM0sjpUKZGkdFxxw8eKnw==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/menu": "^3.6.1", - "@react-stately/tree": "^3.7.6", - "@react-types/button": "^3.9.2", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/meter": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.11.tgz", - "integrity": "sha512-P1G3Jdh0f/uieUDqvc3Ee4wzqBJa7H077BVSC3KPRqEp6YY7JimZGWjOwbFlO2PXhryXm/dI8EzUmh+4ZXjq/g==", - "dependencies": { - "@react-aria/progress": "^3.4.11", - "@react-types/meter": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/numberfield": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.1.tgz", - "integrity": "sha512-JQ1Z+Ho5H+jeav7jt9A4vBsIQR/Dd2CFbObrULjGkqSrnWjARFZBv3gZwmfGCtplEPeAv9buYKHAqebPtJNUww==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/spinbutton": "^3.6.3", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-stately/numberfield": "^3.9.1", - "@react-types/button": "^3.9.2", - "@react-types/numberfield": "^3.8.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/overlays": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.21.1.tgz", - "integrity": "sha512-djEBDF+TbIIOHWWNpdm19+z8xtY8U+T+wKVQg/UZ6oWnclSqSWeGl70vu73Cg4HVBJ4hKf1SRx4Z/RN6VvH4Yw==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/overlays": "^3.6.5", - "@react-types/button": "^3.9.2", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/progress": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.11.tgz", - "integrity": "sha512-RePHbS15/KYFiApYLdwazwvWKsB9q0Kn5DGCSb0hqCC+k2Eui8iVVOsegswiP+xqkk/TiUCIkBEw22W3Az4kTg==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-types/progress": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/radio": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.2.tgz", - "integrity": "sha512-CTUTR+qt3BLjmyQvKHZuVm+1kyvT72ZptOty++sowKXgJApTLdjq8so1IpaLAr8JIfzqD5I4tovsYwIQOX8log==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/radio": "^3.10.2", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/searchfield": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.7.3.tgz", - "integrity": "sha512-mnYI969R7tU3yMRIGmY1+peq7tmEW0W3MB/J2ImK36Obz/91tTtspHHEeFtPlQDLIyvVPB0Ucam4LIxCKPJm/Q==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/searchfield": "^3.5.1", - "@react-types/button": "^3.9.2", - "@react-types/searchfield": "^3.5.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/select": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.3.tgz", - "integrity": "sha512-9KCxI41FI+jTxEfUzRsMdJsZvjkCuuhL4UHig8MZXtXs0nsi7Ir3ezUDQ9m5MSG+ooBYM/CA9DyLDvo5Ioef+g==", - "dependencies": { - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/listbox": "^3.11.5", - "@react-aria/menu": "^3.13.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/select": "^3.6.2", - "@react-types/button": "^3.9.2", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/selection": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.17.5.tgz", - "integrity": "sha512-gO5jBUkc7WdkiFMlWt3x9pTSuj3Yeegsxfo44qU5NPlKrnGtPRZDWrlACNgkDHu645RNNPhlyoX0C+G8mUg1xA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/selection": "^3.14.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/separator": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.3.11.tgz", - "integrity": "sha512-UTla+3P2pELpP73WSfbwZgP1y1wODFBQbEOHnUxxO8ocyaUyQLJdvc07bBLLpPoyutlggRG0v9ACo0Rui7AjOg==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/slider": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.6.tgz", - "integrity": "sha512-ZeZhyHzhk9gxGuThPKgX2K3RKsxPxsFig1iYoJvqP8485NtHYQIPht2YcpEKA9siLxGF0DR9VCfouVhSoW0AEA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/slider": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/spinbutton": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.3.tgz", - "integrity": "sha512-IlfhRu/pc9zOt2C5zSEB7NmmzddvWisGx2iGzw8BwIKMD+cN3uy+Qwp+sG6Z/JzFEBN0F6Mxm3l5lhbiqjpICQ==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/ssr": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.2.tgz", - "integrity": "sha512-0gKkgDYdnq1w+ey8KzG9l+H5Z821qh9vVjztk55rUg71vTk/Eaebeir+WtzcLLwTjw3m/asIjx8Y59y1lJZhBw==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/switch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.2.tgz", - "integrity": "sha512-X5m/omyhXK+V/vhJFsHuRs2zmt9Asa/RuzlldbXnWohLdeuHMPgQnV8C9hg3f+sRi3sh9UUZ64H61pCtRoZNwg==", - "dependencies": { - "@react-aria/toggle": "^3.10.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/switch": "^3.5.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/table": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.13.5.tgz", - "integrity": "sha512-P2nHEDk2CCoEbMFKNCyBC9qvmv7F/IXARDt/7z/J4mKFgU2iNSK+/zw6yrb38q33Zlk8hDaqSYNxHlMrh+/1MQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/grid": "^3.8.8", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/collections": "^3.10.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/checkbox": "^3.7.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/tabs": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.8.5.tgz", - "integrity": "sha512-Jvt33/W+66n5oCxVwHAYarJ3Fit61vULiPcG7uTez0Mf11cq/C72wOrj+ZuNz6PTLTi2veBNQ7MauY72SnOjRg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/tabs": "^3.6.4", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/tag": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.3.3.tgz", - "integrity": "sha512-tlJD9qj1XcsPIZD7DVJ6tWv8t7Z87/8qkbRDx7ugNqeHso9z0WqH9ZkSt17OFUWE2IQIk3V8D3iBSOtmhXcZGQ==", - "dependencies": { - "@react-aria/gridlist": "^3.7.5", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/textfield": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.3.tgz", - "integrity": "sha512-wPSjj/mTABspYQdahg+l5YMtEQ3m5iPCTtb5g6nR1U1rzJkvS4i5Pug6PUXeLeMz2H3ToflPWGlNOqBioAFaOQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/toggle": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.2.tgz", - "integrity": "sha512-DgitscHWgI6IFgnvp2HcMpLGX/cAn+XX9kF5RJQbRQ9NqUgruU5cEEGSOLMrEJ6zXDa2xmOiQ+kINcyNhA+JLg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/tooltip": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.2.tgz", - "integrity": "sha512-6jXOSGPao3gPgUQWLbH2r/jxGMqIaIKrJgfwu9TQrh+UkwwiTYW20EpEDCYY2nRFlcoi7EYAiPDSEbHCwXS7Lg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/tooltip": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@react-types/tooltip": "^3.4.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/utils": { - "version": "3.23.2", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.23.2.tgz", - "integrity": "sha512-yznR9jJ0GG+YJvTMZxijQwVp+ahP66DY0apZf7X+dllyN+ByEDW+yaL1ewYPIpugxVzH5P8jhnBXsIyHKN411g==", - "dependencies": { - "@react-aria/ssr": "^3.9.2", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/virtualizer": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-3.9.10.tgz", - "integrity": "sha512-oDvGgexK6phB9XECWvAaKTq/nRKxHjmJSiZ2gv9j72JFoky4iVEHKAV6Qnar0VBcEpk16JcJVI/wf1xr9F+sjQ==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-aria/visually-hidden": { - "version": "3.8.10", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.10.tgz", - "integrity": "sha512-np8c4wxdbE7ZrMv/bnjwEfpX0/nkWy9sELEb0sK8n4+HJ+WycoXXrVxBUb9tXgL/GCx5ReeDQChjQWwajm/z3A==", - "dependencies": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/actionbar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/actionbar/-/actionbar-3.4.3.tgz", - "integrity": "sha512-LIg3a5z0bnFIkA1teaGUo/RdT4ZKPpUUF0RxPSm0nHWEzolSgD7BN4ijK5UxsDLA2cfNxv78s+vwHHKkKnsjSA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/actiongroup": "^3.10.3", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-types/actionbar": "^3.1.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/actiongroup": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/actiongroup/-/actiongroup-3.10.3.tgz", - "integrity": "sha512-VJASE+Y75Q885z9mx7CVELrX8PuZPbRnGFQnkoRnwZOTpMVZM6wQxA4IcAfsFVvaVIpHgBwtQTI1Ib+gAdtqgw==", - "dependencies": { - "@react-aria/actiongroup": "^3.7.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/actiongroup": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.2.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/avatar": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@react-spectrum/avatar/-/avatar-3.0.10.tgz", - "integrity": "sha512-PvsCTTcjNN7QSsa3iCc2UF5LeQCwFNaiR0/xvpk+/ViP1wVq+xFR1tfSrbAq7TAF1B3NQNfI+wepy2ol5l8X2g==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/avatar": "^3.0.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.2.1", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/badge": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/badge/-/badge-3.1.11.tgz", - "integrity": "sha512-YOuUBdWmqDQQrNI0uUpazWv/qYmFeDCsJVfQnl/K4J0A6/x7wuvz3iLPJKYuvmqG45/I+WXYFFaNuWOm4jCMzA==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/badge": "^3.1.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/breadcrumbs": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/breadcrumbs/-/breadcrumbs-3.9.5.tgz", - "integrity": "sha512-MV1b077f189biweuI8H1/D6F7Nwrao0phYzAKqjaTa8bhXf180ej3VhtEEhrSyEhhMrHG3pPzCCbNUn2VMXDlg==", - "dependencies": { - "@react-aria/breadcrumbs": "^3.5.11", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-types/breadcrumbs": "^3.7.3", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/button": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.16.2.tgz", - "integrity": "sha512-T0B4EUeAAfsocTMZpfKYIsPMIbuwjB1+hfbZyBBvWt8gerLiEiPAwt6+ga1YzV7C6aAz2FPeTT+zd/RxouDTPw==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/toggle": "^3.7.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/buttongroup": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/buttongroup/-/buttongroup-3.6.11.tgz", - "integrity": "sha512-yJv6yBZRLIPYdOAch4FVhdrI0xZz5PPuLiSA6HF/9LlIimALj0qBgCsbQPPThz/UV8+8Y1F76wQUsDcj+iub/A==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/buttongroup": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/calendar": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/calendar/-/calendar-3.4.7.tgz", - "integrity": "sha512-eBH8SAHHbhprbzk445wnNrW80bnm7Kv5rwmcDBd7/FGb5EhWnQgcQtBo3z79dpCXCl8UtpLsih3eDV9QQSjIDA==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-aria/calendar": "^3.5.6", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/calendar": "^3.4.4", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/checkbox": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/checkbox/-/checkbox-3.9.4.tgz", - "integrity": "sha512-PzUaSza13wh7YipWJLd/0q/nkAnEnxso7hdvMzDLYcw0iKhXNTM2fUoouUuY1SsbithlF2GS5REYyMpQ4FNO3g==", - "dependencies": { - "@react-aria/checkbox": "^3.14.1", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/checkbox": "^3.6.3", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/combobox": { - "version": "3.12.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.12.3.tgz", - "integrity": "sha512-hskwbdqXSSNEBRYTn3XESSnLGjELU4Lfht3GkZCvcQt02TVvu9NMETSkVe4lwCYV2hwXtPFGyl3jXvmA3MQurQ==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/combobox": "^3.8.4", - "@react-aria/dialog": "^3.5.12", - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/combobox": "^3.8.2", - "@react-types/button": "^3.9.2", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/contextualhelp": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@react-spectrum/contextualhelp/-/contextualhelp-3.6.9.tgz", - "integrity": "sha512-M0GUmZSLWm6pBAqy0Wwv1srlUPxBSvhQxTxvxtBcRSQwCIE1BcnQ6VaJxlx6n+Ocr14GwYH6MTpD1ZLMUvWeiA==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/utils": "^3.11.5", - "@react-types/contextualhelp": "^3.2.8", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/datepicker": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/datepicker/-/datepicker-3.9.4.tgz", - "integrity": "sha512-NyFIH68WqbGajBMe/UMxZDwNwaPL/AKJeLC9CY+GcLp4uncWjI42LdcoBPSQFoEJHLtJlLhx+r7qWO/PMOhg3Q==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-aria/datepicker": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/calendar": "^3.4.7", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-spectrum/view": "^3.6.8", - "@react-stately/datepicker": "^3.9.2", - "@react-types/datepicker": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/dialog": { - "version": "3.8.9", - "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.8.9.tgz", - "integrity": "sha512-CxyARi0qYOJi24YVqXZp7tHVreYQoYc7+VBZzcn8dTbIL1CSxcSGbRGXOpHiaAejZ9/3lPm/PTbrWrKUBLbckA==", - "dependencies": { - "@react-aria/dialog": "^3.5.12", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/buttongroup": "^3.6.11", - "@react-spectrum/divider": "^3.5.11", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-spectrum/view": "^3.6.8", - "@react-stately/overlays": "^3.6.5", - "@react-types/button": "^3.9.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/divider": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/divider/-/divider-3.5.11.tgz", - "integrity": "sha512-u6pyqBEc4JRpntF+KGuzmkzn+rJh04kfvjJ3Tx4F9IucaY8xCfglhunf6/yvRqQB0VaMdlxKy5BGhHgBJzUBiA==", - "dependencies": { - "@react-aria/separator": "^3.3.11", - "@react-spectrum/utils": "^3.11.5", - "@react-types/divider": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/dnd": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.3.8.tgz", - "integrity": "sha512-GfLqduIBpH2LArBsFpNa4i9cYeFg7lJpqwrLVJRl96DbhdXEcwt9a4tqvsegkqKn6KPHDPG7uTX0OqPoQJluXQ==", - "dependencies": { - "@react-aria/dnd": "^3.5.3", - "@react-stately/dnd": "^3.2.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/form": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/form/-/form-3.7.4.tgz", - "integrity": "sha512-xAS6vFM6dzKJc7gkC8Qy76VXLxZ9VqPZq4xxQeySvsO8pOujTFCL97QkS0mDjMOdpu72VDIF5JegK1Edlewr7g==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/form": "^3.0.1", - "@react-types/form": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/icon": { - "version": "3.7.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.7.11.tgz", - "integrity": "sha512-CTvbukq0g2oEjMqwMDx2qjfmFAv6u7/KwHRn9pGf6BUiU53Zlnl6Fjtm+c9cw8d9GcwlXyIWYBMIKyMm4+7g5A==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/illustratedmessage": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/illustratedmessage/-/illustratedmessage-3.4.11.tgz", - "integrity": "sha512-KJdcF+YY2rPZBTP5P38MEQBoNLglP1QUaCmbPH8a5dSZ+wj5EsOgseFa0fxAEZ23q9Wo9Fv9P9niRq0/479KTQ==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/illustratedmessage": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/image": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.4.11.tgz", - "integrity": "sha512-pzYubgkkC5Ic3eKrNlPUFPbVUTUvZ7DObmGpQvmgmG0xipmUAscYKFEBr4LhCsy/29Sm7Tz4zsGUdA2vM5eA8g==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/image": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/inlinealert": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/inlinealert/-/inlinealert-3.2.3.tgz", - "integrity": "sha512-NX1bZvmI3EOBTRWaT4dzVyFxAuePPbXASZeJ4/wAnhvWDN65rKrctn+VZW3x6ZQoZ/WkQl4qW1txjVcLHkRBWg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/label": { - "version": "3.16.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/label/-/label-3.16.4.tgz", - "integrity": "sha512-38hk6wqUwDCyYeScF1NIaxlPaltkTRTv6/XtIkm528eilLyOMxtMGXcP0Bl7nv0oDLxDZSm9TkgXjN24SyY0KQ==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/label": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/labeledvalue": { - "version": "3.1.12", - "resolved": "https://registry.npmjs.org/@react-spectrum/labeledvalue/-/labeledvalue-3.1.12.tgz", - "integrity": "sha512-Pa/eYf9FKr8QF7xKLoCv6a+Ezudfi7N1jFJLZ71zaVcDOcNByYKiy1lAquwLB+36PpsWt/EwKLE2/U7OuiWyfQ==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/layout": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.6.3.tgz", - "integrity": "sha512-JsG4KclsgzKfRbe+PyMo8QryG5SmwYlym8JRuSLmZ+nfIKhESVbqSJE3IXblmDDWUb0rabQhSvW4p5h5nOil4w==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/layout": "^3.3.13", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/link": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.6.5.tgz", - "integrity": "sha512-pnPIzkM0/Nxm460dHuR195bD0BAaIvasqW8TqUFT0Igxfw0NFYyWZr5d4OkHKyypyUoQKaobpOgeAJHXxPtzTg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/link": "^3.6.5", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/link": "^3.5.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/list": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/list/-/list-3.7.8.tgz", - "integrity": "sha512-w+fxiX+wz8X0bASAtKsf/myMrFI1Z0OXamttPRAJS5Ene6x09kf+K2djpZO1t9nT70IPnCcthhkMaCHk6eyUIw==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/gridlist": "^3.7.5", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/layout": "^3.13.7", - "@react-stately/list": "^3.10.3", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0", - "react-transition-group": "^4.4.5" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.2.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/listbox": { - "version": "3.12.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/listbox/-/listbox-3.12.7.tgz", - "integrity": "sha512-cFUIKPRtz5ViQYS0vO+oQmiFmbJjA04GCpyZKnBJAEonNDiY1RIHfFg/53Mr8IwstwNvGbxHVjMilPy6DtWDjA==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/listbox": "^3.11.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/layout": "^3.13.7", - "@react-stately/list": "^3.10.3", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/listbox": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.2.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/menu": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/@react-spectrum/menu/-/menu-3.18.1.tgz", - "integrity": "sha512-3KutRgn9/uYcRH2IzUT6qiPlS9SK9+4R2W4Z1Ox27lQ30ZgC68kE37uOwZX10bDgTOWV/COYvm6qBBScZ+VFUg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/menu": "^3.13.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/separator": "^3.3.11", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/menu": "^3.6.1", - "@react-stately/overlays": "^3.6.5", - "@react-stately/tree": "^3.7.6", - "@react-types/menu": "^3.9.7", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/meter": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/meter/-/meter-3.4.11.tgz", - "integrity": "sha512-OBYIHnumb2cfeT48py6Qtsfs7m9DmddaHSCVB8MXNnn3fzrpPr5t4Wz2dYUWXnkPPC11D8WarjJ+6EgrNwNvdQ==", - "dependencies": { - "@react-aria/meter": "^3.4.11", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/utils": "^3.11.5", - "@react-types/meter": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/numberfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-spectrum/numberfield/-/numberfield-3.9.1.tgz", - "integrity": "sha512-s6QNRncVrVjOYihKeyQ8fkdD1YJTqYttog/Rj96rD66vfUlI0bTr3q6mK6hZpU1YM29SL24BUCn6NdqOxqVeiQ==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/numberfield": "^3.11.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/numberfield": "^3.9.1", - "@react-types/button": "^3.9.2", - "@react-types/numberfield": "^3.8.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/overlays": { - "version": "5.5.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-5.5.5.tgz", - "integrity": "sha512-rFwbWuagFo/Tuo45UE8KHUMz1Li1j5CNzsZdIfKZydHd0u4t69yR8bCn3pDUNIYEwclrLGUD2XFJaN9jYq1H4A==", - "dependencies": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/overlays": "^3.6.5", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "react-transition-group": "^4.4.5" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/picker": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/picker/-/picker-3.14.3.tgz", - "integrity": "sha512-xaewWrOtGt/dQbiSwZe9UYH58berRlxyqIeAZQ7+FCRGoG/gl1p+l+7rfNKFS5OjVy6Adh6BZrrY6A99j4PbQA==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/select": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/select": "^3.6.2", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.1.4", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/progress": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/progress/-/progress-3.7.5.tgz", - "integrity": "sha512-ku+RTtgXWaxUwjopzWpvgNxJsn/gohMWO4len2K2yDQp6b4SY67ojRFBwyIDZ9Oi9RPTAvZOc3wJu5QPftfVcg==", - "dependencies": { - "@react-aria/progress": "^3.4.11", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/progress": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/provider": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.9.5.tgz", - "integrity": "sha512-FE5RQC1EwMMXUAtslekheyA0IrXSev4flaY4CT3exC/ohB1PuiXUDg4qqaHos2vVhsdUPNq5SeathtHEr8ryJA==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/provider": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/radio": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.7.4.tgz", - "integrity": "sha512-FmWcJlOeo5KsbWYpnEtoB9oC+haUeowfRda8dq0kBptR5WlagWD4Arez55/hjXCHLqQZ4r6vY6rYgMya2xiddQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/radio": "^3.10.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/radio": "^3.10.2", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/searchfield": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/searchfield/-/searchfield-3.8.4.tgz", - "integrity": "sha512-O8pM9dGlRZoFhNtZLVFpIOHM2+sy5/t23Lv0z0jXvVYmzHOaib8wPPJELnPRsDUIylqpnVxfiYSz051Gx5Zq8g==", - "dependencies": { - "@react-aria/searchfield": "^3.7.3", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/searchfield": "^3.5.1", - "@react-types/searchfield": "^3.5.3", - "@react-types/textfield": "^3.9.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/slider": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/slider/-/slider-3.6.7.tgz", - "integrity": "sha512-mhTG+sGZwQfNW9z+uzvmTQzzV2Qzcack3qYSw8HXEfd4BOjkgwTinS9aN8MLv147TF5RMvI0y3dmNirAoDi+yQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/slider": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/slider": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/statuslight": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/statuslight/-/statuslight-3.5.11.tgz", - "integrity": "sha512-zbIrI8rPLmMu3Jnl2fpA/kb0V3azdRBsv1KfhGNQkHM17Gy6ufrzzzh6cmnvQh8FREllMcIjC4eaBkYHFArtyg==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/statuslight": "^3.3.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/switch": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/switch/-/switch-3.5.3.tgz", - "integrity": "sha512-NJMk/b/Lrmgl0RB9QPF0wSuD5CgTPODaLuZD1uxXAcESKFVdN58eW8CU99e+ZC0tHgFofroTpEF073Yiz2LnkQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/switch": "^3.6.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/toggle": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@react-types/switch": "^3.5.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/table": { - "version": "3.12.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/table/-/table-3.12.8.tgz", - "integrity": "sha512-4JyDlvKljhvqqUHYk6X5JjmxXy03IZergKTu//MbELW4v9bwiwf94Ap8zTcUZPh/pcw7IQhpUDLPAi6RFBAUpA==", - "dependencies": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/table": "^3.13.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/layout": "^3.13.7", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/tabs": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/tabs/-/tabs-3.8.8.tgz", - "integrity": "sha512-oBXKLD7cyCLQV3SUXIjEn9ttdyoGwpiTUfM3DNY3ki097pRdoBgMxPk1Sp7jKQs6tRUg4osK53iOG4LvEs6eTg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/tabs": "^3.8.5", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/picker": "^3.14.3", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-stately/tabs": "^3.6.4", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/tag": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/tag/-/tag-3.2.4.tgz", - "integrity": "sha512-d6cqX+n10pokLsBGEC/ksLLHM3vBoR7zc0AAlBAUrBN6VMBWUQRyazDHeXPLLZs/S4+ICL80UXRf8NwWfA7Efg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/tag": "^3.3.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/text": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/text/-/text-3.5.3.tgz", - "integrity": "sha512-28WiSnIPm8WC4JOsHPLudCGjPc3tk7zKm3L+8xqzr374j1+HdMGivrhVOf1t4jbUMcT5dOxR7huuDe7E97qe5A==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/text": "^3.3.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/textfield": { - "version": "3.11.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.11.4.tgz", - "integrity": "sha512-J70Q1ddpX0v+R7x8w5DaJLixnp5mBWm39lUnekiahEUuA420U1eZCW80GiHXFS/GO6wpwjIZpWHcpBQuF/EDCQ==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/theme-dark": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-dark/-/theme-dark-3.5.8.tgz", - "integrity": "sha512-ep78rIrgrXu5MHe6LQAiK8+Us/4PoeHcixm+xFJk8I7AP+6wrh+9+QSWdIi3/NJY9fIjXsMm+VyehFVtEq8PAg==", - "dependencies": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/theme-default": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.5.8.tgz", - "integrity": "sha512-vZ9GH4l6H2Ks/PD15k2mx6XgA1EYKxQbB+ai9UZ3ALXf0KYlVIFSoHk4Vp3hP16D12KsuB7V0Gk8SvHlsRNo+Q==", - "dependencies": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/theme-light": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-light/-/theme-light-3.4.8.tgz", - "integrity": "sha512-6kjtQ6IGrh2E0WJKQ9eAR5yhcWFI2mNvd+wi8Uy3rtRdBB1L3iSfr2RmgxgcTCl50DnKqmcFsHbHaKMMKqhkaQ==", - "dependencies": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/tooltip": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/tooltip/-/tooltip-3.6.5.tgz", - "integrity": "sha512-TnVUX8gNx65wOfHE5UIzuzpC4kUd6RuFeDykcu+3OM+fsK6qvDYg2MQq/3UiZHFI0ZHhX89yPf4uLaP0hcT8sg==", - "dependencies": { - "@react-aria/focus": "^3.16.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/tooltip": "^3.7.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/tooltip": "^3.4.7", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@react-types/tooltip": "^3.4.7", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/utils": { - "version": "3.11.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.11.5.tgz", - "integrity": "sha512-V4heIuCBXhYOP3om5B0KNs2+RK6RKwAhHVjjJZ3RBeNqsF9UDxv+D/+dk3sAM2dsM1F8l38BNXQMMWXWW/BZYA==", - "dependencies": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/view": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.6.8.tgz", - "integrity": "sha512-jAKh22xUjFY5sxPTtLc53fw3C+dki+DEDxArFK06/tF+ntV6lDat91j+YedcOtDT2p7C2PSfaToX5moyEAQ+NA==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/view": "^3.4.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-spectrum/well": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.4.11.tgz", - "integrity": "sha512-oCQqKKcKXNoF18dNz5GHBdSXrNPsVH5jsH17suqQevzDQkMN2X02Ov0oyOYMAUQM0xSE3ensLdjvLzUL0yl36g==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/well": "^3.3.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/calendar": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.4.4.tgz", - "integrity": "sha512-f9ZOd096gGGD+3LmU1gkmfqytGyQtrgi+Qjn+70GbM2Jy65pwOR4I9YrobbmeAFov5Tff13mQEa0yqWvbcDLZQ==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-stately/utils": "^3.9.1", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/checkbox": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.3.tgz", - "integrity": "sha512-hWp0GXVbMI4sS2NbBjWgOnHNrRqSV4jeftP8zc5JsIYRmrWBUZitxluB34QuVPzrBO29bGsF0GTArSiQZt6BWw==", - "dependencies": { - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/collections": { - "version": "3.10.5", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.5.tgz", - "integrity": "sha512-k8Q29Nnvb7iAia1QvTanZsrWP2aqVNBy/1SlE6kLL6vDqtKZC+Esd1SDLHRmIcYIp5aTdfwIGd0NuiRQA7a81Q==", - "dependencies": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/combobox": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.2.tgz", - "integrity": "sha512-f+IHuFW848VoMbvTfSakn2WIh2urDxO355LrKxnisXPCkpQHpq3lvT2mJtKJwkPxjAy7xPjpV8ejgga2R6p53Q==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/form": "^3.0.1", - "@react-stately/list": "^3.10.3", - "@react-stately/overlays": "^3.6.5", - "@react-stately/select": "^3.6.2", - "@react-stately/utils": "^3.9.1", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/data": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.2.tgz", - "integrity": "sha512-yhK2upk2WbJeiLBRWHrh/4G2CvmmozCzoivLaRAPYu53m1J3MyzVGCLJgnZMbMZvAbNcYWZK6IzO6VqZ2y1fOw==", - "dependencies": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/datepicker": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.2.tgz", - "integrity": "sha512-Z6FrK6Af7R5BizqHhJFCj3Hn32mg5iLSDdEgFQAuO043guOXUKFUAnbxfbQUjL6PGE6QwWMfQD7PPGebHn9Ifw==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@internationalized/string": "^3.2.1", - "@react-stately/form": "^3.0.1", - "@react-stately/overlays": "^3.6.5", - "@react-stately/utils": "^3.9.1", - "@react-types/datepicker": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/dnd": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.2.8.tgz", - "integrity": "sha512-oSo+2Bzum3Q1/d+3FuaDmpVHqqBB004tycuQDDFtad3N1BKm+fNfmslRK1ioLkPLK4sm1130V+BZBY3JXLe80A==", - "dependencies": { - "@react-stately/selection": "^3.14.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/flags": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.1.tgz", - "integrity": "sha512-h5PcDMj54aipQNO18ig/IMI1kzPwcvSwVq5M6Ib6XE1WIkOH0dIuW2eADdAOhcGi3KXJtXVdD29zh0Eox1TKgQ==", - "dependencies": { - "@swc/helpers": "^0.4.14" - } - }, - "node_modules/@react-stately/flags/node_modules/@swc/helpers": { - "version": "0.4.36", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz", - "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==", - "dependencies": { - "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14", - "tslib": "^2.4.0" - } - }, - "node_modules/@react-stately/form": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.1.tgz", - "integrity": "sha512-T1Ul2Ou0uE/S4ECLcGKa0OfXjffdjEHfUFZAk7OZl0Mqq/F7dl5WpoLWJ4d4IyvZzGO6anFNenP+vODWbrF3NA==", - "dependencies": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/grid": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.5.tgz", - "integrity": "sha512-KCzi0x0p1ZKK+OptonvJqMbn6Vlgo6GfOIlgcDd0dNYDP8TJ+3QFJAFre5mCr7Fubx7LcAOio4Rij0l/R8fkXQ==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/layout": { - "version": "3.13.7", - "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.13.7.tgz", - "integrity": "sha512-9HH/aSxpEHwUW1T1vGN3+iznkAXQUzoMrsoEepNzesOsUGSm/MFZmEk4+9cdPA7y3ou2eHpGNUB1YIDDVptElg==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/list": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.3.tgz", - "integrity": "sha512-Ul8el0tQy2Ucl3qMQ0fiqdJ874W1ZNjURVSgSxN+pGwVLNBVRjd6Fl7YwZFCXER2YOlzkwg+Zqozf/ZlS0EdXA==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/menu": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.6.1.tgz", - "integrity": "sha512-3v0vkTm/kInuuG8jG7jbxXDBnMQcoDZKWvYsBQq7+POt0LmijbLdbdZPBoz9TkZ3eo/OoP194LLHOaFTQyHhlw==", - "dependencies": { - "@react-stately/overlays": "^3.6.5", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/numberfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.1.tgz", - "integrity": "sha512-btBIcBEfSVCUm6NwJrMrMygoIu/fQGazzD0RhF7PNsfvkFiWn+TSOyQqSXcsUJVOnBfoS/dVWj6r57KA7zl3FA==", - "dependencies": { - "@internationalized/number": "^3.5.1", - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/numberfield": "^3.8.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/overlays": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.5.tgz", - "integrity": "sha512-U4rCFj6TPJPXLUvYXAcvh+yP/CO2W+7f0IuqP7ZZGE+Osk9qFkT+zRK5/6ayhBDFpmueNfjIEAzT9gYPQwNHFw==", - "dependencies": { - "@react-stately/utils": "^3.9.1", - "@react-types/overlays": "^3.8.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/radio": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.2.tgz", - "integrity": "sha512-JW5ZWiNMKcZvMTsuPeWJQLHXD5rlqy7Qk6fwUx/ZgeibvMBW/NnW19mm2+IMinzmbtERXvR6nsiA837qI+4dew==", - "dependencies": { - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/searchfield": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.1.tgz", - "integrity": "sha512-9A8Wghx1avRHhMpNH1Nj+jFfiF1bhsff2GEC5PZgWYzhCykw3G5bywn3JAuUS4kh7Vpqhbu4KpHAhmWPSv4B/Q==", - "dependencies": { - "@react-stately/utils": "^3.9.1", - "@react-types/searchfield": "^3.5.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/select": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.2.tgz", - "integrity": "sha512-duOxdHKol93h6Ew6fap6Amz+zngoERKZLSKVm/8I8uaBgkoBhEeTFv7mlpHTgINxymMw3mMrvy6GL/gfKFwkqg==", - "dependencies": { - "@react-stately/form": "^3.0.1", - "@react-stately/list": "^3.10.3", - "@react-stately/overlays": "^3.6.5", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/selection": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.14.3.tgz", - "integrity": "sha512-d/t0rIWieqQ7wjLoMoWnuHEUSMoVXxkPBFuSlJF3F16289FiQ+b8aeKFDzFTYN7fFD8rkZTnpuE4Tcxg3TmA+w==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/slider": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.2.tgz", - "integrity": "sha512-ntH3NLRG+AwVC7q4Dx9DcmMkMh9vmHjHNXAgaoqNjhvwfSIae7sQ69CkVe6XeJjIBy6LlH81Kgapz+ABe5a1ZA==", - "dependencies": { - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/table": { - "version": "3.11.6", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.6.tgz", - "integrity": "sha512-34YsfOILXusj3p6QNcKEaDWVORhM6WEhwPSLCZlkwAJvkxuRQFdih5rQKoIDc0uV5aZsB6bYBqiFhnjY0VERhw==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/grid": "^3.8.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/tabs": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.4.tgz", - "integrity": "sha512-WZJgMBqzLgN88RN8AxhY4aH1+I+4w1qQA0Lh3LRSDegaytd+NHixCWaP3IPjePgCB5N1UsPe96Xglw75zjHmDg==", - "dependencies": { - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/toggle": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.2.tgz", - "integrity": "sha512-SHCF2btcoK57c4lyhucRbyPBAFpp0Pdp0vcPdn3hUgqbu6e5gE0CwG/mgFmZRAQoc7PRc7XifL0uNw8diJJI0Q==", - "dependencies": { - "@react-stately/utils": "^3.9.1", - "@react-types/checkbox": "^3.7.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/tooltip": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.7.tgz", - "integrity": "sha512-ACtRgBQ8rphBtsUaaxvEAM0HHN9PvMuyvL0vUHd7jvBDCVZJ6it1BKu9SBKjekBkoBOw9nemtkplh9R2CA6V8Q==", - "dependencies": { - "@react-stately/overlays": "^3.6.5", - "@react-types/tooltip": "^3.4.7", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/tree": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.7.6.tgz", - "integrity": "sha512-y8KvEoZX6+YvqjNCVGS3zA/BKw4D3XrUtUKIDme3gu5Mn6z97u+hUXKdXVCniZR7yvV3fHAIXwE5V2K8Oit4aw==", - "dependencies": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/utils": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.9.1.tgz", - "integrity": "sha512-yzw75GE0iUWiyps02BOAPTrybcsMIxEJlzXqtvllAb01O9uX5n0i3X+u2eCpj2UoDF4zS08Ps0jPgWxg8xEYtA==", - "dependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-stately/virtualizer": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.6.8.tgz", - "integrity": "sha512-Pf06ihTwExRJltGhi72tmLIo0pcjkL55nu7ifMafAAdxZK4ONxRLSuUjjpvYf/0Rs92xRZy2t/XmHREnfirdkQ==", - "dependencies": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/actionbar": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@react-types/actionbar/-/actionbar-3.1.5.tgz", - "integrity": "sha512-Z3hfIoaOaW8wJxQm1NyWVvSftpNDYv9iWqpEWBEdhxuqsUkOVszZ7KcNaF4qsm4bJIcJWn3FNKhaTKGwISZcdQ==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/actiongroup": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/actiongroup/-/actiongroup-3.4.7.tgz", - "integrity": "sha512-VsyHn6mGqEHKEIGFiHTq7rSuzuQjGVZGtnhh/9jQXW6zoSJyoM4fAnHEt+RE92NdiRv5e3+OzzrwG0TZsi87cQ==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/avatar": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@react-types/avatar/-/avatar-3.0.5.tgz", - "integrity": "sha512-/hM/BnRoUhusT16G4hf2hfe4FocxaM5H/a7aetUrmlr9e5ppX3n0VsU0btIwxdh+aJL8u2BBt2scoiJaujQPNg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/badge": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@react-types/badge/-/badge-3.1.7.tgz", - "integrity": "sha512-2Q5W9gleI83WpL1i6qPdcPC8l1V7364dpkNLcMi9DFmM2l69+QcPvSWVQMQLevmRo4cnaQ+TYsOgYv8I4rRJCg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/breadcrumbs": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.3.tgz", - "integrity": "sha512-eFto/+6J+JR58vThNcALZRA1OlqlG3GzQ/bq3q8IrrkOZcrfbEJJCWit/+53Ia98siJKuF4OJHnotxIVIz5I3w==", - "dependencies": { - "@react-types/link": "^3.5.3", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/button": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.2.tgz", - "integrity": "sha512-EnPTkGHZRtiwAoJy5q9lDjoG30bEzA/qnvKG29VVXKYAGeqY2IlFs1ypmU+z1X/CpJgPcG3I5cakM7yTVm3pSg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/buttongroup": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/buttongroup/-/buttongroup-3.3.7.tgz", - "integrity": "sha512-EZ/1k66GtDtWfE/udNRz2UBbt4YJumeyW1SGcZEO3jketvpms58WapLsMkCezlLz7WYaa5ADV0kU8v88APjI6g==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/calendar": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.4.tgz", - "integrity": "sha512-hV1Thmb/AES5OmfPvvmyjSkmsEULjiDfA7Yyy70L/YKuSNKb7Su+Bf2VnZuDW3ec+GxO4JJNlpJ0AkbphWBvcg==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/checkbox": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.7.1.tgz", - "integrity": "sha512-kuGqjQFex0As/3gfWyk+e9njCcad/ZdnYLLiNvhlk15730xfa0MmnOdpqo9jfuFSXBjOcpxoofvEhvrRMtEdUA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/combobox": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.10.1.tgz", - "integrity": "sha512-XMno1rgVRNta49vf5nV7VJpVSVAV20tt79t618gG1qRKH5Kt2Cy8lz2fQ5vHG6UTv/6jUOvU8g5Pc93sLaTmoA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/contextualhelp": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@react-types/contextualhelp/-/contextualhelp-3.2.8.tgz", - "integrity": "sha512-Yb0zOqkWfjKCO+gpfVj69CfWPhVq6RTgwLBV47ntIlHitpbh7RDYwDVulPyaVoopPbNSFUoV4YIJZPlOgpbKjg==", - "dependencies": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/datepicker": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.2.tgz", - "integrity": "sha512-zThqFAdhQL1dqyVDsDSSTdfCjoD6634eyg/B0ZJfQxcLUR/5pch3v/gxBhbyCVDGMNHRWUWIJvY9DVOepuoSug==", - "dependencies": { - "@internationalized/date": "^3.5.2", - "@react-types/calendar": "^3.4.4", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/dialog": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.8.tgz", - "integrity": "sha512-RX8JsMvty8ADHRqVEkppoynXLtN4IzUh8d5z88UEBbcvWKlHfd6bOBQjQcBH3AUue5wjfpPIt6brw2VzgBY/3Q==", - "dependencies": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/divider": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/divider/-/divider-3.3.7.tgz", - "integrity": "sha512-enAlzHVwzqBPpmE+/VAO5IGVPxPrscHkdbnEkTqW9JQeMUGXd4L0TdHOGd+vtcA+gILJMnhUfT3XE4wQ4HlpVw==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/form": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.2.tgz", - "integrity": "sha512-6/isEJY4PsYoHdMaGQtqQyquXGTwB1FqCBOPKQjI/vBGWG3fL7FGfWm4Z62eTbCH4Xyv3FZuNywlT8UjPMQyKA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/grid": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.4.tgz", - "integrity": "sha512-sDVoyQcH7MoGdx5nBi5ZOU/mVFBt9YTxhvr0PZ97dMdEHZtJC1w9SuezwWS34f50yb8YAXQRTICbZYcK4bAlDA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/illustratedmessage": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/illustratedmessage/-/illustratedmessage-3.3.7.tgz", - "integrity": "sha512-r8WAv+w0WQSDRmDmG6jL0dXK8MjMr/lr2gBpVYVvC45Gu+fqf4VL+4zphgwASRysWclFbjQhgkgC7OEXk3GUKg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/image": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/image/-/image-3.3.7.tgz", - "integrity": "sha512-ty6wuan6p3Z8OzSrbjtL2k8yXHW+n0qiYKyqKpSA8TcRLDLhtvRceI7X12RuDfbAiEN6/zfLCuF47O3y7OeKug==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/label": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.9.1.tgz", - "integrity": "sha512-0N/UOhwrKjE9VjVbUoJCsH5UwTzSu3d5B3xtvhH8YFqSbJCI+HMKILby8i8ys55RA9fQDMScIjCJafEFWW7UWA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/layout": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@react-types/layout/-/layout-3.3.13.tgz", - "integrity": "sha512-Y3pmSsfDB+bV299F5SJannR6m/XM5IyfdqjPS0/Qx8KBBf0A3UWfL6qUr4BMEAKsEJuIXA7zT3RSo/AbGSbSyg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/link": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.3.tgz", - "integrity": "sha512-yVafjW3IejyVnK3oMBNjFABCGG6J27EUG8rvkaGaI1uB6srGUEhpJ97XLv11aj1QkXHBy3VGXqxEV3S7wn4HTw==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/listbox": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.7.tgz", - "integrity": "sha512-68y5H9CVSPFiwO6MOFxTbry9JQMK/Lb1M9i3M8TDyq1AbJxBPpgAvJ9RaqIMCucsnqCzpY/zA3D/X417zByL1w==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/menu": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.7.tgz", - "integrity": "sha512-K6KhloJVoGsqwkdeez72fkNI9dfrmLI/sNrB4XuOKo2crDQ/eyZYWyJmzz8giz/tHME9w774k487rVoefoFh5w==", - "dependencies": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/meter": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.3.7.tgz", - "integrity": "sha512-p+YJ0+Lpn5MLmlbFZbDH1P0ILv1+AuMcUbxLcXMIVMGn7o0FO7eVZnFuq76D+qTDm9all+TRLJix7bctOrP+5Q==", - "dependencies": { - "@react-types/progress": "^3.5.2" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/numberfield": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.1.tgz", - "integrity": "sha512-GaCjLQgXUGCt40SLjKk3/COMWFlN2vV/3Xs3VSLAEdFZpk99b+Ik1oR21+7ZP5/iMHuQDc1MJRWdFfIjxCvVDQ==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/overlays": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.5.tgz", - "integrity": "sha512-4D7EEBQigD/m8hE68Ys8eloyyZFHHduqykSIgINJ0edmo0jygRbWlTwuhWFR9USgSP4dK54duN0Mvq0m4HEVEw==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/progress": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.2.tgz", - "integrity": "sha512-aQql22kusEudsHwDEzq6y/Mh29AM+ftRDKdS5E5g4MkCY5J4FMbOYco1T5So83NIvvG9+eKcxPoJUMjQQACAyA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/provider": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.7.2.tgz", - "integrity": "sha512-nzxbfuh/ZJXt/blGAiRPkxi9jAUnnBkHcvljqdfizfLJlN5epaYYaTWNUSde27Oe1tAnpm2WDlLQo5+0C6C0FA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/radio": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.7.1.tgz", - "integrity": "sha512-Zut3rN1odIUBLZdijeyou+UqsLeRE76d9A+npykYGu29ndqmo3w4sLn8QeQcdj1IR71ZnG0pW2Y2BazhK5XrrQ==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/searchfield": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.3.tgz", - "integrity": "sha512-gBfsT1WpY8UIb74yyYmnjiHpVasph2mdmGj9i8cGF2HUYwx5p+Fr85mtCGDph0uirvRoM5ExMp4snD+ueNAVCg==", - "dependencies": { - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/select": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.2.tgz", - "integrity": "sha512-fGFrunednY3Pq/BBwVOf87Fsuyo/SlevL0wFIE9OOl2V5NXVaTY7/7RYA8hIOHPzmvsMbndy419BEudiNGhv4A==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/shared": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.22.1.tgz", - "integrity": "sha512-PCpa+Vo6BKnRMuOEzy5zAZ3/H5tnQg1e80khMhK2xys0j6ZqzkgQC+fHMNZ7VDFNLqqNMj/o0eVeSBDh2POjkw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/slider": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.1.tgz", - "integrity": "sha512-FKO3YZYdrBs00XbBW5acP+0L1cCdevl/uRJiXbnLpGysO5PrSFIRS7Wlv4M7ztf6gT7b1Ao4FNC9crbxBr6BzA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/statuslight": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/statuslight/-/statuslight-3.3.7.tgz", - "integrity": "sha512-PFctvM8NJFENNWHydEK4pCMXKmjrHB2PJ/fdJ2Bi6ABRcTBXzi/qgUUdbeTG7STXlA+P2/xNgKtHheus8K+K3g==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/switch": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.1.tgz", - "integrity": "sha512-2LFEKMGeufqyYmeN/5dtkDkCPG6x9O4eu6aaBaJmPGon7C/l3yiFEgRue6oCUYc1HixR7Qlp0sPxk0tQeWzrSg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/table": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.3.tgz", - "integrity": "sha512-Hs/pMbxJdga2zBol4H5pV1FVIiRjCuSTXst6idJjkctanTexR4xkyrtBwl+rdLNoGwQ2pGii49vgklc5bFK7zA==", - "dependencies": { - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/tabs": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.5.tgz", - "integrity": "sha512-6NTSZBOWekCtApdZrhu5tHhE/8q52oVohQN+J5T7shAXd6ZAtu8PABVR/nH4BWucc8FL0OUajRqunqzQMU13gA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/text": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/text/-/text-3.3.7.tgz", - "integrity": "sha512-URkJHS314ppyq6JjMPZbg/P4j9vey0H/Lc2+YB96qIcebBKy8iNN0IlwRsLFXimlGDp7dgn6tv+51bdJh+CRCQ==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/textfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.1.tgz", - "integrity": "sha512-JBHY9M2CkL6xFaGSfWmUJVu3tEK09FaeB1dU3IEh6P41xxbFnPakYHSSAdnwMXBtXPoSHIVsUBickW/pjgfe5g==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/tooltip": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.7.tgz", - "integrity": "sha512-rV4HZRQxLRNhe24yATOxnFQtGRUmsR7mqxMupXCmd1vrw8h+rdKlQv1zW2q8nALAKNmnRXZJHxYQ1SFzb98fgg==", - "dependencies": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/view": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/view/-/view-3.4.7.tgz", - "integrity": "sha512-AcgLrlaZkCXH+pD4I7pTPB52Rstg1M+V2yKPP29lnqg/rOjsqLjN/gLLy/EBi97cQ+TbDbg0854vcxAKs6qclg==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@react-types/well": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/well/-/well-3.3.7.tgz", - "integrity": "sha512-BaZ4utlEeweD8+mAYdqwq2bS8aDrXqi4xFPdfqZpHcpbSJjmGBCCS+GU2y/N2Yl1aODu5l0+gcrvxxr63bV+GA==", - "dependencies": { - "@react-types/shared": "^3.22.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@spectrum-icons/ui": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.6.5.tgz", - "integrity": "sha512-L1QISmlzoA4xuBdMpWT2vkR7NDxuROjSwC5BxS8R2SAZR4oKs0dPfODaw2uju6D/xqJIqVrSM6yQDhV51lPKyA==", - "dependencies": { - "@adobe/react-spectrum-ui": "1.2.0", - "@react-spectrum/icon": "^3.7.11", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@spectrum-icons/ui/node_modules/@adobe/react-spectrum-ui": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-ui/-/react-spectrum-ui-1.2.0.tgz", - "integrity": "sha512-os3EdjfyJbrukLcZ5uYtdFRiDlLB3zq2JoXp19J/IDpZ8btibJeRZYSwjL+LscEiT2pOYaF2McMQdkZTIwnllw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@spectrum-icons/workflow": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.2.10.tgz", - "integrity": "sha512-CaDYaGMe2bYDozzHztrgEy0tljQWn4OBE9hJC2fAM5cMTve4viiWhcmHYYWFv3MZQyavHy1UwCL1jlXg7bK3PA==", - "dependencies": { - "@adobe/react-spectrum-workflow": "2.3.4", - "@react-spectrum/icon": "^3.7.11", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "@react-spectrum/provider": "^3.0.0", - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@spectrum-icons/workflow/node_modules/@adobe/react-spectrum-workflow": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-workflow/-/react-spectrum-workflow-2.3.4.tgz", - "integrity": "sha512-XPLzIBl58HdLF9WIPB7RDAvVXvCE3SjG+HaWQhW2P9MnxSz1DEA9O7mlTlYblJkMbfk10T/+RFaSupc1yoN+TA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" - } - }, - "node_modules/@swc/core": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.17.tgz", - "integrity": "sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@swc/counter": "^0.1.2", - "@swc/types": "^0.1.5" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.4.17", - "@swc/core-darwin-x64": "1.4.17", - "@swc/core-linux-arm-gnueabihf": "1.4.17", - "@swc/core-linux-arm64-gnu": "1.4.17", - "@swc/core-linux-arm64-musl": "1.4.17", - "@swc/core-linux-x64-gnu": "1.4.17", - "@swc/core-linux-x64-musl": "1.4.17", - "@swc/core-win32-arm64-msvc": "1.4.17", - "@swc/core-win32-ia32-msvc": "1.4.17", - "@swc/core-win32-x64-msvc": "1.4.17" - }, - "peerDependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.17.tgz", - "integrity": "sha512-HVl+W4LezoqHBAYg2JCqR+s9ife9yPfgWSj37iIawLWzOmuuJ7jVdIB7Ee2B75bEisSEKyxRlTl6Y1Oq3owBgw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.17.tgz", - "integrity": "sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.17.tgz", - "integrity": "sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.17.tgz", - "integrity": "sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.17.tgz", - "integrity": "sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.17.tgz", - "integrity": "sha512-vRDFATL1oN5oZMImkwbgSHEkp8xG1ofEASBypze01W1Tqto8t+yo6gsp69wzCZBlxldsvPpvFZW55Jq0Rn+UnA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.17.tgz", - "integrity": "sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.17.tgz", - "integrity": "sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.17.tgz", - "integrity": "sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.17.tgz", - "integrity": "sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true - }, - "node_modules/@swc/helpers": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz", - "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@swc/types": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz", - "integrity": "sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==", - "dev": true, - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@turf/area": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", - "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/bbox": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", - "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/centroid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", - "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/helpers": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", - "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/meta": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", - "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" - }, - "node_modules/@types/react": { - "version": "17.0.80", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.80.tgz", - "integrity": "sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "^0.16", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz", - "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==", - "dev": true, - "dependencies": { - "@types/react": "^17" - } - }, - "node_modules/@types/react-redux": { - "version": "7.1.33", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz", - "integrity": "sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==", - "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" - }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.6.0.tgz", - "integrity": "sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==", - "dev": true, - "dependencies": { - "@swc/core": "^1.3.107" - }, - "peerDependencies": { - "vite": "^4 || ^5" - } - }, - "node_modules/abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/almost-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", - "integrity": "sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A==" - }, - "node_modules/array-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", - "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-normalize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", - "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", - "dependencies": { - "array-bounds": "^1.0.0" - } - }, - "node_modules/array-range": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", - "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==" - }, - "node_modules/array-rearrange": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", - "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/binary-search-bounds": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", - "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==" - }, - "node_modules/bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==" - }, - "node_modules/bitmap-sdf": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", - "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==" - }, - "node_modules/bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/bootstrap": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", - "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/twbs" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - } - ], - "peerDependencies": { - "jquery": "1.9.1 - 3", - "popper.js": "^1.16.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/canvas-fit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", - "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==", - "dependencies": { - "element-size": "^1.1.1" - } - }, - "node_modules/clamp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==" - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/color-alpha": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", - "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", - "dependencies": { - "color-parse": "^1.3.8" - } - }, - "node_modules/color-alpha/node_modules/color-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", - "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", - "dependencies": { - "color-name": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", - "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", - "dependencies": { - "clamp": "^1.0.1" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-normalize": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", - "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", - "dependencies": { - "clamp": "^1.0.1", - "color-rgba": "^2.1.1", - "dtype": "^2.0.0" - } - }, - "node_modules/color-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz", - "integrity": "sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg==", - "dependencies": { - "color-name": "^1.0.0" - } - }, - "node_modules/color-rgba": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", - "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", - "dependencies": { - "clamp": "^1.0.1", - "color-parse": "^1.3.8", - "color-space": "^1.14.6" - } - }, - "node_modules/color-rgba/node_modules/color-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", - "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", - "dependencies": { - "color-name": "^1.0.0" - } - }, - "node_modules/color-space": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", - "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", - "dependencies": { - "hsluv": "^0.0.3", - "mumath": "^3.3.4" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/country-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", - "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==" - }, - "node_modules/css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "dependencies": { - "tiny-invariant": "^1.0.6" - } - }, - "node_modules/css-font": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", - "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", - "dependencies": { - "css-font-size-keywords": "^1.0.0", - "css-font-stretch-keywords": "^1.0.1", - "css-font-style-keywords": "^1.0.1", - "css-font-weight-keywords": "^1.0.0", - "css-global-keywords": "^1.0.1", - "css-system-font-keywords": "^1.0.0", - "pick-by-alias": "^1.2.0", - "string-split-by": "^1.0.0", - "unquote": "^1.1.0" - } - }, - "node_modules/css-font-size-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", - "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==" - }, - "node_modules/css-font-stretch-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", - "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==" - }, - "node_modules/css-font-style-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", - "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==" - }, - "node_modules/css-font-weight-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", - "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==" - }, - "node_modules/css-global-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", - "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==" - }, - "node_modules/css-system-font-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", - "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==" - }, - "node_modules/csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/d": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", - "dependencies": { - "es5-ext": "^0.10.64", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "node_modules/d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "node_modules/d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "dependencies": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "node_modules/d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "node_modules/d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "dependencies": { - "d3-array": "1" - } - }, - "node_modules/d3-geo-projection": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", - "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", - "dependencies": { - "commander": "2", - "d3-array": "1", - "d3-geo": "^1.12.0", - "resolve": "^1.1.10" - }, - "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" - } - }, - "node_modules/d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "node_modules/d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "node_modules/d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "dependencies": { - "d3-time": "1" - } - }, - "node_modules/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/detect-kerning": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", - "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==" - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/draw-svg-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", - "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", - "dependencies": { - "abs-svg-path": "~0.1.1", - "normalize-svg-path": "~0.1.0" - } - }, - "node_modules/dtype": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/dup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", - "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==" - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" - }, - "node_modules/element-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", - "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==" - }, - "node_modules/elementary-circuits-directed-graph": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", - "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", - "dependencies": { - "strongly-connected-components": "^1.0.1" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", - "dependencies": { - "d": "^1.0.2", - "ext": "^1.7.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/event-target-shim": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", - "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==", - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/falafel": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", - "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", - "dependencies": { - "acorn": "^7.1.1", - "isarray": "^2.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/fast-isnumeric": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", - "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", - "dependencies": { - "is-string-blank": "^1.0.1" - } - }, - "node_modules/flatten-vertex-data": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", - "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", - "dependencies": { - "dtype": "^2.0.0" - } - }, - "node_modules/font-atlas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", - "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", - "dependencies": { - "css-font": "^1.0.0" - } - }, - "node_modules/font-measure": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", - "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", - "dependencies": { - "css-font": "^1.2.0" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/geojson-vt": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", - "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" - }, - "node_modules/get-canvas-context": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", - "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==" - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gl-mat4": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", - "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" - }, - "node_modules/gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" - }, - "node_modules/gl-text": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.4.0.tgz", - "integrity": "sha512-o47+XBqLCj1efmuNyCHt7/UEJmB9l66ql7pnobD6p+sgmBUdzfMZXIF0zD2+KRfpd99DJN+QXdvTFAGCKCVSmQ==", - "dependencies": { - "bit-twiddle": "^1.0.2", - "color-normalize": "^1.5.0", - "css-font": "^1.2.0", - "detect-kerning": "^2.1.2", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "font-atlas": "^2.1.0", - "font-measure": "^1.2.2", - "gl-util": "^3.1.2", - "is-plain-obj": "^1.1.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "parse-unit": "^1.0.1", - "pick-by-alias": "^1.2.0", - "regl": "^2.0.0", - "to-px": "^1.0.1", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/gl-util": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", - "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", - "dependencies": { - "is-browser": "^2.0.1", - "is-firefox": "^1.0.3", - "is-plain-obj": "^1.1.0", - "number-is-integer": "^1.0.1", - "object-assign": "^4.1.0", - "pick-by-alias": "^1.2.0", - "weak-map": "^1.0.5" - } - }, - "node_modules/glsl-inject-defines": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", - "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==", - "dependencies": { - "glsl-token-inject-block": "^1.0.0", - "glsl-token-string": "^1.0.1", - "glsl-tokenizer": "^2.0.2" - } - }, - "node_modules/glsl-resolve": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", - "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==", - "dependencies": { - "resolve": "^0.6.1", - "xtend": "^2.1.2" - } - }, - "node_modules/glsl-resolve/node_modules/resolve": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", - "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==" - }, - "node_modules/glsl-resolve/node_modules/xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/glsl-token-assignments": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", - "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==" - }, - "node_modules/glsl-token-defines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", - "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==", - "dependencies": { - "glsl-tokenizer": "^2.0.0" - } - }, - "node_modules/glsl-token-depth": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", - "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==" - }, - "node_modules/glsl-token-descope": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", - "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==", - "dependencies": { - "glsl-token-assignments": "^2.0.0", - "glsl-token-depth": "^1.1.0", - "glsl-token-properties": "^1.0.0", - "glsl-token-scope": "^1.1.0" - } - }, - "node_modules/glsl-token-inject-block": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", - "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==" - }, - "node_modules/glsl-token-properties": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", - "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==" - }, - "node_modules/glsl-token-scope": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", - "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==" - }, - "node_modules/glsl-token-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", - "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==" - }, - "node_modules/glsl-token-whitespace-trim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", - "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==" - }, - "node_modules/glsl-tokenizer": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", - "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", - "dependencies": { - "through2": "^0.6.3" - } - }, - "node_modules/glsl-tokenizer/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/glsl-tokenizer/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/glsl-tokenizer/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/glsl-tokenizer/node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/glslify": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", - "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", - "dependencies": { - "bl": "^2.2.1", - "concat-stream": "^1.5.2", - "duplexify": "^3.4.5", - "falafel": "^2.1.0", - "from2": "^2.3.0", - "glsl-resolve": "0.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glslify-bundle": "^5.0.0", - "glslify-deps": "^1.2.5", - "minimist": "^1.2.5", - "resolve": "^1.1.5", - "stack-trace": "0.0.9", - "static-eval": "^2.0.5", - "through2": "^2.0.1", - "xtend": "^4.0.0" - }, - "bin": { - "glslify": "bin.js" - } - }, - "node_modules/glslify-bundle": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", - "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", - "dependencies": { - "glsl-inject-defines": "^1.0.1", - "glsl-token-defines": "^1.0.0", - "glsl-token-depth": "^1.1.1", - "glsl-token-descope": "^1.0.2", - "glsl-token-scope": "^1.1.1", - "glsl-token-string": "^1.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glsl-tokenizer": "^2.0.2", - "murmurhash-js": "^1.0.0", - "shallow-copy": "0.0.1" - } - }, - "node_modules/glslify-deps": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", - "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", - "dependencies": { - "@choojs/findup": "^0.2.0", - "events": "^3.2.0", - "glsl-resolve": "0.0.1", - "glsl-tokenizer": "^2.0.0", - "graceful-fs": "^4.1.2", - "inherits": "^2.0.1", - "map-limit": "0.0.1", - "resolve": "^1.0.0" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/grid-index": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-hover": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", - "integrity": "sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==", - "dependencies": { - "is-browser": "^2.0.1" - } - }, - "node_modules/has-passive-events": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", - "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", - "dependencies": { - "is-browser": "^2.0.1" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/hsluv": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", - "integrity": "sha512-08iL2VyCRbkQKBySkSh6m8zMUa3sADAxGVWs3Z1aPcUkTJeK0ETG4Fc27tEmQBGUAXZjIsXOZqBvacuVNSC/fQ==" - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/intl-messageformat": { - "version": "10.5.11", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.11.tgz", - "integrity": "sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.6", - "tslib": "^2.4.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", - "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==" - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-firefox": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", - "integrity": "sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-iexplorer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", - "integrity": "sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-mobile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", - "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==" - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string-blank": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", - "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==" - }, - "node_modules/is-svg-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", - "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==" - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/kdbush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", - "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" - }, - "node_modules/legacy-swc-helpers": { - "name": "@swc/helpers", - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", - "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/linkifyjs": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.1.3.tgz", - "integrity": "sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==" - }, - "node_modules/lodash.clamp": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz", - "integrity": "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", - "dependencies": { - "es5-ext": "~0.10.2" - } - }, - "node_modules/map-limit": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", - "dependencies": { - "once": "~1.3.0" - } - }, - "node_modules/map-limit/node_modules/once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/mapbox-gl": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz", - "integrity": "sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==", - "peer": true, - "dependencies": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.1.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/math-log2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", - "integrity": "sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" - }, - "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/monaco-editor": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", - "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==" - }, - "node_modules/mouse-change": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", - "integrity": "sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ==", - "dependencies": { - "mouse-event": "^1.0.0" - } - }, - "node_modules/mouse-event": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", - "integrity": "sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw==" - }, - "node_modules/mouse-event-offset": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", - "integrity": "sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==" - }, - "node_modules/mouse-wheel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", - "integrity": "sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw==", - "dependencies": { - "right-now": "^1.0.0", - "signum": "^1.0.0", - "to-px": "^1.0.1" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/mumath": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", - "integrity": "sha512-VAFIOG6rsxoc7q/IaY3jdjmrsuX9f15KlRLYTHmixASBZkZEKC1IFqE2BC5CdhXmK6WLM1Re33z//AGmeRI6FA==", - "deprecated": "Redundant dependency in your project.", - "dependencies": { - "almost-equal": "^1.1.0" - } - }, - "node_modules/murmurhash-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" - }, - "node_modules/nanoid": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", - "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" - }, - "node_modules/native-promise-only": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", - "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==" - }, - "node_modules/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/normalize-svg-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", - "integrity": "sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==" - }, - "node_modules/number-is-integer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", - "integrity": "sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==", - "dependencies": { - "is-finite": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/papaparse": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz", - "integrity": "sha512-6dNZu0Ki+gyV0eBsFKJhYr+MdQYAzFUGlBMNj3GNrmHxmz1lfRa24CjFObPXtjcetlOv5Ad299MhIK0znp3afw==" - }, - "node_modules/parenthesis": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", - "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==" - }, - "node_modules/parse-rect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", - "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", - "dependencies": { - "pick-by-alias": "^1.2.0" - } - }, - "node_modules/parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" - }, - "node_modules/parse-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", - "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==" - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "dependencies": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - }, - "bin": { - "pbf": "bin/pbf" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "node_modules/pick-by-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", - "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/plotly.js": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.32.0.tgz", - "integrity": "sha512-QBYyfVFs1XdoXQBq/f7SoiqQD/BEyDA5WwvN1NwY4ZTrTX6GmJ5jE5ydlt1I4K8i5W6H1atgti31jcSYD6StKA==", - "dependencies": { - "@plotly/d3": "3.8.1", - "@plotly/d3-sankey": "0.7.2", - "@plotly/d3-sankey-circular": "0.33.1", - "@plotly/mapbox-gl": "1.13.4", - "@turf/area": "^6.4.0", - "@turf/bbox": "^6.4.0", - "@turf/centroid": "^6.0.2", - "base64-arraybuffer": "^1.0.2", - "canvas-fit": "^1.5.0", - "color-alpha": "1.0.4", - "color-normalize": "1.5.0", - "color-parse": "2.0.0", - "color-rgba": "2.1.1", - "country-regex": "^1.1.0", - "d3-force": "^1.2.1", - "d3-format": "^1.4.5", - "d3-geo": "^1.12.1", - "d3-geo-projection": "^2.9.0", - "d3-hierarchy": "^1.1.9", - "d3-interpolate": "^3.0.1", - "d3-time": "^1.1.0", - "d3-time-format": "^2.2.3", - "fast-isnumeric": "^1.1.4", - "gl-mat4": "^1.2.0", - "gl-text": "^1.4.0", - "has-hover": "^1.0.1", - "has-passive-events": "^1.0.0", - "is-mobile": "^4.0.0", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.2.0", - "native-promise-only": "^0.8.1", - "parse-svg-path": "^0.1.2", - "point-in-polygon": "^1.1.0", - "polybooljs": "^1.2.0", - "probe-image-size": "^7.2.3", - "regl": "npm:@plotly/regl@^2.1.2", - "regl-error2d": "^2.0.12", - "regl-line2d": "^3.1.3", - "regl-scatter2d": "^3.3.1", - "regl-splom": "^1.0.14", - "strongly-connected-components": "^1.0.1", - "superscript-text": "^1.0.0", - "svg-path-sdf": "^1.1.3", - "tinycolor2": "^1.4.2", - "to-px": "1.0.1", - "topojson-client": "^3.1.0", - "webgl-context": "^2.2.0", - "world-calendars": "^1.0.3" - } - }, - "node_modules/point-in-polygon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", - "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" - }, - "node_modules/polybooljs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.2.tgz", - "integrity": "sha512-ziHW/02J0XuNuUtmidBc6GXE8YohYydp3DWPWXYsd7O721TjcmN+k6ezjdwkDqep+gnWnFY+yqZHvzElra2oCg==" - }, - "node_modules/popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/potpack": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", - "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" - }, - "node_modules/probe-image-size": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", - "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", - "dependencies": { - "lodash.merge": "^4.6.2", - "needle": "^2.5.2", - "stream-parser": "~0.3.1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" - }, - "node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/raf-schd": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", - "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-beautiful-dnd": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", - "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", - "dependencies": { - "@babel/runtime": "^7.9.2", - "css-box-model": "^1.2.0", - "memoize-one": "^5.1.1", - "raf-schd": "^4.0.2", - "react-redux": "^7.2.0", - "redux": "^4.0.4", - "use-memo-one": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.5 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/react-plotly.js": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-plotly.js/-/react-plotly.js-2.6.0.tgz", - "integrity": "sha512-g93xcyhAVCSt9kV1svqG1clAEdL6k3U+jjuSzfTV7owaSU9Go6Ph8bl25J+jKfKvIGAEYpe4qj++WHJuc9IaeA==", - "dependencies": { - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "plotly.js": ">1.34.0", - "react": ">0.13.0" - } - }, - "node_modules/react-redux": { - "version": "7.2.9", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", - "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - }, - "peerDependencies": { - "react": "^16.8.3 || ^17 || ^18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/react-virtualized-auto-sizer": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz", - "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==", - "engines": { - "node": ">8.0.0" - }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0", - "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0" - } - }, - "node_modules/react-window": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.10.tgz", - "integrity": "sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "memoize-one": ">=3.1.1 <6" - }, - "engines": { - "node": ">8.0.0" - }, - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/redux-thunk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", - "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", - "peerDependencies": { - "redux": "^4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regl": { - "name": "@plotly/regl", - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", - "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==" - }, - "node_modules/regl-error2d": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz", - "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==", - "dependencies": { - "array-bounds": "^1.0.1", - "color-normalize": "^1.5.0", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "node_modules/regl-line2d": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.3.tgz", - "integrity": "sha512-fkgzW+tTn4QUQLpFKsUIE0sgWdCmXAM3ctXcCgoGBZTSX5FE2A0M7aynz7nrZT5baaftLrk9te54B+MEq4QcSA==", - "dependencies": { - "array-bounds": "^1.0.1", - "array-find-index": "^1.0.2", - "array-normalize": "^1.1.4", - "color-normalize": "^1.5.0", - "earcut": "^2.1.5", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0" - } - }, - "node_modules/regl-scatter2d": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz", - "integrity": "sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==", - "dependencies": { - "@plotly/point-cluster": "^3.1.9", - "array-range": "^1.0.1", - "array-rearrange": "^2.2.2", - "clamp": "^1.0.1", - "color-id": "^1.1.0", - "color-normalize": "^1.5.0", - "color-rgba": "^2.1.1", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "is-iexplorer": "^1.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "node_modules/regl-splom": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz", - "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", - "dependencies": { - "array-bounds": "^1.0.1", - "array-range": "^1.0.1", - "color-alpha": "^1.0.4", - "flatten-vertex-data": "^1.0.2", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "raf": "^3.4.1", - "regl-scatter2d": "^3.2.3" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "dependencies": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "node_modules/right-now": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", - "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==" - }, - "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shallow-copy": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==" - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", - "integrity": "sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw==" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==", - "engines": { - "node": "*" - } - }, - "node_modules/static-eval": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", - "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", - "dependencies": { - "escodegen": "^2.1.0" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stream-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", - "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", - "dependencies": { - "debug": "2" - } - }, - "node_modules/stream-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/stream-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-split-by": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", - "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", - "dependencies": { - "parenthesis": "^3.1.5" - } - }, - "node_modules/strongly-connected-components": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", - "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==" - }, - "node_modules/supercluster": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", - "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", - "dependencies": { - "kdbush": "^3.0.0" - } - }, - "node_modules/superscript-text": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", - "integrity": "sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ==" - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-arc-to-cubic-bezier": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", - "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" - }, - "node_modules/svg-path-bounds": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", - "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", - "dependencies": { - "abs-svg-path": "^0.1.1", - "is-svg-path": "^1.0.1", - "normalize-svg-path": "^1.0.0", - "parse-svg-path": "^0.1.2" - } - }, - "node_modules/svg-path-bounds/node_modules/normalize-svg-path": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", - "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", - "dependencies": { - "svg-arc-to-cubic-bezier": "^3.0.0" - } - }, - "node_modules/svg-path-sdf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", - "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", - "dependencies": { - "bitmap-sdf": "^1.0.0", - "draw-svg-path": "^1.0.0", - "is-svg-path": "^1.0.1", - "parse-svg-path": "^0.1.2", - "svg-path-bounds": "^1.0.1" - } - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" - }, - "node_modules/tinycolor2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" - }, - "node_modules/tinyqueue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "node_modules/to-float32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz", - "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==" - }, - "node_modules/to-px": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", - "integrity": "sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==", - "dependencies": { - "parse-unit": "^1.0.1" - } - }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "dependencies": { - "commander": "2" - }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "node_modules/typedarray-pool": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", - "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", - "dependencies": { - "bit-twiddle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" - }, - "node_modules/update-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", - "integrity": "sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==" - }, - "node_modules/use-memo-one": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", - "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/vite": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.5.tgz", - "integrity": "sha512-zJ0RiVkf61kpd7O+VtU6r766xgnTaIknP/lR6sJTZq3HtVJ3HGnTo5DaJhTUtYoTyS/CQwZ6yEVdc/lrmQT7dQ==", - "dev": true, - "dependencies": { - "esbuild": "^0.16.14", - "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.10.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vt-pbf": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", - "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", - "dependencies": { - "@mapbox/point-geometry": "0.1.0", - "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.2.1" - } - }, - "node_modules/weak-map": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz", - "integrity": "sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==" - }, - "node_modules/webgl-context": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", - "integrity": "sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==", - "dependencies": { - "get-canvas-context": "^1.0.1" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/world-calendars": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", - "integrity": "sha512-sAjLZkBnsbHkHWVhrsCU5Sa/EVuf9QqgvrN8zyJ2L/F9FR9Oc6CvVK0674+PGAtmmmYQMH98tCUSO4QLQv3/TQ==", - "dependencies": { - "object-assign": "^4.1.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - } - }, - "dependencies": { - "@adobe/react-spectrum": { - "version": "3.34.1", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.34.1.tgz", - "integrity": "sha512-J1HOjntW+H8xusfc5xLnIlUXNOzllp4f7qzh3LlDOsZuH8oBH8sIYmBVp4ijVhRFUKa10qg088role1On3UGbg==", - "requires": { - "@internationalized/string": "^3.2.1", - "@react-aria/i18n": "^3.10.2", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/actionbar": "^3.4.3", - "@react-spectrum/actiongroup": "^3.10.3", - "@react-spectrum/avatar": "^3.0.10", - "@react-spectrum/badge": "^3.1.11", - "@react-spectrum/breadcrumbs": "^3.9.5", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/buttongroup": "^3.6.11", - "@react-spectrum/calendar": "^3.4.7", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/combobox": "^3.12.3", - "@react-spectrum/contextualhelp": "^3.6.9", - "@react-spectrum/datepicker": "^3.9.4", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/divider": "^3.5.11", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/icon": "^3.7.11", - "@react-spectrum/illustratedmessage": "^3.4.11", - "@react-spectrum/image": "^3.4.11", - "@react-spectrum/inlinealert": "^3.2.3", - "@react-spectrum/labeledvalue": "^3.1.12", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/link": "^3.6.5", - "@react-spectrum/list": "^3.7.8", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/meter": "^3.4.11", - "@react-spectrum/numberfield": "^3.9.1", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/picker": "^3.14.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/provider": "^3.9.5", - "@react-spectrum/radio": "^3.7.4", - "@react-spectrum/searchfield": "^3.8.4", - "@react-spectrum/slider": "^3.6.7", - "@react-spectrum/statuslight": "^3.5.11", - "@react-spectrum/switch": "^3.5.3", - "@react-spectrum/table": "^3.12.8", - "@react-spectrum/tabs": "^3.8.8", - "@react-spectrum/tag": "^3.2.4", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/theme-dark": "^3.5.8", - "@react-spectrum/theme-default": "^3.5.8", - "@react-spectrum/theme-light": "^3.4.8", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/view": "^3.6.8", - "@react-spectrum/well": "^3.4.11", - "@react-stately/collections": "^3.10.5", - "@react-stately/data": "^3.11.2", - "@react-types/shared": "^3.22.1", - "client-only": "^0.0.1" - } - }, - "@babel/runtime": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", - "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", - "requires": { - "regenerator-runtime": "^0.14.0" - } - }, - "@choojs/findup": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", - "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", - "requires": { - "commander": "^2.15.1" - } - }, - "@deephaven/chart": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.58.0.tgz", - "integrity": "sha512-rP4MKR3OswDRbt58I2r65ADHbYHVeSlBFxEoZDK3oJjkh5XEnsd0RpvEQn3gAFmQuUxk9JPUPnRx+d/6iu6zPQ==", - "requires": { - "@deephaven/components": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "deep-equal": "^2.0.5", - "lodash.debounce": "^4.0.8", - "lodash.set": "^4.3.2", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "plotly.js": "^2.18.2", - "prop-types": "^15.7.2", - "react-plotly.js": "^2.6.0" - } - }, - "@deephaven/components": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.58.0.tgz", - "integrity": "sha512-yfdyi2LTKs/0N930kuFo9j407XW04jqUHVToEhNzTkgBibNZ4XJ8GwEHJDRg+pYOl/vlvIzNI/OJLd9q+IuEdw==", - "requires": { - "@adobe/react-spectrum": "^3.29.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@fortawesome/fontawesome-svg-core": "^6.2.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@react-spectrum/theme-default": "^3.5.1", - "bootstrap": "4.6.2", - "classnames": "^2.3.1", - "event-target-shim": "^6.0.2", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.flatten": "^4.4.0", - "memoizee": "^0.4.15", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "react-virtualized-auto-sizer": "1.0.6", - "react-window": "^1.8.6", - "nanoid": "^5.0.7" - } - }, - "@deephaven/console": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.58.0.tgz", - "integrity": "sha512-jfQVsBmzJO/qnv4pQyJcyZZ3EdBPUeHa5r94VdtL0XKTVqiViF4jrUH2+mfdW5SLNwpwnjhBdfPZ7da1ynJxWQ==", - "requires": { - "@deephaven/chart": "^0.58.0", - "@deephaven/components": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-bootstrap": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/storage": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "linkifyjs": "^4.1.0", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "papaparse": "5.3.2", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "shell-quote": "^1.7.2", - "nanoid": "^5.0.7" - } - }, - "@deephaven/dashboard": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.58.0.tgz", - "integrity": "sha512-3D3xo10uU/fnQmyLiLOh14RdjEqk6NIu79MuuBJw8ESaDx9BN9ESZyU02QU/JcwXZjahJoRIsquvD4f0iTawGA==", - "requires": { - "@deephaven/components": "^0.58.0", - "@deephaven/golden-layout": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/redux": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "deep-equal": "^2.0.5", - "lodash.ismatch": "^4.1.1", - "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2", - "nanoid": "^5.0.7" - } - }, - "@deephaven/filters": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.58.0.tgz", - "integrity": "sha512-7FRCEAjoo0e0gRZbdDxoTrC8SSqwL9IDH4Z23OjIOQ5RBS7MypFeomFLLJns9Sg1rOXXixG0Of7Zqv6cR8hC6Q==" - }, - "@deephaven/golden-layout": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.58.0.tgz", - "integrity": "sha512-AN5AWH1Qr1Mof95ZWBGPRds+L4WBa0ePRTpmjDffcEuoPjKbd2KDzuiRp3au/QsrkfcyLz4rWQmSd+1dHb/qeQ==", - "requires": { - "@deephaven/components": "^0.58.0", - "jquery": "^3.6.0" - } - }, - "@deephaven/grid": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.58.0.tgz", - "integrity": "sha512-BmSuLKm70qzHEZPaq8pc3CCOXcxHw9KmWwuZTQnjMMGHSyGmDgseydODwOatbuW4QohY+B03Uf1GdaEpAT0GVw==", - "requires": { - "@deephaven/utils": "^0.58.0", - "classnames": "^2.3.1", - "color-convert": "^2.0.1", - "event-target-shim": "^6.0.2", - "linkifyjs": "^4.1.0", - "lodash.clamp": "^4.0.3", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "prop-types": "^15.7.2" - } - }, - "@deephaven/icons": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.58.0.tgz", - "integrity": "sha512-jD8rEOCTbelkXT2BRGTRamP8bmHmk/Hdo8uu6s3ydjI2d52Rp7YaCjsspNS9fGV1XhpNF6N2lTC3rdtUWXvMFg==", - "requires": { - "@fortawesome/fontawesome-common-types": "^6.1.1" - } - }, - "@deephaven/iris-grid": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.58.0.tgz", - "integrity": "sha512-HYMOxjmS/gpkTHshDOYsplvVgy9RW7mGvySpj4G00k5M595PJuqZ8q3VfnxVH0Tswb44bk1WmQhvHndAvWMg2A==", - "requires": { - "@deephaven/components": "^0.58.0", - "@deephaven/console": "^0.58.0", - "@deephaven/filters": "^0.58.0", - "@deephaven/grid": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@deephaven/storage": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "@dnd-kit/core": "^6.0.5", - "@dnd-kit/sortable": "^7.0.0", - "@dnd-kit/utilities": "^3.2.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "deep-equal": "^2.0.5", - "lodash.clamp": "^4.0.3", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "prop-types": "^15.7.2", - "react-beautiful-dnd": "^13.1.0", - "react-transition-group": "^4.4.2", - "nanoid": "^5.0.7" - } - }, - "@deephaven/jsapi-bootstrap": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.58.0.tgz", - "integrity": "sha512-w7oubRFxkTbitfDs7JNALrsRZqHYtgbfllcaUnlTFXD688E/8kSjVVi4yaE8aKWmMDCQLFU0QoFsfC1Z+kxWeA==", - "requires": { - "@deephaven/components": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0" - } - }, - "@deephaven/jsapi-types": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-types/-/jsapi-types-0.58.0.tgz", - "integrity": "sha512-CjJXqHPPTWAqCYJRXC/Zb2VEdaXutyx55Hlzeeg/1vYnWY5t5Lxld4PQkuO4rvsJzzkuEWzdgggMw7Iu9ZVuQQ==" - }, - "@deephaven/jsapi-utils": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.58.0.tgz", - "integrity": "sha512-isX/HdSl8XBQSPJHockM5ybGOBRplT/4M10b4loB4nZpY0y5bCY2H7sdutsICE6FTSMInAD+cMGNH6nPF+IGfg==", - "requires": { - "@deephaven/filters": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "lodash.clamp": "^4.0.3", - "nanoid": "^5.0.7" - } - }, - "@deephaven/log": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.58.0.tgz", - "integrity": "sha512-al05eDP3qamkWuqaQlsMESEn+rTRiaMZLAI8ePlHnlcEPrQS2ymkcO6sY6Am4yk3l5JQg8FKHA8LjHFZfkvTsQ==", - "requires": { - "event-target-shim": "^6.0.2" - } - }, - "@deephaven/plugin": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.58.0.tgz", - "integrity": "sha512-QmmaMfNbsKi2hLJqwxilE57Mqio1mT9HhmIyc0qa0G60kPI1NuMAV3TJWu4+s9xQBMqolzrD8OD3jfLzrfK5VA==", - "requires": { - "@deephaven/components": "^0.58.0", - "@deephaven/golden-layout": "^0.58.0", - "@deephaven/icons": "^0.58.0", - "@deephaven/iris-grid": "^0.58.0", - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/react-hooks": "^0.58.0", - "@fortawesome/fontawesome-common-types": "^6.1.1", - "@fortawesome/react-fontawesome": "^0.2.0" - } - }, - "@deephaven/react-hooks": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.58.0.tgz", - "integrity": "sha512-XeQgk8VqaTwcI68660pNd5q611EkKtqIxKaZnPMR5GzbHn1zE55fFAUi5UdgrSJhhe2oaIz2tFbVd8uaduANsw==", - "requires": { - "@adobe/react-spectrum": "^3.29.0", - "@deephaven/log": "^0.58.0", - "@deephaven/utils": "^0.58.0", - "lodash.debounce": "^4.0.8", - "nanoid": "^5.0.7" - } - }, - "@deephaven/redux": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.58.0.tgz", - "integrity": "sha512-RnhldimzNK1AJv9OIcKgXMZ5BXe+1Rm6/BXjDnAnl8HREEGtuVvIUna2g3s+FoOokfQCRIIzNkPXTwyJDGRO2A==", - "requires": { - "@deephaven/jsapi-types": "^0.58.0", - "@deephaven/jsapi-utils": "^0.58.0", - "@deephaven/log": "^0.58.0", - "@deephaven/plugin": "^0.58.0", - "deep-equal": "^2.0.5", - "redux-thunk": "2.4.1" - } - }, - "@deephaven/storage": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.58.0.tgz", - "integrity": "sha512-GGgcqHdgQCko1vxSJttwDw04u4atbv51C/t8IJPdHoTzd1HoY/yYhX639UranueS5LygBTwu4QCM73CMuHS0eg==", - "requires": { - "@deephaven/filters": "^0.58.0", - "@deephaven/log": "^0.58.0", - "lodash.throttle": "^4.1.1" - } - }, - "@deephaven/tsconfig": { - "version": "0.72.0", - "resolved": "https://registry.npmjs.org/@deephaven/tsconfig/-/tsconfig-0.72.0.tgz", - "integrity": "sha512-ER4+KsrTBO8rhd4YA6SY5dRBZjUajrNKb2yQijSXNZTbWbQCet/522Yui2YCgWFBRbM5GvYGDoUcc/07tZeLZQ==", - "dev": true - }, - "@deephaven/utils": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.58.0.tgz", - "integrity": "sha512-5zmnUYwAT6ognsZ7SjhEF6OS1xjF4nP3RixEO+CEZdBxen5Q8pZ2CjhPv2FvuqAUGEx+MhPq/yD1AXvzu3HITw==" - }, - "@dnd-kit/accessibility": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.0.tgz", - "integrity": "sha512-ea7IkhKvlJUv9iSHJOnxinBcoOI3ppGnnL+VDJ75O45Nss6HtZd8IdN8touXPDtASfeI2T2LImb8VOZcL47wjQ==", - "requires": { - "tslib": "^2.0.0" - } - }, - "@dnd-kit/core": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.1.0.tgz", - "integrity": "sha512-J3cQBClB4TVxwGo3KEjssGEXNJqGVWx17aRTZ1ob0FliR5IjYgTxl5YJbKTzA6IzrtelotH19v6y7uoIRUZPSg==", - "requires": { - "@dnd-kit/accessibility": "^3.1.0", - "@dnd-kit/utilities": "^3.2.2", - "tslib": "^2.0.0" - } - }, - "@dnd-kit/sortable": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-7.0.2.tgz", - "integrity": "sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==", - "requires": { - "@dnd-kit/utilities": "^3.2.0", - "tslib": "^2.0.0" - } - }, - "@dnd-kit/utilities": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", - "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", - "requires": { - "tslib": "^2.0.0" - } - }, - "@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", - "dev": true, - "optional": true - }, - "@formatjs/ecma402-abstract": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.2.tgz", - "integrity": "sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA==", - "requires": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", - "requires": { - "tslib": "^2.4.0" - } - }, - "@formatjs/icu-messageformat-parser": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.6.tgz", - "integrity": "sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA==", - "requires": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/icu-skeleton-parser": "1.8.0", - "tslib": "^2.4.0" - } - }, - "@formatjs/icu-skeleton-parser": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.0.tgz", - "integrity": "sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA==", - "requires": { - "@formatjs/ecma402-abstract": "1.18.2", - "tslib": "^2.4.0" - } - }, - "@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", - "requires": { - "tslib": "^2.4.0" - } - }, - "@fortawesome/fontawesome-common-types": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.2.tgz", - "integrity": "sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==" - }, - "@fortawesome/fontawesome-svg-core": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.2.tgz", - "integrity": "sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==", - "requires": { - "@fortawesome/fontawesome-common-types": "6.5.2" - } - }, - "@fortawesome/react-fontawesome": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", - "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", - "requires": { - "prop-types": "^15.8.1" - } - }, - "@internationalized/date": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.2.tgz", - "integrity": "sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@internationalized/message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.2.tgz", - "integrity": "sha512-MHAWsZWz8jf6jFPZqpTudcCM361YMtPIRu9CXkYmKjJ/0R3pQRScV5C0zS+Qi50O5UAm8ecKhkXx6mWDDcF6/g==", - "requires": { - "@swc/helpers": "^0.5.0", - "intl-messageformat": "^10.1.0" - } - }, - "@internationalized/number": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.1.tgz", - "integrity": "sha512-N0fPU/nz15SwR9IbfJ5xaS9Ss/O5h1sVXMZf43vc9mxEG48ovglvvzBjF53aHlq20uoR6c+88CrIXipU/LSzwg==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@internationalized/string": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.1.tgz", - "integrity": "sha512-vWQOvRIauvFMzOO+h7QrdsJmtN1AXAFVcaLWP9AseRN2o7iHceZ6bIXhBD4teZl8i91A3gxKnWBlGgjCwU6MFQ==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@mapbox/geojson-rewind": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", - "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", - "requires": { - "get-stream": "^6.0.1", - "minimist": "^1.2.6" - } - }, - "@mapbox/geojson-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", - "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" - }, - "@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==" - }, - "@mapbox/mapbox-gl-supported": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", - "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", - "requires": {} - }, - "@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" - }, - "@mapbox/tiny-sdf": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", - "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" - }, - "@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" - }, - "@mapbox/vector-tile": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", - "requires": { - "@mapbox/point-geometry": "~0.1.0" - } - }, - "@mapbox/whoots-js": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", - "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" - }, - "@plotly/d3": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.1.tgz", - "integrity": "sha512-x49ThEu1FRA00kTso4Jdfyf2byaCPLBGmLjAYQz5OzaPyLUhHesX3/Nfv2OHEhynhdy2UB39DLXq6thYe2L2kg==" - }, - "@plotly/d3-sankey": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", - "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", - "requires": { - "d3-array": "1", - "d3-collection": "1", - "d3-shape": "^1.2.0" - } - }, - "@plotly/d3-sankey-circular": { - "version": "0.33.1", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", - "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", - "requires": { - "d3-array": "^1.2.1", - "d3-collection": "^1.0.4", - "d3-shape": "^1.2.0", - "elementary-circuits-directed-graph": "^1.0.4" - } - }, - "@plotly/mapbox-gl": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/@plotly/mapbox-gl/-/mapbox-gl-1.13.4.tgz", - "integrity": "sha512-sR3/Pe5LqT/fhYgp4rT4aSFf1rTsxMbGiH6Hojc7PH36ny5Bn17iVFUjpzycafETURuFbLZUfjODO8LvSI+5zQ==", - "requires": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.1.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - } - }, - "@plotly/point-cluster": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", - "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", - "requires": { - "array-bounds": "^1.0.1", - "binary-search-bounds": "^2.0.4", - "clamp": "^1.0.1", - "defined": "^1.0.0", - "dtype": "^2.0.0", - "flatten-vertex-data": "^1.0.2", - "is-obj": "^1.0.1", - "math-log2": "^1.0.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0" - } - }, - "@react-aria/actiongroup": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-aria/actiongroup/-/actiongroup-3.7.3.tgz", - "integrity": "sha512-o1qw7w7GdL8vsOuzBc2mil+MM1CWWDDZ1+VhWnVwoDVt5Pxj36981leTh/WTS58IQ34N7p/jVdQMraQ25EJJyA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/actiongroup": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/breadcrumbs": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.11.tgz", - "integrity": "sha512-bQz4g2tKvcWxeqPGj9O0RQf++Ka8f2o/pJMJB+QQ27DVQWhxpQpND//oFku2aFYkxHB/fyD9qVoiqpQR25bidw==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/link": "^3.6.5", - "@react-aria/utils": "^3.23.2", - "@react-types/breadcrumbs": "^3.7.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/button": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.9.3.tgz", - "integrity": "sha512-ZXo2VGTxfbaTEnfeIlm5ym4vYpGAy8sGrad8Scv+EyDAJWLMKokqctfaN6YSWbqUApC3FN63IvMqASflbmnYig==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/calendar": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.5.6.tgz", - "integrity": "sha512-PA0Ur5WcODMn7t2gCUvq61YktkB+WlSZjzDr5kcY3sdl53ZjiyqCa2hYgrb6R0J859LVJXAp+5Qaproz8g1oLA==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-stately/calendar": "^3.4.4", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/checkbox": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.14.1.tgz", - "integrity": "sha512-b4rtrg5SpRSa9jBOqzJMmprJ+jDi3KyVvUh+DsvISe5Ti7gVAhMBgnca1D0xBp22w2jhk/o4gyu1bYxGLum0GA==", - "requires": { - "@react-aria/form": "^3.0.3", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/toggle": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-stately/checkbox": "^3.6.3", - "@react-stately/form": "^3.0.1", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/combobox": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.8.4.tgz", - "integrity": "sha512-HyTWIo2B/0xq0Of+sDEZCfJyf4BvCvDYIWG4UhjqL1kHIHIGQyyr+SldbVUjXVYnk8pP1eGB3ttiREujjjALPQ==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/listbox": "^3.11.5", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/menu": "^3.13.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/combobox": "^3.8.2", - "@react-stately/form": "^3.0.1", - "@react-types/button": "^3.9.2", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/datepicker": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.9.3.tgz", - "integrity": "sha512-1AjCAizd88ACKjVNhFazX4HZZFwWi2rsSlGCTm66Nx6wm5N/Cpbm466dpYEFyQUsKSOG4CC65G1zfYoMPe48MQ==", - "requires": { - "@internationalized/date": "^3.5.2", - "@internationalized/number": "^3.5.1", - "@internationalized/string": "^3.2.1", - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/spinbutton": "^3.6.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/datepicker": "^3.9.2", - "@react-stately/form": "^3.0.1", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/datepicker": "^3.7.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/dialog": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.12.tgz", - "integrity": "sha512-7UJR/h/Y364u6Ltpw0bT51B48FybTuIBacGpEJN5IxZlpxvQt0KQcBDiOWfAa/GQogw4B5hH6agaOO0nJcP49Q==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/dnd": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.5.3.tgz", - "integrity": "sha512-0gi6sRnr97fSQnGy+CMt+99/+vVqr+qv2T9Ts8X9TAzxHNokz5QfSL88QSlTU36EnAVLxPY18iZQWCExSjKpEQ==", - "requires": { - "@internationalized/string": "^3.2.1", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/dnd": "^3.2.8", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/focus": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.16.2.tgz", - "integrity": "sha512-Rqo9ummmgotESfypzFjI3uh58yMpL+E+lJBbQuXkBM0u0cU2YYzu0uOrFrq3zcHk997udZvq1pGK/R+2xk9B7g==", - "requires": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - } - }, - "@react-aria/form": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.3.tgz", - "integrity": "sha512-5Q2BHE4TTPDzGY2npCzpRRYshwWUb3SMUA/Cbz7QfEtBk+NYuVaq3KjvqLqgUUdyKtqLZ9Far0kIAexloOC4jw==", - "requires": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/grid": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.8.8.tgz", - "integrity": "sha512-7Bzbya4tO0oIgqexwRb8D6ZdC0GASYq9f/pnkrqocgvG9e1SCld4zOioKbYQDvAK/NnbCgXmmdqFAcLM/iazaA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/grid": "^3.8.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/checkbox": "^3.7.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/gridlist": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.7.5.tgz", - "integrity": "sha512-RmHEJ++vngHYEWbUCtLLmGh7H3vNd2Y9S0q/9SgHFPbqPZycT5mxDZ2arqpOXeHRVRvPBaW9ZlMxI2bPOePrYw==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/grid": "^3.8.8", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/i18n": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.10.2.tgz", - "integrity": "sha512-Z1ormoIvMOI4mEdcFLYsoJy9w/EzBdBmgfLP+S/Ah+1xwQOXpgwZxiKOhYHpWa0lf6hkKJL34N9MHJvCJ5Crvw==", - "requires": { - "@internationalized/date": "^3.5.2", - "@internationalized/message": "^3.1.2", - "@internationalized/number": "^3.5.1", - "@internationalized/string": "^3.2.1", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/interactions": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.21.1.tgz", - "integrity": "sha512-AlHf5SOzsShkHfV8GLLk3v9lEmYqYHURKcXWue0JdYbmquMRkUsf/+Tjl1+zHVAQ8lKqRnPYbTmc4AcZbqxltw==", - "requires": { - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/label": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.6.tgz", - "integrity": "sha512-ap9iFS+6RUOqeW/F2JoNpERqMn1PvVIo3tTMrJ1TY1tIwyJOxdCBRgx9yjnPBnr+Ywguep+fkPNNi/m74+tXVQ==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/link": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.6.5.tgz", - "integrity": "sha512-kg8CxKqkciQFzODvLAfxEs8gbqNXFZCW/ISOE2LHYKbh9pA144LVo71qO3SPeYVVzIjmZeW4vEMdZwqkNozecw==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/link": "^3.5.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/listbox": { - "version": "3.11.5", - "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.11.5.tgz", - "integrity": "sha512-y3a3zQYjT+JKgugCMMKS7K9sRoCoP1Z6Fiiyfd77OHXWzh9RlnvWGsseljynmbxLzSuPwFtCYkU1Jz4QwsPUIg==", - "requires": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/listbox": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/live-announcer": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.3.2.tgz", - "integrity": "sha512-aOyPcsfyY9tLCBhuUaYCruwcd1IrYLc47Ou+J7wMzjeN9v4lsaEfiN12WFl8pDqOwfy6/7It2wmlm5hOuZY8wQ==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/menu": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.13.1.tgz", - "integrity": "sha512-jF80YIcvD16Fgwm5pj7ViUE3Dj7z5iewQixLaFVdvpgfyE58SD/ZVU9/JkK5g/03DYM0sjpUKZGkdFxxw8eKnw==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/collections": "^3.10.5", - "@react-stately/menu": "^3.6.1", - "@react-stately/tree": "^3.7.6", - "@react-types/button": "^3.9.2", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/meter": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.11.tgz", - "integrity": "sha512-P1G3Jdh0f/uieUDqvc3Ee4wzqBJa7H077BVSC3KPRqEp6YY7JimZGWjOwbFlO2PXhryXm/dI8EzUmh+4ZXjq/g==", - "requires": { - "@react-aria/progress": "^3.4.11", - "@react-types/meter": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/numberfield": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.11.1.tgz", - "integrity": "sha512-JQ1Z+Ho5H+jeav7jt9A4vBsIQR/Dd2CFbObrULjGkqSrnWjARFZBv3gZwmfGCtplEPeAv9buYKHAqebPtJNUww==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/spinbutton": "^3.6.3", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-stately/numberfield": "^3.9.1", - "@react-types/button": "^3.9.2", - "@react-types/numberfield": "^3.8.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/overlays": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.21.1.tgz", - "integrity": "sha512-djEBDF+TbIIOHWWNpdm19+z8xtY8U+T+wKVQg/UZ6oWnclSqSWeGl70vu73Cg4HVBJ4hKf1SRx4Z/RN6VvH4Yw==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/overlays": "^3.6.5", - "@react-types/button": "^3.9.2", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/progress": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.11.tgz", - "integrity": "sha512-RePHbS15/KYFiApYLdwazwvWKsB9q0Kn5DGCSb0hqCC+k2Eui8iVVOsegswiP+xqkk/TiUCIkBEw22W3Az4kTg==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-types/progress": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/radio": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.10.2.tgz", - "integrity": "sha512-CTUTR+qt3BLjmyQvKHZuVm+1kyvT72ZptOty++sowKXgJApTLdjq8so1IpaLAr8JIfzqD5I4tovsYwIQOX8log==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/radio": "^3.10.2", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/searchfield": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.7.3.tgz", - "integrity": "sha512-mnYI969R7tU3yMRIGmY1+peq7tmEW0W3MB/J2ImK36Obz/91tTtspHHEeFtPlQDLIyvVPB0Ucam4LIxCKPJm/Q==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-stately/searchfield": "^3.5.1", - "@react-types/button": "^3.9.2", - "@react-types/searchfield": "^3.5.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/select": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.14.3.tgz", - "integrity": "sha512-9KCxI41FI+jTxEfUzRsMdJsZvjkCuuhL4UHig8MZXtXs0nsi7Ir3ezUDQ9m5MSG+ooBYM/CA9DyLDvo5Ioef+g==", - "requires": { - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/listbox": "^3.11.5", - "@react-aria/menu": "^3.13.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/select": "^3.6.2", - "@react-types/button": "^3.9.2", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/selection": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.17.5.tgz", - "integrity": "sha512-gO5jBUkc7WdkiFMlWt3x9pTSuj3Yeegsxfo44qU5NPlKrnGtPRZDWrlACNgkDHu645RNNPhlyoX0C+G8mUg1xA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/selection": "^3.14.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/separator": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.3.11.tgz", - "integrity": "sha512-UTla+3P2pELpP73WSfbwZgP1y1wODFBQbEOHnUxxO8ocyaUyQLJdvc07bBLLpPoyutlggRG0v9ACo0Rui7AjOg==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/slider": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.7.6.tgz", - "integrity": "sha512-ZeZhyHzhk9gxGuThPKgX2K3RKsxPxsFig1iYoJvqP8485NtHYQIPht2YcpEKA9siLxGF0DR9VCfouVhSoW0AEA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/slider": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/spinbutton": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.6.3.tgz", - "integrity": "sha512-IlfhRu/pc9zOt2C5zSEB7NmmzddvWisGx2iGzw8BwIKMD+cN3uy+Qwp+sG6Z/JzFEBN0F6Mxm3l5lhbiqjpICQ==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/ssr": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.2.tgz", - "integrity": "sha512-0gKkgDYdnq1w+ey8KzG9l+H5Z821qh9vVjztk55rUg71vTk/Eaebeir+WtzcLLwTjw3m/asIjx8Y59y1lJZhBw==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/switch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.6.2.tgz", - "integrity": "sha512-X5m/omyhXK+V/vhJFsHuRs2zmt9Asa/RuzlldbXnWohLdeuHMPgQnV8C9hg3f+sRi3sh9UUZ64H61pCtRoZNwg==", - "requires": { - "@react-aria/toggle": "^3.10.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/switch": "^3.5.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/table": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.13.5.tgz", - "integrity": "sha512-P2nHEDk2CCoEbMFKNCyBC9qvmv7F/IXARDt/7z/J4mKFgU2iNSK+/zw6yrb38q33Zlk8hDaqSYNxHlMrh+/1MQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/grid": "^3.8.8", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-stately/collections": "^3.10.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/checkbox": "^3.7.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/tabs": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.8.5.tgz", - "integrity": "sha512-Jvt33/W+66n5oCxVwHAYarJ3Fit61vULiPcG7uTez0Mf11cq/C72wOrj+ZuNz6PTLTi2veBNQ7MauY72SnOjRg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/tabs": "^3.6.4", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/tag": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.3.3.tgz", - "integrity": "sha512-tlJD9qj1XcsPIZD7DVJ6tWv8t7Z87/8qkbRDx7ugNqeHso9z0WqH9ZkSt17OFUWE2IQIk3V8D3iBSOtmhXcZGQ==", - "requires": { - "@react-aria/gridlist": "^3.7.5", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/selection": "^3.17.5", - "@react-aria/utils": "^3.23.2", - "@react-stately/list": "^3.10.3", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/textfield": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.14.3.tgz", - "integrity": "sha512-wPSjj/mTABspYQdahg+l5YMtEQ3m5iPCTtb5g6nR1U1rzJkvS4i5Pug6PUXeLeMz2H3ToflPWGlNOqBioAFaOQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/label": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/toggle": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.10.2.tgz", - "integrity": "sha512-DgitscHWgI6IFgnvp2HcMpLGX/cAn+XX9kF5RJQbRQ9NqUgruU5cEEGSOLMrEJ6zXDa2xmOiQ+kINcyNhA+JLg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/tooltip": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.7.2.tgz", - "integrity": "sha512-6jXOSGPao3gPgUQWLbH2r/jxGMqIaIKrJgfwu9TQrh+UkwwiTYW20EpEDCYY2nRFlcoi7EYAiPDSEbHCwXS7Lg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/tooltip": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@react-types/tooltip": "^3.4.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/utils": { - "version": "3.23.2", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.23.2.tgz", - "integrity": "sha512-yznR9jJ0GG+YJvTMZxijQwVp+ahP66DY0apZf7X+dllyN+ByEDW+yaL1ewYPIpugxVzH5P8jhnBXsIyHKN411g==", - "requires": { - "@react-aria/ssr": "^3.9.2", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - } - }, - "@react-aria/virtualizer": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-3.9.10.tgz", - "integrity": "sha512-oDvGgexK6phB9XECWvAaKTq/nRKxHjmJSiZ2gv9j72JFoky4iVEHKAV6Qnar0VBcEpk16JcJVI/wf1xr9F+sjQ==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-aria/visually-hidden": { - "version": "3.8.10", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.10.tgz", - "integrity": "sha512-np8c4wxdbE7ZrMv/bnjwEfpX0/nkWy9sELEb0sK8n4+HJ+WycoXXrVxBUb9tXgL/GCx5ReeDQChjQWwajm/z3A==", - "requires": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/actionbar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/actionbar/-/actionbar-3.4.3.tgz", - "integrity": "sha512-LIg3a5z0bnFIkA1teaGUo/RdT4ZKPpUUF0RxPSm0nHWEzolSgD7BN4ijK5UxsDLA2cfNxv78s+vwHHKkKnsjSA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/live-announcer": "^3.3.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/actiongroup": "^3.10.3", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-types/actionbar": "^3.1.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/actiongroup": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/actiongroup/-/actiongroup-3.10.3.tgz", - "integrity": "sha512-VJASE+Y75Q885z9mx7CVELrX8PuZPbRnGFQnkoRnwZOTpMVZM6wQxA4IcAfsFVvaVIpHgBwtQTI1Ib+gAdtqgw==", - "requires": { - "@react-aria/actiongroup": "^3.7.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/actiongroup": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/avatar": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@react-spectrum/avatar/-/avatar-3.0.10.tgz", - "integrity": "sha512-PvsCTTcjNN7QSsa3iCc2UF5LeQCwFNaiR0/xvpk+/ViP1wVq+xFR1tfSrbAq7TAF1B3NQNfI+wepy2ol5l8X2g==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/avatar": "^3.0.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/badge": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/badge/-/badge-3.1.11.tgz", - "integrity": "sha512-YOuUBdWmqDQQrNI0uUpazWv/qYmFeDCsJVfQnl/K4J0A6/x7wuvz3iLPJKYuvmqG45/I+WXYFFaNuWOm4jCMzA==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/badge": "^3.1.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/breadcrumbs": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/breadcrumbs/-/breadcrumbs-3.9.5.tgz", - "integrity": "sha512-MV1b077f189biweuI8H1/D6F7Nwrao0phYzAKqjaTa8bhXf180ej3VhtEEhrSyEhhMrHG3pPzCCbNUn2VMXDlg==", - "requires": { - "@react-aria/breadcrumbs": "^3.5.11", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-types/breadcrumbs": "^3.7.3", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/button": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.16.2.tgz", - "integrity": "sha512-T0B4EUeAAfsocTMZpfKYIsPMIbuwjB1+hfbZyBBvWt8gerLiEiPAwt6+ga1YzV7C6aAz2FPeTT+zd/RxouDTPw==", - "requires": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/toggle": "^3.7.2", - "@react-types/button": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/buttongroup": { - "version": "3.6.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/buttongroup/-/buttongroup-3.6.11.tgz", - "integrity": "sha512-yJv6yBZRLIPYdOAch4FVhdrI0xZz5PPuLiSA6HF/9LlIimALj0qBgCsbQPPThz/UV8+8Y1F76wQUsDcj+iub/A==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/buttongroup": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/calendar": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/calendar/-/calendar-3.4.7.tgz", - "integrity": "sha512-eBH8SAHHbhprbzk445wnNrW80bnm7Kv5rwmcDBd7/FGb5EhWnQgcQtBo3z79dpCXCl8UtpLsih3eDV9QQSjIDA==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-aria/calendar": "^3.5.6", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/calendar": "^3.4.4", - "@react-types/button": "^3.9.2", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/checkbox": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/checkbox/-/checkbox-3.9.4.tgz", - "integrity": "sha512-PzUaSza13wh7YipWJLd/0q/nkAnEnxso7hdvMzDLYcw0iKhXNTM2fUoouUuY1SsbithlF2GS5REYyMpQ4FNO3g==", - "requires": { - "@react-aria/checkbox": "^3.14.1", - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/checkbox": "^3.6.3", - "@react-stately/toggle": "^3.7.2", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/combobox": { - "version": "3.12.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/combobox/-/combobox-3.12.3.tgz", - "integrity": "sha512-hskwbdqXSSNEBRYTn3XESSnLGjELU4Lfht3GkZCvcQt02TVvu9NMETSkVe4lwCYV2hwXtPFGyl3jXvmA3MQurQ==", - "requires": { - "@react-aria/button": "^3.9.3", - "@react-aria/combobox": "^3.8.4", - "@react-aria/dialog": "^3.5.12", - "@react-aria/focus": "^3.16.2", - "@react-aria/form": "^3.0.3", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/label": "^3.7.6", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/combobox": "^3.8.2", - "@react-types/button": "^3.9.2", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/contextualhelp": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@react-spectrum/contextualhelp/-/contextualhelp-3.6.9.tgz", - "integrity": "sha512-M0GUmZSLWm6pBAqy0Wwv1srlUPxBSvhQxTxvxtBcRSQwCIE1BcnQ6VaJxlx6n+Ocr14GwYH6MTpD1ZLMUvWeiA==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/utils": "^3.11.5", - "@react-types/contextualhelp": "^3.2.8", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/datepicker": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/datepicker/-/datepicker-3.9.4.tgz", - "integrity": "sha512-NyFIH68WqbGajBMe/UMxZDwNwaPL/AKJeLC9CY+GcLp4uncWjI42LdcoBPSQFoEJHLtJlLhx+r7qWO/PMOhg3Q==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-aria/datepicker": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/calendar": "^3.4.7", - "@react-spectrum/dialog": "^3.8.9", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-spectrum/view": "^3.6.8", - "@react-stately/datepicker": "^3.9.2", - "@react-types/datepicker": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/dialog": { - "version": "3.8.9", - "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.8.9.tgz", - "integrity": "sha512-CxyARi0qYOJi24YVqXZp7tHVreYQoYc7+VBZzcn8dTbIL1CSxcSGbRGXOpHiaAejZ9/3lPm/PTbrWrKUBLbckA==", - "requires": { - "@react-aria/dialog": "^3.5.12", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/buttongroup": "^3.6.11", - "@react-spectrum/divider": "^3.5.11", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-spectrum/view": "^3.6.8", - "@react-stately/overlays": "^3.6.5", - "@react-types/button": "^3.9.2", - "@react-types/dialog": "^3.5.8", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/divider": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/divider/-/divider-3.5.11.tgz", - "integrity": "sha512-u6pyqBEc4JRpntF+KGuzmkzn+rJh04kfvjJ3Tx4F9IucaY8xCfglhunf6/yvRqQB0VaMdlxKy5BGhHgBJzUBiA==", - "requires": { - "@react-aria/separator": "^3.3.11", - "@react-spectrum/utils": "^3.11.5", - "@react-types/divider": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/dnd": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/dnd/-/dnd-3.3.8.tgz", - "integrity": "sha512-GfLqduIBpH2LArBsFpNa4i9cYeFg7lJpqwrLVJRl96DbhdXEcwt9a4tqvsegkqKn6KPHDPG7uTX0OqPoQJluXQ==", - "requires": { - "@react-aria/dnd": "^3.5.3", - "@react-stately/dnd": "^3.2.8", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/form": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/form/-/form-3.7.4.tgz", - "integrity": "sha512-xAS6vFM6dzKJc7gkC8Qy76VXLxZ9VqPZq4xxQeySvsO8pOujTFCL97QkS0mDjMOdpu72VDIF5JegK1Edlewr7g==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/form": "^3.0.1", - "@react-types/form": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/icon": { - "version": "3.7.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.7.11.tgz", - "integrity": "sha512-CTvbukq0g2oEjMqwMDx2qjfmFAv6u7/KwHRn9pGf6BUiU53Zlnl6Fjtm+c9cw8d9GcwlXyIWYBMIKyMm4+7g5A==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/illustratedmessage": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/illustratedmessage/-/illustratedmessage-3.4.11.tgz", - "integrity": "sha512-KJdcF+YY2rPZBTP5P38MEQBoNLglP1QUaCmbPH8a5dSZ+wj5EsOgseFa0fxAEZ23q9Wo9Fv9P9niRq0/479KTQ==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/illustratedmessage": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/image": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.4.11.tgz", - "integrity": "sha512-pzYubgkkC5Ic3eKrNlPUFPbVUTUvZ7DObmGpQvmgmG0xipmUAscYKFEBr4LhCsy/29Sm7Tz4zsGUdA2vM5eA8g==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/image": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/inlinealert": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/inlinealert/-/inlinealert-3.2.3.tgz", - "integrity": "sha512-NX1bZvmI3EOBTRWaT4dzVyFxAuePPbXASZeJ4/wAnhvWDN65rKrctn+VZW3x6ZQoZ/WkQl4qW1txjVcLHkRBWg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/label": { - "version": "3.16.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/label/-/label-3.16.4.tgz", - "integrity": "sha512-38hk6wqUwDCyYeScF1NIaxlPaltkTRTv6/XtIkm528eilLyOMxtMGXcP0Bl7nv0oDLxDZSm9TkgXjN24SyY0KQ==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/utils": "^3.11.5", - "@react-types/label": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/labeledvalue": { - "version": "3.1.12", - "resolved": "https://registry.npmjs.org/@react-spectrum/labeledvalue/-/labeledvalue-3.1.12.tgz", - "integrity": "sha512-Pa/eYf9FKr8QF7xKLoCv6a+Ezudfi7N1jFJLZ71zaVcDOcNByYKiy1lAquwLB+36PpsWt/EwKLE2/U7OuiWyfQ==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/layout": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.6.3.tgz", - "integrity": "sha512-JsG4KclsgzKfRbe+PyMo8QryG5SmwYlym8JRuSLmZ+nfIKhESVbqSJE3IXblmDDWUb0rabQhSvW4p5h5nOil4w==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/layout": "^3.3.13", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/link": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.6.5.tgz", - "integrity": "sha512-pnPIzkM0/Nxm460dHuR195bD0BAaIvasqW8TqUFT0Igxfw0NFYyWZr5d4OkHKyypyUoQKaobpOgeAJHXxPtzTg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/link": "^3.6.5", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/link": "^3.5.3", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/list": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/list/-/list-3.7.8.tgz", - "integrity": "sha512-w+fxiX+wz8X0bASAtKsf/myMrFI1Z0OXamttPRAJS5Ene6x09kf+K2djpZO1t9nT70IPnCcthhkMaCHk6eyUIw==", - "requires": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/gridlist": "^3.7.5", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/layout": "^3.13.7", - "@react-stately/list": "^3.10.3", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0", - "react-transition-group": "^4.4.5" - } - }, - "@react-spectrum/listbox": { - "version": "3.12.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/listbox/-/listbox-3.12.7.tgz", - "integrity": "sha512-cFUIKPRtz5ViQYS0vO+oQmiFmbJjA04GCpyZKnBJAEonNDiY1RIHfFg/53Mr8IwstwNvGbxHVjMilPy6DtWDjA==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/listbox": "^3.11.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/layout": "^3.13.7", - "@react-stately/list": "^3.10.3", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/listbox": "^3.4.7", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/menu": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/@react-spectrum/menu/-/menu-3.18.1.tgz", - "integrity": "sha512-3KutRgn9/uYcRH2IzUT6qiPlS9SK9+4R2W4Z1Ox27lQ30ZgC68kE37uOwZX10bDgTOWV/COYvm6qBBScZ+VFUg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/menu": "^3.13.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/separator": "^3.3.11", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/menu": "^3.6.1", - "@react-stately/overlays": "^3.6.5", - "@react-stately/tree": "^3.7.6", - "@react-types/menu": "^3.9.7", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/meter": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/meter/-/meter-3.4.11.tgz", - "integrity": "sha512-OBYIHnumb2cfeT48py6Qtsfs7m9DmddaHSCVB8MXNnn3fzrpPr5t4Wz2dYUWXnkPPC11D8WarjJ+6EgrNwNvdQ==", - "requires": { - "@react-aria/meter": "^3.4.11", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/utils": "^3.11.5", - "@react-types/meter": "^3.3.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/numberfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-spectrum/numberfield/-/numberfield-3.9.1.tgz", - "integrity": "sha512-s6QNRncVrVjOYihKeyQ8fkdD1YJTqYttog/Rj96rD66vfUlI0bTr3q6mK6hZpU1YM29SL24BUCn6NdqOxqVeiQ==", - "requires": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/numberfield": "^3.11.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/numberfield": "^3.9.1", - "@react-types/button": "^3.9.2", - "@react-types/numberfield": "^3.8.1", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@spectrum-icons/workflow": "^4.2.10", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/overlays": { - "version": "5.5.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-5.5.5.tgz", - "integrity": "sha512-rFwbWuagFo/Tuo45UE8KHUMz1Li1j5CNzsZdIfKZydHd0u4t69yR8bCn3pDUNIYEwclrLGUD2XFJaN9jYq1H4A==", - "requires": { - "@react-aria/interactions": "^3.21.1", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/overlays": "^3.6.5", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "react-transition-group": "^4.4.5" - } - }, - "@react-spectrum/picker": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/picker/-/picker-3.14.3.tgz", - "integrity": "sha512-xaewWrOtGt/dQbiSwZe9UYH58berRlxyqIeAZQ7+FCRGoG/gl1p+l+7rfNKFS5OjVy6Adh6BZrrY6A99j4PbQA==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/select": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/listbox": "^3.12.7", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/select": "^3.6.2", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/progress": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/progress/-/progress-3.7.5.tgz", - "integrity": "sha512-ku+RTtgXWaxUwjopzWpvgNxJsn/gohMWO4len2K2yDQp6b4SY67ojRFBwyIDZ9Oi9RPTAvZOc3wJu5QPftfVcg==", - "requires": { - "@react-aria/progress": "^3.4.11", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/progress": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/provider": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.9.5.tgz", - "integrity": "sha512-FE5RQC1EwMMXUAtslekheyA0IrXSev4flaY4CT3exC/ohB1PuiXUDg4qqaHos2vVhsdUPNq5SeathtHEr8ryJA==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/provider": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - } - }, - "@react-spectrum/radio": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/radio/-/radio-3.7.4.tgz", - "integrity": "sha512-FmWcJlOeo5KsbWYpnEtoB9oC+haUeowfRda8dq0kBptR5WlagWD4Arez55/hjXCHLqQZ4r6vY6rYgMya2xiddQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/radio": "^3.10.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/radio": "^3.10.2", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/searchfield": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/searchfield/-/searchfield-3.8.4.tgz", - "integrity": "sha512-O8pM9dGlRZoFhNtZLVFpIOHM2+sy5/t23Lv0z0jXvVYmzHOaib8wPPJELnPRsDUIylqpnVxfiYSz051Gx5Zq8g==", - "requires": { - "@react-aria/searchfield": "^3.7.3", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/textfield": "^3.11.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/searchfield": "^3.5.1", - "@react-types/searchfield": "^3.5.3", - "@react-types/textfield": "^3.9.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/slider": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/@react-spectrum/slider/-/slider-3.6.7.tgz", - "integrity": "sha512-mhTG+sGZwQfNW9z+uzvmTQzzV2Qzcack3qYSw8HXEfd4BOjkgwTinS9aN8MLv147TF5RMvI0y3dmNirAoDi+yQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/slider": "^3.7.6", - "@react-aria/utils": "^3.23.2", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/slider": "^3.5.2", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/statuslight": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/statuslight/-/statuslight-3.5.11.tgz", - "integrity": "sha512-zbIrI8rPLmMu3Jnl2fpA/kb0V3azdRBsv1KfhGNQkHM17Gy6ufrzzzh6cmnvQh8FREllMcIjC4eaBkYHFArtyg==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/statuslight": "^3.3.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/switch": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/switch/-/switch-3.5.3.tgz", - "integrity": "sha512-NJMk/b/Lrmgl0RB9QPF0wSuD5CgTPODaLuZD1uxXAcESKFVdN58eW8CU99e+ZC0tHgFofroTpEF073Yiz2LnkQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/switch": "^3.6.2", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/toggle": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@react-types/switch": "^3.5.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/table": { - "version": "3.12.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/table/-/table-3.12.8.tgz", - "integrity": "sha512-4JyDlvKljhvqqUHYk6X5JjmxXy03IZergKTu//MbELW4v9bwiwf94Ap8zTcUZPh/pcw7IQhpUDLPAi6RFBAUpA==", - "requires": { - "@react-aria/button": "^3.9.3", - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/table": "^3.13.5", - "@react-aria/utils": "^3.23.2", - "@react-aria/virtualizer": "^3.9.10", - "@react-aria/visually-hidden": "^3.8.10", - "@react-spectrum/checkbox": "^3.9.4", - "@react-spectrum/dnd": "^3.3.8", - "@react-spectrum/layout": "^3.6.3", - "@react-spectrum/menu": "^3.18.1", - "@react-spectrum/progress": "^3.7.5", - "@react-spectrum/tooltip": "^3.6.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/layout": "^3.13.7", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/tabs": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/tabs/-/tabs-3.8.8.tgz", - "integrity": "sha512-oBXKLD7cyCLQV3SUXIjEn9ttdyoGwpiTUfM3DNY3ki097pRdoBgMxPk1Sp7jKQs6tRUg4osK53iOG4LvEs6eTg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/tabs": "^3.8.5", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/picker": "^3.14.3", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-stately/tabs": "^3.6.4", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/tag": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/tag/-/tag-3.2.4.tgz", - "integrity": "sha512-d6cqX+n10pokLsBGEC/ksLLHM3vBoR7zc0AAlBAUrBN6VMBWUQRyazDHeXPLLZs/S4+ICL80UXRf8NwWfA7Efg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/i18n": "^3.10.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/selection": "^3.17.5", - "@react-aria/tag": "^3.3.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/button": "^3.16.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/text": "^3.5.3", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/collections": "^3.10.5", - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/text": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-spectrum/text/-/text-3.5.3.tgz", - "integrity": "sha512-28WiSnIPm8WC4JOsHPLudCGjPc3tk7zKm3L+8xqzr374j1+HdMGivrhVOf1t4jbUMcT5dOxR7huuDe7E97qe5A==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/text": "^3.3.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/textfield": { - "version": "3.11.4", - "resolved": "https://registry.npmjs.org/@react-spectrum/textfield/-/textfield-3.11.4.tgz", - "integrity": "sha512-J70Q1ddpX0v+R7x8w5DaJLixnp5mBWm39lUnekiahEUuA420U1eZCW80GiHXFS/GO6wpwjIZpWHcpBQuF/EDCQ==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/interactions": "^3.21.1", - "@react-aria/textfield": "^3.14.3", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/form": "^3.7.4", - "@react-spectrum/label": "^3.16.4", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/theme-dark": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-dark/-/theme-dark-3.5.8.tgz", - "integrity": "sha512-ep78rIrgrXu5MHe6LQAiK8+Us/4PoeHcixm+xFJk8I7AP+6wrh+9+QSWdIi3/NJY9fIjXsMm+VyehFVtEq8PAg==", - "requires": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/theme-default": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.5.8.tgz", - "integrity": "sha512-vZ9GH4l6H2Ks/PD15k2mx6XgA1EYKxQbB+ai9UZ3ALXf0KYlVIFSoHk4Vp3hP16D12KsuB7V0Gk8SvHlsRNo+Q==", - "requires": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/theme-light": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/theme-light/-/theme-light-3.4.8.tgz", - "integrity": "sha512-6kjtQ6IGrh2E0WJKQ9eAR5yhcWFI2mNvd+wi8Uy3rtRdBB1L3iSfr2RmgxgcTCl50DnKqmcFsHbHaKMMKqhkaQ==", - "requires": { - "@react-types/provider": "^3.7.2", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/tooltip": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/tooltip/-/tooltip-3.6.5.tgz", - "integrity": "sha512-TnVUX8gNx65wOfHE5UIzuzpC4kUd6RuFeDykcu+3OM+fsK6qvDYg2MQq/3UiZHFI0ZHhX89yPf4uLaP0hcT8sg==", - "requires": { - "@react-aria/focus": "^3.16.2", - "@react-aria/overlays": "^3.21.1", - "@react-aria/tooltip": "^3.7.2", - "@react-aria/utils": "^3.23.2", - "@react-spectrum/overlays": "^5.5.5", - "@react-spectrum/utils": "^3.11.5", - "@react-stately/tooltip": "^3.4.7", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1", - "@react-types/tooltip": "^3.4.7", - "@spectrum-icons/ui": "^3.6.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/utils": { - "version": "3.11.5", - "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.11.5.tgz", - "integrity": "sha512-V4heIuCBXhYOP3om5B0KNs2+RK6RKwAhHVjjJZ3RBeNqsF9UDxv+D/+dk3sAM2dsM1F8l38BNXQMMWXWW/BZYA==", - "requires": { - "@react-aria/i18n": "^3.10.2", - "@react-aria/ssr": "^3.9.2", - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - } - }, - "@react-spectrum/view": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.6.8.tgz", - "integrity": "sha512-jAKh22xUjFY5sxPTtLc53fw3C+dki+DEDxArFK06/tF+ntV6lDat91j+YedcOtDT2p7C2PSfaToX5moyEAQ+NA==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/view": "^3.4.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-spectrum/well": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.4.11.tgz", - "integrity": "sha512-oCQqKKcKXNoF18dNz5GHBdSXrNPsVH5jsH17suqQevzDQkMN2X02Ov0oyOYMAUQM0xSE3ensLdjvLzUL0yl36g==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-spectrum/utils": "^3.11.5", - "@react-types/shared": "^3.22.1", - "@react-types/well": "^3.3.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/calendar": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.4.4.tgz", - "integrity": "sha512-f9ZOd096gGGD+3LmU1gkmfqytGyQtrgi+Qjn+70GbM2Jy65pwOR4I9YrobbmeAFov5Tff13mQEa0yqWvbcDLZQ==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-stately/utils": "^3.9.1", - "@react-types/calendar": "^3.4.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/checkbox": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.6.3.tgz", - "integrity": "sha512-hWp0GXVbMI4sS2NbBjWgOnHNrRqSV4jeftP8zc5JsIYRmrWBUZitxluB34QuVPzrBO29bGsF0GTArSiQZt6BWw==", - "requires": { - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/checkbox": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/collections": { - "version": "3.10.5", - "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.5.tgz", - "integrity": "sha512-k8Q29Nnvb7iAia1QvTanZsrWP2aqVNBy/1SlE6kLL6vDqtKZC+Esd1SDLHRmIcYIp5aTdfwIGd0NuiRQA7a81Q==", - "requires": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/combobox": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.8.2.tgz", - "integrity": "sha512-f+IHuFW848VoMbvTfSakn2WIh2urDxO355LrKxnisXPCkpQHpq3lvT2mJtKJwkPxjAy7xPjpV8ejgga2R6p53Q==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/form": "^3.0.1", - "@react-stately/list": "^3.10.3", - "@react-stately/overlays": "^3.6.5", - "@react-stately/select": "^3.6.2", - "@react-stately/utils": "^3.9.1", - "@react-types/combobox": "^3.10.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/data": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.11.2.tgz", - "integrity": "sha512-yhK2upk2WbJeiLBRWHrh/4G2CvmmozCzoivLaRAPYu53m1J3MyzVGCLJgnZMbMZvAbNcYWZK6IzO6VqZ2y1fOw==", - "requires": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/datepicker": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.9.2.tgz", - "integrity": "sha512-Z6FrK6Af7R5BizqHhJFCj3Hn32mg5iLSDdEgFQAuO043guOXUKFUAnbxfbQUjL6PGE6QwWMfQD7PPGebHn9Ifw==", - "requires": { - "@internationalized/date": "^3.5.2", - "@internationalized/string": "^3.2.1", - "@react-stately/form": "^3.0.1", - "@react-stately/overlays": "^3.6.5", - "@react-stately/utils": "^3.9.1", - "@react-types/datepicker": "^3.7.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/dnd": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.2.8.tgz", - "integrity": "sha512-oSo+2Bzum3Q1/d+3FuaDmpVHqqBB004tycuQDDFtad3N1BKm+fNfmslRK1ioLkPLK4sm1130V+BZBY3JXLe80A==", - "requires": { - "@react-stately/selection": "^3.14.3", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/flags": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.0.1.tgz", - "integrity": "sha512-h5PcDMj54aipQNO18ig/IMI1kzPwcvSwVq5M6Ib6XE1WIkOH0dIuW2eADdAOhcGi3KXJtXVdD29zh0Eox1TKgQ==", - "requires": { - "@swc/helpers": "^0.4.14" - }, - "dependencies": { - "@swc/helpers": { - "version": "0.4.36", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.36.tgz", - "integrity": "sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==", - "requires": { - "legacy-swc-helpers": "npm:@swc/helpers@=0.4.14", - "tslib": "^2.4.0" - } - } - } - }, - "@react-stately/form": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.1.tgz", - "integrity": "sha512-T1Ul2Ou0uE/S4ECLcGKa0OfXjffdjEHfUFZAk7OZl0Mqq/F7dl5WpoLWJ4d4IyvZzGO6anFNenP+vODWbrF3NA==", - "requires": { - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/grid": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.8.5.tgz", - "integrity": "sha512-KCzi0x0p1ZKK+OptonvJqMbn6Vlgo6GfOIlgcDd0dNYDP8TJ+3QFJAFre5mCr7Fubx7LcAOio4Rij0l/R8fkXQ==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/layout": { - "version": "3.13.7", - "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-3.13.7.tgz", - "integrity": "sha512-9HH/aSxpEHwUW1T1vGN3+iznkAXQUzoMrsoEepNzesOsUGSm/MFZmEk4+9cdPA7y3ou2eHpGNUB1YIDDVptElg==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/table": "^3.11.6", - "@react-stately/virtualizer": "^3.6.8", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/list": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.10.3.tgz", - "integrity": "sha512-Ul8el0tQy2Ucl3qMQ0fiqdJ874W1ZNjURVSgSxN+pGwVLNBVRjd6Fl7YwZFCXER2YOlzkwg+Zqozf/ZlS0EdXA==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/menu": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.6.1.tgz", - "integrity": "sha512-3v0vkTm/kInuuG8jG7jbxXDBnMQcoDZKWvYsBQq7+POt0LmijbLdbdZPBoz9TkZ3eo/OoP194LLHOaFTQyHhlw==", - "requires": { - "@react-stately/overlays": "^3.6.5", - "@react-types/menu": "^3.9.7", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/numberfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.9.1.tgz", - "integrity": "sha512-btBIcBEfSVCUm6NwJrMrMygoIu/fQGazzD0RhF7PNsfvkFiWn+TSOyQqSXcsUJVOnBfoS/dVWj6r57KA7zl3FA==", - "requires": { - "@internationalized/number": "^3.5.1", - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/numberfield": "^3.8.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/overlays": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.5.tgz", - "integrity": "sha512-U4rCFj6TPJPXLUvYXAcvh+yP/CO2W+7f0IuqP7ZZGE+Osk9qFkT+zRK5/6ayhBDFpmueNfjIEAzT9gYPQwNHFw==", - "requires": { - "@react-stately/utils": "^3.9.1", - "@react-types/overlays": "^3.8.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/radio": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.10.2.tgz", - "integrity": "sha512-JW5ZWiNMKcZvMTsuPeWJQLHXD5rlqy7Qk6fwUx/ZgeibvMBW/NnW19mm2+IMinzmbtERXvR6nsiA837qI+4dew==", - "requires": { - "@react-stately/form": "^3.0.1", - "@react-stately/utils": "^3.9.1", - "@react-types/radio": "^3.7.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/searchfield": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.1.tgz", - "integrity": "sha512-9A8Wghx1avRHhMpNH1Nj+jFfiF1bhsff2GEC5PZgWYzhCykw3G5bywn3JAuUS4kh7Vpqhbu4KpHAhmWPSv4B/Q==", - "requires": { - "@react-stately/utils": "^3.9.1", - "@react-types/searchfield": "^3.5.3", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/select": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.6.2.tgz", - "integrity": "sha512-duOxdHKol93h6Ew6fap6Amz+zngoERKZLSKVm/8I8uaBgkoBhEeTFv7mlpHTgINxymMw3mMrvy6GL/gfKFwkqg==", - "requires": { - "@react-stately/form": "^3.0.1", - "@react-stately/list": "^3.10.3", - "@react-stately/overlays": "^3.6.5", - "@react-types/select": "^3.9.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/selection": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.14.3.tgz", - "integrity": "sha512-d/t0rIWieqQ7wjLoMoWnuHEUSMoVXxkPBFuSlJF3F16289FiQ+b8aeKFDzFTYN7fFD8rkZTnpuE4Tcxg3TmA+w==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/slider": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.5.2.tgz", - "integrity": "sha512-ntH3NLRG+AwVC7q4Dx9DcmMkMh9vmHjHNXAgaoqNjhvwfSIae7sQ69CkVe6XeJjIBy6LlH81Kgapz+ABe5a1ZA==", - "requires": { - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@react-types/slider": "^3.7.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/table": { - "version": "3.11.6", - "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.11.6.tgz", - "integrity": "sha512-34YsfOILXusj3p6QNcKEaDWVORhM6WEhwPSLCZlkwAJvkxuRQFdih5rQKoIDc0uV5aZsB6bYBqiFhnjY0VERhw==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/flags": "^3.0.1", - "@react-stately/grid": "^3.8.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1", - "@react-types/table": "^3.9.3", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/tabs": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.6.4.tgz", - "integrity": "sha512-WZJgMBqzLgN88RN8AxhY4aH1+I+4w1qQA0Lh3LRSDegaytd+NHixCWaP3IPjePgCB5N1UsPe96Xglw75zjHmDg==", - "requires": { - "@react-stately/list": "^3.10.3", - "@react-types/shared": "^3.22.1", - "@react-types/tabs": "^3.3.5", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/toggle": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.2.tgz", - "integrity": "sha512-SHCF2btcoK57c4lyhucRbyPBAFpp0Pdp0vcPdn3hUgqbu6e5gE0CwG/mgFmZRAQoc7PRc7XifL0uNw8diJJI0Q==", - "requires": { - "@react-stately/utils": "^3.9.1", - "@react-types/checkbox": "^3.7.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/tooltip": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.7.tgz", - "integrity": "sha512-ACtRgBQ8rphBtsUaaxvEAM0HHN9PvMuyvL0vUHd7jvBDCVZJ6it1BKu9SBKjekBkoBOw9nemtkplh9R2CA6V8Q==", - "requires": { - "@react-stately/overlays": "^3.6.5", - "@react-types/tooltip": "^3.4.7", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/tree": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.7.6.tgz", - "integrity": "sha512-y8KvEoZX6+YvqjNCVGS3zA/BKw4D3XrUtUKIDme3gu5Mn6z97u+hUXKdXVCniZR7yvV3fHAIXwE5V2K8Oit4aw==", - "requires": { - "@react-stately/collections": "^3.10.5", - "@react-stately/selection": "^3.14.3", - "@react-stately/utils": "^3.9.1", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/utils": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.9.1.tgz", - "integrity": "sha512-yzw75GE0iUWiyps02BOAPTrybcsMIxEJlzXqtvllAb01O9uX5n0i3X+u2eCpj2UoDF4zS08Ps0jPgWxg8xEYtA==", - "requires": { - "@swc/helpers": "^0.5.0" - } - }, - "@react-stately/virtualizer": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-3.6.8.tgz", - "integrity": "sha512-Pf06ihTwExRJltGhi72tmLIo0pcjkL55nu7ifMafAAdxZK4ONxRLSuUjjpvYf/0Rs92xRZy2t/XmHREnfirdkQ==", - "requires": { - "@react-aria/utils": "^3.23.2", - "@react-types/shared": "^3.22.1", - "@swc/helpers": "^0.5.0" - } - }, - "@react-types/actionbar": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@react-types/actionbar/-/actionbar-3.1.5.tgz", - "integrity": "sha512-Z3hfIoaOaW8wJxQm1NyWVvSftpNDYv9iWqpEWBEdhxuqsUkOVszZ7KcNaF4qsm4bJIcJWn3FNKhaTKGwISZcdQ==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/actiongroup": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/actiongroup/-/actiongroup-3.4.7.tgz", - "integrity": "sha512-VsyHn6mGqEHKEIGFiHTq7rSuzuQjGVZGtnhh/9jQXW6zoSJyoM4fAnHEt+RE92NdiRv5e3+OzzrwG0TZsi87cQ==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/avatar": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@react-types/avatar/-/avatar-3.0.5.tgz", - "integrity": "sha512-/hM/BnRoUhusT16G4hf2hfe4FocxaM5H/a7aetUrmlr9e5ppX3n0VsU0btIwxdh+aJL8u2BBt2scoiJaujQPNg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/badge": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@react-types/badge/-/badge-3.1.7.tgz", - "integrity": "sha512-2Q5W9gleI83WpL1i6qPdcPC8l1V7364dpkNLcMi9DFmM2l69+QcPvSWVQMQLevmRo4cnaQ+TYsOgYv8I4rRJCg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/breadcrumbs": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.3.tgz", - "integrity": "sha512-eFto/+6J+JR58vThNcALZRA1OlqlG3GzQ/bq3q8IrrkOZcrfbEJJCWit/+53Ia98siJKuF4OJHnotxIVIz5I3w==", - "requires": { - "@react-types/link": "^3.5.3", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/button": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.2.tgz", - "integrity": "sha512-EnPTkGHZRtiwAoJy5q9lDjoG30bEzA/qnvKG29VVXKYAGeqY2IlFs1ypmU+z1X/CpJgPcG3I5cakM7yTVm3pSg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/buttongroup": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/buttongroup/-/buttongroup-3.3.7.tgz", - "integrity": "sha512-EZ/1k66GtDtWfE/udNRz2UBbt4YJumeyW1SGcZEO3jketvpms58WapLsMkCezlLz7WYaa5ADV0kU8v88APjI6g==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/calendar": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.4.4.tgz", - "integrity": "sha512-hV1Thmb/AES5OmfPvvmyjSkmsEULjiDfA7Yyy70L/YKuSNKb7Su+Bf2VnZuDW3ec+GxO4JJNlpJ0AkbphWBvcg==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/checkbox": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.7.1.tgz", - "integrity": "sha512-kuGqjQFex0As/3gfWyk+e9njCcad/ZdnYLLiNvhlk15730xfa0MmnOdpqo9jfuFSXBjOcpxoofvEhvrRMtEdUA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/combobox": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.10.1.tgz", - "integrity": "sha512-XMno1rgVRNta49vf5nV7VJpVSVAV20tt79t618gG1qRKH5Kt2Cy8lz2fQ5vHG6UTv/6jUOvU8g5Pc93sLaTmoA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/contextualhelp": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@react-types/contextualhelp/-/contextualhelp-3.2.8.tgz", - "integrity": "sha512-Yb0zOqkWfjKCO+gpfVj69CfWPhVq6RTgwLBV47ntIlHitpbh7RDYwDVulPyaVoopPbNSFUoV4YIJZPlOgpbKjg==", - "requires": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/datepicker": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.7.2.tgz", - "integrity": "sha512-zThqFAdhQL1dqyVDsDSSTdfCjoD6634eyg/B0ZJfQxcLUR/5pch3v/gxBhbyCVDGMNHRWUWIJvY9DVOepuoSug==", - "requires": { - "@internationalized/date": "^3.5.2", - "@react-types/calendar": "^3.4.4", - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/dialog": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.8.tgz", - "integrity": "sha512-RX8JsMvty8ADHRqVEkppoynXLtN4IzUh8d5z88UEBbcvWKlHfd6bOBQjQcBH3AUue5wjfpPIt6brw2VzgBY/3Q==", - "requires": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/divider": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/divider/-/divider-3.3.7.tgz", - "integrity": "sha512-enAlzHVwzqBPpmE+/VAO5IGVPxPrscHkdbnEkTqW9JQeMUGXd4L0TdHOGd+vtcA+gILJMnhUfT3XE4wQ4HlpVw==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/form": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.2.tgz", - "integrity": "sha512-6/isEJY4PsYoHdMaGQtqQyquXGTwB1FqCBOPKQjI/vBGWG3fL7FGfWm4Z62eTbCH4Xyv3FZuNywlT8UjPMQyKA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/grid": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.2.4.tgz", - "integrity": "sha512-sDVoyQcH7MoGdx5nBi5ZOU/mVFBt9YTxhvr0PZ97dMdEHZtJC1w9SuezwWS34f50yb8YAXQRTICbZYcK4bAlDA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/illustratedmessage": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/illustratedmessage/-/illustratedmessage-3.3.7.tgz", - "integrity": "sha512-r8WAv+w0WQSDRmDmG6jL0dXK8MjMr/lr2gBpVYVvC45Gu+fqf4VL+4zphgwASRysWclFbjQhgkgC7OEXk3GUKg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/image": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/image/-/image-3.3.7.tgz", - "integrity": "sha512-ty6wuan6p3Z8OzSrbjtL2k8yXHW+n0qiYKyqKpSA8TcRLDLhtvRceI7X12RuDfbAiEN6/zfLCuF47O3y7OeKug==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/label": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-types/label/-/label-3.9.1.tgz", - "integrity": "sha512-0N/UOhwrKjE9VjVbUoJCsH5UwTzSu3d5B3xtvhH8YFqSbJCI+HMKILby8i8ys55RA9fQDMScIjCJafEFWW7UWA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/layout": { - "version": "3.3.13", - "resolved": "https://registry.npmjs.org/@react-types/layout/-/layout-3.3.13.tgz", - "integrity": "sha512-Y3pmSsfDB+bV299F5SJannR6m/XM5IyfdqjPS0/Qx8KBBf0A3UWfL6qUr4BMEAKsEJuIXA7zT3RSo/AbGSbSyg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/link": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.3.tgz", - "integrity": "sha512-yVafjW3IejyVnK3oMBNjFABCGG6J27EUG8rvkaGaI1uB6srGUEhpJ97XLv11aj1QkXHBy3VGXqxEV3S7wn4HTw==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/listbox": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.4.7.tgz", - "integrity": "sha512-68y5H9CVSPFiwO6MOFxTbry9JQMK/Lb1M9i3M8TDyq1AbJxBPpgAvJ9RaqIMCucsnqCzpY/zA3D/X417zByL1w==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/menu": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.9.7.tgz", - "integrity": "sha512-K6KhloJVoGsqwkdeez72fkNI9dfrmLI/sNrB4XuOKo2crDQ/eyZYWyJmzz8giz/tHME9w774k487rVoefoFh5w==", - "requires": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/meter": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.3.7.tgz", - "integrity": "sha512-p+YJ0+Lpn5MLmlbFZbDH1P0ILv1+AuMcUbxLcXMIVMGn7o0FO7eVZnFuq76D+qTDm9all+TRLJix7bctOrP+5Q==", - "requires": { - "@react-types/progress": "^3.5.2" - } - }, - "@react-types/numberfield": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.1.tgz", - "integrity": "sha512-GaCjLQgXUGCt40SLjKk3/COMWFlN2vV/3Xs3VSLAEdFZpk99b+Ik1oR21+7ZP5/iMHuQDc1MJRWdFfIjxCvVDQ==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/overlays": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.5.tgz", - "integrity": "sha512-4D7EEBQigD/m8hE68Ys8eloyyZFHHduqykSIgINJ0edmo0jygRbWlTwuhWFR9USgSP4dK54duN0Mvq0m4HEVEw==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/progress": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.2.tgz", - "integrity": "sha512-aQql22kusEudsHwDEzq6y/Mh29AM+ftRDKdS5E5g4MkCY5J4FMbOYco1T5So83NIvvG9+eKcxPoJUMjQQACAyA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/provider": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.7.2.tgz", - "integrity": "sha512-nzxbfuh/ZJXt/blGAiRPkxi9jAUnnBkHcvljqdfizfLJlN5epaYYaTWNUSde27Oe1tAnpm2WDlLQo5+0C6C0FA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/radio": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.7.1.tgz", - "integrity": "sha512-Zut3rN1odIUBLZdijeyou+UqsLeRE76d9A+npykYGu29ndqmo3w4sLn8QeQcdj1IR71ZnG0pW2Y2BazhK5XrrQ==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/searchfield": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.5.3.tgz", - "integrity": "sha512-gBfsT1WpY8UIb74yyYmnjiHpVasph2mdmGj9i8cGF2HUYwx5p+Fr85mtCGDph0uirvRoM5ExMp4snD+ueNAVCg==", - "requires": { - "@react-types/shared": "^3.22.1", - "@react-types/textfield": "^3.9.1" - } - }, - "@react-types/select": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.9.2.tgz", - "integrity": "sha512-fGFrunednY3Pq/BBwVOf87Fsuyo/SlevL0wFIE9OOl2V5NXVaTY7/7RYA8hIOHPzmvsMbndy419BEudiNGhv4A==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/shared": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.22.1.tgz", - "integrity": "sha512-PCpa+Vo6BKnRMuOEzy5zAZ3/H5tnQg1e80khMhK2xys0j6ZqzkgQC+fHMNZ7VDFNLqqNMj/o0eVeSBDh2POjkw==", - "requires": {} - }, - "@react-types/slider": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.7.1.tgz", - "integrity": "sha512-FKO3YZYdrBs00XbBW5acP+0L1cCdevl/uRJiXbnLpGysO5PrSFIRS7Wlv4M7ztf6gT7b1Ao4FNC9crbxBr6BzA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/statuslight": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/statuslight/-/statuslight-3.3.7.tgz", - "integrity": "sha512-PFctvM8NJFENNWHydEK4pCMXKmjrHB2PJ/fdJ2Bi6ABRcTBXzi/qgUUdbeTG7STXlA+P2/xNgKtHheus8K+K3g==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/switch": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.1.tgz", - "integrity": "sha512-2LFEKMGeufqyYmeN/5dtkDkCPG6x9O4eu6aaBaJmPGon7C/l3yiFEgRue6oCUYc1HixR7Qlp0sPxk0tQeWzrSg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/table": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.9.3.tgz", - "integrity": "sha512-Hs/pMbxJdga2zBol4H5pV1FVIiRjCuSTXst6idJjkctanTexR4xkyrtBwl+rdLNoGwQ2pGii49vgklc5bFK7zA==", - "requires": { - "@react-types/grid": "^3.2.4", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/tabs": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.5.tgz", - "integrity": "sha512-6NTSZBOWekCtApdZrhu5tHhE/8q52oVohQN+J5T7shAXd6ZAtu8PABVR/nH4BWucc8FL0OUajRqunqzQMU13gA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/text": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/text/-/text-3.3.7.tgz", - "integrity": "sha512-URkJHS314ppyq6JjMPZbg/P4j9vey0H/Lc2+YB96qIcebBKy8iNN0IlwRsLFXimlGDp7dgn6tv+51bdJh+CRCQ==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/textfield": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.1.tgz", - "integrity": "sha512-JBHY9M2CkL6xFaGSfWmUJVu3tEK09FaeB1dU3IEh6P41xxbFnPakYHSSAdnwMXBtXPoSHIVsUBickW/pjgfe5g==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/tooltip": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.7.tgz", - "integrity": "sha512-rV4HZRQxLRNhe24yATOxnFQtGRUmsR7mqxMupXCmd1vrw8h+rdKlQv1zW2q8nALAKNmnRXZJHxYQ1SFzb98fgg==", - "requires": { - "@react-types/overlays": "^3.8.5", - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/view": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/@react-types/view/-/view-3.4.7.tgz", - "integrity": "sha512-AcgLrlaZkCXH+pD4I7pTPB52Rstg1M+V2yKPP29lnqg/rOjsqLjN/gLLy/EBi97cQ+TbDbg0854vcxAKs6qclg==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@react-types/well": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/@react-types/well/-/well-3.3.7.tgz", - "integrity": "sha512-BaZ4utlEeweD8+mAYdqwq2bS8aDrXqi4xFPdfqZpHcpbSJjmGBCCS+GU2y/N2Yl1aODu5l0+gcrvxxr63bV+GA==", - "requires": { - "@react-types/shared": "^3.22.1" - } - }, - "@spectrum-icons/ui": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.6.5.tgz", - "integrity": "sha512-L1QISmlzoA4xuBdMpWT2vkR7NDxuROjSwC5BxS8R2SAZR4oKs0dPfODaw2uju6D/xqJIqVrSM6yQDhV51lPKyA==", - "requires": { - "@adobe/react-spectrum-ui": "1.2.0", - "@react-spectrum/icon": "^3.7.11", - "@swc/helpers": "^0.5.0" - }, - "dependencies": { - "@adobe/react-spectrum-ui": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-ui/-/react-spectrum-ui-1.2.0.tgz", - "integrity": "sha512-os3EdjfyJbrukLcZ5uYtdFRiDlLB3zq2JoXp19J/IDpZ8btibJeRZYSwjL+LscEiT2pOYaF2McMQdkZTIwnllw==", - "requires": {} - } - } - }, - "@spectrum-icons/workflow": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.2.10.tgz", - "integrity": "sha512-CaDYaGMe2bYDozzHztrgEy0tljQWn4OBE9hJC2fAM5cMTve4viiWhcmHYYWFv3MZQyavHy1UwCL1jlXg7bK3PA==", - "requires": { - "@adobe/react-spectrum-workflow": "2.3.4", - "@react-spectrum/icon": "^3.7.11", - "@swc/helpers": "^0.5.0" - }, - "dependencies": { - "@adobe/react-spectrum-workflow": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-workflow/-/react-spectrum-workflow-2.3.4.tgz", - "integrity": "sha512-XPLzIBl58HdLF9WIPB7RDAvVXvCE3SjG+HaWQhW2P9MnxSz1DEA9O7mlTlYblJkMbfk10T/+RFaSupc1yoN+TA==", - "requires": {} - } - } - }, - "@swc/core": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.17.tgz", - "integrity": "sha512-tq+mdWvodMBNBBZbwFIMTVGYHe9N7zvEaycVVjfvAx20k1XozHbHhRv+9pEVFJjwRxLdXmtvFZd3QZHRAOpoNQ==", - "dev": true, - "requires": { - "@swc/core-darwin-arm64": "1.4.17", - "@swc/core-darwin-x64": "1.4.17", - "@swc/core-linux-arm-gnueabihf": "1.4.17", - "@swc/core-linux-arm64-gnu": "1.4.17", - "@swc/core-linux-arm64-musl": "1.4.17", - "@swc/core-linux-x64-gnu": "1.4.17", - "@swc/core-linux-x64-musl": "1.4.17", - "@swc/core-win32-arm64-msvc": "1.4.17", - "@swc/core-win32-ia32-msvc": "1.4.17", - "@swc/core-win32-x64-msvc": "1.4.17", - "@swc/counter": "^0.1.2", - "@swc/types": "^0.1.5" - } - }, - "@swc/core-darwin-arm64": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.17.tgz", - "integrity": "sha512-HVl+W4LezoqHBAYg2JCqR+s9ife9yPfgWSj37iIawLWzOmuuJ7jVdIB7Ee2B75bEisSEKyxRlTl6Y1Oq3owBgw==", - "dev": true, - "optional": true - }, - "@swc/core-darwin-x64": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.17.tgz", - "integrity": "sha512-WYRO9Fdzq4S/he8zjW5I95G1zcvyd9yyD3Tgi4/ic84P5XDlSMpBDpBLbr/dCPjmSg7aUXxNQqKqGkl6dQxYlA==", - "dev": true, - "optional": true - }, - "@swc/core-linux-arm-gnueabihf": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.17.tgz", - "integrity": "sha512-cgbvpWOvtMH0XFjvwppUCR+Y+nf6QPaGu6AQ5hqCP+5Lv2zO5PG0RfasC4zBIjF53xgwEaaWmGP5/361P30X8Q==", - "dev": true, - "optional": true - }, - "@swc/core-linux-arm64-gnu": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.17.tgz", - "integrity": "sha512-l7zHgaIY24cF9dyQ/FOWbmZDsEj2a9gRFbmgx2u19e3FzOPuOnaopFj0fRYXXKCmtdx+anD750iBIYnTR+pq/Q==", - "dev": true, - "optional": true - }, - "@swc/core-linux-arm64-musl": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.17.tgz", - "integrity": "sha512-qhH4gr9gAlVk8MBtzXbzTP3BJyqbAfUOATGkyUtohh85fPXQYuzVlbExix3FZXTwFHNidGHY8C+ocscI7uDaYw==", - "dev": true, - "optional": true - }, - "@swc/core-linux-x64-gnu": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.17.tgz", - "integrity": "sha512-vRDFATL1oN5oZMImkwbgSHEkp8xG1ofEASBypze01W1Tqto8t+yo6gsp69wzCZBlxldsvPpvFZW55Jq0Rn+UnA==", - "dev": true, - "optional": true - }, - "@swc/core-linux-x64-musl": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.17.tgz", - "integrity": "sha512-zQNPXAXn3nmPqv54JVEN8k2JMEcMTQ6veVuU0p5O+A7KscJq+AGle/7ZQXzpXSfUCXlLMX4wvd+rwfGhh3J4cw==", - "dev": true, - "optional": true - }, - "@swc/core-win32-arm64-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.17.tgz", - "integrity": "sha512-z86n7EhOwyzxwm+DLE5NoLkxCTme2lq7QZlDjbQyfCxOt6isWz8rkW5QowTX8w9Rdmk34ncrjSLvnHOeLY17+w==", - "dev": true, - "optional": true - }, - "@swc/core-win32-ia32-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.17.tgz", - "integrity": "sha512-JBwuSTJIgiJJX6wtr4wmXbfvOswHFj223AumUrK544QV69k60FJ9q2adPW9Csk+a8wm1hLxq4HKa2K334UHJ/g==", - "dev": true, - "optional": true - }, - "@swc/core-win32-x64-msvc": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.17.tgz", - "integrity": "sha512-jFkOnGQamtVDBm3MF5Kq1lgW8vx4Rm1UvJWRUfg+0gx7Uc3Jp3QMFeMNw/rDNQYRDYPG3yunCC+2463ycd5+dg==", - "dev": true, - "optional": true - }, - "@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true - }, - "@swc/helpers": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz", - "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==", - "requires": { - "tslib": "^2.4.0" - } - }, - "@swc/types": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz", - "integrity": "sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==", - "dev": true, - "requires": { - "@swc/counter": "^0.1.3" - } - }, - "@turf/area": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", - "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/bbox": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", - "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/centroid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", - "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/helpers": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", - "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==" - }, - "@turf/meta": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", - "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" - }, - "@types/react": { - "version": "17.0.80", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.80.tgz", - "integrity": "sha512-LrgHIu2lEtIo8M7d1FcI3BdwXWoRQwMoXOZ7+dPTW0lYREjmlHl3P0U1VD0i/9tppOuv8/sam7sOjx34TxSFbA==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "^0.16", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz", - "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==", - "dev": true, - "requires": { - "@types/react": "^17" - } - }, - "@types/react-redux": { - "version": "7.1.33", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz", - "integrity": "sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg==", - "requires": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" - }, - "@vitejs/plugin-react-swc": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.6.0.tgz", - "integrity": "sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==", - "dev": true, - "requires": { - "@swc/core": "^1.3.107" - } - }, - "abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - }, - "almost-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", - "integrity": "sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A==" - }, - "array-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", - "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" - }, - "array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "requires": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - } - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==" - }, - "array-normalize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", - "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", - "requires": { - "array-bounds": "^1.0.0" - } - }, - "array-range": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", - "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==" - }, - "array-rearrange": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", - "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==" - }, - "available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "requires": { - "possible-typed-array-names": "^1.0.0" - } - }, - "base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==" - }, - "binary-search-bounds": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", - "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==" - }, - "bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==" - }, - "bitmap-sdf": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", - "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==" - }, - "bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "bootstrap": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", - "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", - "requires": {} - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "canvas-fit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", - "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==", - "requires": { - "element-size": "^1.1.1" - } - }, - "clamp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==" - }, - "classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" - }, - "client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" - }, - "color-alpha": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", - "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", - "requires": { - "color-parse": "^1.3.8" - }, - "dependencies": { - "color-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", - "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", - "requires": { - "color-name": "^1.0.0" - } - } - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", - "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", - "requires": { - "clamp": "^1.0.1" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "color-normalize": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", - "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", - "requires": { - "clamp": "^1.0.1", - "color-rgba": "^2.1.1", - "dtype": "^2.0.0" - } - }, - "color-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz", - "integrity": "sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg==", - "requires": { - "color-name": "^1.0.0" - } - }, - "color-rgba": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", - "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", - "requires": { - "clamp": "^1.0.1", - "color-parse": "^1.3.8", - "color-space": "^1.14.6" - }, - "dependencies": { - "color-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", - "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", - "requires": { - "color-name": "^1.0.0" - } - } - } - }, - "color-space": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", - "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", - "requires": { - "hsluv": "^0.0.3", - "mumath": "^3.3.4" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "country-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", - "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==" - }, - "css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "requires": { - "tiny-invariant": "^1.0.6" - } - }, - "css-font": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", - "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", - "requires": { - "css-font-size-keywords": "^1.0.0", - "css-font-stretch-keywords": "^1.0.1", - "css-font-style-keywords": "^1.0.1", - "css-font-weight-keywords": "^1.0.0", - "css-global-keywords": "^1.0.1", - "css-system-font-keywords": "^1.0.0", - "pick-by-alias": "^1.2.0", - "string-split-by": "^1.0.0", - "unquote": "^1.1.0" - } - }, - "css-font-size-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", - "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==" - }, - "css-font-stretch-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", - "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==" - }, - "css-font-style-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", - "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==" - }, - "css-font-weight-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", - "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==" - }, - "css-global-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", - "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==" - }, - "css-system-font-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", - "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==" - }, - "csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" - }, - "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "d": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", - "requires": { - "es5-ext": "^0.10.64", - "type": "^2.7.2" - } - }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" - }, - "d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "requires": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "requires": { - "d3-array": "1" - } - }, - "d3-geo-projection": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", - "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", - "requires": { - "commander": "2", - "d3-array": "1", - "d3-geo": "^1.12.0", - "resolve": "^1.1.10" - } - }, - "d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "requires": { - "d3-color": "1 - 3" - } - }, - "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "requires": { - "d3-path": "1" - } - }, - "d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "requires": { - "d3-time": "1" - } - }, - "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - } - }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==" - }, - "detect-kerning": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", - "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==" - }, - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "draw-svg-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", - "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", - "requires": { - "abs-svg-path": "~0.1.1", - "normalize-svg-path": "~0.1.0" - } - }, - "dtype": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==" - }, - "dup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", - "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" - }, - "element-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", - "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==" - }, - "elementary-circuits-directed-graph": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", - "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", - "requires": { - "strongly-connected-components": "^1.0.1" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" - }, - "es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - } - }, - "es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", - "requires": { - "d": "^1.0.2", - "ext": "^1.7.0" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" - } - }, - "escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "source-map": "~0.6.1" - } - }, - "esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "event-target-shim": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz", - "integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "requires": { - "type": "^2.7.2" - } - }, - "falafel": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", - "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", - "requires": { - "acorn": "^7.1.1", - "isarray": "^2.0.1" - } - }, - "fast-isnumeric": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", - "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", - "requires": { - "is-string-blank": "^1.0.1" - } - }, - "flatten-vertex-data": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", - "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", - "requires": { - "dtype": "^2.0.0" - } - }, - "font-atlas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", - "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", - "requires": { - "css-font": "^1.0.0" - } - }, - "font-measure": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", - "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", - "requires": { - "css-font": "^1.2.0" - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "requires": { - "is-callable": "^1.1.3" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" - }, - "geojson-vt": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", - "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" - }, - "get-canvas-context": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", - "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==" - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "gl-mat4": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", - "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" - }, - "gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" - }, - "gl-text": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.4.0.tgz", - "integrity": "sha512-o47+XBqLCj1efmuNyCHt7/UEJmB9l66ql7pnobD6p+sgmBUdzfMZXIF0zD2+KRfpd99DJN+QXdvTFAGCKCVSmQ==", - "requires": { - "bit-twiddle": "^1.0.2", - "color-normalize": "^1.5.0", - "css-font": "^1.2.0", - "detect-kerning": "^2.1.2", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "font-atlas": "^2.1.0", - "font-measure": "^1.2.2", - "gl-util": "^3.1.2", - "is-plain-obj": "^1.1.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "parse-unit": "^1.0.1", - "pick-by-alias": "^1.2.0", - "regl": "^2.0.0", - "to-px": "^1.0.1", - "typedarray-pool": "^1.1.0" - } - }, - "gl-util": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", - "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", - "requires": { - "is-browser": "^2.0.1", - "is-firefox": "^1.0.3", - "is-plain-obj": "^1.1.0", - "number-is-integer": "^1.0.1", - "object-assign": "^4.1.0", - "pick-by-alias": "^1.2.0", - "weak-map": "^1.0.5" - } - }, - "glsl-inject-defines": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", - "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==", - "requires": { - "glsl-token-inject-block": "^1.0.0", - "glsl-token-string": "^1.0.1", - "glsl-tokenizer": "^2.0.2" - } - }, - "glsl-resolve": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", - "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==", - "requires": { - "resolve": "^0.6.1", - "xtend": "^2.1.2" - }, - "dependencies": { - "resolve": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", - "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==" - }, - "xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==" - } - } - }, - "glsl-token-assignments": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", - "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==" - }, - "glsl-token-defines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", - "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==", - "requires": { - "glsl-tokenizer": "^2.0.0" - } - }, - "glsl-token-depth": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", - "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==" - }, - "glsl-token-descope": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", - "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==", - "requires": { - "glsl-token-assignments": "^2.0.0", - "glsl-token-depth": "^1.1.0", - "glsl-token-properties": "^1.0.0", - "glsl-token-scope": "^1.1.0" - } - }, - "glsl-token-inject-block": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", - "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==" - }, - "glsl-token-properties": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", - "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==" - }, - "glsl-token-scope": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", - "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==" - }, - "glsl-token-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", - "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==" - }, - "glsl-token-whitespace-trim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", - "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==" - }, - "glsl-tokenizer": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", - "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", - "requires": { - "through2": "^0.6.3" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "glslify": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", - "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", - "requires": { - "bl": "^2.2.1", - "concat-stream": "^1.5.2", - "duplexify": "^3.4.5", - "falafel": "^2.1.0", - "from2": "^2.3.0", - "glsl-resolve": "0.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glslify-bundle": "^5.0.0", - "glslify-deps": "^1.2.5", - "minimist": "^1.2.5", - "resolve": "^1.1.5", - "stack-trace": "0.0.9", - "static-eval": "^2.0.5", - "through2": "^2.0.1", - "xtend": "^4.0.0" - } - }, - "glslify-bundle": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", - "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", - "requires": { - "glsl-inject-defines": "^1.0.1", - "glsl-token-defines": "^1.0.0", - "glsl-token-depth": "^1.1.1", - "glsl-token-descope": "^1.0.2", - "glsl-token-scope": "^1.1.1", - "glsl-token-string": "^1.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glsl-tokenizer": "^2.0.2", - "murmurhash-js": "^1.0.0", - "shallow-copy": "0.0.1" - } - }, - "glslify-deps": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", - "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", - "requires": { - "@choojs/findup": "^0.2.0", - "events": "^3.2.0", - "glsl-resolve": "0.0.1", - "glsl-tokenizer": "^2.0.0", - "graceful-fs": "^4.1.2", - "inherits": "^2.0.1", - "map-limit": "0.0.1", - "resolve": "^1.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "grid-index": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" - }, - "has-hover": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", - "integrity": "sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==", - "requires": { - "is-browser": "^2.0.1" - } - }, - "has-passive-events": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", - "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", - "requires": { - "is-browser": "^2.0.1" - } - }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "requires": { - "has-symbols": "^1.0.3" - } - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { - "function-bind": "^1.1.2" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "hsluv": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", - "integrity": "sha512-08iL2VyCRbkQKBySkSh6m8zMUa3sADAxGVWs3Z1aPcUkTJeK0ETG4Fc27tEmQBGUAXZjIsXOZqBvacuVNSC/fQ==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "requires": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - } - }, - "intl-messageformat": { - "version": "10.5.11", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.11.tgz", - "integrity": "sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==", - "requires": { - "@formatjs/ecma402-abstract": "1.18.2", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.6", - "tslib": "^2.4.0" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - } - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", - "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==" - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "requires": { - "hasown": "^2.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" - }, - "is-firefox": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", - "integrity": "sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==" - }, - "is-iexplorer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", - "integrity": "sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==" - }, - "is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==" - }, - "is-mobile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", - "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==" - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==" - }, - "is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "requires": { - "call-bind": "^1.0.7" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-string-blank": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", - "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==" - }, - "is-svg-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", - "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==" - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==" - }, - "is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - } - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "kdbush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", - "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" - }, - "legacy-swc-helpers": { - "version": "npm:@swc/helpers@0.4.14", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", - "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", - "requires": { - "tslib": "^2.4.0" - } - }, - "linkifyjs": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.1.3.tgz", - "integrity": "sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==" - }, - "lodash.clamp": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz", - "integrity": "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==" - }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", - "requires": { - "es5-ext": "~0.10.2" - } - }, - "map-limit": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", - "requires": { - "once": "~1.3.0" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", - "requires": { - "wrappy": "1" - } - } - } - }, - "mapbox-gl": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz", - "integrity": "sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==", - "peer": true, - "requires": { - "@mapbox/geojson-rewind": "^0.5.2", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.1.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - } - }, - "math-log2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", - "integrity": "sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==" - }, - "memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" - }, - "memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "monaco-editor": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", - "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==" - }, - "mouse-change": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", - "integrity": "sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ==", - "requires": { - "mouse-event": "^1.0.0" - } - }, - "mouse-event": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", - "integrity": "sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw==" - }, - "mouse-event-offset": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", - "integrity": "sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==" - }, - "mouse-wheel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", - "integrity": "sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw==", - "requires": { - "right-now": "^1.0.0", - "signum": "^1.0.0", - "to-px": "^1.0.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "mumath": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", - "integrity": "sha512-VAFIOG6rsxoc7q/IaY3jdjmrsuX9f15KlRLYTHmixASBZkZEKC1IFqE2BC5CdhXmK6WLM1Re33z//AGmeRI6FA==", - "requires": { - "almost-equal": "^1.1.0" - } - }, - "murmurhash-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" - }, - "nanoid": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", - "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" - }, - "native-promise-only": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", - "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==" - }, - "needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "normalize-svg-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", - "integrity": "sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==" - }, - "number-is-integer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", - "integrity": "sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==", - "requires": { - "is-finite": "^1.0.1" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" - }, - "object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "papaparse": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz", - "integrity": "sha512-6dNZu0Ki+gyV0eBsFKJhYr+MdQYAzFUGlBMNj3GNrmHxmz1lfRa24CjFObPXtjcetlOv5Ad299MhIK0znp3afw==" - }, - "parenthesis": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", - "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==" - }, - "parse-rect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", - "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", - "requires": { - "pick-by-alias": "^1.2.0" - } - }, - "parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" - }, - "parse-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", - "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "requires": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "pick-by-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", - "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "plotly.js": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.32.0.tgz", - "integrity": "sha512-QBYyfVFs1XdoXQBq/f7SoiqQD/BEyDA5WwvN1NwY4ZTrTX6GmJ5jE5ydlt1I4K8i5W6H1atgti31jcSYD6StKA==", - "requires": { - "@plotly/d3": "3.8.1", - "@plotly/d3-sankey": "0.7.2", - "@plotly/d3-sankey-circular": "0.33.1", - "@plotly/mapbox-gl": "1.13.4", - "@turf/area": "^6.4.0", - "@turf/bbox": "^6.4.0", - "@turf/centroid": "^6.0.2", - "base64-arraybuffer": "^1.0.2", - "canvas-fit": "^1.5.0", - "color-alpha": "1.0.4", - "color-normalize": "1.5.0", - "color-parse": "2.0.0", - "color-rgba": "2.1.1", - "country-regex": "^1.1.0", - "d3-force": "^1.2.1", - "d3-format": "^1.4.5", - "d3-geo": "^1.12.1", - "d3-geo-projection": "^2.9.0", - "d3-hierarchy": "^1.1.9", - "d3-interpolate": "^3.0.1", - "d3-time": "^1.1.0", - "d3-time-format": "^2.2.3", - "fast-isnumeric": "^1.1.4", - "gl-mat4": "^1.2.0", - "gl-text": "^1.4.0", - "has-hover": "^1.0.1", - "has-passive-events": "^1.0.0", - "is-mobile": "^4.0.0", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.2.0", - "native-promise-only": "^0.8.1", - "parse-svg-path": "^0.1.2", - "point-in-polygon": "^1.1.0", - "polybooljs": "^1.2.0", - "probe-image-size": "^7.2.3", - "regl": "npm:@plotly/regl@^2.1.2", - "regl-error2d": "^2.0.12", - "regl-line2d": "^3.1.3", - "regl-scatter2d": "^3.3.1", - "regl-splom": "^1.0.14", - "strongly-connected-components": "^1.0.1", - "superscript-text": "^1.0.0", - "svg-path-sdf": "^1.1.3", - "tinycolor2": "^1.4.2", - "to-px": "1.0.1", - "topojson-client": "^3.1.0", - "webgl-context": "^2.2.0", - "world-calendars": "^1.0.3" - } - }, - "point-in-polygon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", - "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" - }, - "polybooljs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.2.tgz", - "integrity": "sha512-ziHW/02J0XuNuUtmidBc6GXE8YohYydp3DWPWXYsd7O721TjcmN+k6ezjdwkDqep+gnWnFY+yqZHvzElra2oCg==" - }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" - }, - "possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==" - }, - "postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "dependencies": { - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true - } - } - }, - "potpack": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", - "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" - }, - "probe-image-size": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", - "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", - "requires": { - "lodash.merge": "^4.6.2", - "needle": "^2.5.2", - "stream-parser": "~0.3.1" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" - }, - "quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "raf-schd": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", - "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-beautiful-dnd": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", - "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", - "requires": { - "@babel/runtime": "^7.9.2", - "css-box-model": "^1.2.0", - "memoize-one": "^5.1.1", - "raf-schd": "^4.0.2", - "react-redux": "^7.2.0", - "redux": "^4.0.4", - "use-memo-one": "^1.1.1" - } - }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "peer": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "react-plotly.js": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-plotly.js/-/react-plotly.js-2.6.0.tgz", - "integrity": "sha512-g93xcyhAVCSt9kV1svqG1clAEdL6k3U+jjuSzfTV7owaSU9Go6Ph8bl25J+jKfKvIGAEYpe4qj++WHJuc9IaeA==", - "requires": { - "prop-types": "^15.8.1" - } - }, - "react-redux": { - "version": "7.2.9", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", - "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", - "requires": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - } - }, - "react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, - "react-virtualized-auto-sizer": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz", - "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==", - "requires": {} - }, - "react-window": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.10.tgz", - "integrity": "sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==", - "requires": { - "@babel/runtime": "^7.0.0", - "memoize-one": ">=3.1.1 <6" - } - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "requires": { - "@babel/runtime": "^7.9.2" - } - }, - "redux-thunk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", - "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", - "requires": {} - }, - "regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "requires": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - } - }, - "regl": { - "version": "npm:@plotly/regl@2.1.2", - "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", - "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==" - }, - "regl-error2d": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz", - "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==", - "requires": { - "array-bounds": "^1.0.1", - "color-normalize": "^1.5.0", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "regl-line2d": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.3.tgz", - "integrity": "sha512-fkgzW+tTn4QUQLpFKsUIE0sgWdCmXAM3ctXcCgoGBZTSX5FE2A0M7aynz7nrZT5baaftLrk9te54B+MEq4QcSA==", - "requires": { - "array-bounds": "^1.0.1", - "array-find-index": "^1.0.2", - "array-normalize": "^1.1.4", - "color-normalize": "^1.5.0", - "earcut": "^2.1.5", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0" - } - }, - "regl-scatter2d": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz", - "integrity": "sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==", - "requires": { - "@plotly/point-cluster": "^3.1.9", - "array-range": "^1.0.1", - "array-rearrange": "^2.2.2", - "clamp": "^1.0.1", - "color-id": "^1.1.0", - "color-normalize": "^1.5.0", - "color-rgba": "^2.1.1", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "is-iexplorer": "^1.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "regl-splom": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz", - "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", - "requires": { - "array-bounds": "^1.0.1", - "array-range": "^1.0.1", - "color-alpha": "^1.0.4", - "flatten-vertex-data": "^1.0.2", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "raf": "^3.4.1", - "regl-scatter2d": "^3.2.3" - } - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "requires": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "right-now": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", - "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==" - }, - "rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "peer": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - } - }, - "shallow-copy": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==" - }, - "shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==" - }, - "side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - } - }, - "signum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", - "integrity": "sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - }, - "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true - }, - "stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==" - }, - "static-eval": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", - "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", - "requires": { - "escodegen": "^2.1.0" - } - }, - "stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "requires": { - "internal-slot": "^1.0.4" - } - }, - "stream-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", - "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", - "requires": { - "debug": "2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "string-split-by": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", - "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", - "requires": { - "parenthesis": "^3.1.5" - } - }, - "strongly-connected-components": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", - "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==" - }, - "supercluster": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", - "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", - "requires": { - "kdbush": "^3.0.0" - } - }, - "superscript-text": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", - "integrity": "sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ==" - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "svg-arc-to-cubic-bezier": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", - "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" - }, - "svg-path-bounds": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", - "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", - "requires": { - "abs-svg-path": "^0.1.1", - "is-svg-path": "^1.0.1", - "normalize-svg-path": "^1.0.0", - "parse-svg-path": "^0.1.2" - }, - "dependencies": { - "normalize-svg-path": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", - "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", - "requires": { - "svg-arc-to-cubic-bezier": "^3.0.0" - } - } - } - }, - "svg-path-sdf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", - "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", - "requires": { - "bitmap-sdf": "^1.0.0", - "draw-svg-path": "^1.0.0", - "is-svg-path": "^1.0.1", - "parse-svg-path": "^0.1.2", - "svg-path-bounds": "^1.0.1" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" - }, - "tinycolor2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" - }, - "tinyqueue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "to-float32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz", - "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==" - }, - "to-px": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", - "integrity": "sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==", - "requires": { - "parse-unit": "^1.0.1" - } - }, - "topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "requires": { - "commander": "2" - } - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "typedarray-pool": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", - "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", - "requires": { - "bit-twiddle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" - }, - "update-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", - "integrity": "sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==" - }, - "use-memo-one": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", - "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", - "requires": {} - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "vite": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.5.tgz", - "integrity": "sha512-zJ0RiVkf61kpd7O+VtU6r766xgnTaIknP/lR6sJTZq3HtVJ3HGnTo5DaJhTUtYoTyS/CQwZ6yEVdc/lrmQT7dQ==", - "dev": true, - "requires": { - "esbuild": "^0.16.14", - "fsevents": "~2.3.2", - "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.10.0" - } - }, - "vt-pbf": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", - "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", - "requires": { - "@mapbox/point-geometry": "0.1.0", - "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.2.1" - } - }, - "weak-map": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz", - "integrity": "sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==" - }, - "webgl-context": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", - "integrity": "sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==", - "requires": { - "get-canvas-context": "^1.0.1" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "requires": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - } - }, - "which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - } - }, - "world-calendars": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", - "integrity": "sha512-sAjLZkBnsbHkHWVhrsCU5Sa/EVuf9QqgvrN8zyJ2L/F9FR9Oc6CvVK0674+PGAtmmmYQMH98tCUSO4QLQv3/TQ==", - "requires": { - "object-assign": "^4.1.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - } - } -} From ddf6597fc7ea9fcc314bf4dab363461c7e8303d2 Mon Sep 17 00:00:00 2001 From: Akshat Jawne <69530774+AkshatJawne@users.noreply.github.com> Date: Thu, 22 Aug 2024 09:23:31 -0600 Subject: [PATCH 10/22] docs: ui.range_slider (#755) Closes #745 --------- Co-authored-by: margaretkennedy <82049573+margaretkennedy@users.noreply.github.com> Co-authored-by: Don --- plugins/ui/docs/components/range_slider.md | 169 ++++++++++++++++++ plugins/ui/docs/components/text_area.md | 2 +- .../deephaven/ui/components/range_slider.py | 10 +- 3 files changed, 176 insertions(+), 5 deletions(-) create mode 100644 plugins/ui/docs/components/range_slider.md diff --git a/plugins/ui/docs/components/range_slider.md b/plugins/ui/docs/components/range_slider.md new file mode 100644 index 000000000..5e9755f5b --- /dev/null +++ b/plugins/ui/docs/components/range_slider.md @@ -0,0 +1,169 @@ +# Range Slider + +Range sliders allow users to quickly select a subset range within a fixed range and should be used when the upper and lower bounds of the range are constant. + +## Example + +```python +from deephaven import ui + +my_range_slider_basic = ui.range_slider( + default_value={"start": 18, "end": 80}, label="Age range" +) +``` + +## UI recommendations + +Recommendations for creating range sliders: + +1. Every range slider should have a [label](#labeling) specified. Without one, the range slider is ambiguous. In the rare case that context is sufficient, the label is unnecessary; you must still include an aria-label via the `aria_label` prop. +2. The label and contextual help text should be in sentence case. + +Consider using a `slider` instead of a `range_slider` when users should select a singular value or a `number_field` when the range is large and sliding between the upper and lower bound is no longer quick. + +## Value + +Sliders are controlled with the `value` prop and uncontrolled with the `default_value` prop. This value, consisting of `start` and `end`, must fall between the slider's minimum and maximum values, which by default are 0 and 100 respectively. + +```python +from deephaven import ui + + +@ui.component +def range_slider_value_example(): + value, set_value = ui.use_state({"start": 25, "end": 75}) + + def handle_value_change(new_value): + print(f"Range changed to {new_value}") + set_value(new_value) + + return [ + ui.range_slider( + default_value={"start": 25, "end": 75}, label="Range (uncontrolled)" + ), + ui.range_slider( + value=value, on_change=handle_value_change, label="Range (controlled)" + ), + ] + + +my_range_slider_value_example = range_slider_value_example() +``` + + +## Scale + +Setting the `min_value` and `max_value` props configures a custom scale for the range slider. + +The `step` prop changes the increments in which the range slider changes. + +```python +from deephaven import ui + + +@ui.component +def range_slider_range_step_examples(): + return [ + ui.range_slider( + default_value={"start": 75, "end": 100}, + min_value=50, + max_value=150, + label="Range", + ), + ui.range_slider( + default_value={"start": 10, "end": 100}, + min_value=0, + max_value=500, + step=10, + label="Range", + ), + ] + + +my_range_slider_range_step_examples = range_slider_range_step_examples() +``` + + +## HTML Forms + +Range sliders can support a `name` prop for integration with HTML forms, allowing for easy identification of a value on form submission. + +```python +from deephaven import ui + + +my_range_slider_name_example = ui.form( + ui.range_slider( + label="Opacity", default_value={"start": 50, "end": 100}, name="Opacity Range" + ) +) +``` + + +## Labeling + +Value labels are shown above the range slider by default but can be moved to the side or hidden using the `label_position` prop. + +Note that if the `label` prop is set, the `show_value_label` is set to True by default. + +```python +from deephaven import ui + + +my_range_slider_label_example = ui.flex( + ui.range_slider(label="Jeans price range", default_value={"start": 75, "end": 100}), + ui.range_slider( + label="Shoes price range", + label_position="side", + default_value={"start": 50, "end": 100}, + ), + ui.range_slider( + label="Cakes to buy", + show_value_label=False, + default_value={"start": 15, "end": 30}, + ), + direction="column", + gap="size-500", +) +``` + + +## Contextual Help + +A `ui.contextual_help` can be passed into the `contextual_help` prop to provide additional information about the range slider. + +```python +from deephaven import ui + + +my_range_slider_contextual_help_example = ui.range_slider( + label="Search Radius", + min_value=0, + max_value=100, + default_value={"start": 15, "end": 60}, + contextual_help=ui.contextual_help( + ui.heading("Ranking"), + ui.content("Search results are sorted by distance from city center."), + ), +) +``` + + +## Disabled + +Setting the `is_disabled` prop disables the range slider. + +```python +from deephaven import ui + + +my_range_slider_disabled_example = ui.range_slider( + label="Price filter", default_value={"start": 25, "end": 50}, is_disabled=True +) +``` + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.range_slider +``` \ No newline at end of file diff --git a/plugins/ui/docs/components/text_area.md b/plugins/ui/docs/components/text_area.md index ca76facf4..f77a0c203 100644 --- a/plugins/ui/docs/components/text_area.md +++ b/plugins/ui/docs/components/text_area.md @@ -1,6 +1,6 @@ # Text Area -TextAreas are multiline text inputs, ideal for cases where users have a sizable amount of text to enter. TextAreas can be customized in the same ways that TextFields can. +Text areas are multiline text inputs, ideal for cases where users have a sizable amount of text to enter. Text areas can be customized in the same ways that text fields can. ## Example diff --git a/plugins/ui/src/deephaven/ui/components/range_slider.py b/plugins/ui/src/deephaven/ui/components/range_slider.py index 2fdf4e8cd..b6aab50ae 100644 --- a/plugins/ui/src/deephaven/ui/components/range_slider.py +++ b/plugins/ui/src/deephaven/ui/components/range_slider.py @@ -139,20 +139,22 @@ def range_slider( is_hidden: Whether the element is hidden. id: The unique identifier of the element. aria_label: The label for the element. - aria_labelled_by: The id of the element that labels the current element. - aria_described_by: The id of the element that describes the current element. + aria_labelledby: The id of the element that labels the current element. + aria_describedby: The id of the element that describes the current element. aria_details: The id of the element that provides additional information about the current element. UNSAFE_class_name: A CSS class to apply to the element. UNSAFE_style: A CSS style to apply to the element. + + Returns: + The rendered range slider component. """ + return component_element( "RangeSlider", start_name=start_name, end_name=end_name, - # format_options=format_options, label_position=label_position, show_value_label=show_value_label, - # get_value_label=get_value_label, contextual_help=contextual_help, orientation=orientation, is_disabled=is_disabled, From 4d23bb88c484aa31e1ac852ded49cee3bde73eef Mon Sep 17 00:00:00 2001 From: dgodinez-dh <77981300+dgodinez-dh@users.noreply.github.com> Date: Thu, 22 Aug 2024 10:45:49 -0600 Subject: [PATCH 11/22] fix: Use consistent date for ui_render_all Date Picker (#767) fixes https://github.com/deephaven/deephaven-plugins/issues/369 Date Picker placeholder rendered AM / PM depending on the time test was running. This fixes it by using a consistent date. --- tests/app.d/ui_render_all.py | 2 +- ...all-components-render-1-chromium-linux.png | Bin 61777 -> 60717 bytes ...-all-components-render-1-firefox-linux.png | Bin 97133 -> 95334 bytes ...I-all-components-render-1-webkit-linux.png | Bin 67920 -> 66811 bytes 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/app.d/ui_render_all.py b/tests/app.d/ui_render_all.py index e7b7fb40a..60858a71e 100644 --- a/tests/app.d/ui_render_all.py +++ b/tests/app.d/ui_render_all.py @@ -55,7 +55,7 @@ def ui_components(): # TODO: #201 ui.combo_box("Combo Box"), ui.content("Content"), ui.contextual_help("Contextual Help"), - ui.date_picker(label="Date Picker"), + ui.date_picker(label="Date Picker", value="2021-01-01"), ui.flex("Flex default child A", "Flex default child B"), ui.flex("Flex column child A", "Flex column child B", direction="column"), ui.form("Form"), diff --git a/tests/ui.spec.ts-snapshots/UI-all-components-render-1-chromium-linux.png b/tests/ui.spec.ts-snapshots/UI-all-components-render-1-chromium-linux.png index f4c2a82fd9186b0e955c3020d7d96a19acd3af50..7dec3ca00db0ddce572395db8c18c547bcd91aaf 100644 GIT binary patch literal 60717 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 literal 61777 zcmce8byQVf+wDP=kOpZGX{EcQML@cwyBp~aB?KwyE@_bNR_Qo^bax}&eHZ$B<9_dZ zzxRIkk9!7Vu*W$2?6vmVYdveu`OIer$;pVJJSKPyfk05+h>IvdAdkS|gJ^^Y;NQsD z19$Kb#$G{87*gC%vVILlI+BT~mGi0=wb>)^C;d!H9pp5nMO*%OOp8 z>kc>3cK^xh|8hSb;FG6P3y1gT@c03y?w_MUBypcVJr-nq2J_d|n|vPrwC zbsMTzmM*Bj<0g{f3wQ{TTlW*z6Y>)B(r#9zv*vA05mwq_i!@D=`=;K3m`+X5DER;~ zf?>sfV5YrGtkkc|k`N|?dU5fnuC7ivqm*I!AtcX+2(`1P=aa>EX~{R_er%D8#db7^xG%N{`3 zUg?+B=H&%KjR^?}?YWXgS!Ujb6;x&^8KwN|wen;=U}0fV($39GVAj;%+1uN1v+zQE z;7&Qt=*K@yPXxTAp>eb))Toqxt_!t&uo2WTObG+o>YAR>WKh|mZl1F6;U+@$!h?lC zljNRfF}$}>YE9v#i6K~Am{EE#MnvtCYRapH2}uu&jy1n*>(omB592+U&@PG7pUPU8 zkqPlB__^tzsED=Gd;g0j-VbhR8+Apu>R0(xXj?AT7`*=i(8<`m%KcUBu*>Wq^oMZ zS72KCtUWaG5&9`c;@As50|R?=nGI`+92^{)NWt}iq*RxB0`u>^45;U7F{;dtWK&b0 zj(*D8eE>Vy?8^o>x+8(oJKSqOFwmgg=)!IN%Wtw`jevlFX(J>6^?p?+VuRc5swo*b zvEck-J#&0=5{t`{(B~hFquJ!Oc{qwhtKy#+kC(=Obf!Yya(udb^PJ&wct8|g*lXsz zwdXBu-X$H5#p0JoaV6Tdo}A{xYb5ma8gi=w*4L!Z-d)y6#?3T(-iWNEX%q9l?RXX& zi1hd|3kwVCukhzDUL5Q@Y3YOXl}aH(%wpT%jerv~jwFxoJ*l z8T2+6l#nnt%YS#AS4K^K*KB_!1D>ymOxjyh!?|m2&#M!STHS+lTP%9@%5yI$%>`Y{ zfdMNktC$z}*68;5Je_7bDJD+}|I#o9oTV@PSth%ZVxR~&Q_4eFLHS9cr+l9@a4>oF zC)VLl_t4ayT3XFY*t_y6PR3lG9)*U5;a{w7__eh;ZjUqLAwyRkp))g$in(EN4BE=6 z*}S)Tv=6~u3?h$1TD=`MHrkCV3`p8p@Q`tWNAnds{= zpX44?VT8?@)z(dz+v4J4QBhF`o)oAXXJr9x2`53lf~za{2^lN7A_eATRrRo@_V~!G zx8&-%;;azZAGW@CrXk~VA4&>$Z4R5oO73JxyO)S-&X zx1^?}Eo^L@IpG_hnBWo?PvY3a5XOu$Kd01DQ>(kKQX

    QT1Q8^B1R)-QvI-G}+<_ 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 XsCA}yr6>l#G9pZkElyS%y8ZTFQ(wl` diff --git a/tests/ui.spec.ts-snapshots/UI-all-components-render-1-firefox-linux.png b/tests/ui.spec.ts-snapshots/UI-all-components-render-1-firefox-linux.png index e5675fd56ef968b8a31ae20737e1161772d8d39f..fb9dbb3de38fd7055ef532b14f021591014021bf 100644 GIT binary patch delta 70914 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 Date: Thu, 22 Aug 2024 16:37:36 -0600 Subject: [PATCH 12/22] docs: ui.radio_group (#758) Closes #756 --------- Co-authored-by: Don Co-authored-by: margaretkennedy <82049573+margaretkennedy@users.noreply.github.com> --- plugins/ui/docs/components/radio_group.md | 352 ++++++++++++++++++ .../deephaven/ui/components/radio_group.py | 14 +- 2 files changed, 360 insertions(+), 6 deletions(-) create mode 100644 plugins/ui/docs/components/radio_group.md diff --git a/plugins/ui/docs/components/radio_group.md b/plugins/ui/docs/components/radio_group.md new file mode 100644 index 000000000..ece136e66 --- /dev/null +++ b/plugins/ui/docs/components/radio_group.md @@ -0,0 +1,352 @@ +# Radio Group + +A radio group is a UI component that groups multiple radio buttons together, allowing users to select one option from a set of mutually exclusive choices. + +Note that the radio component can only be used within a radio group. + +## Example + +```python +from deephaven import ui + + +my_radio_group_basic = ui.radio_group( + ui.radio("Dogs", value="dogs"), + ui.radio("Cats", value="cats"), + ui.radio("Lizard", value="lizard"), + ui.radio("Fish", value="fish"), + label="What is the best type of pet", +) +``` + +## UI Recommendations + +Recommendations for creating radio groups: + +1. Every radio group should have a [label](#labeling) specified. Without one, the radio group is ambiguous. In the rare case that context is sufficient, the label is unnecessary; you must still include an aria-label via the `aria_label` prop. +2. Use radio groups when the options in a list are mutually exclusive. +3. Emphasized radio buttons are ideal for forms and settings where they need to stand out, while non-emphasized radio buttons are best for monochrome application panels to keep the focus on the application. +4. The label, options, and help text should all be in sentence case. +5. Identify which radio groups are required or optional, and use the `is_required` field or the `necessity_indicator` to mark them accordingly. + +Consider using a [`checkbox_group`](./checkbox_group.md) to manage multiple selections or no selections within a group at once. If you need to display a list of items driven by a Deephaven table, use a [`list_view`](./list_view.md) to dynamically generate the checkboxes with `selection_mode="single"` to mimic radio behavior. + +## Value + +A radio group's value is not set by default, but a single initial, uncontrolled value can be set using the `default_value` prop, or a controlled value can be set via the `value` prop. + +```python +from deephaven import ui + + +@ui.component +def radio_group_value_examples(): + selected, set_selected = ui.use_state("yes") + return [ + ui.radio_group( + ui.radio("Yes", value="yes"), + ui.radio("No", value="no"), + label="Are you a wizard? (no value set)?", + ), + ui.radio_group( + ui.radio("Yes", value="yes"), + ui.radio("No", value="no"), + label="Are you a wizard? (uncontrolled)?", + default_value="yes", + ), + ui.radio_group( + ui.radio("Yes", value="yes"), + ui.radio("No", value="no"), + label="Are you a wizard? (controlled)?", + value=selected, + on_change=set_selected, + ), + ] + + +my_radio_group_value_examples = radio_group_value_examples() +``` + + +## HTML Forms + +Radio groups can support a `name` prop for integration with HTML forms, allowing for easy identification of a value on form submission. + +```python +from deephaven import ui + + +my_radio_group_name_example = ui.form( + ui.radio_group( + ui.radio("Yes", value="yes"), + ui.radio("No", value="no"), + label="Is your favorite color blue?", + ), +) +``` + + +## Labeling + +The radio group can be labeled using the `label` prop, and if no label is provided, an `aria_label` must be provided to identify the control for accessibility purposes. + +```python +from deephaven import ui + + +@ui.component +def ui_radio_group_label_examples(): + return [ + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + ), + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + aria_label="Favorite avatar", + ), + ] + + +my_radio_group_label_examples = ui_radio_group_label_examples() +``` + + +The `is_required` prop and the `necessity_indicator` props can be used to show whether selecting an option in the radio group is required or optional. + +When the `necessity_indicator` prop is set to "label", a localized string will be generated for "(required)" or "(optional)" automatically. + +```python +from deephaven import ui + + +@ui.component +def ui_radio_group_required_examples(): + return [ + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + is_required=True, + ), + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + is_required=True, + necessity_indicator="label", + ), + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + necessity_indicator="label", + ), + ] + + +my_radio_group_required_examples = ui_radio_group_required_examples() +``` + + +## Events + +The `on_change` property is triggered whenever the value in the radio group selection is changed. + +```python +from deephaven import ui + + +@ui.component +def ui_radio_group_on_change_example(): + value, set_value = ui.use_state("") + return [ + ui.radio_group( + ui.radio("Yes", value="Yes"), + ui.radio("No", value="No"), + label="Is vanilla the best flavor of ice cream?", + value=value, + on_change=set_value, + ), + ui.text(f"You have selected: {value}"), + ] + + +my_radio_group_on_change_example = ui_radio_group_on_change_example() +``` + + +## Validation + +The `is_required` prop ensures that the user selects an option. The related `validation_behaviour` prop allows the user to specify aria or native verification. + +When the prop is set to "native", the validation errors block form submission and are displayed as help text automatically. + +```python +from deephaven import ui + + +@ui.component +def ui_radio_group_validation_behaviour_example(): + return ui.form( + ui.radio_group( + ui.radio("Yes", value="Yes"), + ui.radio("No", value="No"), + label="Is vanilla the best flavor of ice cream?", + validation_behavior="aria", + is_required=True, + ) + ) + + +my_radio_group_validation_behaviour_example = ( + ui_radio_group_validation_behaviour_example() +) +``` + + +## Orientation + +While aligned vertically by default, the axis the radio buttons align with can be changed via the `orientation` prop. + +```python +from deephaven import ui + + +my_radio_group_orientation_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + orientation="horizontal", +) +``` + + +## Label position + +By default, the position of a radio group's label is above the radio group, but it can be changed to the side using the `label_position` prop. + +```python +from deephaven import ui + + +my_radio_group_label_position_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + label_position="side", +) +``` + + +## Help text + +A radio group can have both a `description` and an `error_message`. Use the error message to offer specific guidance on how to correct the input. + +The `is_invalid` prop can be used to set whether the current radio group state is valid or invalid. + +```python +from deephaven import ui + + +@ui.component +def ui_radio_group_help_text_examples(): + return [ + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + description="Select an avatar from the two options.", + ), + ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + description="Select an avatar from the two options.", + error_message="Sample invalid error message.", + is_invalid=True, + ), + ] + + +my_radio_group_help_text_examples = ui_radio_group_help_text_examples() +``` + + +## Contextual Help + +Using the `contextual_help` prop, a `ui.contextual_help` can be placed next to the label to provide additional information about the radio group. + +```python +from deephaven import ui + + +my_radio_group_contextual_help_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + contextual_help=ui.contextual_help(ui.heading("Content tips")), +) +``` + + +## Disabled state + +The `is_disabled` prop disables a radio group to prevent user interaction. This is useful when the radio group should be visible but not available for selection. + +```python +from deephaven import ui + + +my_radio_group_is_disabled_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + is_disabled=True, +) +``` + +## Read only + +The `is_read_only` prop makes radio groups read-only to prevent user interaction. This is different from setting the `is_disabled` prop since the radio group remains focusable and its options remain visible. + +```python +from deephaven import ui + + +my_radio_group_is_read_only_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + default_value="dragon", + is_read_only=True, +) +``` + +## Emphasized + +The `is_emphasized` prop makes the selected radio button the user's accent color, adding a visual prominence to the selection. + + +```python +from deephaven import ui + + +my_radio_group_is_emphasized_example = ui.radio_group( + ui.radio("Wizard", value="wizard"), + ui.radio("Dragon", value="dragon"), + label="Favorite avatar", + default_value="dragon", + is_emphasized=True, +) +``` + + + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.radio_group +``` diff --git a/plugins/ui/src/deephaven/ui/components/radio_group.py b/plugins/ui/src/deephaven/ui/components/radio_group.py index 8e3b9ace9..b44ab271c 100644 --- a/plugins/ui/src/deephaven/ui/components/radio_group.py +++ b/plugins/ui/src/deephaven/ui/components/radio_group.py @@ -23,7 +23,7 @@ def radio_group( - *children, + *children: Any, is_emphasized: bool | None = None, orientation: Orientation = "vertical", value: str | None = None, @@ -98,7 +98,7 @@ def radio_group( compare. Args: - children: The Radio(s) contained within the RadioGroup. + *children: The Radio(s) contained within the RadioGroup. is_emphasized: By default, radio button are not emphasized (gray). The emphasized version provides visual prominence. orientation: The axis the Radio Buttons should align with. value: The value of the selected radio button. @@ -158,14 +158,16 @@ def radio_group( z_index: The stack order of the element. is_hidden: Whether the element is hidden. id: The unique identifier of the element. - aria-label: Defines a string value that labels the current element. - aria-labelledby: Identifies the element (or elements) that labels the current element. - aria-describedby: Identifies the element (or elements) that describes the object. - aria-details: Identifies the element (or elements) that provide a detailed, extended description for the object. + aria_label: Defines a string value that labels the current element. + aria_labelledby: Identifies the element (or elements) that labels the current element. + aria_describedby: Identifies the element (or elements) that describes the object. + aria_details: Identifies the element (or elements) that provide a detailed, extended description for the object. aria_errormessage: Identifies the element that provides an error message for the object. UNSAFE_class_name: Set the CSS className for the element. Only use as a last resort. Use style props instead. UNSAFE_style: Set the inline style for the element. Only use as a last resort. Use style props instead. + Returns: + The rendered radio group component. """ children, props = create_props(locals()) From 35b3068bff1f5ce36d9c4f0d763d0e411a097fb6 Mon Sep 17 00:00:00 2001 From: Akshat Jawne <69530774+AkshatJawne@users.noreply.github.com> Date: Fri, 23 Aug 2024 09:12:39 -0600 Subject: [PATCH 13/22] docs: ui.slider (#753) Closes #752 --------- Co-authored-by: Don Co-authored-by: margaretkennedy <82049573+margaretkennedy@users.noreply.github.com> --- plugins/ui/docs/components/slider.md | 203 ++++++++++++++++++ .../ui/src/deephaven/ui/components/slider.py | 10 +- 2 files changed, 209 insertions(+), 4 deletions(-) create mode 100644 plugins/ui/docs/components/slider.md diff --git a/plugins/ui/docs/components/slider.md b/plugins/ui/docs/components/slider.md new file mode 100644 index 000000000..bdb1cf090 --- /dev/null +++ b/plugins/ui/docs/components/slider.md @@ -0,0 +1,203 @@ +# Slider + +Sliders allow users to quickly select a value within a fixed range and should be used when the range's upper and lower bounds are constant. + + +## Example + +```python +from deephaven import ui + +my_slider_basic = ui.slider(default_value=12, label="Cookies to buy") +``` + + +## UI recommendations + +Recommendations for creating sliders: + +1. Every slider should have a [label](#labeling) specified. Without one, the slider is ambiguous. In the rare case that context is sufficient, the label is unnecessary; you must still include an aria-label via the `aria_label` prop. +2. The label and contextual help text should be in sentence case. + +Consider using a [`range_slider`](./range_slider.md) when users should select a subset range or a `number_field` when the range is large or greater precision is required. + + +## Value + +Sliders are controlled with the `value` prop and uncontrolled with the `default_value` prop. This value must fall between the slider's minimum and maximum values, which by default are 0 and 100, respectively. + +```python +from deephaven import ui + + +@ui.component +def slider_value_example(): + value, set_value = ui.use_state(25) + return [ + ui.slider(default_value=25, label="Cookies to buy (Uncontrolled)"), + ui.slider( + value=value, on_change=set_value, label="Cookies to buy (Controlled)" + ), + ] + + +my_slider_value_example = slider_value_example() +``` + + +## Scale + +Setting the `min_value` and `max_value` props configures a custom scale for the slider. + +The `step` prop changes the increments that the slider changes. + +```python +from deephaven import ui + + +@ui.component +def slider_range_step_examples(): + return [ + ui.slider( + default_value=100, min_value=50, max_value=150, label="Cookies to buy" + ), + ui.slider( + default_value=100, + min_value=0, + max_value=1000, + step=100, + label="Donuts to buy for group event", + ), + ] + + +my_slider_range_step_examples = slider_range_step_examples() +``` + + +## HTML Forms + +Sliders can support a `name` prop for integration with HTML forms, allowing for easy identification of a value on form submission. + +```python +from deephaven import ui + + +my_slider_name_example = ui.form( + ui.slider(label="Opacity", default_value=50, name="opacity") +) +``` + + +## Labeling + +Value labels are shown above the slider by default but can be moved to the side or hidden using the `label_position` prop. + +Note that if the `label` prop is set, the `show_value_label` is set to True by default. + +```python +from deephaven import ui + + +my_slider_label_example = ui.flex( + ui.slider(label="Cookies to buy", default_value=25), + ui.slider(label="Donuts to buy", label_position="side", default_value=25), + ui.slider(label="Cakes to buy", show_value_label=False, default_value=25), + direction="column", + gap="size-500", +) +``` + + +## Fill + +The `is_filled` prop can be set to fill the slider. The `fill_offset` prop can be set to apply an offset for the fill. + +```python +from deephaven import ui + + +my_slider_fill_example = ui.flex( + ui.slider( + label="Contrast", + min_value=-5, + max_value=5, + default_value=0.75, + step=0.05, + is_filled=True, + ), + ui.slider( + label="Exposure", + min_value=-5, + max_value=5, + default_value=1.83, + step=0.01, + fill_offset=1, + is_filled=True, + ), + direction="column", + gap="size-300", +) +``` + + +## Gradient + +The `track_gradient` prop applies a gradient to the slider's fill. + +```python +from deephaven import ui + + +my_slider_gradient_example = ui.slider( + label="Filter density", + track_gradient=["white", "rgba(177,141,32,1)"], + default_value=0.3, + max_value=1, + step=0.01, + is_filled=True, +) +``` + + +## Contextual Help + +To provide additional information about the slider, a `UI.contextual_help` can be passed into the `contextual_help` prop. + +```python +from deephaven import ui + + +my_slider_contextual_help_example = ui.slider( + label="Exposure", + min_value=-100, + max_value=100, + default_value=0, + is_filled=True, + fill_offset=0, + contextual_help=ui.contextual_help( + ui.heading("What is exposure?"), + ui.content("Exposure adjusts how bright the image is"), + ), +) +``` + +## Disabled + +Setting the `is_disabled` prop disables the slider. + +```python +from deephaven import ui + + +my_slider_disabled_example = ui.slider( + label="Cookies to share", default_value=0, is_disabled=True +) +``` + + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.slider +``` diff --git a/plugins/ui/src/deephaven/ui/components/slider.py b/plugins/ui/src/deephaven/ui/components/slider.py index cf8b60ad7..36ea10800 100644 --- a/plugins/ui/src/deephaven/ui/components/slider.py +++ b/plugins/ui/src/deephaven/ui/components/slider.py @@ -139,21 +139,23 @@ def slider( is_hidden: Whether the element is hidden. id: The unique identifier of the element. aria_label: The label for the element. - aria_labelled_by: The id of the element that labels the current element. - aria_described_by: The id of the element that describes the current element. + aria_labelledby: The id of the element that labels the current element. + aria_describedby: The id of the element that describes the current element. aria_details: The id of the element that provides additional information about the current element. UNSAFE_class_name: A CSS class to apply to the element. UNSAFE_style: A CSS style to apply to the element. + + Returns: + The rendered slider component. """ + return component_element( "Slider", is_filled=is_filled, fill_offset=fill_offset, track_gradient=track_gradient, - # format_options=format_options, label_position=label_position, show_value_label=show_value_label, - # get_value_label=get_value_label, contextual_help=contextual_help, orientation=orientation, is_disabled=is_disabled, From e7d21886c39bc1afb57a49a0415830406f713a54 Mon Sep 17 00:00:00 2001 From: mikebender Date: Fri, 23 Aug 2024 15:35:59 -0400 Subject: [PATCH 14/22] chore(version): ui-v0.20.0 --- package-lock.json | 2 +- plugins/ui/CHANGELOG.md | 29 +++++++++++++++++++++++++++++ plugins/ui/setup.cfg | 2 +- plugins/ui/src/js/package.json | 2 +- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9b0105e41..f9db3f76f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31874,7 +31874,7 @@ }, "plugins/ui/src/js": { "name": "@deephaven/js-plugin-ui", - "version": "0.19.0", + "version": "0.20.0", "license": "Apache-2.0", "dependencies": { "@deephaven/chart": "^0.87.0", diff --git a/plugins/ui/CHANGELOG.md b/plugins/ui/CHANGELOG.md index d6a0d8fa5..382fe7faf 100644 --- a/plugins/ui/CHANGELOG.md +++ b/plugins/ui/CHANGELOG.md @@ -2,6 +2,35 @@ All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. - - - +## ui-v0.20.0 - 2024-08-23 +#### Bug Fixes +- use_effect behaviour (#734) - (c091dac) - mofojed +- autodoc failures hotfix (#748) - (dbcfef3) - Akshat Jawne +- Remove `replay_lock` in `use_table_listener` (#749) - (acf35ec) - Joe +- Prevent pushing broken docs to main (#719) - (86fb7aa) - Joe +- color type (#647) - (0e4f193) - ethanalvizo +#### Documentation +- ui.slider (#753) - (35b3068) - Akshat Jawne +- ui.radio_group (#758) - (c9b682a) - Akshat Jawne +- ui.range_slider (#755) - (ddf6597) - Akshat Jawne +- Add docs for deephaven.ui installation (#725) - (753eb38) - mofojed +- ui.illustrated_message (#739) - (04f0a9b) - Akshat Jawne +- Fix context menu example (#743) - (efae3f3) - Matthew Runyon +- ui.checkbox (#722) - (0cb525e) - Akshat Jawne +- ui.combo_box (#718) - (563504c) - Akshat Jawne +- ui.picker (#705) - (8d95ec7) - Akshat Jawne +- ui.view (#723) - (55aa6cc) - Akshat Jawne +- ui.text_area (#683) - (4df5ba3) - Akshat Jawne +- fix use_state sidebar docs links (#712) - (32bd311) - Don +- Add docs for use_state hook (#675) - (101af33) - mofojed +- Fix casing in the ui.table examples (#691) - (8771122) - mofojed +#### Features +- Javascript DatePicker Implementation (#667) - (ff48512) - dgodinez-dh +- ui.image (#670) - (874ba97) - ethanalvizo +- ui.text_area (#652) - (5fb24bc) - Akshat Jawne + +- - - + ## ui-v0.19.0 - 2024-07-29 #### Bug Fixes - deephaven.ui panels disappearing in some cases (#682) - (c3997d1) - mofojed diff --git a/plugins/ui/setup.cfg b/plugins/ui/setup.cfg index b44bda08e..45adb1348 100644 --- a/plugins/ui/setup.cfg +++ b/plugins/ui/setup.cfg @@ -3,7 +3,7 @@ name = deephaven-plugin-ui description = deephaven.ui plugin long_description = file: README.md long_description_content_type = text/markdown -version = 0.19.0.dev0 +version = 0.20.0 url = https://github.com/deephaven/deephaven-plugins project_urls = Source Code = https://github.com/deephaven/deephaven-plugins diff --git a/plugins/ui/src/js/package.json b/plugins/ui/src/js/package.json index ec91fc381..1f6879ad7 100644 --- a/plugins/ui/src/js/package.json +++ b/plugins/ui/src/js/package.json @@ -1,6 +1,6 @@ { "name": "@deephaven/js-plugin-ui", - "version": "0.19.0", + "version": "0.20.0", "description": "Deephaven UI plugin", "keywords": [ "Deephaven", From 432cc914048a3e4f8039a75b42f2f01a605ec5f1 Mon Sep 17 00:00:00 2001 From: mikebender Date: Fri, 23 Aug 2024 15:35:59 -0400 Subject: [PATCH 15/22] chore(version): update ui version to 0.20.0.dev0 --- plugins/ui/setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ui/setup.cfg b/plugins/ui/setup.cfg index 45adb1348..045a942a0 100644 --- a/plugins/ui/setup.cfg +++ b/plugins/ui/setup.cfg @@ -3,7 +3,7 @@ name = deephaven-plugin-ui description = deephaven.ui plugin long_description = file: README.md long_description_content_type = text/markdown -version = 0.20.0 +version = 0.20.0.dev0 url = https://github.com/deephaven/deephaven-plugins project_urls = Source Code = https://github.com/deephaven/deephaven-plugins From 806631abff49d9a08108ef4b94b4c19d49a739ed Mon Sep 17 00:00:00 2001 From: Joe Date: Fri, 23 Aug 2024 14:48:52 -0500 Subject: [PATCH 16/22] docs: Refine cookiecutter template docs (#761) Fixes #735 Added some more info on debugging and how to modify the files to create a custom plugin especially --- .../README.md | 59 +++++++++++++----- .../_assets/plugin_map.png | Bin 0 -> 52557 bytes .../_assets/plugin_settings.png | Bin 0 -> 34460 bytes ...{ cookiecutter.__js_plugin_view_obj }}.tsx | 1 + .../{{ cookiecutter.__type_file_name }}.py | 32 ++++++++++ 5 files changed, 78 insertions(+), 14 deletions(-) create mode 100644 templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_map.png create mode 100644 templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_settings.png diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/README.md b/templates/widget/{{ cookiecutter.python_project_name }}/README.md index 5dd447847..0348d64d9 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/README.md +++ b/templates/widget/{{ cookiecutter.python_project_name }}/README.md @@ -2,26 +2,26 @@ This is a Python plugin for Deephaven generated from a [deephaven-plugin](https://github.com/deephaven/deephaven-plugins) template. -Specifically, this plugin is a bidirectional widget plugin, which can send and receive messages on both the client and server. -The plugin works out of the box, demonstrates basic plugin structure, and can be used as a starting point for building more complex plugins. +Specifically, this plugin is a bidirectional widget plugin, which can send and receive messages on both the client and server. +The plugin works out of the box, demonstrates basic plugin structure, and can be used as a starting point for building more complex plugins. ## Plugin Structure -The `src` directory contains the Python and JavaScript code for the plugin. -Within the `src` directory, the {{ cookiecutter.python_project_name }} directory contains the Python code, and the `js` directory contains the JavaScript code. +The `src` directory contains the Python and JavaScript code for the plugin. +Within the `src` directory, the {{ cookiecutter.python_project_name }} directory contains the Python code, and the `js` directory contains the JavaScript code. -The Python files have the following structure: -`{{ cookiecutter.__object_file_name }}.py` defines a simple Python class that can send messages to the client. -`{{ cookiecutter.__type_file_name }}.py` defines the Python type for the plugin (which is used for registration) and a simple message stream. -`js_plugin.py` defines the Python class that will be used to setup the JavaScript side of the plugin. -`register.py` registers the plugin with Deephaven. +The Python files have the following structure: +`{{ cookiecutter.__object_file_name }}.py` defines a simple Python class that can send messages to the client. This object can be modified to have other plugin functionality or replaced with a different object entirely, depending on the plugin's needs. +`{{ cookiecutter.__type_file_name }}.py` defines the Python type for the plugin (which is used for registration) and a simple message stream. These can be modified to handle different objects or messages. An initial message is sent from the Python side to the client, then additional messages can be sent back and forth. +`js_plugin.py` defines the Python class that will be used to setup the JavaScript side of the plugin. +`register.py` registers the plugin with Deephaven. This file will not need to be modified for most plugins at the initial stages, but will need to be if the package is renamed or JavaScript files are moved. -The JavaScript files have the following structure: -`{{ cookiecutter.__js_plugin_obj }}.ts` registers the plugin with Deephaven. -`{{ cookiecutter.__js_plugin_view_obj }}.tsx` defines the plugin panel and message handling. +The JavaScript files have the following structure: +`{{ cookiecutter.__js_plugin_obj }}.ts` registers the plugin with Deephaven. This contains the client equivalent of the type in `{{ cookiecutter.__type_file_name }}.py` and these should be kept in sync. +`{{ cookiecutter.__js_plugin_view_obj }}.tsx` defines the plugin panel and message handling. This is where messages are received when sent from the Python side of the plugin. This file is a good starting point for adding more complex plugin functionality. -Additionally, the `test` directory contains Python tests for the plugin. This demonstrates how the embedded Deephaven server can be used in tests. -It's recommended to use `tox` to run the tests, and the `tox.ini` file is included in the project. +Additionally, the `test` directory contains Python tests for the plugin. This demonstrates how the embedded Deephaven server can be used in tests. +It's recommended to use `tox` to run the tests, and the `tox.ini` file is included in the project. ## Building the Plugin @@ -89,6 +89,36 @@ obj.send_message("Hello, world!") The panel can also send messages back to the Python client by using the input field. +## Debugging the Plugin +It's recommended to run through all the steps in Installing the Plugin and Using the Plugin to ensure the plugin is working correctly. +Then, make changes to the plugin and rebuild it to see the changes in action. +Checkout the [Deephaven plugins repo](https://github.com/deephaven/deephaven-plugins), which is where this template was generated from, for more examples and information. +The `plugins` folder contains current plugins that are developed and maintained by Deephaven. +Below are some common issues and how to resolve them as you develop your plugin. +If there is an issue with the process while following the Installation and Usage steps on the originally generated plugin, please open an issue. + +### The Panel is Not Appearing +#### Checking if the Plugin is Registered +If the panel is not appearing or an error is thrown that the import is not found, the plugin may not be registered correctly. +To verify the plugin is registered, check either the console logs or the versions in the settings panel. +- In the console logs, there should be a messaging saying `Plugins loaded:` with a map that includes this plugin. +![plugin map](./_assets/plugin_map.png "Plugin Map") + +- To get to the settings panel, click on the gear icon in the top right corner of the Deephaven window. Towards the bottom this plugin should be listed. +![plugin settings](./_assets/plugin_settings.png "Plugin Settings") +- If the plugin is not listed, attempt to rebuild and reinstall the plugin and check for errors during that process. + +#### Checking if the Python Package is Installed +- Running `pip list` in the `.venv` environment should show the Python package installed, but this is not a guarantee that the plugin is registered properly. +- The version can also be checked directly from the Python console with: +```{python} +from importlib.metadata import version +print(version("{{ cookiecutter.python_project_name }}")) +``` + +### The Panel is Appearing but with Errors or Not Functioning Correctly +Check both the Python and JavaScript logs for errors as either side could be causing the issue. + ## Distributing the Plugin To distribute the plugin, you can upload the wheel file to a package repository, such as [PyPI](https://pypi.org/). The version of the plugin can be updated in the `setup.cfg` file. @@ -124,3 +154,4 @@ pip install {{ cookiecutter.python_project_name }} ``` See the [Python packaging documentation](https://packaging.python.org/en/latest/tutorials/packaging-projects/#uploading-the-distribution-archives) for more information. + diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_map.png b/templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_map.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a9b1379872fb6c6f06911b58fa95a71cefa13d GIT binary patch literal 52557 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 CM^G66 literal 0 HcmV?d00001 diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_settings.png b/templates/widget/{{ cookiecutter.python_project_name }}/_assets/plugin_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..4a067730017e25dc7b2785df9c2626b0bbd5ab52 GIT binary patch literal 34460 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 literal 0 HcmV?d00001 diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/{{ cookiecutter.__js_plugin_view_obj }}.tsx b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/{{ cookiecutter.__js_plugin_view_obj }}.tsx index 8d8cbdbb9..baad34231 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/{{ cookiecutter.__js_plugin_view_obj }}.tsx +++ b/templates/widget/{{ cookiecutter.python_project_name }}/src/js/src/{{ cookiecutter.__js_plugin_view_obj }}.tsx @@ -50,6 +50,7 @@ export function {{ cookiecutter.__js_plugin_view_obj }}(props: WidgetComponentPr init(); }, [dh, fetch]); + // Render a component with the text and a form to send a message to the server return (

      {text}
      diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/src/{{ cookiecutter.__src_folder_name }}/{{ cookiecutter.__type_file_name }}.py b/templates/widget/{{ cookiecutter.python_project_name }}/src/{{ cookiecutter.__src_folder_name }}/{{ cookiecutter.__type_file_name }}.py index 5d2003740..688c1212c 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/src/{{ cookiecutter.__src_folder_name }}/{{ cookiecutter.__type_file_name }}.py +++ b/templates/widget/{{ cookiecutter.python_project_name }}/src/{{ cookiecutter.__src_folder_name }}/{{ cookiecutter.__type_file_name }}.py @@ -21,6 +21,8 @@ def __init__(self, obj: Any, client_connection: MessageStream): self._client_connection = client_connection # Start the message stream. All we do is send a blank message to start. Client will respond with the initial state. + # Additional messages can be sent to the client by calling on_data on the client connection at any time after this. + # These additional messages are processed in {{ cookiecutter.__js_plugin_view_obj }}.tsx self._client_connection.on_data(b"", []) obj._set_connection(self) @@ -68,13 +70,43 @@ class {{ cookiecutter.__type_name }}(BidirectionalObjectType): @property def name(self) -> str: + """ + Get the name of the object type + + Returns: + str: The name of the object + """ + # this name should match the supportedTypes in {{ cookiecutter.__js_plugin_obj }}.ts return "{{ cookiecutter.__registered_object_name }}" def is_type(self, obj: Any) -> bool: + """ + Check if the object is an instance of the type that this plugin supports + + Args: + obj: The object to check + + Returns: + bool: True if the object is an instance of the type that this plugin supports + """ + # check if the object is an instance of the type that this plugin supports + # replace this with other objects or add additional checks as needed return isinstance(obj, {{ cookiecutter.__object_name }}) def create_client_connection( self, obj: object, connection: MessageStream ) -> MessageStream: + """ + Create a client connection for the object + + Args: + obj: The object to create the connection for + connection: The connection to the client + + Returns: + MessageStream: The connection to the client + """ + # Create the message stream for the object that can be used to send and receive messages + # Note that each object will have its own message stream message_stream = {{ cookiecutter.__message_stream_name }}(obj, connection) return message_stream From bc84ecb7f2f1b92c251e6c90604ecac295ad37ce Mon Sep 17 00:00:00 2001 From: ethanalvizo <55671206+ethanalvizo@users.noreply.github.com> Date: Mon, 26 Aug 2024 09:57:36 -0400 Subject: [PATCH 17/22] docs: image (#703) Closes #684 --------- Co-authored-by: margaretkennedy <82049573+margaretkennedy@users.noreply.github.com> --- plugins/ui/docs/components/image.md | 82 +++++++++++++++++++ .../ui/src/deephaven/ui/components/image.py | 4 + 2 files changed, 86 insertions(+) create mode 100644 plugins/ui/docs/components/image.md diff --git a/plugins/ui/docs/components/image.md b/plugins/ui/docs/components/image.md new file mode 100644 index 000000000..faab71b6e --- /dev/null +++ b/plugins/ui/docs/components/image.md @@ -0,0 +1,82 @@ +# Image + +'image' is used to insert and display an image within a component. + +## Example + +```python +from deephaven import ui + +img = ui.image(src="https://i.imgur.com/Z7AzH2c.png", alt="Sky and roof") +``` + +## UI Recommendations + +1. Provide descriptive alt text for all images to ensure accessibility for users with visual impairments. Note: If the image is considered decorative and should not be announced by screen readers, then set alt="" to suppress the warning. +2. Alt text should convey the purpose and content of the image. For example, "Snow-capped mountains under a clear blue sky" or "Diagram illustrating the water cycle, showing evaporation, condensation, precipitation, and collection". +3. To internationalize an image, a localized string should be passed into the alt prop. + +## Visual options + +Different styles determine how an image fits into its container. The default value for the `object_fit` parameter is `fill`, which takes up the whole dimension of the container. + +Other options: +- `contain` scales the image to the dimension of the container while preserving its aspect ratio. If the image's aspect ratio does not match the aspect ratio of the box, the image will be "letterboxed". +- `cover` scales the image to fill the entire container. If the image's aspect ratio does not match the aspect ratio of the box, the image will be clipped to fit. +- `none` renders the image in its original dimensions. +- `scale-down` sizes the image as if `none` or `contain` were specified. Whichever results in a smaller concrete image size is selected. + +```python +def image_variants(): + return ui.flex( + ui.view( + ui.image(src="https://i.imgur.com/Z7AzH2c.png", alt="Sky and roof"), + background_color="celery-600", + padding="10px", + ), + ui.view( + ui.image( + src="https://i.imgur.com/Z7AzH2c.png", + alt="Sky and roof", + object_fit="contain", + ), + background_color="blue-600", + padding="10px", + padding_x="25px", + ), + ui.view( + ui.image( + src="https://i.imgur.com/Z7AzH2c.png", + alt="Sky and roof", + object_fit="cover", + ), + background_color="blue-600", + width="75%", + ), + ui.view( + ui.image( + src="https://i.imgur.com/Z7AzH2c.png", + alt="Sky and roof", + object_fit="none", + ) + ), + ui.view( + ui.image( + src="https://i.imgur.com/Z7AzH2c.png", + alt="Sky and roof", + object_fit="scale-down", + ) + ), + direction="column", + width="300px", + ) + + +image_variants_example = image_variants() +``` + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.image +``` diff --git a/plugins/ui/src/deephaven/ui/components/image.py b/plugins/ui/src/deephaven/ui/components/image.py index 83c8dcf97..0e885d0c0 100644 --- a/plugins/ui/src/deephaven/ui/components/image.py +++ b/plugins/ui/src/deephaven/ui/components/image.py @@ -108,7 +108,11 @@ def image( id: The unique identifier of the element. UNSAFE_class_name: A CSS class to apply to the element. UNSAFE_style: A CSS style to apply to the element. + + Returns: + The rendered Image element. """ + return component_element( "Image", src=src, From 39d5c396908ac4d250a7548f1ac1062f7e6aa0ae Mon Sep 17 00:00:00 2001 From: ethanalvizo <55671206+ethanalvizo@users.noreply.github.com> Date: Mon, 26 Aug 2024 09:58:15 -0400 Subject: [PATCH 18/22] docs: action button (#702) Closes #679 --------- Co-authored-by: Don Co-authored-by: margaretkennedy <82049573+margaretkennedy@users.noreply.github.com> --- plugins/ui/docs/components/action_button.md | 134 ++++++++++++++++++ .../deephaven/ui/components/action_button.py | 3 + 2 files changed, 137 insertions(+) create mode 100644 plugins/ui/docs/components/action_button.md diff --git a/plugins/ui/docs/components/action_button.md b/plugins/ui/docs/components/action_button.md new file mode 100644 index 000000000..495e3cd30 --- /dev/null +++ b/plugins/ui/docs/components/action_button.md @@ -0,0 +1,134 @@ +# Action Button + +Action buttons allow users to perform an action. They are used for similar, task-based options within a workflow, and are ideal for interfaces where buttons aren't meant to draw a lot of attention. Action buttons are the preferred buttons for taking actions on tables and plots that in some way alter tables, such as applying a filter. + +## Example + +```python +from deephaven import ui + +btn = ui.action_button("Press me", on_press=lambda: print("Button clicked")) +``` + +## UI Recommendations + +Recommendations for creating clear and effective action buttons: + +1. Button text should be clear and concise. A maximum of 4 words or 20 characters is recommended. +2. Use verbs for button text to indicate the action that will be taken when the button is clicked. For example, "Save", "Delete", or "Add friend", rather than "Ok" or "Cancel". Nouns or adjectives tend to be less clear. +3. Use sentence case for button text with more than one word. For example, "Add friend" instead of "Add Friend" or "ADD FRIEND". +4. No punctuation is needed at the end of the button text. +5. For icon-only buttons, include a tooltip + +Consider using [`button`](./button.md) to draw attention to important actions users need to perform or for navigating to a different page. To represent a binary choice, use a [`toggle_button`](./toggle_button.md) instead. If you have a collection of related buttons, you can group them using an [`action_group`](./action_group.md). + +## Events + +`action_button` accepts a value to display and can trigger actions based on events such as setting state when pressed. See the [API Reference](#api-reference) for a full list of available events. + +```python +from deephaven import ui + + +@ui.component +def counter(): + count, set_count = use_state(0) + return ui.action_button( + f"Pressed {count} times", + on_press=lambda: set_count(count + 1), + ) + + +counter_example = counter() +``` + +## Icon Buttons + +Action buttons can have icons when necessary to provide additional context. If no visible label is provided (e.g., an icon-only button), an alternative text label must be provided to identify the control for accessibility using the `aria-label` prop. See [icon](./icon.md) for a list of available icons. + +```python +from deephaven import ui + + +@ui.component +def ui_button_group(): + iconAndLabel = ui.button_group( + ui.action_button("Restart", ui.icon("vsDebugRestart")), + ui.action_button("Record", ui.icon("vsRecord")), + ui.action_button("Play", ui.icon("vsDebugPause")), + ui.action_button("Pause", ui.icon("vsDebugStart")), + ui.action_button("Edit", ui.icon("vsEdit")), + ui.action_button("Configure", ui.icon("vsGear")), + ) + iconOnly = ui.button_group( + ui.action_button(ui.icon("vsDebugRestart"), aria_label="Restart"), + ui.action_button(ui.icon("vsRecord"), aria_label="Record"), + ui.action_button(ui.icon("vsDebugPause"), aria_label="Play"), + ui.action_button(ui.icon("vsDebugStart"), aria_label="Pause"), + ui.action_button(ui.icon("vsEdit"), aria_label="Edit"), + ui.action_button(ui.icon("vsGear"), aria_label="Configure"), + ) + return [iconAndLabel, iconOnly] + + +my_action_buttons = ui_button_group() +``` + +## Quiet State + +Action buttons can have no visible background until they're interacted with. This style works best when a clear layout (vertical stack, table, grid) makes it easy to parse the buttons. Too many quiet components in a small space can be hard to read. + +```python +from deephaven import ui + +btn = ui.action_button("Quiet button", is_quiet=True) +``` + +## Disabled State + +Action buttons can be disabled to prevent user interaction. This is useful when the button is not currently available, but the button should still be visible. + +```python +from deephaven import ui + +btn = ui.action_button("Disabled button", is_disabled=True) +``` + +## Static Colors + +Static-color buttons are available in white and black. They don't dynamically change in response to the user's theme. They should only be used over fixed-color backgrounds, not over theme colors that may change. + +```python +from deephaven import ui + + +@ui.component +def static_buttons(): + return [ + ui.view( + ui.action_button( + "White outline", + static_color="white", + ), + background_color="#000066", + padding="size-300", + ), + ui.view( + ui.action_button( + "Black outline", + static_color="black", + ), + background_color="#FFFF00", + padding="size-300", + ), + ] + + +static_buttons_example = static_buttons() +``` + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.action_button +``` diff --git a/plugins/ui/src/deephaven/ui/components/action_button.py b/plugins/ui/src/deephaven/ui/components/action_button.py index faef01337..dd61e5dfc 100644 --- a/plugins/ui/src/deephaven/ui/components/action_button.py +++ b/plugins/ui/src/deephaven/ui/components/action_button.py @@ -161,6 +161,9 @@ def action_button( aria_details: The details for the element. UNSAFE_class_name: A CSS class to apply to the element. UNSAFE_style: A CSS style to apply to the element. + + Returns: + The rendered ActionButton element. """ return component_element( "ActionButton", From e4457452d87d90c6158b27d98718567e1ba3fd18 Mon Sep 17 00:00:00 2001 From: Mike Bender Date: Wed, 28 Aug 2024 12:29:25 -0400 Subject: [PATCH 19/22] chore: Create deephaven-changelog-template (#762) - Generates a changelog file with the text from the Breaking Changes footers at the top --- cog.toml | 2 +- deephaven-changelog-template | 54 ++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 deephaven-changelog-template diff --git a/cog.toml b/cog.toml index 365071dbd..7975d8797 100644 --- a/cog.toml +++ b/cog.toml @@ -48,7 +48,7 @@ ci = { changelog_title = "", omit_from_changelog = true } [changelog] path = "CHANGELOG.md" -template = "remote" +template = "deephaven-changelog-template" remote = "github.com" repository = "deephaven-plugins" owner = "deephaven" diff --git a/deephaven-changelog-template b/deephaven-changelog-template new file mode 100644 index 000000000..55362ea80 --- /dev/null +++ b/deephaven-changelog-template @@ -0,0 +1,54 @@ +{# Tera templates are used to generate the changelog content -#} +{# https://keats.github.io/tera/docs/ -#} +{# Based on Cocogittos remote template, but adds breaking changes: https://github.com/cocogitto/cocogitto/blob/main/src/conventional/changelog/template/remote -#} +{# First display all the breaking changes -#} +{% set breaking_commits = commits | filter(attribute="breaking_change", value=true) -%} +{% if breaking_commits | length > 0 -%} +#### ⚠ Breaking Changes + +{% for commit in breaking_commits -%} +{% set commit_link = repository_url ~ "/commit/" ~ commit.id -%} +{% set shorthand = commit.id | truncate(length=7, end="") -%} +{% for footer in commit.footer | filter(attribute="token", value="BREAKING CHANGE") -%} +- {{ footer.content }} - ([{{shorthand}}]({{ commit_link }})) +{% endfor -%} +{% endfor -%} +{% endif %} + +{# Now group the rest of the commits and display them -#} +{% set typed_commit_map = commits | group_by(attribute="type") -%} +{% set type_order = ["Features", "Bug Fixes", "Performance Improvements", "Miscellaneous Chores", "Documentation", "Refactoring", "Build system", "Style"] -%} +{% for type in type_order -%} +{% if typed_commit_map[type] -%} +#### {{ type | upper_first }} +{% for scope, scoped_commits in typed_commit_map[type] | group_by(attribute="scope") -%} + +{% for commit in scoped_commits | sort(attribute="scope") -%} + {% if commit.author and repository_url -%} + {% set author = "@" ~ commit.author -%} + {% set author_link = platform ~ "/" ~ commit.author -%} + {% set author = "[" ~ author ~ "](" ~ author_link ~ ")" -%} + {% else -%} + {% set author = commit.signature -%} + {% endif -%} + {% set commit_link = repository_url ~ "/commit/" ~ commit.id -%} + {% set shorthand = commit.id | truncate(length=7, end="") -%} + - **({{ scope }})** {{ commit.summary }} - ([{{shorthand}}]({{ commit_link }})) - {{ author }} +{% endfor -%} + +{% endfor -%} + +{% for commit in typed_commit_map[type] | unscoped -%} + {% if commit.author and repository_url -%} + {% set author = "@" ~ commit.author -%} + {% set author_link = platform ~ "/" ~ commit.author -%} + {% set author = "[" ~ author ~ "](" ~ author_link ~ ")" -%} + {% else -%} + {% set author = commit.signature -%} + {% endif -%} + {% set commit_link = repository_url ~ "/commit/" ~ commit.id -%} + {% set shorthand = commit.id | truncate(length=7, end="") -%} + - {{ commit.summary }} - ([{{shorthand}}]({{ commit_link }})) - {{ author }} +{% endfor -%} +{% endif %} +{% endfor -%} \ No newline at end of file From bf38c071433690b63ece80b1d1ff99a56a31b290 Mon Sep 17 00:00:00 2001 From: Joe Date: Wed, 28 Aug 2024 14:40:20 -0500 Subject: [PATCH 20/22] ci: Migrate docs upload to Google cloud (#766) Fixes #742 I've tested on my own fork --- .github/workflows/make-docs.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/make-docs.yml b/.github/workflows/make-docs.yml index 7fb3efb55..7674a5662 100644 --- a/.github/workflows/make-docs.yml +++ b/.github/workflows/make-docs.yml @@ -49,15 +49,14 @@ jobs: cat << EOF > $HOME/.config/rclone/rclone.conf [plugindocs] - type = s3 - provider = Cloudflare - access_key_id = ${{ secrets.DOCS_CLOUDFLARE_ACCESS_KEY_ID }} - secret_access_key = ${{ secrets.DOCS_CLOUDFLARE_SECRET_ACCESS_KEY }} - endpoint = ${{ secrets.DOCS_CLOUDFLARE_ENDPOINT }} - no_check_bucket = true - acl = private + type = google cloud storage + service_account_file = $HOME/credentials.json + project_number = ${{ secrets.DOCS_GOOGLE_CLOUD_PROJECT_NUMBER }} + bucket_policy_only = true EOF + + echo ${{ secrets.DOCS_GOOGLE_CLOUD_CREDENTIALS }} | base64 -d > $HOME/credentials.json - name: Sync docs if: inputs.event_name == 'push' - run: rclone sync plugins/${{ inputs.package }}/docs/build/markdown/ plugindocs:website/deephaven/deephaven-plugins/${{ inputs.package }}/${{ inputs.version }}/ + run: rclone sync plugins/${{ inputs.package }}/docs/build/markdown/ plugindocs:${{ secrets.DOCS_GOOGLE_CLOUD_BUCKET }}/deephaven/deephaven-plugins/${{ inputs.package }}/${{ inputs.version }}/ From c6c2dd222f4ea21bd33562610b5bc10bd51b5abf Mon Sep 17 00:00:00 2001 From: Joe Date: Thu, 29 Aug 2024 10:51:56 -0500 Subject: [PATCH 21/22] fix: Remove server startup from python tests (#768) Fixes #759 Startup is not needed, only an instance, so removed the startup. --- plugins/plotly-express/conf.py | 4 ++-- plugins/plotly-express/test/__init__.py | 10 ++++++++++ .../test/deephaven/plot/express/BaseTest.py | 9 --------- plugins/ui/conf.py | 4 ++-- .../test/__init__.py | 10 ++++++++++ .../{{ cookiecutter.python_project_name }}/BaseTest.py | 10 ---------- .../{{ cookiecutter.python_project_name }}/test.py | 2 +- 7 files changed, 25 insertions(+), 24 deletions(-) diff --git a/plugins/plotly-express/conf.py b/plugins/plotly-express/conf.py index f80ea1aae..e20cfdb4b 100644 --- a/plugins/plotly-express/conf.py +++ b/plugins/plotly-express/conf.py @@ -41,5 +41,5 @@ from deephaven_server import Server -s = Server(port=10075) -s.start() +# need a server instance to pull types from the autodocs +Server(port=10075) diff --git a/plugins/plotly-express/test/__init__.py b/plugins/plotly-express/test/__init__.py index e69de29bb..b29a4a041 100644 --- a/plugins/plotly-express/test/__init__.py +++ b/plugins/plotly-express/test/__init__.py @@ -0,0 +1,10 @@ +from deephaven_server.server import Server + +# Create a Server instance to initialize the JVM +# Otherwise we get errors whenever we try to import anything or run tests +# We don't even need to start the server, just create an instance. +# https://github.com/deephaven/deephaven-core/blob/b5cae98c2f11b032cdd1b9c248dc5b4a0f95314a/py/embedded-server/deephaven_server/server.py#L152 +# Whenever you import anything from the deephaven namespace, it will check if the JVM is ready: +# https://github.com/deephaven/deephaven-core/blob/b5cae98c2f11b032cdd1b9c248dc5b4a0f95314a/py/server/deephaven/__init__.py#L15 +if Server.instance is None: + Server(port=10000, jvm_args=["-Xmx4g"]) diff --git a/plugins/plotly-express/test/deephaven/plot/express/BaseTest.py b/plugins/plotly-express/test/deephaven/plot/express/BaseTest.py index 6b1a88315..3f40a3da5 100644 --- a/plugins/plotly-express/test/deephaven/plot/express/BaseTest.py +++ b/plugins/plotly-express/test/deephaven/plot/express/BaseTest.py @@ -24,15 +24,6 @@ def remap_types( class BaseTestCase(unittest.TestCase): @classmethod def setUpClass(cls): - try: - cls.s = Server(port=10000, jvm_args=["-Xmx4g"]) - cls.s.start() - except Exception as e: - # server is already running - pass - - # these mocks need to be setup after the deephaven server is - # initialized because they access the deephaven namespace cls.setup_exporter_mock() @classmethod diff --git a/plugins/ui/conf.py b/plugins/ui/conf.py index f80ea1aae..e20cfdb4b 100644 --- a/plugins/ui/conf.py +++ b/plugins/ui/conf.py @@ -41,5 +41,5 @@ from deephaven_server import Server -s = Server(port=10075) -s.start() +# need a server instance to pull types from the autodocs +Server(port=10075) diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/test/__init__.py b/templates/widget/{{ cookiecutter.python_project_name }}/test/__init__.py index e69de29bb..8718e3915 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/test/__init__.py +++ b/templates/widget/{{ cookiecutter.python_project_name }}/test/__init__.py @@ -0,0 +1,10 @@ +from deephaven_server.server import Server + +# Create a Server instance to initialize the JVM +# Otherwise we get errors whenever we try to import anything or run tests +# We don't even need to start the server, just create an instance. +# https://github.com/deephaven/deephaven-core/blob/b5cae98c2f11b032cdd1b9c248dc5b4a0f95314a/py/embedded-server/deephaven_server/server.py#L152 +# Whenever you import anything from the deephaven namespace, it will check if the JVM is ready: +# https://github.com/deephaven/deephaven-core/blob/b5cae98c2f11b032cdd1b9c248dc5b4a0f95314a/py/server/deephaven/__init__.py#L15 +if Server.instance is None: + Server(port=11000, jvm_args=["-Xmx4g"]) diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/BaseTest.py b/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/BaseTest.py index 81a9a3bb1..ee85249b3 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/BaseTest.py +++ b/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/BaseTest.py @@ -7,16 +7,6 @@ class BaseTestCase(unittest.TestCase): @classmethod def setUpClass(cls): - try: - # Use port 11000 so it doesn't conflict with another server - cls.s = Server(port=11000, jvm_args=["-Xmx4g"]) - cls.s.start() - except Exception as e: - # server is already running - pass - - # these mocks need to be setup after the deephaven server is - # initialized because they access the deephaven namespace cls.setup_exporter_mock() @classmethod diff --git a/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/test.py b/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/test.py index 81b8a6bbc..f79744d33 100644 --- a/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/test.py +++ b/templates/widget/{{ cookiecutter.python_project_name }}/test/{{ cookiecutter.python_project_name }}/test.py @@ -5,7 +5,7 @@ class Test(BaseTestCase): def test(self): # since the tests use the embedded server, the import must happen after the tests start - from deephaven import Table + from deephaven.table import Table pass From bba5536ffe45065a06c5ca089093d39420f77eef Mon Sep 17 00:00:00 2001 From: Joe Date: Thu, 29 Aug 2024 11:37:00 -0500 Subject: [PATCH 22/22] ci: Add workflow dispatch to Build Docs (#773) Fixes #724 Have tested on my own fork. Adds a workflow dispatch to `build-main-docs.yml`. It's in a slightly funky spot because release docs are automatically synced separately in a different workflow, but this could still be used to sync docs from a specific release, without actually releasing the package itself. --- .github/workflows/build-main-docs.yml | 30 +++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-main-docs.yml b/.github/workflows/build-main-docs.yml index a9ac4c576..29b74c3c7 100644 --- a/.github/workflows/build-main-docs.yml +++ b/.github/workflows/build-main-docs.yml @@ -1,12 +1,38 @@ -name: Build Main Docs +name: Build Docs on: + workflow_dispatch: + inputs: + package: + description: 'Name of the package to build docs for.' + required: true + type: choice + options: + - 'plotly-express' + - 'ui' + version: + description: 'Version of the package to build docs for. This only affects where the docs are synced and not the actual docs built so in most cases this should be "main".' + required: true + type: string + default: 'main' + event_name: + description: 'Event name to determine if the docs should be synced. Keep this as "push" to sync the docs.' + required: true + type: choice + default: 'push' + options: + - 'push' + - 'test' workflow_call: inputs: package: description: The plugin to publish the docs for required: true type: string + version: + description: The version of the plugin to publish the docs for + type: string + default: 'main' event_name: description: The event name that triggered the workflow required: true @@ -40,5 +66,5 @@ jobs: secrets: inherit with: package: ${{ inputs.package }} - version: 'main' + version: ${{ inputs.version }} event_name: ${{ inputs.event_name }}

      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 Qh6lT)sG(3KXBzPT0L-WK2><{9 delta 73066 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 eD(gS(j5wjfOH8+OLsSjbT>##cX$6LukU%z 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 AFaQ7m literal 67920 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

    1rdW^`A(|NMcicRzImkA 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 diff --git a/tests/ui.spec.ts-snapshots/UI-all-components-render-1-webkit-linux.png b/tests/ui.spec.ts-snapshots/UI-all-components-render-1-webkit-linux.png index 3ae27ab9af029bac20be5c0c24b2ab2db7255190..8bcdfa15b7b95280fc368d874de16fe0d74186cf 100644 GIT binary patch literal 67920 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