diff --git a/packages/components/.prettierignore b/packages/components/.prettierignore index 6639ced4..af9301cf 100644 --- a/packages/components/.prettierignore +++ b/packages/components/.prettierignore @@ -1,3 +1,4 @@ dist/ storybook-static src/styles/base.css +src/styles/forms.css diff --git a/packages/components/package.json b/packages/components/package.json index e5023e10..c7ef4dc8 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -5,14 +5,15 @@ "dependencies": { "@headlessui/react": "^1.6.4", "@heroicons/react": "^1.0.6", - "@hookform/resolvers": "^2.9.0", + "@hookform/resolvers": "^2.9.1", "@quri/squiggle-lang": "^0.2.8", "@react-hook/size": "^2.1.2", + "clsx": "^1.1.1", "lodash": "^4.17.21", "react": "^18.1.0", "react-ace": "^10.1.0", "react-dom": "^18.1.0", - "react-hook-form": "^7.31.3", + "react-hook-form": "^7.32.0", "react-use": "^17.4.0", "react-vega": "^7.5.1", "vega": "^5.22.1", @@ -22,21 +23,20 @@ }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.17.12", - "@storybook/addon-actions": "^6.5.7", - "@storybook/addon-essentials": "^6.5.7", - "@storybook/addon-links": "^6.5.7", - "@storybook/builder-webpack5": "^6.5.7", - "@storybook/manager-webpack5": "^6.5.7", + "@storybook/addon-actions": "^6.5.8", + "@storybook/addon-essentials": "^6.5.8", + "@storybook/addon-links": "^6.5.8", + "@storybook/builder-webpack5": "^6.5.8", + "@storybook/manager-webpack5": "^6.5.8", "@storybook/node-logger": "^6.5.6", "@storybook/preset-create-react-app": "^4.1.2", - "@storybook/react": "^6.5.7", - "@tailwindcss/forms": "^0.5.2", + "@storybook/react": "^6.5.8", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.3.0", "@testing-library/user-event": "^14.2.0", "@types/jest": "^27.5.0", "@types/lodash": "^4.14.182", - "@types/node": "^17.0.40", + "@types/node": "^17.0.42", "@types/react": "^18.0.9", "@types/react-dom": "^18.0.5", "@types/styled-components": "^5.1.24", @@ -48,14 +48,14 @@ "postcss-loader": "^7.0.0", "react-scripts": "^5.0.1", "style-loader": "^3.3.1", - "tailwindcss": "^3.0.24", + "tailwindcss": "^3.1.2", "ts-loader": "^9.3.0", "tsconfig-paths-webpack-plugin": "^3.5.2", "typescript": "^4.7.3", "web-vitals": "^2.1.4", "webpack": "^5.73.0", - "webpack-cli": "^4.9.2", - "webpack-dev-server": "^4.9.0" + "webpack-cli": "^4.10.0", + "webpack-dev-server": "^4.9.2" }, "scripts": { "start": "cross-env REACT_APP_FAST_REFRESH=false && start-storybook -p 6006 -s public", diff --git a/packages/components/src/components/DistributionChart.tsx b/packages/components/src/components/DistributionChart.tsx index 4069165b..f2ca811b 100644 --- a/packages/components/src/components/DistributionChart.tsx +++ b/packages/components/src/components/DistributionChart.tsx @@ -129,6 +129,7 @@ export const CheckBox: React.FC = ({ value={value + ""} onChange={() => onChange(!value)} disabled={disabled} + className="form-checkbox" /> diff --git a/packages/components/src/components/SquigglePlayground.tsx b/packages/components/src/components/SquigglePlayground.tsx index 84939f62..a0615ca4 100644 --- a/packages/components/src/components/SquigglePlayground.tsx +++ b/packages/components/src/components/SquigglePlayground.tsx @@ -162,7 +162,7 @@ function InputItem({ ); @@ -182,7 +182,7 @@ function Checkbox({ {/* Clicking on the div makes the checkbox lose focus while mouse button is pressed, leading to annoying blinking; I couldn't figure out how to fix this. */}
{label}
diff --git a/packages/components/src/styles/base.css b/packages/components/src/styles/base.css index 9c4e05dd..e0a33a56 100644 --- a/packages/components/src/styles/base.css +++ b/packages/components/src/styles/base.css @@ -368,143 +368,4 @@ video { max-width: 100%; height: auto; } - -/* these styles were generated by tailwindcss-forms */ -[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select { - appearance: none; - background-color: #fff; - border-color: #6b7280; - border-width: 1px; - border-radius: 0px; - padding-top: 0.5rem; - padding-right: 0.75rem; - padding-bottom: 0.5rem; - padding-left: 0.75rem; - font-size: 1rem; - line-height: 1.5rem; - --tw-shadow: 0 0 #0000; -} -[type='text']:focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus { - outline: 2px solid transparent; - outline-offset: 2px; - --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: #2563eb; - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); - border-color: #2563eb; -} -input::placeholder,textarea::placeholder { - color: #6b7280; - opacity: 1; -} -::-webkit-datetime-edit-fields-wrapper { - padding: 0; -} -::-webkit-date-and-time-value { - min-height: 1.5em; -} -::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field { - padding-top: 0; - padding-bottom: 0; -} -select { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); - background-position: right 0.5rem center; - background-repeat: no-repeat; - background-size: 1.5em 1.5em; - padding-right: 2.5rem; - -webkit-print-color-adjust: exact; - print-color-adjust: exact; -} -[multiple] { - background-image: initial; - background-position: initial; - background-repeat: unset; - background-size: initial; - padding-right: 0.75rem; - -webkit-print-color-adjust: unset; - print-color-adjust: unset; -} -[type='checkbox'],[type='radio'] { - appearance: none; - padding: 0; - -webkit-print-color-adjust: exact; - print-color-adjust: exact; - display: inline-block; - vertical-align: middle; - background-origin: border-box; - -webkit-user-select: none; - user-select: none; - flex-shrink: 0; - height: 1rem; - width: 1rem; - color: #2563eb; - background-color: #fff; - border-color: #6b7280; - border-width: 1px; - --tw-shadow: 0 0 #0000; -} -[type='checkbox'] { - border-radius: 0px; -} -[type='radio'] { - border-radius: 100%; -} -[type='checkbox']:focus,[type='radio']:focus { - outline: 2px solid transparent; - outline-offset: 2px; - --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); - --tw-ring-offset-width: 2px; - --tw-ring-offset-color: #fff; - --tw-ring-color: #2563eb; - --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); - --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); - box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); -} -[type='checkbox']:checked,[type='radio']:checked { - border-color: transparent; - background-color: currentColor; - background-size: 100% 100%; - background-position: center; - background-repeat: no-repeat; -} -[type='checkbox']:checked { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); -} -[type='radio']:checked { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); -} -[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus { - border-color: transparent; - background-color: currentColor; -} -[type='checkbox']:indeterminate { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); - border-color: transparent; - background-color: currentColor; - background-size: 100% 100%; - background-position: center; - background-repeat: no-repeat; -} -[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus { - border-color: transparent; - background-color: currentColor; -} -[type='file'] { - background: unset; - border-color: inherit; - border-width: 0; - border-radius: 0; - padding: 0; - font-size: unset; - line-height: inherit; -} -[type='file']:focus { - outline: 1px solid ButtonText; - outline: 1px auto -webkit-focus-ring-color; -} - } diff --git a/packages/components/src/styles/forms.css b/packages/components/src/styles/forms.css new file mode 100644 index 00000000..60b4075d --- /dev/null +++ b/packages/components/src/styles/forms.css @@ -0,0 +1,102 @@ +/* Fork of https://github.com/tailwindlabs/tailwindcss-forms styles, see the comment in main.css for details. */ +.squiggle { +.form-input,.form-textarea,.form-select,.form-multiselect { +appearance: none; +background-color: #fff; +border-color: #6b7280; +border-width: 1px; +border-radius: 0px; +padding-top: 0.5rem; +padding-right: 0.75rem; +padding-bottom: 0.5rem; +padding-left: 0.75rem; +font-size: 1rem; +line-height: 1.5rem; +--tw-shadow: 0 0 #0000; +} +.form-input:focus, .form-textarea:focus, .form-select:focus, .form-multiselect:focus { +outline: 2px solid transparent; +outline-offset: 2px; +--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); +--tw-ring-offset-width: 0px; +--tw-ring-offset-color: #fff; +--tw-ring-color: #2563eb; +--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); +--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); +box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); +border-color: #2563eb; +} +.form-input::placeholder,.form-textarea::placeholder { +color: #6b7280; +opacity: 1; +} +.form-input::-webkit-datetime-edit-fields-wrapper { +padding: 0; +} +.form-input::-webkit-date-and-time-value { +min-height: 1.5em; +} +.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-year-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-second-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-meridiem-field { +padding-top: 0; +padding-bottom: 0; +} +.form-checkbox,.form-radio { +appearance: none; +padding: 0; +-webkit-print-color-adjust: exact; + print-color-adjust: exact; +display: inline-block; +vertical-align: middle; +background-origin: border-box; +-webkit-user-select: none; + user-select: none; +flex-shrink: 0; +height: 1rem; +width: 1rem; +color: #2563eb; +background-color: #fff; +border-color: #6b7280; +border-width: 1px; +--tw-shadow: 0 0 #0000; +} +.form-checkbox { +border-radius: 0px; +} +.form-checkbox:focus,.form-radio:focus { +outline: 2px solid transparent; +outline-offset: 2px; +--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); +--tw-ring-offset-width: 2px; +--tw-ring-offset-color: #fff; +--tw-ring-color: #2563eb; +--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); +--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); +box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); +} +.form-checkbox:checked,.form-radio:checked { +border-color: transparent; +background-color: currentColor; +background-size: 100% 100%; +background-position: center; +background-repeat: no-repeat; +} +.form-checkbox:checked { +background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); +} +.form-checkbox:checked:hover,.form-checkbox:checked:focus,.form-radio:checked:hover,.form-radio:checked:focus { +border-color: transparent; +background-color: currentColor; +} +.form-checkbox:indeterminate { +background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); +border-color: transparent; +background-color: currentColor; +background-size: 100% 100%; +background-position: center; +background-repeat: no-repeat; +} +.form-checkbox:indeterminate:hover,.form-checkbox:indeterminate:focus { +border-color: transparent; +background-color: currentColor; +} +} diff --git a/packages/components/src/styles/main.css b/packages/components/src/styles/main.css index 78c72891..987c3714 100644 --- a/packages/components/src/styles/main.css +++ b/packages/components/src/styles/main.css @@ -1,8 +1,24 @@ +/* +Fork of tailwind's preflight with `.squiggle` scoping. +*/ @import "./base.css"; +/* +Fork of https://github.com/tailwindlabs/tailwindcss-forms styles (with strategy: "class"), but with `.squiggle` scoping. +This is necessary because tailwindcss-forms's css specificity is lower than preflight's specificity (`padding: 0` and so on), +so unscoped forms css with scoped preflight css, and there's no setting for scoping. +*/ +@import "./forms.css"; + +/* +This doesn't include tailwind's original preflight (it's disabled in tailwind.config.js), +but this line is still necessary for proper initialization of `--tw-*` variables. +*/ +@tailwind base; + @tailwind components; @tailwind utilities; -/* necessary hack because scoped preflight in ./base.css has higher specificity */ +/* Necessary hack because scoped preflight in ./base.css has higher specificity. */ .ace_cursor { border-left: 2px solid !important; } diff --git a/packages/components/tailwind.config.js b/packages/components/tailwind.config.js index 24db59b7..f059a98e 100644 --- a/packages/components/tailwind.config.js +++ b/packages/components/tailwind.config.js @@ -1,8 +1,10 @@ module.exports = { content: ["./src/**/*.{html,tsx,ts,js,jsx}"], + corePlugins: { + preflight: false, + }, + important: ".squiggle", theme: { extend: {}, }, - important: ".squiggle", - plugins: [require("@tailwindcss/forms")], }; diff --git a/packages/squiggle-lang/__tests__/Reducer/Reducer_Peggy/Reducer_Peggy_TestHelpers.res b/packages/squiggle-lang/__tests__/Reducer/Reducer_Peggy/Reducer_Peggy_TestHelpers.res index 44218a4b..39c3492e 100644 --- a/packages/squiggle-lang/__tests__/Reducer/Reducer_Peggy/Reducer_Peggy_TestHelpers.res +++ b/packages/squiggle-lang/__tests__/Reducer/Reducer_Peggy/Reducer_Peggy_TestHelpers.res @@ -25,7 +25,7 @@ let expectToExpressionToBe = (expr, answer, ~v="_", ()) => { ->Result.flatMap(expr => Expression.reduceExpression( expr, - ReducerInterface_DefaultExternalBindings.defaultInternalBindings, + ReducerInterface_StdLib.internalStdLib, ExpressionValue.defaultEnvironment, ) ) diff --git a/packages/squiggle-lang/__tests__/Reducer/Reducer_TestHelpers.res b/packages/squiggle-lang/__tests__/Reducer/Reducer_TestHelpers.res index 092ccc9f..2c7dfb21 100644 --- a/packages/squiggle-lang/__tests__/Reducer/Reducer_TestHelpers.res +++ b/packages/squiggle-lang/__tests__/Reducer/Reducer_TestHelpers.res @@ -29,6 +29,7 @@ let expectEvalError = (expr: string) => let expectEvalBindingsToBe = (expr: string, bindings: Reducer.externalBindings, answer: string) => Reducer.evaluateUsingOptions(expr, ~externalBindings=Some(bindings), ~environment=None) + ->Reducer_Helpers.rRemoveDefaults ->ExpressionValue.toStringResult ->expect ->toBe(answer) diff --git a/packages/squiggle-lang/__tests__/ReducerInterface/ReducerInterface_Distribution_test.res b/packages/squiggle-lang/__tests__/ReducerInterface/ReducerInterface_Distribution_test.res index a2fa37df..ecc07bfa 100644 --- a/packages/squiggle-lang/__tests__/ReducerInterface/ReducerInterface_Distribution_test.res +++ b/packages/squiggle-lang/__tests__/ReducerInterface/ReducerInterface_Distribution_test.res @@ -80,6 +80,7 @@ describe("eval on distribution functions", () => { testEval("truncateLeft(normal(5,2), 3)", "Ok(Point Set Distribution)") testEval("truncateRight(normal(5,2), 3)", "Ok(Point Set Distribution)") testEval("truncate(normal(5,2), 3, 8)", "Ok(Point Set Distribution)") + testEval("isNormalized(truncate(normal(5,2), 3, 8))", "Ok(true)") }) describe("exp", () => { diff --git a/packages/squiggle-lang/package.json b/packages/squiggle-lang/package.json index 7c519cb0..abc9f239 100644 --- a/packages/squiggle-lang/package.json +++ b/packages/squiggle-lang/package.json @@ -57,14 +57,14 @@ "moduleserve": "^0.9.1", "nyc": "^15.1.0", "peggy": "^2.0.1", - "reanalyze": "^2.22.0", + "reanalyze": "^2.23.0", "rescript-fast-check": "^1.1.1", "ts-jest": "^27.1.4", "ts-loader": "^9.3.0", "ts-node": "^10.8.1", "typescript": "^4.7.3", "webpack": "^5.73.0", - "webpack-cli": "^4.9.2" + "webpack-cli": "^4.10.0" }, "source": "./src/js/index.ts", "main": "./dist/src/js/index.js", diff --git a/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res b/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res index a6eb0431..cdb0ee3d 100644 --- a/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res +++ b/packages/squiggle-lang/src/rescript/Distributions/DistributionTypes.res @@ -142,7 +142,7 @@ module DistributionOperation = { | ToDist(Scale(#LogarithmWithThreshold(eps), r)) => `scaleLogWithThreshold(${E.Float.toFixed(r)}, epsilon=${E.Float.toFixed(eps)})` | ToString(ToString) => `toString` - | ToString(ToSparkline(n)) => `toSparkline(${E.I.toString(n)})` + | ToString(ToSparkline(n)) => `sparkline(${E.I.toString(n)})` | ToBool(IsNormalized) => `isNormalized` | ToDistCombination(Algebraic(_), _, _) => `algebraic` | ToDistCombination(Pointwise, _, _) => `pointwise` diff --git a/packages/squiggle-lang/src/rescript/Distributions/GenericDist.res b/packages/squiggle-lang/src/rescript/Distributions/GenericDist.res index f7d1e4f5..addbdaa1 100644 --- a/packages/squiggle-lang/src/rescript/Distributions/GenericDist.res +++ b/packages/squiggle-lang/src/rescript/Distributions/GenericDist.res @@ -214,7 +214,9 @@ module Truncate = { | Some(r) => Ok(r) | None => toPointSetFn(t)->E.R2.fmap(t => { - DistributionTypes.PointSet(PointSetDist.T.truncate(leftCutoff, rightCutoff, t)) + DistributionTypes.PointSet( + PointSetDist.T.truncate(leftCutoff, rightCutoff, t)->PointSetDist.T.normalize, + ) }) } } diff --git a/packages/squiggle-lang/src/rescript/Distributions/SymbolicDist/SymbolicDist.res b/packages/squiggle-lang/src/rescript/Distributions/SymbolicDist/SymbolicDist.res index ff29bc65..f33fc450 100644 --- a/packages/squiggle-lang/src/rescript/Distributions/SymbolicDist/SymbolicDist.res +++ b/packages/squiggle-lang/src/rescript/Distributions/SymbolicDist/SymbolicDist.res @@ -295,7 +295,7 @@ module Float = { let inv = (p, t: t) => p < t ? 0.0 : 1.0 let mean = (t: t) => Ok(t) let sample = (t: t) => t - let toString = (t: t) => j`Delta($t)` + let toString = (t: t) => j`PointMass($t)` let toPointSetDist = (t: t): PointSetTypes.pointSetDist => Discrete( Discrete.make(~integralSumCache=Some(1.0), {xs: [t], ys: [1.0]}), ) diff --git a/packages/squiggle-lang/src/rescript/Reducer/Reducer.res b/packages/squiggle-lang/src/rescript/Reducer/Reducer.res index 36fe3cd6..dfedffc7 100644 --- a/packages/squiggle-lang/src/rescript/Reducer/Reducer.res +++ b/packages/squiggle-lang/src/rescript/Reducer/Reducer.res @@ -24,4 +24,4 @@ let foreignFunctionInterface = ( let defaultEnvironment = ExpressionValue.defaultEnvironment -let defaultExternalBindings = ReducerInterface_DefaultExternalBindings.defaultExternalBindings +let defaultExternalBindings = ReducerInterface_StdLib.externalStdLib diff --git a/packages/squiggle-lang/src/rescript/Reducer/Reducer_Expression/Reducer_Expression.res b/packages/squiggle-lang/src/rescript/Reducer/Reducer_Expression/Reducer_Expression.res index 066a68b2..6b4168c3 100644 --- a/packages/squiggle-lang/src/rescript/Reducer/Reducer_Expression/Reducer_Expression.res +++ b/packages/squiggle-lang/src/rescript/Reducer/Reducer_Expression/Reducer_Expression.res @@ -116,14 +116,20 @@ let evaluateUsingOptions = ( ~externalBindings: option, code: string, ): result => { - let anEnvironment = switch environment { - | Some(env) => env - | None => ReducerInterface_ExpressionValue.defaultEnvironment - } + let anEnvironment = Belt.Option.getWithDefault( + environment, + ReducerInterface_ExpressionValue.defaultEnvironment, + ) let anExternalBindings = switch externalBindings { - | Some(bindings) => bindings - | None => ReducerInterface_DefaultExternalBindings.defaultExternalBindings + | Some(bindings) => { + let cloneLib = ReducerInterface_StdLib.externalStdLib->Reducer_Category_Bindings.cloneRecord + Js.Dict.entries(bindings)->Js.Array2.reduce((acc, (key, value)) => { + acc->Js.Dict.set(key, value) + acc + }, cloneLib) + } + | None => ReducerInterface_StdLib.externalStdLib } let bindings = anExternalBindings->Bindings.fromExternalBindings diff --git a/packages/squiggle-lang/src/rescript/ReducerInterface/ReducerInterface_DefaultExternalBindings.res b/packages/squiggle-lang/src/rescript/ReducerInterface/ReducerInterface_DefaultExternalBindings.res deleted file mode 100644 index 2e8abee4..00000000 --- a/packages/squiggle-lang/src/rescript/ReducerInterface/ReducerInterface_DefaultExternalBindings.res +++ /dev/null @@ -1,6 +0,0 @@ -module Bindings = Reducer_Category_Bindings - -let defaultInternalBindings = Bindings.emptyBindings->SquiggleLibrary_Math.makeBindings - -@genType -let defaultExternalBindings = defaultInternalBindings->Bindings.toRecord diff --git a/packages/squiggle-lang/src/rescript/ReducerInterface/ReducerInterface_GenericDistribution.res b/packages/squiggle-lang/src/rescript/ReducerInterface/ReducerInterface_GenericDistribution.res index 6ef3f7a6..c0418df8 100644 --- a/packages/squiggle-lang/src/rescript/ReducerInterface/ReducerInterface_GenericDistribution.res +++ b/packages/squiggle-lang/src/rescript/ReducerInterface/ReducerInterface_GenericDistribution.res @@ -221,9 +221,9 @@ let dispatchToGenericOutput = ( } | ("integralSum", [EvDistribution(dist)]) => Helpers.toFloatFn(#IntegralSum, dist, ~env) | ("toString", [EvDistribution(dist)]) => Helpers.toStringFn(ToString, dist, ~env) - | ("toSparkline", [EvDistribution(dist)]) => + | ("sparkline", [EvDistribution(dist)]) => Helpers.toStringFn(ToSparkline(MagicNumbers.Environment.sparklineLength), dist, ~env) - | ("toSparkline", [EvDistribution(dist), EvNumber(n)]) => + | ("sparkline", [EvDistribution(dist), EvNumber(n)]) => Helpers.toStringFn(ToSparkline(Belt.Float.toInt(n)), dist, ~env) | ("exp", [EvDistribution(a)]) => // https://mathjs.org/docs/reference/functions/exp.html @@ -273,6 +273,8 @@ let dispatchToGenericOutput = ( | ("cdf", [EvDistribution(dist), EvNumber(float)]) => Helpers.toFloatFn(#Cdf(float), dist, ~env) | ("pdf", [EvDistribution(dist), EvNumber(float)]) => Helpers.toFloatFn(#Pdf(float), dist, ~env) | ("inv", [EvDistribution(dist), EvNumber(float)]) => Helpers.toFloatFn(#Inv(float), dist, ~env) + | ("quantile", [EvDistribution(dist), EvNumber(float)]) => + Helpers.toFloatFn(#Inv(float), dist, ~env) | ("toSampleSet", [EvDistribution(dist), EvNumber(float)]) => Helpers.toDistFn(ToSampleSet(Belt.Int.fromFloat(float)), dist, ~env) | ("toSampleSet", [EvDistribution(dist)]) => diff --git a/packages/squiggle-lang/src/rescript/ReducerInterface/ReducerInterface_StdLib.res b/packages/squiggle-lang/src/rescript/ReducerInterface/ReducerInterface_StdLib.res new file mode 100644 index 00000000..f341f9e2 --- /dev/null +++ b/packages/squiggle-lang/src/rescript/ReducerInterface/ReducerInterface_StdLib.res @@ -0,0 +1,6 @@ +module Bindings = Reducer_Category_Bindings + +let internalStdLib = Bindings.emptyBindings->SquiggleLibrary_Math.makeBindings + +@genType +let externalStdLib = internalStdLib->Bindings.toRecord diff --git a/packages/squiggle-lang/src/rescript/SquiggleLibrary/SquiggleLibrary_Math.res b/packages/squiggle-lang/src/rescript/SquiggleLibrary/SquiggleLibrary_Math.res index a29fafcc..0e07337c 100644 --- a/packages/squiggle-lang/src/rescript/SquiggleLibrary/SquiggleLibrary_Math.res +++ b/packages/squiggle-lang/src/rescript/SquiggleLibrary/SquiggleLibrary_Math.res @@ -1,8 +1,23 @@ module Bindings = Reducer_Category_Bindings module Module = Reducer_Category_Module -let m = - Module.emptyModule->Module.defineNumber("pi", Js.Math._PI)->Module.defineNumber("e", Js.Math._E) +let availableNumbers: array<(string, float)> = [ + ("pi", Js.Math._PI), + ("e", Js.Math._E), + ("ln2", Js.Math._LN2), + ("ln10", Js.Math._LN10), + ("log2e", Js.Math._LOG2E), + ("log10e", Js.Math._LOG10E), + ("sqrt2", Js.Math._SQRT2), + ("sqrt1_2", Js.Math._SQRT1_2), + ("phi", 1.618033988749895), + ("tau", 6.283185307179586), +] + +let mathBindings: Bindings.ExpressionT.bindings = + availableNumbers + ->E.A2.fmap(((name, v)) => (name, ReducerInterface_ExpressionValue.EvNumber(v))) + ->Belt.Map.String.fromArray let makeBindings = (previousBindings: Bindings.t): Bindings.t => - previousBindings->Bindings.defineModule("Math", m) + previousBindings->Bindings.defineModule("Math", mathBindings) diff --git a/packages/website/.prettierignore b/packages/website/.prettierignore index d858cd65..fcce6937 100644 --- a/packages/website/.prettierignore +++ b/packages/website/.prettierignore @@ -1,2 +1,3 @@ .docusaurus build +docs/Api/.* \ No newline at end of file diff --git a/packages/website/docs/Api/Date.md b/packages/website/docs/Api/Date.md index 4c50f582..9f9b9f09 100644 --- a/packages/website/docs/Api/Date.md +++ b/packages/website/docs/Api/Date.md @@ -3,8 +3,12 @@ sidebar_position: 1 title: Date --- +Squiggle date types are a very simple implementation on [Javascript's Date type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date). It's mainly here for early experimentation. There are more relevant functions for the [Duration](/docs/Api/Duration) type. + ### makeFromYear +(Now `makeDateFromYear`) + ``` Date.makeFromYear: (number) => date ``` @@ -19,6 +23,16 @@ makeFromYear(2022.32); toString: (date) => string ``` +### add + +``` +add: (date, duration) => date +``` + +```js +makeFromYear(2022.32) + years(5); +``` + ### subtract ``` @@ -30,13 +44,3 @@ subtract: (date, duration) => date makeFromYear(2040) - makeFromYear(2020); // 20 years makeFromYear(2040) - years(20); // 2020 ``` - -### add - -``` -add: (date, duration) => date -``` - -```js -makeFromYear(2022.32) + years(5); -``` diff --git a/packages/website/docs/Api/Dictionary.md b/packages/website/docs/Api/Dictionary.md index 136342d2..0e6dfd17 100644 --- a/packages/website/docs/Api/Dictionary.md +++ b/packages/website/docs/Api/Dictionary.md @@ -3,6 +3,34 @@ sidebar_position: 2 title: Dictionary --- +Squiggle dictionaries work similar to Python dictionaries. The syntax is similar to objects in Javascript. + +Dictionaries are unordered and duplicates are not allowed. They are meant to be immutable, like most types in Squiggle. + +**Example** + +```javascript +valueFromOfficeItems = { + keyboard: 1, + chair: 0.01 to 0.5, + headphones: "ToDo" +} + +valueFromHomeItems = { + monitor: 1, + bed: 0.2 to 0.6, + lights: 0.02 to 0.2, + coffee: 5 to 20 +} + +homeToItemsConversion = 0.1 to 0.4 + +conversionFn(i) = [i[0], i[1] * homeToItemsConversion] +updatedValueFromHomeItems = valueFromHomeItems |> Dict.toList |> map(conversionFn) |> Dict.fromList + +allItems = merge(valueFromOfficeItems, updatedValueFromHomeItems) +``` + ### toList ``` diff --git a/packages/website/docs/Api/DistGeneric.mdx b/packages/website/docs/Api/DistGeneric.mdx index d70476e5..a6498dd2 100644 --- a/packages/website/docs/Api/DistGeneric.mdx +++ b/packages/website/docs/Api/DistGeneric.mdx @@ -3,50 +3,47 @@ sidebar_position: 3 title: Distribution --- +import Admonition from "@theme/Admonition"; import TOCInline from "@theme/TOCInline"; +Distributions are the flagship data type in Squiggle. The distribution type is a generic data type that contains one of three different formats of distributions. +These subtypes are [point set](/docs/Api/DistPointSet), [sample set](/docs/Api/DistSampleSet), and symbolic. The first two of these have a few custom functions that only work on them. You can read more about the differences between these formats [here](/docs/Discussions/Three-Formats-Of-Distributions). + +Several functions below only can work on particular distribution formats. +For example, scoring and pointwise math requires the point set format. When this happens, the types are automatically converted to the correct format. These conversions are lossy. + ## Distribution Creation -### Normal Distribution +These are functions for creating primative distributions. Many of these could optionally take in distributions as inputs. In these cases, Monte Carlo Sampling will be used to generate the greater distribution. This can be used for simple hierarchical models. -**Definitions** +See a longer tutorial on creating distributions [here](/docs/Guides/DistributionCreation). + +### normal -```javascript -normal: (frValueDistOrNumber, frValueDistOrNumber) => distribution; ``` - -```javascript -normal: (dict<{p5: frValueDistOrNumber, p95: frValueDistOrNumber}>) => distribution -``` - -```javascript -normal: (dict<{mean: frValueDistOrNumber, stdev: frValueDistOrNumber}>) => distribution +normal: (distribution|number, distribution|number) => distribution +normal: (dict<{p5: distribution|number, p95: distribution|number}>) => distribution +normal: (dict<{mean: distribution|number, stdev: distribution|number}>) => distribution ``` **Examples** ```js -normal(5, 1); -normal({ p5: 4, p95: 10 }); -normal({ mean: 5, stdev: 2 }); +normal(5, 1) +normal({ p5: 4, p95: 10 }) +normal({ mean: 5, stdev: 2 }) +normal(5 to 10, normal(3, 2)) +normal({ mean: uniform(5, 9), stdev: 3 }) ``` -### Lognormal Distribution +### lognormal -**Definitions** - -```javascript -lognormal: (frValueDistOrNumber, frValueDistOrNumber) => distribution; ``` - -```javascript -lognormal: (dict<{p5: frValueDistOrNumber, p95: frValueDistOrNumber}>) => distribution -``` - -```javascript -lognormal: (dict<{mean: frValueDistOrNumber, stdev: frValueDistOrNumber}>) => distribution +lognormal: (distribution|number, distribution|number) => distribution +lognormal: (dict<{p5: distribution|number, p95: distribution|number}>) => distribution +lognormal: (dict<{mean: distribution|number, stdev: distribution|number}>) => distribution ``` **Examples** @@ -57,12 +54,10 @@ lognormal({ p5: 4, p95: 10 }); lognormal({ mean: 5, stdev: 2 }); ``` -### Uniform Distribution +### uniform -**Definitions** - -```javascript -uniform: (frValueDistOrNumber, frValueDistOrNumber) => distribution; +``` +uniform: (distribution|number, distribution|number) => distribution ``` **Examples** @@ -71,12 +66,10 @@ uniform: (frValueDistOrNumber, frValueDistOrNumber) => distribution; uniform(10, 12); ``` -### Beta Distribution +### beta -**Definitions** - -```javascript -beta: (frValueDistOrNumber, frValueDistOrNumber) => distribution; +``` +beta: (distribution|number, distribution|number) => distribution ``` **Examples** @@ -85,12 +78,10 @@ beta: (frValueDistOrNumber, frValueDistOrNumber) => distribution; beta(20, 25); ``` -### Cauchy Distribution +### cauchy -**Definitions** - -```javascript -cauchy: (frValueDistOrNumber, frValueDistOrNumber) => distribution; +``` +cauchy: (distribution|number, distribution|number) => distribution ``` **Examples** @@ -99,12 +90,22 @@ cauchy: (frValueDistOrNumber, frValueDistOrNumber) => distribution; cauchy(5, 1); ``` -### Gamma Distribution - -**Definitions** +### gamma ```javascript -gamma: (frValueDistOrNumber, frValueDistOrNumber) => distribution; +gamma: (distribution|number, distribution|number) => distribution +``` + +**Examples** + +```js +gamma(5, 1); +``` + +### logistic + +``` +logistic: (distribution|number, distribution|number) => distribution ``` **Examples** @@ -113,30 +114,53 @@ gamma: (frValueDistOrNumber, frValueDistOrNumber) => distribution; gamma(5, 1); ``` -### Logistic Distribution +### exponential -**Definitions** - -```javascript -logistic: (frValueDistOrNumber, frValueDistOrNumber) => distribution; +``` +exponential: (distribution|number) => distribution ``` **Examples** ```javascript -gamma(5, 1); +exponential(2); ``` -### To (Distribution) +### bernoulli -**Definitions** - -```javascript -to: (frValueDistOrNumber, frValueDistOrNumber) => distribution; +``` +bernoulli: (distribution|number) => distribution ``` +**Examples** + ```javascript -credibleIntervalToDistribution(frValueDistOrNumber, frValueDistOrNumber) => distribution; +bernoulli(0.5); +``` + +### triangular + +```javascript +triangular: (number, number, number) => distribution; +``` + +**Examples** + +```javascript +triangular(5, 10, 20); +``` + +### to / credibleIntervalToDistribution + +The `to` function is an easy way to generate simple distributions using predicted _5th_ and _95th_ percentiles. + +If both values are above zero, a `lognormal` distribution is used. If not, a `normal` distribution is used. + +`To` is an alias for `credibleIntervalToDistribution`. However, because of its frequent use, it is recommended to use the shorter name. + +``` +to: (distribution|number, distribution|number) => distribution +credibleIntervalToDistribution(distribution|number, distribution|number) => distribution ``` **Examples** @@ -147,97 +171,29 @@ to(5,10) -5 to 5 ``` -### Exponential +### mixture -**Definitions** - -```javascript -exponential: (frValueDistOrNumber) => distribution; +``` +mixture: (...distributionLike, weights?:list) => distribution +mixture: (list, weights?:list) => distribution ``` **Examples** ```javascript -exponential(2); -``` - -### Bernoulli - -**Definitions** - -```javascript -bernoulli: (frValueDistOrNumber) => distribution; -``` - -**Examples** - -```javascript -bernoulli(0.5); -``` - -### toContinuousPointSet - -Converts a set of points to a continuous distribution - -**Definitions** - -```javascript -toContinuousPointSet: (array>) => distribution -``` - -**Examples** - -```javascript -toContinuousPointSet([ - { x: 0, y: 0.1 }, - { x: 1, y: 0.2 }, - { x: 2, y: 0.15 }, - { x: 3, y: 0.1 }, -]); -``` - -### toDiscretePointSet - -Converts a set of points to a discrete distribution - -**Definitions** - -```javascript -toDiscretePointSet: (array>) => distribution -``` - -**Examples** - -```javascript -toDiscretePointSet([ - { x: 0, y: 0.1 }, - { x: 1, y: 0.2 }, - { x: 2, y: 0.15 }, - { x: 3, y: 0.1 }, -]); +mixture(normal(5, 1), normal(10, 1), 8); +mx(normal(5, 1), normal(10, 1), [0.3, 0.7]); +mx([normal(5, 1), normal(10, 1)], [0.3, 0.7]); ``` ## Functions -### mixture - -```javascript -mixture: (...distributionLike, weights:list) => distribution -``` - -**Examples** - -```javascript -mixture(normal(5, 1), normal(10, 1)); -mx(normal(5, 1), normal(10, 1), [0.3, 0.7]); -``` - ### sample -Get one random sample from the distribution +One random sample from the distribution -```javascript -sample(distribution) => number +``` +sample: (distribution) => number ``` **Examples** @@ -248,66 +204,70 @@ sample(normal(5, 2)); ### sampleN -Get n random samples from the distribution +N random samples from the distribution -```javascript +``` sampleN: (distribution, number) => list ``` **Examples** ```javascript -sample: normal(5, 2), 100; +sampleN(normal(5, 2), 100); ``` ### mean -Get the distribution mean +The distribution mean -```javascript -mean: (distribution) => number; +``` +mean: (distribution) => number ``` **Examples** ```javascript -mean: normal(5, 2); +mean(normal(5, 2)); ``` ### stdev -```javascript -stdev: (distribution) => number; +Standard deviation. Only works now on sample set distributions (so converts other distributions into sample set in order to calculate.) + +``` +stdev: (distribution) => number ``` ### variance -```javascript -variance: (distribution) => number; +Variance. Similar to stdev, only works now on sample set distributions. + +``` +variance: (distribution) => number ``` ### mode -```javascript -mode: (distribution) => number; +``` +mode: (distribution) => number ``` ### cdf -```javascript -cdf: (distribution, number) => number; +``` +cdf: (distribution, number) => number ``` **Examples** ```javascript -cdf: normal(5, 2), 3; +cdf(normal(5, 2), 3); ``` ### pdf -```javascript -pdf: (distribution, number) => number; +``` +pdf: (distribution, number) => number ``` **Examples** @@ -316,24 +276,26 @@ pdf: (distribution, number) => number; pdf(normal(5, 2), 3); ``` -### inv +### quantile -```javascript -inv: (distribution, number) => number; +``` +quantile: (distribution, number) => number ``` **Examples** ```javascript -inv(normal(5, 2), 0.5); +quantile(normal(5, 2), 0.5); ``` ### toPointSet -Converts a distribution to the pointSet format +**TODO: Will soon be called "PointSet.make"** -```javascript -toPointSet: (distribution) => pointSetDistribution; +Converts a distribution to the pointSet format. + +``` +toPointSet: (distribution) => pointSetDistribution ``` **Examples** @@ -344,10 +306,12 @@ toPointSet(normal(5, 2)); ### toSampleSet -Converts a distribution to the sampleSet format, with n samples +**TODO: Will soon be called "SampleSet.make"** -```javascript -toSampleSet: (distribution, number) => sampleSetDistribution; +Converts a distribution to the sampleSet format, with n samples. + +``` +toSampleSet: (distribution, number) => sampleSetDistribution ``` **Examples** @@ -360,7 +324,7 @@ toSampleSet(normal(5, 2), 1000); Truncates the left side of a distribution. Returns either a pointSet distribution or a symbolic distribution. -```javascript +``` truncateLeft: (distribution, l => number) => distribution ``` @@ -374,7 +338,7 @@ truncateLeft(normal(5, 2), 3); Truncates the right side of a distribution. Returns either a pointSet distribution or a symbolic distribution. -```javascript +``` truncateRight: (distribution, r => number) => distribution ``` @@ -384,14 +348,12 @@ truncateRight: (distribution, r => number) => distribution truncateLeft(normal(5, 2), 6); ``` -## Scoring - ### klDivergence -Kullback–Leibler divergence between two distributions +[Kullback–Leibler divergence](https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence) between two distributions. -```javascript -klDivergence: (distribution, distribution) => number; +``` +klDivergence: (distribution, distribution) => number ``` **Examples** @@ -404,8 +366,8 @@ klDivergence(normal(5, 2), normal(5, 4)); // returns 0.57 ### toString -```javascript -toString: (distribution) => string; +``` +toString: (distribution) => string ``` **Examples** @@ -414,42 +376,46 @@ toString: (distribution) => string; toString(normal(5, 2)); ``` -### toSparkline +### sparkline -Produce a sparkline of length n +Produce a sparkline of length n. For example, `▁▁▁▁▁▂▄▆▇██▇▆▄▂▁▁▁▁▁`. These can be useful for testing or quick text visualizations. -```javascript -toSparkline: (distribution, n = 20) => string; +``` +sparkline: (distribution, n = 20) => string ``` **Examples** ```javascript -toSparkline(normal(5, 2), 10); +toSparkline(truncateLeft(normal(5, 2), 3), 20); // produces ▁▇█████▇▅▄▃▂▂▁▁▁▁▁▁▁ ``` ### inspect -Prints the value of the distribution to the Javascript console, then returns the distribution. +Prints the value of the distribution to the Javascript console, then returns the distribution. Useful for debugging. -```javascript -inspect: (distribution) => distribution; +``` +inspect: (distribution) => distribution ``` **Examples** ```javascript -inspect(normal(5, 2)); +inspect(normal(5, 2)); // logs "normal(5, 2)" to the javascript console and returns the distribution. ``` ## Normalization +There are some situations where computation will return unnormalized distributions. This means that their cumulative sums are not equal to 1.0. Unnormalized distributions are not valid for many relevant functions; for example, klDivergence and scoring. + +The only functions that do not return normalized distributions are the pointwise arithmetic operations and the scalewise arithmetic operations. If you use these functions, it is recommended that you consider normalizing the resulting distributions. + ### normalize Normalize a distribution. This means scaling it appropriately so that it's cumulative sum is equal to 1. -```javascript -normalize: (distribution) => distribution; +``` +normalize: (distribution) => distribution ``` **Examples** @@ -462,8 +428,8 @@ normalize(normal(5, 2)); Check of a distribution is normalized. Most distributions are typically normalized, but there are some commands that could produce non-normalized distributions. -```javascript -isNormalized: (distribution) => bool; +``` +isNormalized: (distribution) => bool ``` **Examples** @@ -474,10 +440,12 @@ isNormalized(normal(5, 2)); // returns true ### integralSum -Get the sum of the integral of a distribution. If the distribution is normalized, this will be 1. +**Note: If you have suggestions for better names for this, please let us know.** -```javascript -integralSum: (distribution) => number; +Get the sum of the integral of a distribution. If the distribution is normalized, this will be 1.0. This is useful for understanding unnormalized distributions. + +``` +integralSum: (distribution) => number ``` **Examples** @@ -486,151 +454,208 @@ integralSum: (distribution) => number; integralSum(normal(5, 2)); ``` -## Algebraic Operations +## Regular Arithmetic Operations + +Regular arithmetic operations cover the basic mathematical operations on distributions. They work much like their equivalent operations on numbers. + +The infixes `+`,`-`, `*`, `/`, `^` are supported for addition, subtraction, multiplication, division, power, and unaryMinus. + +```javascript +pointMass(5 + 10) == pointMass(5) + pointMass(10); +``` ### add +``` +add: (distributionLike, distributionLike) => distribution +``` + +**Examples** + ```javascript -add: (distributionLike, distributionLike) => distribution; +normal(0, 1) + normal(1, 3); // returns normal(1, 3.16...) +add(normal(0, 1), normal(1, 3)); // returns normal(1, 3.16...) ``` ### sum -```javascript +**Todo: Not yet implemented** + +``` sum: (list) => distribution ``` +**Examples** + +```javascript +sum([normal(0, 1), normal(1, 3), uniform(10, 1)]); +``` + ### multiply -```javascript -multiply: (distributionLike, distributionLike) => distribution; +``` +multiply: (distributionLike, distributionLike) => distribution ``` ### product -```javascript +``` product: (list) => distribution ``` ### subtract -```javascript -subtract: (distributionLike, distributionLike) => distribution; +``` +subtract: (distributionLike, distributionLike) => distribution ``` ### divide -```javascript -divide: (distributionLike, distributionLike) => distribution; +``` +divide: (distributionLike, distributionLike) => distribution ``` ### pow -```javascript -pow: (distributionLike, distributionLike) => distribution; +``` +pow: (distributionLike, distributionLike) => distribution ``` ### exp -```javascript -exp: (distributionLike, distributionLike) => distribution; +``` +exp: (distributionLike, distributionLike) => distribution ``` ### log -```javascript -log: (distributionLike, distributionLike) => distribution; +``` +log: (distributionLike, distributionLike) => distribution ``` ### log10 -```javascript -log10: (distributionLike, distributionLike) => distribution; +``` +log10: (distributionLike, distributionLike) => distribution ``` ### unaryMinus -```javascript -unaryMinus: (distribution) => distribution; +``` +unaryMinus: (distribution) => distribution ``` -## Pointwise Operations +**Examples** + +```javascript +-normal(5, 2); // same as normal(-5, 2) +unaryMinus(normal(5, 2)); // same as normal(-5, 2) +``` + +## Pointwise Arithmetic Operations + + +

+ Pointwise arithmetic operations typically return unnormalized or completely + invalid distributions. For example, the operation{" "} + normal(5,2) .- uniform(10,12) results in a distribution-like + object with negative probability mass. +

+
+ +Pointwise arithmetic operations cover the standard arithmetic operations, but work in a different way than the regular operations. These operate on the y-values of the distributions instead of the x-values. A pointwise addition would add the y-values of two distributions. + +The infixes `.+`,`.-`, `.*`, `./`, `.^` are supported for their respective operations. + +The `mixture` methods works with pointwise addition. ### dotAdd -```javascript -dotAdd: (distributionLike, distributionLike) => distribution; +``` +dotAdd: (distributionLike, distributionLike) => distribution ``` ### dotMultiply -```javascript -dotMultiply: (distributionLike, distributionLike) => distribution; +``` +dotMultiply: (distributionLike, distributionLike) => distribution ``` ### dotSubtract -```javascript -dotSubtract: (distributionLike, distributionLike) => distribution; +``` +dotSubtract: (distributionLike, distributionLike) => distribution ``` ### dotDivide -```javascript -dotDivide: (distributionLike, distributionLike) => distribution; +``` +dotDivide: (distributionLike, distributionLike) => distribution ``` ### dotPow -```javascript -dotPow: (distributionLike, distributionLike) => distribution; +``` +dotPow: (distributionLike, distributionLike) => distribution ``` ### dotExp -```javascript -dotExp: (distributionLike, distributionLike) => distribution; +``` +dotExp: (distributionLike, distributionLike) => distribution ``` -## Scale Operations +## Scale Arithmetic Operations -### scaleMultiply + +

+ We're planning on removing scale operations in favor of more general + functions soon. +

+
-```javascript -scaleMultiply: (distributionLike, number) => distribution; +Scale operations are similar to pointwise operations, but operate on a constant y-value instead of y-values coming from a distribution. You can think about this as scaling a distribution vertically by a constant. + +The following items would be equivalent. + +```js +scalePow(normal(5,2), 2) +mapY(normal(5,2), {|y| y ^ 2}) // Not yet available ``` ### scalePow -```javascript -scalePow: (distributionLike, number) => distribution; +``` +scalePow: (distributionLike, number) => distribution ``` ### scaleExp -```javascript -scaleExp: (distributionLike, number) => distribution; +``` +scaleExp: (distributionLike, number) => distribution ``` ### scaleLog -```javascript -scaleLog: (distributionLike, number) => distribution; +``` +scaleLog: (distributionLike, number) => distribution ``` ### scaleLog10 -```javascript -scaleLog10: (distributionLike, number) => distribution; +``` +scaleLog10: (distributionLike, number) => distribution ``` ## Special -### Declaration (Continuous Function) +### Declaration (Continuous Functions) -Adds metadata to a function of the input ranges. Works now for numeric and date inputs. This is useful when making predictions. It allows you to limit the domain that your prediction will be used and scored within. +Adds metadata to a function of the input ranges. Works now for numeric and date inputs. This is useful when making formal predictions. It allows you to limit the domain that your prediction will be used and scored within. -```javascript +Declarations are currently experimental and will likely be removed or changed in the future. + +``` declareFn: (dict<{fn: lambda, inputs: array>}>) => declaration ``` diff --git a/packages/website/docs/Api/DistPointSet.md b/packages/website/docs/Api/DistPointSet.md index bf65ad68..b4c4ba81 100644 --- a/packages/website/docs/Api/DistPointSet.md +++ b/packages/website/docs/Api/DistPointSet.md @@ -3,20 +3,56 @@ sidebar_position: 4 title: Point Set Distribution --- +:::danger +These functions aren't yet implemented with these specific names. This should be changed soon +::: + +Point set distributions are one of the three distribution formats. They are stored as a list of x-y coordinates representing both discrete and continuous distributions. + +One complication is that it's possible to represent invalid probability distributions in the point set format. For example, you can represent shapes with negative values, or shapes that are not normalized. + ### make +Converts the distribution in question into a point set distribution. If the distribution is symbolic, then it does this by taking the quantiles. If the distribution is a sample set, then it uses a version of kernel density estimation to approximate the point set format. One complication of this latter process is that if there is a high proportion of overlapping samples (samples that are exactly the same as each other), it will convert these samples into discrete point masses. Eventually we'd like to add further methods to help adjust this process. + ``` PointSet.make: (distribution) => pointSetDist ``` ### makeContinuous +**TODO: Now called "toContinuousPointSet"** + +Converts a set of x-y coordinates directly into a continuous distribution. + ``` PointSet.makeContinuous: (list<{x: number, y: number}>) => pointSetDist ``` +```javascript +PointSet.makeContinuous([ + { x: 0, y: 0.1 }, + { x: 1, y: 0.2 }, + { x: 2, y: 0.15 }, + { x: 3, y: 0.1 }, +]); +``` + ### makeDiscrete +**TODO: Now called "toDiscretePointSet"** + +Converts a set of x-y coordinates directly into a discrete distribution. + ``` PointSet.makeDiscrete: (list<{x: number, y: number}>) => pointSetDist ``` + +```javascript +PointSet.makeDiscrete([ + { x: 0, y: 0.1 }, + { x: 1, y: 0.2 }, + { x: 2, y: 0.15 }, + { x: 3, y: 0.1 }, +]); +``` diff --git a/packages/website/docs/Api/DistSampleSet.md b/packages/website/docs/Api/DistSampleSet.md index 9d0f5ed9..18005627 100644 --- a/packages/website/docs/Api/DistSampleSet.md +++ b/packages/website/docs/Api/DistSampleSet.md @@ -3,12 +3,22 @@ sidebar_position: 5 title: Sample Set Distribution --- +:::danger +These functions aren't yet implemented with these specific names. This should be added soon. +::: + +Sample set distributions are one of the three distribution formats. Internally, they are stored as a list of numbers. It's useful to distinguish point set distributions from arbitrary lists of numbers to make it clear which functions are applicable. + +Monte Carlo calculations typically result in sample set distributions. + +All regular distribution function work on sample set distributions. In addition, there are several functions that only work on sample set distributions. + ### make ``` SampleSet.make: (distribution) => sampleSet -SampleSet.make: (() => number) => sampleSet SampleSet.make: (list) => sampleSet +SampleSet.make: (() => number) => sampleSet // not yet implemented ``` ### map @@ -35,7 +45,7 @@ SampleSet.map3: (sampleSet, sampleSet, sampleSet, ((number, number, number) => n SampleSet.toList: (sampleSet) => list ``` -Gets the internal samples of a sampleSet distribution. This is separate from the sampleN() function, which would shuffle the samples. toList() maintains order and length. Gets the internal samples of a sampleSet distribution. This is separate from the sampleN() function, which would shuffle the samples. toList() maintains order and length. +Gets the internal samples of a sampleSet distribution. This is separate from the sampleN() function, which would shuffle the samples. toList() maintains order and length. **Examples** diff --git a/packages/website/docs/Api/Duration.mdx b/packages/website/docs/Api/Duration.mdx index 6f81a352..ba25fcbf 100644 --- a/packages/website/docs/Api/Duration.mdx +++ b/packages/website/docs/Api/Duration.mdx @@ -3,6 +3,10 @@ sidebar_position: 6 title: Duration --- +Duration works with the [Date](/docs/Api/Date) type. Similar to the Date implementation, the Duration functions are early and experimental. There is no support yet for date or duration probability distributions. + +Durations are stored in Unix milliseconds. + import TOCInline from "@theme/TOCInline"; diff --git a/packages/website/docs/Api/List.md b/packages/website/docs/Api/List.md index c6d89e7d..47d5f450 100644 --- a/packages/website/docs/Api/List.md +++ b/packages/website/docs/Api/List.md @@ -3,13 +3,21 @@ sidebar_position: 7 title: List --- +Squiggle lists are a lot like Python lists or Ruby arrays. They accept all types. + +```javascript +myList = [3, normal(5, 2), "random"]; +``` + ### make +**Note: currently just called `makeList`, without the preix** + ``` List.make: (number, 'a) => list<'a> ``` -Returns an array of size `n` filled with value `e`. +Returns an array of size `n` filled with the value. ```js List.make(4, 1); // creates the list [1, 1, 1, 1] @@ -31,6 +39,8 @@ length: (list<'a>) => number ### up to +**Note: currently just called `upTo`, without the preix** + ``` List.upTo: (low:number, high:number) => list ``` diff --git a/packages/website/docs/Api/Math.md b/packages/website/docs/Api/Math.md index 37f3fe1d..256ab348 100644 --- a/packages/website/docs/Api/Math.md +++ b/packages/website/docs/Api/Math.md @@ -6,7 +6,7 @@ title: Math ### E ``` -Math.E: +Math.e: ``` Euler's number; ≈ 2.718281828459045 @@ -14,7 +14,7 @@ Euler's number; ≈ 2.718281828459045 ### LN2 ``` -Math.LN2: +Math.ln2: ``` Natural logarithm of 2; ≈ 0.6931471805599453 @@ -22,7 +22,7 @@ Natural logarithm of 2; ≈ 0.6931471805599453 ### LN10 ``` -Math.LN10: +Math.ln10: ``` Natural logarithm of 10; ≈ 2.302585092994046 @@ -30,7 +30,7 @@ Natural logarithm of 10; ≈ 2.302585092994046 ### LOG2E ``` -Math.LOG2E: +Math.log2e: ``` Base 2 logarithm of E; ≈ 1.4426950408889634Base 2 logarithm of E; ≈ 1.4426950408889634 @@ -38,7 +38,7 @@ Base 2 logarithm of E; ≈ 1.4426950408889634Base 2 logarithm of E; ≈ 1.442695 ### LOG10E ``` -Math.LOG10E: +Math.log10e: ``` Base 10 logarithm of E; ≈ 0.4342944819032518 @@ -46,7 +46,7 @@ Base 10 logarithm of E; ≈ 0.4342944819032518 ### PI ``` -Math.PI: +Math.pi: ``` Pi - ratio of the circumference to the diameter of a circle; ≈ 3.141592653589793 @@ -54,7 +54,7 @@ Pi - ratio of the circumference to the diameter of a circle; ≈ 3.1415926535897 ### SQRT1_2 ``` -Math.SQRT1_2: +Math.sqrt1_2: ``` Square root of 1/2; ≈ 0.7071067811865476 @@ -62,7 +62,7 @@ Square root of 1/2; ≈ 0.7071067811865476 ### SQRT2 ``` -Math.SQRT2: +Math.sqrt2: ``` Square root of 2; ≈ 1.4142135623730951 @@ -70,7 +70,7 @@ Square root of 2; ≈ 1.4142135623730951 ### PHI ``` -Math.PHI: +Math.phi: ``` Phi is the golden ratio. 1.618033988749895 @@ -78,7 +78,7 @@ Phi is the golden ratio. 1.618033988749895 ### TAU ``` -Math.TAU: +Math.tau: ``` Tau is the ratio constant of a circle's circumference to radius, equal to 2 \* pi. 6.283185307179586 diff --git a/packages/website/docs/Api/Number.mdx b/packages/website/docs/Api/Number.mdx index 6e4015c2..dda79f64 100644 --- a/packages/website/docs/Api/Number.mdx +++ b/packages/website/docs/Api/Number.mdx @@ -3,63 +3,67 @@ sidebar_position: 9 title: Number --- +Squiggle `numbers` are Javascript floats. + +Many of the functions below work on lists or pairs of numbers. + import TOCInline from "@theme/TOCInline"; ### ceil -```javascript -ceil: (number) => number; +``` +ceil: (number) => number ``` ### floor -```javascript -floor: (number) => number; +``` +floor: (number) => number ``` ### abs -```javascript -abs: (number) => number; +``` +abs: (number) => number ``` ### round -```javascript -round: (number) => number; +``` +round: (number) => number ``` ## Statistics ### max -```javascript +``` max: (list) => number ``` ### min -```javascript +``` min: (list) => number ``` ### mean -```javascript +``` mean: (list) => number ``` ### stdev -```javascript +``` stdev: (list) => number ``` ### variance -```javascript +``` variance: (list) => number ``` @@ -67,25 +71,25 @@ variance: (list) => number ### unaryMinus -```javascript -unaryMinus: (number) => number; +``` +unaryMinus: (number) => number ``` ### equal -```javascript -equal: (number, number) => boolean; +``` +equal: (number, number) => boolean ``` ### add -```javascript -add: (number, number) => number; +``` +add: (number, number) => number ``` ### sum -```javascript +``` sum: (list) => number ``` @@ -97,13 +101,13 @@ cumsum: (list) => list ### multiply -```javascript -multiply: (number, number) => number; +``` +multiply: (number, number) => number ``` ### product -```javascript +``` product: (list) => number ``` @@ -115,30 +119,30 @@ cumprod: (list) => list ### subtract -```javascript -subtract: (number, number) => number; +``` +subtract: (number, number) => number ``` ### divide -```javascript -divide: (number, number) => number; +``` +divide: (number, number) => number ``` ### pow -```javascript -pow: (number, number) => number; +``` +pow: (number, number) => number ``` ### exp -```javascript -exp: (number) => number; +``` +exp: (number) => number ``` ### log -```javascript -log: (number) => number; +``` +log: (number) => number ``` diff --git a/packages/website/docs/Guides/Distributions.mdx b/packages/website/docs/Guides/DistributionCreation.mdx similarity index 95% rename from packages/website/docs/Guides/Distributions.mdx rename to packages/website/docs/Guides/DistributionCreation.mdx index 2688f398..5e84b47f 100644 --- a/packages/website/docs/Guides/Distributions.mdx +++ b/packages/website/docs/Guides/DistributionCreation.mdx @@ -1,6 +1,6 @@ --- title: "Distribution Creation" -sidebar_position: 20 +sidebar_position: 2 --- import { SquiggleEditor } from "../../src/components/SquiggleEditor"; @@ -91,7 +91,7 @@ The `mixture` mixes combines multiple distributions to create a mixture. You can ### Arguments -- `distributions`: A set of distributions or numbers, each passed as a paramater. Numbers will be converted into Delta distributions. +- `distributions`: A set of distributions or numbers, each passed as a paramater. Numbers will be converted into point mass distributions. - `weights`: An optional array of numbers, each representing the weight of its corresponding distribution. The weights will be re-scaled to add to `1.0`. If a weights array is provided, it must be the same length as the distribution paramaters. ### Aliases @@ -221,22 +221,22 @@ Creates a [uniform distribution]( -## Delta +## Point Mass -`delta(value:number)` +`pointMass(value:number)` Creates a discrete distribution with all of its probability mass at point `value`. -Few Squiggle users call the function `delta()` directly. Numbers are converted into delta distributions automatically, when it is appropriate. +Few Squiggle users call the function `pointMass()` directly. Numbers are converted into point mass distributions automatically, when it is appropriate. -For example, in the function `mixture(1,2,normal(5,2))`, the first two arguments will get converted into delta distributions -with values at 1 and 2. Therefore, this is the same as `mixture(delta(1),delta(2),normal(5,2))`. +For example, in the function `mixture(1,2,normal(5,2))`, the first two arguments will get converted into point mass distributions +with values at 1 and 2. Therefore, this is the same as `mixture(pointMass(1),pointMass(2),pointMass(5,2))`. -`Delta()` distributions are currently the only discrete distributions accessible in Squiggle. +`pointMass()` distributions are currently the only discrete distributions accessible in Squiggle. - - + + diff --git a/packages/website/docs/Guides/Functions.mdx b/packages/website/docs/Guides/Functions.mdx index f225252a..be579834 100644 --- a/packages/website/docs/Guides/Functions.mdx +++ b/packages/website/docs/Guides/Functions.mdx @@ -1,5 +1,5 @@ --- -title: "Functions Reference" +title: "Distribution Functions" sidebar_position: 3 --- @@ -170,7 +170,7 @@ given point x. ### Cumulative density function The `cdf(dist, x)` gives the cumulative probability of the distribution -or all values lower than x. It is the inverse of `inv`. +or all values lower than x. It is the inverse of `quantile`. @@ -179,13 +179,13 @@ or all values lower than x. It is the inverse of `inv`. - `x` must be a scalar - `dist` must be a distribution -### Inverse CDF +### Quantile -The `inv(dist, prob)` gives the value x or which the probability for all values +The `quantile(dist, prob)` gives the value x or which the probability for all values lower than x is equal to prob. It is the inverse of `cdf`. In the literature, it is also known as the quantiles function. - + #### Validity diff --git a/packages/website/docs/Guides/Language.mdx b/packages/website/docs/Guides/Language.mdx index 31ff041d..4cfd9ea8 100644 --- a/packages/website/docs/Guides/Language.mdx +++ b/packages/website/docs/Guides/Language.mdx @@ -49,6 +49,6 @@ ozzie_estimate(1) * nuno_estimate(1, 1)`} ## See more -- [Distribution creation](./Distributions) +- [Distribution creation](./DistributionCreation) - [Functions reference](./Functions) - [Gallery](../Discussions/Gallery) diff --git a/packages/website/docs/Internal/Invariants.md b/packages/website/docs/Internal/Invariants.md index 91adf1a1..1e501664 100644 --- a/packages/website/docs/Internal/Invariants.md +++ b/packages/website/docs/Internal/Invariants.md @@ -122,14 +122,14 @@ TODO TODO -## `pdf`, `cdf`, and `inv` +## `pdf`, `cdf`, and `quantile` -With $\forall dist, pdf := x \mapsto \texttt{pdf}(dist, x) \land cdf := x \mapsto \texttt{cdf}(dist, x) \land inv := p \mapsto \texttt{inv}(dist, p)$, +With $\forall dist, pdf := x \mapsto \texttt{pdf}(dist, x) \land cdf := x \mapsto \texttt{cdf}(dist, x) \land quantile := p \mapsto \texttt{quantile}(dist, p)$, -### `cdf` and `inv` are inverses +### `cdf` and `quantile` are inverses $$ -\forall x \in (0,1), cdf(inv(x)) = x \land \forall x \in \texttt{dom}(cdf), x = inv(cdf(x)) +\forall x \in (0,1), cdf(quantile(x)) = x \land \forall x \in \texttt{dom}(cdf), x = quantile(cdf(x)) $$ ### The codomain of `cdf` equals the open interval `(0,1)` equals the codomain of `pdf` diff --git a/packages/website/docs/Internal/Processing-Confidence-Intervals.md b/packages/website/docs/Internal/Processing-Confidence-Intervals.md index 01afeb79..e1dc6e47 100644 --- a/packages/website/docs/Internal/Processing-Confidence-Intervals.md +++ b/packages/website/docs/Internal/Processing-Confidence-Intervals.md @@ -25,7 +25,7 @@ $$ a \cdot Normal(\mu, \sigma) = Normal(a \cdot \mu, |a| \cdot \sigma) $$ -We can now look at the inverse cdf of a $Normal(0,1)$. We find that the 95% point is reached at $1.6448536269514722$. ([source](https://stackoverflow.com/questions/20626994/how-to-calculate-the-inverse-of-the-normal-cumulative-distribution-function-in-p)) This means that the 90% confidence interval is $[-1.6448536269514722, 1.6448536269514722]$, which has a width of $2 \cdot 1.6448536269514722$. +We can now look at the quantile of a $Normal(0,1)$. We find that the 95% point is reached at $1.6448536269514722$. ([source](https://stackoverflow.com/questions/20626994/how-to-calculate-the-inverse-of-the-normal-cumulative-distribution-function-in-p)) This means that the 90% confidence interval is $[-1.6448536269514722, 1.6448536269514722]$, which has a width of $2 \cdot 1.6448536269514722$. So then, if we take a $Normal(0,1)$ and we multiply it by $\frac{(high -. low)}{(2. *. 1.6448536269514722)}$, it's 90% confidence interval will be multiplied by the same amount. Then we just have to shift it by the mean to get our target normal. diff --git a/packages/website/docs/Guides/Node-Packages.md b/packages/website/docs/Node-Packages.md similarity index 100% rename from packages/website/docs/Guides/Node-Packages.md rename to packages/website/docs/Node-Packages.md diff --git a/packages/website/docusaurus.config.js b/packages/website/docusaurus.config.js index 4152ae6e..68baf7c8 100644 --- a/packages/website/docusaurus.config.js +++ b/packages/website/docusaurus.config.js @@ -66,7 +66,7 @@ const config = { }, { type: "doc", - docId: "Api/Dictionary", + docId: "Api/DistGeneric", position: "left", label: "API", }, diff --git a/packages/website/sidebars.js b/packages/website/sidebars.js index 5c63ccb9..a22b80a8 100644 --- a/packages/website/sidebars.js +++ b/packages/website/sidebars.js @@ -26,6 +26,11 @@ const sidebars = { id: "Introduction", label: "Introduction", }, + { + type: "doc", + id: "Node-Packages", + label: "Node Packages", + }, { type: "category", label: "Guides", diff --git a/packages/website/tailwind.config.js b/packages/website/tailwind.config.js index f100dc69..6cef416c 100644 --- a/packages/website/tailwind.config.js +++ b/packages/website/tailwind.config.js @@ -3,5 +3,4 @@ module.exports = { theme: { extend: {}, }, - plugins: [require("@tailwindcss/forms")], }; diff --git a/yarn.lock b/yarn.lock index 3b52c384..f2116088 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1852,10 +1852,10 @@ resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-1.0.6.tgz#35dd26987228b39ef2316db3b1245c42eb19e324" integrity sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ== -"@hookform/resolvers@^2.9.0": - version "2.9.0" - resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-2.9.0.tgz#0e8c5188fb030f1c21764892db0d04058d5413f0" - integrity sha512-fW/buf863gDiU60RxCTKooJRf1YRvcMy0MTXGsyv7y0sutx0iYeZwoFNQRLBtS+hi+lo60ZV3Kf8AdqGY+sZVw== +"@hookform/resolvers@^2.9.1": + version "2.9.1" + resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-2.9.1.tgz#59121e38d8fc95d2fd1f41c9631393cd21e10b65" + integrity sha512-80lyFFcExEB7A09PFnl8k7A3obQyDF6MyO/FThtwetk+MTedYMs08Aqf7mgWnOawFGyz5QF+TZXJSYiIZW2tEg== "@humanwhocodes/config-array@^0.9.2": version "0.9.5" @@ -2763,18 +2763,18 @@ "@stdlib/types" "^0.0.x" debug "^2.6.9" -"@storybook/addon-actions@6.5.7", "@storybook/addon-actions@^6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.5.7.tgz#0280a994f42e80ae7e8b71ccf04cd0279cbce01d" - integrity sha512-gTkPr2FYX+vySZKEg5Wq7uHPkVUq3hJ7ZKvGls+/xjgaTwfu3iIly53FEFUl8A6kMQ+4gtTC+YRr3cSJgXMbAg== +"@storybook/addon-actions@6.5.8", "@storybook/addon-actions@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.5.8.tgz#c1f544acc016a4a0d5dcb373535dc991b5737c5f" + integrity sha512-9ciR1iWBTzQNBDlq0iQs9+TV7gng+FbQxW5mHNxNvT9SxY1dt02wCPHZeVE/5la61wBXZs/zpEepZA93VzVBDw== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.7" + "@storybook/theming" "6.5.8" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -2788,18 +2788,18 @@ util-deprecate "^1.0.2" uuid-browser "^3.1.0" -"@storybook/addon-backgrounds@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.5.7.tgz#2bd823a94db05bf2b836121adb7e7b49c33b99b2" - integrity sha512-ryisDpxbIEZbYJkQWU5xvsj940jhWrWizedFsY9g/qBIBi33UrW/H1hKZQtmg0bzuNTgYcBjRy50ikJgH/eKAQ== +"@storybook/addon-backgrounds@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.5.8.tgz#d7ab67d7bf98f7866b8f95cd92da068f00997b74" + integrity sha512-pvlP5ZVVfd2sWzgCqG/f6RJX/h9648znYbzaLQ4Z6whQIFobP3H3/cj9k/RTy3uXg5vC0IWDHSEaCXgin2sW1Q== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.7" + "@storybook/theming" "6.5.8" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" @@ -2807,47 +2807,47 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-controls@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.5.7.tgz#ec1f3c26b494c5eccb44e172d17e23a267e3b514" - integrity sha512-1JGphHk1gcLLpkft/D5BkygXwelSdWQqvXnfFc62BVqvzxv8hCF4zuUosKLWMlB/nzVbd6W4oEDV/Mqmt6h/7w== +"@storybook/addon-controls@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.5.8.tgz#779407655d990f88e1d3bb734cf116bc419ab6ba" + integrity sha512-fB6p5DgVHUnJKUzOlT2mtvaSCincnO+vuYLyf++f+l4BlYK1Es9HNl/puaRoMgdW+LoGJjXPTIMcMByeHVIt6Q== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/core-common" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-common" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/node-logger" "6.5.7" - "@storybook/store" "6.5.7" - "@storybook/theming" "6.5.7" + "@storybook/node-logger" "6.5.8" + "@storybook/store" "6.5.8" + "@storybook/theming" "6.5.8" core-js "^3.8.2" lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/addon-docs@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.5.7.tgz#405e20a02053c8933aeb51b8161aa4b665e69887" - integrity sha512-RghRpimJOJl9c/H6qvCCD0zHLETBIVWXsdYJF8GiY6iTKd+tgQYizuuoBT4f3PAMEMHVhmvWSjkkFLxKxzQLjQ== +"@storybook/addon-docs@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.5.8.tgz#0b6c379cd7b9f2544aa78fdf520939f8f9bd9ecc" + integrity sha512-pAvWwh5YCrsW9nHCrd5BpFigvqn92JisX0aEnwAqKC9B1AW1LxhdPn1o9CQCeszQGaq163RA6AzkCejvAqhtUQ== dependencies: "@babel/plugin-transform-react-jsx" "^7.12.12" "@babel/preset-env" "^7.12.11" "@jest/transform" "^26.6.2" "@mdx-js/react" "^1.6.22" - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/core-common" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/docs-tools" "6.5.7" + "@storybook/docs-tools" "6.5.8" "@storybook/mdx1-csf" "^0.0.1" - "@storybook/node-logger" "6.5.7" - "@storybook/postinstall" "6.5.7" - "@storybook/preview-web" "6.5.7" - "@storybook/source-loader" "6.5.7" - "@storybook/store" "6.5.7" - "@storybook/theming" "6.5.7" + "@storybook/node-logger" "6.5.8" + "@storybook/postinstall" "6.5.8" + "@storybook/preview-web" "6.5.8" + "@storybook/source-loader" "6.5.8" + "@storybook/store" "6.5.8" + "@storybook/theming" "6.5.8" babel-loader "^8.0.0" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -2859,37 +2859,37 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-essentials@^6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.5.7.tgz#455b754f79399f0dcf7409b8a45ccae9b6433bab" - integrity sha512-JZ80W9PgZOEUp2SjhBYyYHxQduxSIe4n9Wdoy8XDtV28152jDNms6UPjFeEVb+a9rVybYOwWnOnEhBWF6ZfJ/g== +"@storybook/addon-essentials@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.5.8.tgz#db89307cb8445c49d23ecaa346516b3793baa28a" + integrity sha512-K/Aw/GLugCz5/S3c2tz5lnfC8aN6dSoQQDr8xaMDcBlT9h/xZ1l4jQQnx/mvY/qEvXtexBF41DE6ROWGKSZeSg== dependencies: - "@storybook/addon-actions" "6.5.7" - "@storybook/addon-backgrounds" "6.5.7" - "@storybook/addon-controls" "6.5.7" - "@storybook/addon-docs" "6.5.7" - "@storybook/addon-measure" "6.5.7" - "@storybook/addon-outline" "6.5.7" - "@storybook/addon-toolbars" "6.5.7" - "@storybook/addon-viewport" "6.5.7" - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/core-common" "6.5.7" - "@storybook/node-logger" "6.5.7" + "@storybook/addon-actions" "6.5.8" + "@storybook/addon-backgrounds" "6.5.8" + "@storybook/addon-controls" "6.5.8" + "@storybook/addon-docs" "6.5.8" + "@storybook/addon-measure" "6.5.8" + "@storybook/addon-outline" "6.5.8" + "@storybook/addon-toolbars" "6.5.8" + "@storybook/addon-viewport" "6.5.8" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/node-logger" "6.5.8" core-js "^3.8.2" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-links@^6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.5.7.tgz#b3a794b19c5c0277c3f20f86915c851f577dc45b" - integrity sha512-kiCzGLlCyhfBjwYfM/xACe5l6s2+8exQNOGoLzNeAhprgD7dzpsZ0ZaEgpF4ay9bG9H9gOeX4jc/TAvVW/v6nw== +"@storybook/addon-links@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.5.8.tgz#ec4b640bf89dbb653592e6f05968ba771bb10b4a" + integrity sha512-UxzEPnT1PLPsuy3tt+o3UJTbI4Kihec+/yzpzzGKreUnCC8EWTsOhtMQAVVit2t4BMl4vNrxKO0mKSc8saT3Gw== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/router" "6.5.7" + "@storybook/router" "6.5.8" "@types/qs" "^6.9.5" core-js "^3.8.2" global "^4.4.0" @@ -2898,95 +2898,95 @@ regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-measure@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.5.7.tgz#e2a624147b359125f3d212214b38a67f360e08f3" - integrity sha512-NMth6CErySKQ9WnfzMZ4nelHa2bBzZ60ZgsDq5s5dKHhJzZPm2nclmGAGE+VhqI/USe8b1fnjKFeHH485T8J2g== +"@storybook/addon-measure@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.5.8.tgz#af4c0d1ec4394d89f79593561a898612d4c52177" + integrity sha512-zpNAt1XwBLnQ3OjCfj63J7vC2WCTyAjvbGVAsUkpQb21vr/e3sPFQZPKGwio85SYjIX7AJ+Oi28mbEwWzS8wFA== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" global "^4.4.0" -"@storybook/addon-outline@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.5.7.tgz#6b3b34c2fe0ba724aa958cddf0aadcec05ce3dbc" - integrity sha512-qTu19FnZz+rjY7SxPOgiQkuAxHRNRhUYgvUwI+ep0ZQcBddsRgniQjzXtErlUMeVoMZ63mDuOaJp67ltkriAOQ== +"@storybook/addon-outline@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.5.8.tgz#e6a464ef63b67067e162e13e07d7d3629313f080" + integrity sha512-/bEjYTVJNM5QEiguS5nVQlerl5NhgOod1zLExnkchc8+FTJC58Vy7CRfzr2iaIMuf1QRPqBwSIy6ZqLJOdUfnQ== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-toolbars@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.5.7.tgz#dc1e730fc1b158dde6aa3b753ff2b4d5e223c3a0" - integrity sha512-+MUG5t4isQNf+q7BpEsGwuYAvYgs9XTdzzdvL/9jedQ7udJsWmG1q9a6m9+iQGPr/WK+88F2kgSOknpib3J21w== +"@storybook/addon-toolbars@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.5.8.tgz#533b7f4bb925d353c9f826d5b92d6801b7418faa" + integrity sha512-16eRbbtn4/cH1xU8JlPZRdShwUwSsPcqpyH1JNl+rgYQ6SaSNq3aO/jDFeQe93guSD0YPRWHz8dKtn6OxVeozQ== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/theming" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/theming" "6.5.8" core-js "^3.8.2" regenerator-runtime "^0.13.7" -"@storybook/addon-viewport@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.5.7.tgz#65d07cfad02c3c58048a76f4db7c79db9a01320a" - integrity sha512-8VmSTGKY3+9kZ09THC7546OaFbjLu5kEAGU5ZFSZaNlsJwRg7bC3bScKbnyX5EhihgZ3W8oJt/eMAIqXKHxA8g== +"@storybook/addon-viewport@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.5.8.tgz#3184a6ef12582af6f2361af27f404dffee0b32ae" + integrity sha512-MTpZWkBWNPH55iNHK4tBNKTdew5xKfoNvOj0pZn1rYDHlylMTlq7aoccwRjjK2jZeHHNnb1rm6ZkQDjmYu0Tcw== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/core-events" "6.5.7" - "@storybook/theming" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/theming" "6.5.8" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" prop-types "^15.7.2" regenerator-runtime "^0.13.7" -"@storybook/addons@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.5.7.tgz#1c7256f696fb572f7c3c7ccbcb94988372b95cee" - integrity sha512-tUZ2c1uegUcwY31ztNQZGU/HUwAEEGIR8fEOvvO8S0TNQGoo6cwFtZmWBh3mTSRGcmzK2SNBjFHZua5Ee9TefA== +"@storybook/addons@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.5.8.tgz#c529a2989830a09d26308277a3e356228479053d" + integrity sha512-L3LmbsYP9tDHHvpr/yv8YuEkzym7SXp/jZ0km31tpG3EuZmgGu7MXPrZ2ymEw4PkAhQzztgRr23VTfKobGUojA== dependencies: - "@storybook/api" "6.5.7" - "@storybook/channels" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/api" "6.5.8" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/router" "6.5.7" - "@storybook/theming" "6.5.7" + "@storybook/router" "6.5.8" + "@storybook/theming" "6.5.8" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" -"@storybook/api@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.5.7.tgz#1a5fc381fd417fd1c8ab6e246af09fdcd20f9df0" - integrity sha512-QCNypz4X+lYuFW7EzvRPXMf8uS3gfSIV8sqXtEe5XoMb0HQXhy6AGU7/4iAeuUimtETqLTxq+kOxaSg4uPowxg== +"@storybook/api@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.5.8.tgz#8bd400b8a5b18ec6bff5d35a898593d9c1c630f9" + integrity sha512-/MueV+wLCvy9gFA3ih4g7QYjDmn14i+D2ydonfaEC7R+agFGXxXwJGPKkz3yBNrRpNkBwcbY9mAmv8lE2AqgqQ== dependencies: - "@storybook/channels" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/router" "6.5.7" + "@storybook/router" "6.5.8" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.5.7" + "@storybook/theming" "6.5.8" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -2998,28 +2998,28 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-webpack4@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.5.7.tgz#043ad0625eedb39fcd07035cdb252973d3eb6ef9" - integrity sha512-8OB3mZ2L6kQBiAXlkhna/MHREXIPtqXi2AJLT3+bTzBlqkusH+PwMZxWHbcPl1vZrlNQBC40Elx9tdynGkVQ6g== +"@storybook/builder-webpack4@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.5.8.tgz#adfb4b91bd442c2f256d93649d50ca138c30663a" + integrity sha512-4/CVp/AlOxCeWZ/DF1TVS/TuzHao4l9KCq7DhL+utFEVl9c/dpgoZXc0Gy2FfHa2RXHKckrH/VUfV2KQk4TNSw== dependencies: "@babel/core" "^7.12.10" - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/channel-postmessage" "6.5.7" - "@storybook/channels" "6.5.7" - "@storybook/client-api" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/core-common" "6.5.7" - "@storybook/core-events" "6.5.7" - "@storybook/node-logger" "6.5.7" - "@storybook/preview-web" "6.5.7" - "@storybook/router" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/channel-postmessage" "6.5.8" + "@storybook/channels" "6.5.8" + "@storybook/client-api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/node-logger" "6.5.8" + "@storybook/preview-web" "6.5.8" + "@storybook/router" "6.5.8" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.7" - "@storybook/theming" "6.5.7" - "@storybook/ui" "6.5.7" + "@storybook/store" "6.5.8" + "@storybook/theming" "6.5.8" + "@storybook/ui" "6.5.8" "@types/node" "^14.0.10 || ^16.0.0" "@types/webpack" "^4.41.26" autoprefixer "^9.8.6" @@ -3051,27 +3051,27 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.2.2" -"@storybook/builder-webpack5@^6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-6.5.7.tgz#499706419d6b75808534a699a1fa23c35d82999c" - integrity sha512-3mbQ09KBTUsFYxnEtR4vr7W1wodRen3o8fANY5XxvE1sr1TopHVOKpIlePjrpcrXcLKFI/ZWrX3IfK88LCuI9w== +"@storybook/builder-webpack5@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-6.5.8.tgz#8d1e366c4bc2c8bec49849073031cfd195682309" + integrity sha512-bc7LSGzOqTUImejsfjWAHEHwBreoPQKS6pfnWYkjKMvfvWOwlHSAxwOSM5DyS4cvpcpMDG8yBJNz2QcvXFVLxA== dependencies: "@babel/core" "^7.12.10" - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/channel-postmessage" "6.5.7" - "@storybook/channels" "6.5.7" - "@storybook/client-api" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/core-common" "6.5.7" - "@storybook/core-events" "6.5.7" - "@storybook/node-logger" "6.5.7" - "@storybook/preview-web" "6.5.7" - "@storybook/router" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/channel-postmessage" "6.5.8" + "@storybook/channels" "6.5.8" + "@storybook/client-api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/node-logger" "6.5.8" + "@storybook/preview-web" "6.5.8" + "@storybook/router" "6.5.8" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.7" - "@storybook/theming" "6.5.7" + "@storybook/store" "6.5.8" + "@storybook/theming" "6.5.8" "@types/node" "^14.0.10 || ^16.0.0" babel-loader "^8.0.0" babel-plugin-named-exports-order "^0.0.2" @@ -3095,51 +3095,51 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.4.1" -"@storybook/channel-postmessage@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.5.7.tgz#7b4ab88e274a9584d5603f37ab7a985f08a3643e" - integrity sha512-X4UPgm4O0503CsSnqAM1ht/6R9ofnoMcqFZxYRu9PSvHlhaFR9V9AU4VjQhakH7alFzRsAhcAV2PFVTAdWhgtA== +"@storybook/channel-postmessage@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.5.8.tgz#989af9a55eba391b64487640f6b5b0cfd1fde2f9" + integrity sha512-6IkIKk+UMYKk05vN8gWHvvOV/EZNXpQG/5gesGDALjkCyvRmcktHak1a9tHpoihZ3L7/gDwXOZraCZmuy8vBcQ== dependencies: - "@storybook/channels" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" core-js "^3.8.2" global "^4.4.0" qs "^6.10.0" telejson "^6.0.8" -"@storybook/channel-websocket@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.5.7.tgz#69e274319a995d1bd01b3783586cdefcb56277dc" - integrity sha512-C+l6t3ZgHzU8gL8GJ8c4GMttJglGJIwq1LtJJKnGzx2kJCD0HRMMqc/qFS2K2EwP99hLwwGIlCpom3UZ1aEanA== +"@storybook/channel-websocket@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.5.8.tgz#722743619f86ebc9325bbff026acf6eba13b21ca" + integrity sha512-lAtvgO0FWsyS3u7uFbsGIYp2aSWJfWU/LOtc3x1K5c84JJAd9fncYkyZMwP1gMbdNgYxJoxe8HXtVtfeNegPuQ== dependencies: - "@storybook/channels" "6.5.7" - "@storybook/client-logger" "6.5.7" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" core-js "^3.8.2" global "^4.4.0" telejson "^6.0.8" -"@storybook/channels@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.5.7.tgz#765b02e949f58c4181998c676b155f5c1914bec1" - integrity sha512-v880fWBpWgiWrDmZesTIstNfMZhrPfgXAtLNcL5Z89NAPahsHskOSszc0BDxKN3gb+ZeTKUqHxY57dQdp+1rhg== +"@storybook/channels@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.5.8.tgz#e85ffd2076813b67336b1b9b274c37aa5f1b80e0" + integrity sha512-fNql1lEIvWlI1NiRtwFMWOOvfW6qxgeSP6xoqiAJ0b+QYegEFG9UxJDuEvVHq++S81FulgQ5U+p+5R9XSV19tQ== dependencies: core-js "^3.8.2" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.5.7.tgz#e5d7a5ca698138f4eba36e14d49138850163f252" - integrity sha512-na8NZhB6GnAGp3jRTV9wwue3WGwSZoi5jfxrKSYMPL/s/2n07/soixHggqueBDXuNBrPoJaXbY/nRHmSjLwxtQ== +"@storybook/client-api@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.5.8.tgz#cf1b3d4a71a3a156636a9b6b51acc4239b259d86" + integrity sha512-mdU+qQ4+T2OUbEnl+3MWRKxEPju/EOIUg66hMgmif8c5u7YFYBFulUMUYLICMjll8Jlu+37+g+qO3K2eEz6CEw== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/channel-postmessage" "6.5.7" - "@storybook/channels" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/channel-postmessage" "6.5.8" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.7" + "@storybook/store" "6.5.8" "@types/qs" "^6.9.5" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" @@ -3154,22 +3154,22 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-logger@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.5.7.tgz#97a607b1d09d32a31091fe286510cf5d3995d2bf" - integrity sha512-ycDy1kXeXRg3djSTXRGMVxc0kvaWw/UhHDs2VGFmOPScsoeWpdbePHXJMFbsqippxuexpsofqTryBwH2b6BPhw== +"@storybook/client-logger@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.5.8.tgz#551f818c4448ef6e6adf9c3ad256e1ae61e2d75c" + integrity sha512-dH6HSaVuOIMHy1+rpsqcD3SJxVZEEbuEtsNpdUGwLJaIuduhUJJpM2xQfUW0siZDyrgwoa+znll+G0YNUbv7sg== dependencies: core-js "^3.8.2" global "^4.4.0" -"@storybook/components@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.5.7.tgz#28a509c0556f8df919c8c7f7076ca6785b22cb8d" - integrity sha512-xSOaOK8q6bXYkmN4LZKucvXU2HRHqKwwTafFDh5yzsCSEB2VQIJlyo4ePVyv/GJgBUX6+WdSA7c5r5ePXK6IYQ== +"@storybook/components@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.5.8.tgz#eb18cfcc4e88b7f4081b20b8a81b92d7ae9eaeac" + integrity sha512-YE+LZ1/GXoqertxodsf+L9ehcohbICRAxgE/iNqc7MZfk95SD3XRSUbxhCpGe8QTIZJpzs1tK4LFZ3Fg5w/+Lg== dependencies: - "@storybook/client-logger" "6.5.7" + "@storybook/client-logger" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.7" + "@storybook/theming" "6.5.8" "@types/react-syntax-highlighter" "11.0.5" core-js "^3.8.2" qs "^6.10.0" @@ -3177,21 +3177,21 @@ regenerator-runtime "^0.13.7" util-deprecate "^1.0.2" -"@storybook/core-client@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.5.7.tgz#556a38330c89adfacf5151cda0b5c32e24499737" - integrity sha512-GL7m33tpEyornhfnTddbvDuLkA9EMe1zKv9oZGsUYo78cWRTiEibYyHegIi9/ThplRXvpFR/5uHY4Zx5Z5rxJg== +"@storybook/core-client@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.5.8.tgz#4be4ce024a74b51c0650d346f1f3a11a0f921952" + integrity sha512-8x8qKQ2clvpfDcoWrNBmQ8Xt9z/i32TFIBp4PEZMcbB7eqo517nzfllLiXDipiJgO7BGxKtY5CRHQ9pAU9G27A== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/channel-postmessage" "6.5.7" - "@storybook/channel-websocket" "6.5.7" - "@storybook/client-api" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/channel-postmessage" "6.5.8" + "@storybook/channel-websocket" "6.5.8" + "@storybook/client-api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/preview-web" "6.5.7" - "@storybook/store" "6.5.7" - "@storybook/ui" "6.5.7" + "@storybook/preview-web" "6.5.8" + "@storybook/store" "6.5.8" + "@storybook/ui" "6.5.8" airbnb-js-shims "^2.2.1" ansi-to-html "^0.6.11" core-js "^3.8.2" @@ -3203,10 +3203,10 @@ unfetch "^4.2.0" util-deprecate "^1.0.2" -"@storybook/core-common@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.5.7.tgz#69519d02b48c719fba734b38bb6a4419abc77a4b" - integrity sha512-/b1oQlmhek8tKDu9ky2O1oEk9g2giAPpl192yRz4lIxap5CFJ7RCfgbkq+F3JBXnH2P84BufC0x3dj4jvBhxCw== +"@storybook/core-common@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.5.8.tgz#6972c7109477914f9ed72bedbe3769cec0eb8c56" + integrity sha512-ELGKLMx1d0oEA2LT+fsmo85X2RNE1EO+It7B1bw//g7jyf1hmZ7t3lXMZUCqt7eml1qy1N72LDkfmmU+H9H6ww== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -3230,7 +3230,7 @@ "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" "@babel/register" "^7.12.1" - "@storybook/node-logger" "6.5.7" + "@storybook/node-logger" "6.5.8" "@storybook/semver" "^7.3.2" "@types/node" "^14.0.10 || ^16.0.0" "@types/pretty-hrtime" "^1.0.0" @@ -3259,30 +3259,30 @@ util-deprecate "^1.0.2" webpack "4" -"@storybook/core-events@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.5.7.tgz#a533f3a57e495a1660c82c5d6164ca464bf4a2b2" - integrity sha512-epqYy67Ypry5QdCt7FpN57/X9uuS7R2+DLFORZIpL/SJG1dIdN4POQ1icWOhPzHl+eiSgaV7e2oPaUsN+LPhJQ== +"@storybook/core-events@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.5.8.tgz#bc405d37d0ed1a6eafa2682fc085b2a7a992233c" + integrity sha512-lzG4Lg65WFYvjs2k/E3CP4+eyPexEGrDyRMO9Pbj9H9x+eosYptauEbT/wXF83bmUWZKLWWVUAZX7hDcxBO8cw== dependencies: core-js "^3.8.2" -"@storybook/core-server@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.5.7.tgz#3e849045617a3bc0cfa0091fc3952c150114428e" - integrity sha512-CGwFZ5kmKaCS/+tcrAbqQu4Owq86wXkWRapJB55S8AlUsf3c9gEC8a3+Ed9tZUlmjSH56CnDDfmt7AleToaQ9w== +"@storybook/core-server@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.5.8.tgz#3ef53c4b0437e83c310f9e545607a0b1ce512ab6" + integrity sha512-ti7+MW1xzD9O0JLwgZTwulxhJx5YGPNu+hRpGhJSjKrqGX1h6K6ilmkBSHvyLqpiE+F4mxvqb5Rx3KBIEdEgbw== dependencies: "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-webpack4" "6.5.7" - "@storybook/core-client" "6.5.7" - "@storybook/core-common" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/builder-webpack4" "6.5.8" + "@storybook/core-client" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/csf-tools" "6.5.7" - "@storybook/manager-webpack4" "6.5.7" - "@storybook/node-logger" "6.5.7" + "@storybook/csf-tools" "6.5.8" + "@storybook/manager-webpack4" "6.5.8" + "@storybook/node-logger" "6.5.8" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.7" - "@storybook/telemetry" "6.5.7" + "@storybook/store" "6.5.8" + "@storybook/telemetry" "6.5.8" "@types/node" "^14.0.10 || ^16.0.0" "@types/node-fetch" "^2.5.7" "@types/pretty-hrtime" "^1.0.0" @@ -3317,18 +3317,18 @@ ws "^8.2.3" x-default-browser "^0.4.0" -"@storybook/core@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.5.7.tgz#8db00f6af1c869574fa996c427faff74335c2325" - integrity sha512-YSu2qur1E5y9rjVspchtCfupPT3y1XyjBInhwzo8jC3rvm2WY0RS80VQU3dga4QBllO1M+cDmLzmOEPL82+Juw== +"@storybook/core@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.5.8.tgz#cbe6acaf587e9ef66963bb104a067c213aeea990" + integrity sha512-+Fv4n1E5N4Avty9GcRbz4vB2IWH//se2OUU+RTT3vneCOGjyus5bj0Or6GU5wef5UGuvHF78mHg/frhWpguzsw== dependencies: - "@storybook/core-client" "6.5.7" - "@storybook/core-server" "6.5.7" + "@storybook/core-client" "6.5.8" + "@storybook/core-server" "6.5.8" -"@storybook/csf-tools@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.5.7.tgz#93780a2eee892c1c92f33a0be1d3fd52cda770ce" - integrity sha512-/vBaknzD8c7H/Zsz0gwhmlNlMwe5slZwXadi6rAQXDkKLzaR1kmz4cQFs8yDR1wWpXaGjNvQxOUAGYjFoGQxzA== +"@storybook/csf-tools@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.5.8.tgz#5788aa1e862ee613d11d6528f27c8e267e4dd3a7" + integrity sha512-4VrjIMxKcp29OFSMDub52aQOMP4EvtZ5eWZkPeORRNQoJsnQaxhF9GGf71QdSaAQZhMoxdvmpA47ehrFk8Rnfw== dependencies: "@babel/core" "^7.12.10" "@babel/generator" "^7.12.11" @@ -3352,33 +3352,33 @@ dependencies: lodash "^4.17.15" -"@storybook/docs-tools@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-6.5.7.tgz#6ade71e90a84fbb92be708dc019adf7e7894724a" - integrity sha512-Aw9uUsqeuw0Z9fpiwxrstMNjNGB9s1Tm57SpMF8ibjLYBYFf5Apz5CwDX7bm6YFtCweaawx4MeQta8qnQMWCFw== +"@storybook/docs-tools@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-6.5.8.tgz#6189fd20fafa9eb2aa4a19e311d65295992dd105" + integrity sha512-CWMW+3LSstvQmHKV5ggPR1beQZTpwCXEhfysZ9u4Yp/4fcoDIuQ7DTOK5uNFynGCGl1FG3lATriEOhEZ3bZCvQ== dependencies: "@babel/core" "^7.12.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.7" + "@storybook/store" "6.5.8" core-js "^3.8.2" doctrine "^3.0.0" lodash "^4.17.21" regenerator-runtime "^0.13.7" -"@storybook/manager-webpack4@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.5.7.tgz#9e851022241f8b472da3c2b27d24b1f2c0085151" - integrity sha512-RmGsr/6PNsafaSm8aTD7e2VXSKT8BQ6Hkg6TAArLoS2TpIUvrNuM2hEqOHzm2POcApC+OE/HN1H0GiXBkH533Q== +"@storybook/manager-webpack4@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.5.8.tgz#9e4d3dcebac9bd0b07abd630632dc15130ae03f1" + integrity sha512-qW5/L3cJHvtNi5ylDxObALZWaAHMsWQlPP8GRxm95NHpff4CfRo/qs7puY9ZeLmJSic0KchoHEH/8AScflLOgA== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.5.7" - "@storybook/core-client" "6.5.7" - "@storybook/core-common" "6.5.7" - "@storybook/node-logger" "6.5.7" - "@storybook/theming" "6.5.7" - "@storybook/ui" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/core-client" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/node-logger" "6.5.8" + "@storybook/theming" "6.5.8" + "@storybook/ui" "6.5.8" "@types/node" "^14.0.10 || ^16.0.0" "@types/webpack" "^4.41.26" babel-loader "^8.0.0" @@ -3406,20 +3406,20 @@ webpack-dev-middleware "^3.7.3" webpack-virtual-modules "^0.2.2" -"@storybook/manager-webpack5@^6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/manager-webpack5/-/manager-webpack5-6.5.7.tgz#a7446c86d96bb4b91e5dc554d21da8102795a11f" - integrity sha512-4TZKe71noCRui8sUxSuSqO6zMnCxCLn7dE1dOlCr/UvyZbCaGWACO5olUDQrT+n1glZL8i9L998JGQroksucNw== +"@storybook/manager-webpack5@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/manager-webpack5/-/manager-webpack5-6.5.8.tgz#36e97096506073c837716897495fffe4a616fe83" + integrity sha512-foW/ZvTqGZAl4TfcfGKdS3RlaBDDAgEjUCbCaVShlZRshZ8tzWBVu3JQFqbPVGslH89T5qp9DUYoN/SJqTUpcg== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.5.7" - "@storybook/core-client" "6.5.7" - "@storybook/core-common" "6.5.7" - "@storybook/node-logger" "6.5.7" - "@storybook/theming" "6.5.7" - "@storybook/ui" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/core-client" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/node-logger" "6.5.8" + "@storybook/theming" "6.5.8" + "@storybook/ui" "6.5.8" "@types/node" "^14.0.10 || ^16.0.0" babel-loader "^8.0.0" case-sensitive-paths-webpack-plugin "^2.3.0" @@ -3461,10 +3461,10 @@ prettier ">=2.2.1 <=2.3.0" ts-dedent "^2.0.0" -"@storybook/node-logger@6.5.7", "@storybook/node-logger@^6.5.6": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.5.7.tgz#a31d91be3cd9d9f033d340b1dc2b8e1c0de61cb6" - integrity sha512-OrHu5p2E5i7P2v2hQAOtZw6Od1e2nrP6L7w5SxUPgccUnKUD9dRX5Y8qbAcPZO3XCkMLjpjAbC1xBXG0eFkn9g== +"@storybook/node-logger@6.5.8", "@storybook/node-logger@^6.5.6": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.5.8.tgz#d1244c846da5a296a7432444f8682f77853fb81e" + integrity sha512-BHdkSipgjnfsh4FRYbV2R0npM5gVx9JLRsDQ0KiTolRpN4SU98kT/6885zb9jZg6I0EY+UG9Qdr3fvL9VLpY1g== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.1.0" @@ -3472,10 +3472,10 @@ npmlog "^5.0.1" pretty-hrtime "^1.0.3" -"@storybook/postinstall@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.5.7.tgz#5bca298bfdfe37dff9d42fa7588d3bdce3e1aa85" - integrity sha512-902JjgB2o+NiiLCPV0b4GHX9SbnY1OkvfvmkqpD3UqWh8djpkSQwvli9npM1J2NEu4BxCqbifYJI7V4JmZbdsw== +"@storybook/postinstall@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.5.8.tgz#e803fd5652eea68e7da81f6d70e46d9db9c633c1" + integrity sha512-Z6zQnBOaMj+gHtF1XPMpwTIxYRCmh6eNirrJLrkPk5c+fKXtw6+vNCbmPvsyTGxGEHnyn/tYwe1fvwJTHDctUw== dependencies: core-js "^3.8.2" @@ -3491,17 +3491,17 @@ pnp-webpack-plugin "^1.7.0" semver "^7.3.5" -"@storybook/preview-web@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.5.7.tgz#1eb8e11756896390345a17bafe411146c2066a48" - integrity sha512-EH8gdl334D8EDVL1VJjRURcUou5Sv6BwgismL4E6wjSFmWxL9egxYDnGJJEh3mjIkAtGb0zpksYn/VNWPA8c8A== +"@storybook/preview-web@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.5.8.tgz#b1c86d56e99032c02ba47bab628c36d76a0385b6" + integrity sha512-jEEAgvTVZfFA0B20mRJfLW6dPA5mG5PxUJtjMx6wH4Yw4+i3Sld/U63hTRt7ktpKdrcu4lX9E+PuaRLPq7S2kg== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/channel-postmessage" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/channel-postmessage" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.7" + "@storybook/store" "6.5.8" ansi-to-html "^0.6.11" core-js "^3.8.2" global "^4.4.0" @@ -3526,24 +3526,24 @@ react-docgen-typescript "^2.1.1" tslib "^2.0.0" -"@storybook/react@^6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.5.7.tgz#70224ddd150f31fc1cb0e2f7bf9ba56657f38644" - integrity sha512-jMY1vk1WL1otEODl5BxD1kSh5Eqg+SvZW5CJ7sS6q53i3teOhaGhugvuSTuV9lnBzLOZu8atIdFL0ewdOkpwsg== +"@storybook/react@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.5.8.tgz#8a9e15416a18ceb5c11c89ffe9f38357d442efa9" + integrity sha512-LdObfhhPb9gAFBtRNb3awYJe1qMiYeda1ppkj0ZvccbV04YrmbW5bzYvfOCvU6D34ugbQJhJyWuvraO/0EJK6w== dependencies: "@babel/preset-flow" "^7.12.1" "@babel/preset-react" "^7.12.10" "@pmmmwh/react-refresh-webpack-plugin" "^0.5.3" - "@storybook/addons" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/core" "6.5.7" - "@storybook/core-common" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core" "6.5.8" + "@storybook/core-common" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/docs-tools" "6.5.7" - "@storybook/node-logger" "6.5.7" + "@storybook/docs-tools" "6.5.8" + "@storybook/node-logger" "6.5.8" "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.7" + "@storybook/store" "6.5.8" "@types/estree" "^0.0.51" "@types/node" "^14.14.20 || ^16.0.0" "@types/webpack-env" "^1.16.0" @@ -3567,12 +3567,12 @@ util-deprecate "^1.0.2" webpack ">=4.43.0 <6.0.0" -"@storybook/router@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.5.7.tgz#3d962cbf5d9e9779d8dbd33a20d0210feb982635" - integrity sha512-edWEdAb8O0rSgdXoBZDDuNlQg2cOmC/nJ6gXj9zBotzmXqsbxWyjKGooG1dU6dnKshUqE1RmWF7/N1WMluLf0A== +"@storybook/router@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.5.8.tgz#241e3842bdd174e0eeeb9d1de6adb2975615884d" + integrity sha512-tseNJpZ2ZzVYowjekUMpGJVVRMrwOkttieD9mRbHrhh+2n7b+SoMKnuLi3ow0xeOyPL8ZDng2FgRjQzQHXA5Sw== dependencies: - "@storybook/client-logger" "6.5.7" + "@storybook/client-logger" "6.5.8" core-js "^3.8.2" regenerator-runtime "^0.13.7" @@ -3584,13 +3584,13 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.5.7.tgz#c77ae805e02ce83975558973fe46b7366f810fb1" - integrity sha512-nj24TSGdF9J1gD5Fj9Z2hPRAQwqBJoBKD/fmTSFZop0qaJOOyeuxZR5022dQh8UWWoBa3WOQADMTNi5RqQZkiA== +"@storybook/source-loader@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.5.8.tgz#106694fe821f5e42abc4e8e653e5f268a043e470" + integrity sha512-3bVxXKE2o6lS4WGga/S7WwgITxPQ96qsY+pQ1I7A+e4/cKSmZxlVWM9qfMW2ScmHTVoZE0Ujsmn6DWftxzCyrQ== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/client-logger" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/client-logger" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" estraverse "^5.2.0" @@ -3600,14 +3600,14 @@ prettier ">=2.2.1 <=2.3.0" regenerator-runtime "^0.13.7" -"@storybook/store@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.5.7.tgz#7f5220f76f72ed2ad38b3e0799ed51dc366ee496" - integrity sha512-d64towcdylC6TXNL2oJklCpwN3XcUGgZzQ9zgoV8BUlOlsj9tNq8eo95uzTURnLg1Q5uHoDDKWuXrrKj03HHxw== +"@storybook/store@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.5.8.tgz#528bf9a2decf5121045fb0a19b8caf795b4a5647" + integrity sha512-5rhGjN/O0oLebRv947B0vgapq48qBBBYYOgq4krRUYU2ecS6LUgtAHR/kTa324o9aBO8cnIXHH78jZcSvMiJlQ== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/core-events" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -3621,13 +3621,13 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/telemetry@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-6.5.7.tgz#744050ec84b8d8effeab448b9b2e190951a2e070" - integrity sha512-RHrjAConMqGIsu1TgNXztWtWOXTvvCHDWyGoLagCgZYgjGJ4sukp+ZtrbkayNDkkWWD0lpMzsdDEYCJuru/Sig== +"@storybook/telemetry@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-6.5.8.tgz#2acf9734292d421f84f7f2ac6c17d887c2cb0df4" + integrity sha512-QnAhYF8CwcjC1bT2PK7Zqvo6E42TPl0MY6JS+H6qSZU/BmYeS0It8ZURNfPsA/OzVVLHUkQs96CisKh3N0WWaw== dependencies: - "@storybook/client-logger" "6.5.7" - "@storybook/core-common" "6.5.7" + "@storybook/client-logger" "6.5.8" + "@storybook/core-common" "6.5.8" chalk "^4.1.0" core-js "^3.8.2" detect-package-manager "^2.0.1" @@ -3639,29 +3639,29 @@ read-pkg-up "^7.0.1" regenerator-runtime "^0.13.7" -"@storybook/theming@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.5.7.tgz#63afa3838a9c1ba07d443ce6988f6ed99af62b75" - integrity sha512-6zp1V84DSBcS8BtFOCJlF2/nIonjQmr+dILPxaM3lCm/X003i2jAQrBKTfPlmzCeDn07PBhzHaRJ3wJskfmeNw== +"@storybook/theming@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.5.8.tgz#240a3c83ea53a9c7b1f3a2c47d6324f38ecb8771" + integrity sha512-1VaKHqj38Ls1bJwDpg3+aEOlvVib/DCFkP6WYrP/AQtNAzxiyw5WkaoRlTVJZvCdu5TxjpG4O6/Ai5TI9QftIg== dependencies: - "@storybook/client-logger" "6.5.7" + "@storybook/client-logger" "6.5.8" core-js "^3.8.2" regenerator-runtime "^0.13.7" -"@storybook/ui@6.5.7": - version "6.5.7" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.5.7.tgz#d4814c88bd1ca4781891611c2c1fbb23e221d95a" - integrity sha512-NOg44bc/w7FweuM2fa99PxsgI9qoG2p5vhTQ4MOI/7QnOUDn+EenlapsRos+/Sk2XTaB2QmM43boUkravMSouA== +"@storybook/ui@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.5.8.tgz#acd8dadd221c68f65c4963c4ab86b4a757860591" + integrity sha512-rL09kxgY9pCVbxr/VUK4b5FL5VbALfciZR+50sNT1EcTDb9k0OPeqx7a4Ptc+KNkgyPdSTxUGvhzVqH5PYrhZQ== dependencies: - "@storybook/addons" "6.5.7" - "@storybook/api" "6.5.7" - "@storybook/channels" "6.5.7" - "@storybook/client-logger" "6.5.7" - "@storybook/components" "6.5.7" - "@storybook/core-events" "6.5.7" - "@storybook/router" "6.5.7" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/router" "6.5.8" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.5.7" + "@storybook/theming" "6.5.8" core-js "^3.8.2" regenerator-runtime "^0.13.7" resolve-from "^5.0.0" @@ -3890,13 +3890,6 @@ dependencies: defer-to-connect "^1.0.1" -"@tailwindcss/forms@^0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.2.tgz#4ef45f9916dcb37838cbe7fecdcc4ba7a7c2ab59" - integrity sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w== - dependencies: - mini-svg-data-uri "^1.2.3" - "@testing-library/dom@^8.5.0": version "8.13.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.13.0.tgz#bc00bdd64c7d8b40841e27a70211399ad3af46f5" @@ -4235,10 +4228,10 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@^17.0.40", "@types/node@^17.0.5": - version "17.0.40" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.40.tgz#76ee88ae03650de8064a6cf75b8d95f9f4a16090" - integrity sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg== +"@types/node@*", "@types/node@^17.0.42", "@types/node@^17.0.5": + version "17.0.42" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.42.tgz#d7e8f22700efc94d125103075c074396b5f41f9b" + integrity sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ== "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0": version "16.11.38" @@ -4380,7 +4373,7 @@ dependencies: "@types/express" "*" -"@types/serve-static@*": +"@types/serve-static@*", "@types/serve-static@^1.13.10": version "1.13.10" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== @@ -4864,22 +4857,22 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.1.tgz#9f53b1b7946a6efc2a749095a4f450e2932e8356" - integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg== +"@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== -"@webpack-cli/info@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.1.tgz#2360ea1710cbbb97ff156a3f0f24556e0fc1ebea" - integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA== +"@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.6.1": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.1.tgz#0de2875ac31b46b6c5bb1ae0a7d7f0ba5678dffe" - integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw== +"@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== "@xobotyi/scrollbar-width@^1.9.5": version "1.9.5" @@ -7742,7 +7735,7 @@ detect-port@^1.3.0: address "^1.0.1" debug "^2.6.0" -detective@^5.2.0: +detective@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== @@ -12191,11 +12184,6 @@ mini-css-extract-plugin@^2.4.5, mini-css-extract-plugin@^2.6.0: dependencies: schema-utils "^4.0.0" -mini-svg-data-uri@^1.2.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" - integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -13976,7 +13964,7 @@ postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0 picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.2.15, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.4.12, postcss@^8.4.13, postcss@^8.4.14, postcss@^8.4.4, postcss@^8.4.7: +postcss@^8.2.15, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.4.13, postcss@^8.4.14, postcss@^8.4.4, postcss@^8.4.7: version "8.4.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== @@ -14484,10 +14472,10 @@ react-helmet-async@*, react-helmet-async@^1.3.0: react-fast-compare "^3.2.0" shallowequal "^1.1.0" -react-hook-form@^7.31.3: - version "7.31.3" - resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.31.3.tgz#b61bafb9a7435f91695351a7a9f714d8c4df0121" - integrity sha512-NVZdCWViIWXXXlQ3jxVQH0NuNfwPf8A/0KvuCxrM9qxtP1qYosfR2ZudarziFrVOC7eTUbWbm1T4OyYCwv9oSQ== +react-hook-form@^7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.32.0.tgz#bfe36000e3a9fa605a4e3e9a029282feb094ef6a" + integrity sha512-AFUwl9MwVVnZZsFZW7Egc8PVyWem6c6/9FBq29Acsikm+8ecJCkqOn2Tl48GApFnXBgoBBEHC3zosjYvPfsGNg== react-inspector@^5.1.0: version "5.1.1" @@ -14779,10 +14767,10 @@ reading-time@^1.5.0: resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== -reanalyze@^2.22.0: - version "2.22.0" - resolved "https://registry.yarnpkg.com/reanalyze/-/reanalyze-2.22.0.tgz#068cfb354b6e9aa95ceb8dbb04329a67b4a90494" - integrity sha512-VNwTXBsyuUbCkmcb2GkYYjQxv3NQW4CombkNd+n5E+YWNqF5LLFi1N5bETR09C2hbuOE1fM6RTJKgbijZX7jyA== +reanalyze@^2.23.0: + version "2.23.0" + resolved "https://registry.yarnpkg.com/reanalyze/-/reanalyze-2.23.0.tgz#0e2a3109518ccad0ba04366ec1811db17fa07b7e" + integrity sha512-5pkH13pX1PrZFkIfmZUjKtYCqzFY2jTaEjBsqyR9SM3HLexAtkHTa4vLHTwuYk167KuO1uwWyEppo8NJIjfkOw== rechoir@^0.6.2: version "0.6.2" @@ -16426,15 +16414,15 @@ synchronous-promise@^2.0.15: resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.15.tgz#07ca1822b9de0001f5ff73595f3d08c4f720eb8e" integrity sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg== -tailwindcss@^3.0.2, tailwindcss@^3.0.24: - version "3.0.24" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.24.tgz#22e31e801a44a78a1d9a81ecc52e13b69d85704d" - integrity sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig== +tailwindcss@^3.0.2, tailwindcss@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.2.tgz#b5607d17adb6cbb11a13738cc5fdf3e5527dcd7a" + integrity sha512-yJ6L5s1U5AeS5g7HHy212zdQfjwD426FBfm59pet/JsyneuZuD4C2W7PpJEg4ppisiB21uLqtNagv8KXury3+Q== dependencies: arg "^5.0.1" chokidar "^3.5.3" color-name "^1.1.4" - detective "^5.2.0" + detective "^5.2.1" didyoumean "^1.2.2" dlv "^1.1.3" fast-glob "^3.2.11" @@ -16444,7 +16432,8 @@ tailwindcss@^3.0.2, tailwindcss@^3.0.24: normalize-path "^3.0.0" object-hash "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.12" + postcss "^8.4.14" + postcss-import "^14.1.0" postcss-js "^4.0.0" postcss-load-config "^3.1.4" postcss-nested "5.0.6" @@ -17897,18 +17886,18 @@ webpack-bundle-analyzer@^4.5.0: sirv "^1.0.7" ws "^7.3.1" -webpack-cli@^4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d" - integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ== +webpack-cli@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.1.1" - "@webpack-cli/info" "^1.4.1" - "@webpack-cli/serve" "^1.6.1" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" colorette "^2.0.14" commander "^7.0.0" - execa "^5.0.0" + cross-spawn "^7.0.3" fastest-levenshtein "^1.0.12" import-local "^3.0.2" interpret "^2.2.0" @@ -17949,15 +17938,16 @@ webpack-dev-middleware@^5.3.1: range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@^4.6.0, webpack-dev-server@^4.9.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.9.1.tgz#184607b0287c791aeaa45e58e8fe75fcb4d7e2a8" - integrity sha512-CTMfu2UMdR/4OOZVHRpdy84pNopOuigVIsRbGX3LVDMWNP8EUgC5mUBMErbwBlHTEX99ejZJpVqrir6EXAEajA== +webpack-dev-server@^4.6.0, webpack-dev-server@^4.9.0, webpack-dev-server@^4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz#c188db28c7bff12f87deda2a5595679ebbc3c9bc" + integrity sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" "@types/express" "^4.17.13" "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" "@types/sockjs" "^0.3.33" "@types/ws" "^8.5.1" ansi-html-community "^0.0.8"