diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index fb99be688..017257a02 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -190,7 +190,7 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 + uses: docker/setup-qemu-action@v2.2.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: prepare variables @@ -234,7 +234,7 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 + uses: docker/setup-qemu-action@v2.2.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: prepare variables diff --git a/.github/workflows/ci-outpost.yml b/.github/workflows/ci-outpost.yml index e28ca5cce..17d823021 100644 --- a/.github/workflows/ci-outpost.yml +++ b/.github/workflows/ci-outpost.yml @@ -68,7 +68,7 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 + uses: docker/setup-qemu-action@v2.2.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: prepare variables diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index 28ba16a16..acb4f3895 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -10,7 +10,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 + uses: docker/setup-qemu-action@v2.2.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: prepare variables @@ -59,7 +59,7 @@ jobs: with: go-version-file: "go.mod" - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 + uses: docker/setup-qemu-action@v2.2.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: prepare variables diff --git a/Dockerfile b/Dockerfile index e775911d5..93ab222da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ WORKDIR /work/web RUN npm ci --include=dev && npm run build # Stage 3: Poetry to requirements.txt export -FROM docker.io/python:3.11.3-slim-bullseye AS poetry-locker +FROM docker.io/python:3.11.4-slim-bullseye AS poetry-locker WORKDIR /work COPY ./pyproject.toml /work @@ -63,7 +63,7 @@ RUN --mount=type=secret,id=GEOIPUPDATE_ACCOUNT_ID \ " # Stage 6: Run -FROM docker.io/python:3.11.3-slim-bullseye AS final-image +FROM docker.io/python:3.11.4-slim-bullseye AS final-image LABEL org.opencontainers.image.url https://goauthentik.io LABEL org.opencontainers.image.description goauthentik.io Main server image, see https://goauthentik.io for more info. diff --git a/internal/outpost/ldap/bind/binder.go b/internal/outpost/ldap/bind/binder.go index 4644b66e4..dee7695bb 100644 --- a/internal/outpost/ldap/bind/binder.go +++ b/internal/outpost/ldap/bind/binder.go @@ -7,7 +7,7 @@ import ( ) type Binder interface { - GetUsername(string) (string, error) + GetUsername(dn string) (string, error) Bind(username string, req *Request) (ldap.LDAPResultCode, error) Unbind(username string, req *Request) (ldap.LDAPResultCode, error) TimerFlowCacheExpiry(context.Context) diff --git a/internal/outpost/ldap/constants/constants.go b/internal/outpost/ldap/constants/constants.go index 8f5cdf415..cfa85711e 100644 --- a/internal/outpost/ldap/constants/constants.go +++ b/internal/outpost/ldap/constants/constants.go @@ -1,9 +1,18 @@ package constants +const OC = "objectClass" + const ( OCTop = "top" OCDomain = "domain" OCNSContainer = "nsContainer" + OCSubSchema = "subschema" +) + +const ( + SearchAttributeNone = "1.1" + SearchAttributeAllUser = "*" + SearchAttributeAllOperational = "+" ) const ( @@ -20,7 +29,7 @@ const ( OCOrgPerson = "organizationalPerson" OCInetOrgPerson = "inetOrgPerson" OCAKUser = "goauthentik.io/ldap/user" - OCPosixAccount = "posixAccount" + OCPosixAccount = "posixAccount" ) const ( diff --git a/internal/outpost/ldap/instance.go b/internal/outpost/ldap/instance.go index 6014e7ccc..23fbc9fb5 100644 --- a/internal/outpost/ldap/instance.go +++ b/internal/outpost/ldap/instance.go @@ -2,16 +2,13 @@ package ldap import ( "crypto/tls" - "fmt" "strings" "sync" - "beryju.io/ldap" "github.com/go-openapi/strfmt" log "github.com/sirupsen/logrus" "goauthentik.io/api/v3" - "goauthentik.io/internal/constants" "goauthentik.io/internal/outpost/ldap/bind" ldapConstants "goauthentik.io/internal/outpost/ldap/constants" "goauthentik.io/internal/outpost/ldap/flags" @@ -107,43 +104,6 @@ func (pi *ProviderInstance) GetSearchAllowedGroups() []*strfmt.UUID { return pi.searchAllowedGroups } -func (pi *ProviderInstance) GetBaseEntry() *ldap.Entry { - return &ldap.Entry{ - DN: pi.GetBaseDN(), - Attributes: []*ldap.EntryAttribute{ - { - Name: "distinguishedName", - Values: []string{pi.GetBaseDN()}, - }, - { - Name: "objectClass", - Values: []string{ldapConstants.OCTop, ldapConstants.OCDomain}, - }, - { - Name: "supportedLDAPVersion", - Values: []string{"3"}, - }, - { - Name: "namingContexts", - Values: []string{ - pi.GetBaseDN(), - pi.GetBaseUserDN(), - pi.GetBaseGroupDN(), - pi.GetBaseVirtualGroupDN(), - }, - }, - { - Name: "vendorName", - Values: []string{"goauthentik.io"}, - }, - { - Name: "vendorVersion", - Values: []string{fmt.Sprintf("authentik LDAP Outpost Version %s", constants.FullVersion())}, - }, - }, - } -} - func (pi *ProviderInstance) GetNeededObjects(scope int, baseDN string, filterOC string) (bool, bool) { needUsers := false needGroups := false diff --git a/internal/outpost/ldap/search.go b/internal/outpost/ldap/search.go index 59b29969c..856b8ccbd 100644 --- a/internal/outpost/ldap/search.go +++ b/internal/outpost/ldap/search.go @@ -1,15 +1,13 @@ package ldap import ( - "errors" "net" - "strings" "beryju.io/ldap" "github.com/getsentry/sentry-go" - goldap "github.com/go-ldap/ldap/v3" "github.com/prometheus/client_golang/prometheus" log "github.com/sirupsen/logrus" + "goauthentik.io/internal/outpost/ldap/constants" "goauthentik.io/internal/outpost/ldap/metrics" "goauthentik.io/internal/outpost/ldap/search" ) @@ -36,38 +34,20 @@ func (ls *LDAPServer) Search(bindDN string, searchReq ldap.SearchRequest, conn n sentry.CaptureException(err.(error)) }() - if searchReq.BaseDN == "" { - return ldap.ServerSearchResult{ - Entries: []*ldap.Entry{ - { - DN: "", - Attributes: []*ldap.EntryAttribute{ - { - Name: "objectClass", - Values: []string{"top", "OpenLDAProotDSE"}, - }, - { - Name: "subschemaSubentry", - Values: []string{"cn=subschema"}, - }, - }, - }, - }, - Referrals: []string{}, Controls: []ldap.Control{}, ResultCode: ldap.LDAPResultSuccess, - }, nil + selectedProvider := ls.providerForRequest(req) + if selectedProvider == nil { + return ls.fallbackRootDSE(req) } - bd, err := goldap.ParseDN(strings.ToLower(searchReq.BaseDN)) + selectedApp = selectedProvider.GetAppSlug() + result, err := ls.searchRoute(req, selectedProvider) if err != nil { - req.Log().WithError(err).Info("failed to parse basedn") - return ldap.ServerSearchResult{ResultCode: ldap.LDAPResultOperationsError}, errors.New("invalid DN") - } - for _, provider := range ls.providers { - providerBase, _ := goldap.ParseDN(strings.ToLower(provider.BaseDN)) - if providerBase.AncestorOf(bd) || providerBase.Equal(bd) { - selectedApp = provider.GetAppSlug() - return provider.searcher.Search(req) - } + return result, nil } + return ls.filterResultAttributes(req, result), nil +} + +func (ls *LDAPServer) fallbackRootDSE(req *search.Request) (ldap.ServerSearchResult, error) { + req.Log().Trace("returning fallback Root DSE") return ldap.ServerSearchResult{ Entries: []*ldap.Entry{ { @@ -75,15 +55,30 @@ func (ls *LDAPServer) Search(bindDN string, searchReq ldap.SearchRequest, conn n Attributes: []*ldap.EntryAttribute{ { Name: "objectClass", - Values: []string{"top", "OpenLDAProotDSE"}, + Values: []string{constants.OCTop}, + }, + { + Name: "entryDN", + Values: []string{""}, }, { Name: "subschemaSubentry", Values: []string{"cn=subschema"}, }, + { + Name: "namingContexts", + Values: []string{}, + }, + { + Name: "description", + Values: []string{ + "This LDAP server requires an authenticated session.", + }, + }, }, }, }, Referrals: []string{}, Controls: []ldap.Control{}, ResultCode: ldap.LDAPResultSuccess, }, nil + } diff --git a/internal/outpost/ldap/search/direct/base.go b/internal/outpost/ldap/search/direct/base.go index 4af0e1816..87eadd715 100644 --- a/internal/outpost/ldap/search/direct/base.go +++ b/internal/outpost/ldap/search/direct/base.go @@ -2,40 +2,51 @@ package direct import ( "fmt" + "strings" "beryju.io/ldap" "goauthentik.io/internal/constants" + ldapConstants "goauthentik.io/internal/outpost/ldap/constants" "goauthentik.io/internal/outpost/ldap/search" ) -func (ds *DirectSearcher) SearchBase(req *search.Request, authz bool) (ldap.ServerSearchResult, error) { - dn := "" - if authz { - dn = req.SearchRequest.BaseDN +func (ds *DirectSearcher) SearchBase(req *search.Request) (ldap.ServerSearchResult, error) { + if req.Scope == ldap.ScopeSingleLevel { + return ldap.ServerSearchResult{ + ResultCode: ldap.LDAPResultNoSuchObject, + }, nil } return ldap.ServerSearchResult{ Entries: []*ldap.Entry{ { - DN: dn, + DN: "", Attributes: []*ldap.EntryAttribute{ { - Name: "distinguishedName", - Values: []string{ds.si.GetBaseDN()}, + Name: "objectClass", + Values: []string{ldapConstants.OCTop}, }, { - Name: "objectClass", - Values: []string{"top", "domain"}, + Name: "entryDN", + Values: []string{""}, }, { Name: "supportedLDAPVersion", Values: []string{"3"}, }, + { + Name: "subschemaSubentry", + Values: []string{"cn=subschema"}, + }, { Name: "namingContexts", Values: []string{ - ds.si.GetBaseDN(), - ds.si.GetBaseUserDN(), - ds.si.GetBaseGroupDN(), + strings.ToLower(ds.si.GetBaseDN()), + }, + }, + { + Name: "rootDomainNamingContext", + Values: []string{ + strings.ToLower(ds.si.GetBaseDN()), }, }, { diff --git a/internal/outpost/ldap/search/direct/direct.go b/internal/outpost/ldap/search/direct/direct.go index c4a38db96..b82b0ed09 100644 --- a/internal/outpost/ldap/search/direct/direct.go +++ b/internal/outpost/ldap/search/direct/direct.go @@ -31,7 +31,6 @@ func NewDirectSearcher(si server.LDAPServerInstance) *DirectSearcher { si: si, log: log.WithField("logger", "authentik.outpost.ldap.searcher.direct"), } - ds.log.Info("initialised direct searcher") return ds } @@ -39,16 +38,6 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult, accsp := sentry.StartSpan(req.Context(), "authentik.providers.ldap.search.check_access") baseDN := ds.si.GetBaseDN() - filterOC, err := ldap.GetFilterObjectClass(req.Filter) - if err != nil { - metrics.RequestsRejected.With(prometheus.Labels{ - "outpost_name": ds.si.GetOutpostName(), - "type": "search", - "reason": "filter_parse_fail", - "app": ds.si.GetAppSlug(), - }).Inc() - return ldap.ServerSearchResult{ResultCode: ldap.LDAPResultOperationsError}, fmt.Errorf("Search Error: error parsing filter: %s", req.Filter) - } if len(req.BindDN) < 1 { metrics.RequestsRejected.With(prometheus.Labels{ "outpost_name": ds.si.GetOutpostName(), @@ -99,11 +88,17 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult, c.GetConfig().AddDefaultHeader("X-authentik-outpost-ldap-query", req.Filter) scope := req.SearchRequest.Scope - needUsers, needGroups := ds.si.GetNeededObjects(scope, req.BaseDN, filterOC) + needUsers, needGroups := ds.si.GetNeededObjects(scope, req.BaseDN, req.FilterObjectClass) if scope >= 0 && strings.EqualFold(req.BaseDN, baseDN) { - if utils.IncludeObjectClass(filterOC, constants.GetDomainOCs()) { - entries = append(entries, ds.si.GetBaseEntry()) + if utils.IncludeObjectClass(req.FilterObjectClass, constants.GetDomainOCs()) { + rootEntries, _ := ds.SearchBase(req) + // Since `SearchBase` returns entries for the root DN, we need to go through the + // entries and update the base DN + for _, e := range rootEntries.Entries { + e.DN = ds.si.GetBaseDN() + entries = append(entries, e) + } } scope -= 1 // Bring it from WholeSubtree to SingleLevel and so on @@ -197,12 +192,12 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult, if scope >= 0 && (strings.EqualFold(req.BaseDN, ds.si.GetBaseDN()) || utils.HasSuffixNoCase(req.BaseDN, ds.si.GetBaseUserDN())) { singleu := utils.HasSuffixNoCase(req.BaseDN, ","+ds.si.GetBaseUserDN()) - if !singleu && utils.IncludeObjectClass(filterOC, constants.GetContainerOCs()) { - entries = append(entries, utils.GetContainerEntry(filterOC, ds.si.GetBaseUserDN(), constants.OUUsers)) + if !singleu && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetContainerOCs()) { + entries = append(entries, utils.GetContainerEntry(req.FilterObjectClass, ds.si.GetBaseUserDN(), constants.OUUsers)) scope -= 1 } - if scope >= 0 && users != nil && utils.IncludeObjectClass(filterOC, constants.GetUserOCs()) { + if scope >= 0 && users != nil && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetUserOCs()) { for _, u := range *users { entry := ds.si.UserEntry(u) if strings.EqualFold(req.BaseDN, entry.DN) || !singleu { @@ -217,12 +212,12 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult, if scope >= 0 && (strings.EqualFold(req.BaseDN, ds.si.GetBaseDN()) || utils.HasSuffixNoCase(req.BaseDN, ds.si.GetBaseGroupDN())) { singleg := utils.HasSuffixNoCase(req.BaseDN, ","+ds.si.GetBaseGroupDN()) - if !singleg && utils.IncludeObjectClass(filterOC, constants.GetContainerOCs()) { - entries = append(entries, utils.GetContainerEntry(filterOC, ds.si.GetBaseGroupDN(), constants.OUGroups)) + if !singleg && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetContainerOCs()) { + entries = append(entries, utils.GetContainerEntry(req.FilterObjectClass, ds.si.GetBaseGroupDN(), constants.OUGroups)) scope -= 1 } - if scope >= 0 && groups != nil && utils.IncludeObjectClass(filterOC, constants.GetGroupOCs()) { + if scope >= 0 && groups != nil && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetGroupOCs()) { for _, g := range *groups { entry := group.FromAPIGroup(g, ds.si).Entry() if strings.EqualFold(req.BaseDN, entry.DN) || !singleg { @@ -237,12 +232,12 @@ func (ds *DirectSearcher) Search(req *search.Request) (ldap.ServerSearchResult, if scope >= 0 && (strings.EqualFold(req.BaseDN, ds.si.GetBaseDN()) || utils.HasSuffixNoCase(req.BaseDN, ds.si.GetBaseVirtualGroupDN())) { singlevg := utils.HasSuffixNoCase(req.BaseDN, ","+ds.si.GetBaseVirtualGroupDN()) - if !singlevg && utils.IncludeObjectClass(filterOC, constants.GetContainerOCs()) { - entries = append(entries, utils.GetContainerEntry(filterOC, ds.si.GetBaseVirtualGroupDN(), constants.OUVirtualGroups)) + if !singlevg && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetContainerOCs()) { + entries = append(entries, utils.GetContainerEntry(req.FilterObjectClass, ds.si.GetBaseVirtualGroupDN(), constants.OUVirtualGroups)) scope -= 1 } - if scope >= 0 && users != nil && utils.IncludeObjectClass(filterOC, constants.GetVirtualGroupOCs()) { + if scope >= 0 && users != nil && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetVirtualGroupOCs()) { for _, u := range *users { entry := group.FromAPIUser(u, ds.si).Entry() if strings.EqualFold(req.BaseDN, entry.DN) || !singlevg { diff --git a/internal/outpost/ldap/search/direct/schema.go b/internal/outpost/ldap/search/direct/schema.go new file mode 100644 index 000000000..a024667ae --- /dev/null +++ b/internal/outpost/ldap/search/direct/schema.go @@ -0,0 +1,96 @@ +package direct + +import ( + "beryju.io/ldap" + "goauthentik.io/internal/outpost/ldap/constants" + "goauthentik.io/internal/outpost/ldap/search" +) + +func (ds *DirectSearcher) SearchSubschema(req *search.Request) (ldap.ServerSearchResult, error) { + return ldap.ServerSearchResult{ + Entries: []*ldap.Entry{ + { + DN: "cn=subschema", + Attributes: []*ldap.EntryAttribute{ + { + Name: "cn", + Values: []string{"subschema"}, + }, + { + Name: constants.OC, + Values: []string{constants.OCTop, "subSchema"}, + }, + { + Name: "ldapSyntaxes", + Values: []string{ + "( 1.3.6.1.4.1.1466.115.121.1.40 DESC 'Octet String' )", + "( 1.3.6.1.4.1.1466.115.121.1.15 DESC 'Directory String' )", + "( 1.3.6.1.4.1.1466.115.121.1.7 DESC 'Boolean' )", + }, + }, + { + Name: "objectClasses", + Values: []string{ + "( 2.5.6.0 NAME 'top' ABSTRACT MUST ( objectClass ) MAY (cn $ description $ displayName $ memberOf $ name ) )", + "( 2.5.6.6 NAME 'person' SUP top STRUCTURAL MUST ( cn ) MAY (sn $ telephoneNumber ) )", + "( 2.5.6.7 NAME 'organizationalPerson' SUP person STRUCTURAL MAY (c $ l $ o $ ou $ title $ givenName $ co $ department $ company $ division $ mail $ mobile $ telephoneNumber ) )", + "( 2.5.6.9 NAME 'groupOfNames' SUP top STRUCTURAL MUST (cn $ member ) MAY (o $ ou ) )", + "( 1.2.840.113556.1.5.9 NAME 'user' SUP organizationalPerson STRUCTURAL MAY ( name $ displayName $ uid $ mail ) )", + "( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY MAY (cn $ description $ homeDirectory $ uid $ uidNumber $ gidNumber ) )", + "( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' AUX ( posixAccount ) MUST ( sAMAccountName ) MAY ( uidNumber $ gidNumber ))", + // Custom attributes + // Temporarily use 1.3.6.1.4.1.26027.1.1 as a base + // https://docs.oracle.com/cd/E19450-01/820-6169/working-with-object-identifiers.html#obtaining-a-base-oid + "( 1.3.6.1.4.1.26027.1.1.1 NAME 'goauthentik.io/ldap/user' SUP organizationalPerson STRUCTURAL MAY ( ak-active $ sAMAccountName $ goauthentikio-user-sources $ goauthentik.io/user/sources $ goauthentik.io/ldap/active $ goauthentik.io/ldap/superuser $ goauthentikio-user-override-ips $ goauthentikio-user-service-account ) )", + }, + }, + { + Name: "attributeTypes", + Values: []string{ + "( 2.5.4.0 NAME 'objectClass' DESC 'RFC4512: object classes of the entity' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )", + "( 1.3.6.1.4.1.1466.101.120.5 NAME 'namingContexts' DESC 'RFC4512: naming contexts' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 USAGE dSAOperation )", + "( 2.5.18.10 NAME 'subschemaSubentry' DESC 'RFC4512: name of controlling subschema entry' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", + "( 1.3.6.1.4.1.1466.101.120.15 NAME 'supportedLDAPVersion' DESC 'RFC4512: supported LDAP versions' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 USAGE dSAOperation )", + "( 1.3.6.1.1.20 NAME 'entryDN' DESC 'DN of the entry' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", + "( 1.3.6.1.1.4 NAME 'vendorName' DESC 'RFC3045: name of implementation vendor' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )", + "( 1.3.6.1.1.5 NAME 'vendorVersion' DESC 'RFC3045: version of implementation' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )", + "( 0.9.2342.19200300.100.1.1 NAME 'uid' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 0.9.2342.19200300.100.1.3 NAME 'mail' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 0.9.2342.19200300.100.1.41 NAME 'mobile' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 1.2.840.113556.1.2.102 NAME 'memberOf' SYNTAX '1.3.6.1.4.1.1466.115.121.1.12' NO-USER-MODIFICATION )", + "( 1.2.840.113556.1.2.13 NAME 'displayName' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 1.2.840.113556.1.4.1 NAME 'name' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE NO-USER-MODIFICATION )", + "( 1.2.840.113556.1.2.131 NAME 'co' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 1.2.840.113556.1.2.141 NAME 'department' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 1.2.840.113556.1.2.146 NAME 'company' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 1.2.840.113556.1.4.44 NAME 'homeDirectory' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 1.2.840.113556.1.4.221 NAME 'sAMAccountName' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 1.2.840.113556.1.4.261 NAME 'division' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 1.3.6.1.1.1.1.0 NAME 'uidNumber' SYNTAX '1.3.6.1.4.1.1466.115.121.1.27' SINGLE-VALUE )", + "( 1.3.6.1.1.1.1.1 NAME 'gidNumber' SYNTAX '1.3.6.1.4.1.1466.115.121.1.27' SINGLE-VALUE )", + "( 2.5.4.6 NAME 'c' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 2.5.4.7 NAME 'l' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 2.5.4.10 NAME 'o' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' )", + "( 2.5.4.11 NAME 'ou' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' )", + "( 2.5.4.20 NAME 'telephoneNumber' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 2.5.4.42 NAME 'givenName' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 2.5.4.0 NAME 'objectClass' SYNTAX '1.3.6.1.4.1.1466.115.121.1.38' NO-USER-MODIFICATION )", + "( 2.5.4.3 NAME 'cn' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 2.5.4.4 NAME 'sn' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 2.5.4.12 NAME 'title' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )", + "( 2.5.4.13 NAME 'description' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' )", + "( 2.5.4.31 NAME 'member' SYNTAX '1.3.6.1.4.1.1466.115.121.1.12' )", + // Custom attributes + // Temporarily use 1.3.6.1.4.1.26027.1.1 as a base + // https://docs.oracle.com/cd/E19450-01/820-6169/working-with-object-identifiers.html#obtaining-a-base-oid + "( 1.3.6.1.4.1.26027.1.1.2 NAME ( 'goauthentik.io/ldap/superuser' 'ak-superuser' ) SYNTAX '1.3.6.1.4.1.1466.115.121.1.7' SINGLE-VALUE )", + "( 1.3.6.1.4.1.26027.1.1.3 NAME ( 'goauthentik.io/ldap/active' 'ak-active' ) SYNTAX '1.3.6.1.4.1.1466.115.121.1.7' SINGLE-VALUE )", + "( 1.3.6.1.4.1.26027.1.1.4 NAME 'goauthentikio-user-override-ips' SYNTAX '1.3.6.1.4.1.1466.115.121.1.7' SINGLE-VALUE )", + "( 1.3.6.1.4.1.26027.1.1.5 NAME 'goauthentikio-user-service-account' SYNTAX '1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE' )", + }, + }, + }, + }, + }, + }, nil +} diff --git a/internal/outpost/ldap/search/memory/memory.go b/internal/outpost/ldap/search/memory/memory.go index 08011a6d6..1706493a1 100644 --- a/internal/outpost/ldap/search/memory/memory.go +++ b/internal/outpost/ldap/search/memory/memory.go @@ -15,6 +15,7 @@ import ( "goauthentik.io/internal/outpost/ldap/group" "goauthentik.io/internal/outpost/ldap/metrics" "goauthentik.io/internal/outpost/ldap/search" + "goauthentik.io/internal/outpost/ldap/search/direct" "goauthentik.io/internal/outpost/ldap/server" "goauthentik.io/internal/outpost/ldap/utils" "goauthentik.io/internal/outpost/ldap/utils/paginator" @@ -23,6 +24,7 @@ import ( type MemorySearcher struct { si server.LDAPServerInstance log *log.Entry + ds *direct.DirectSearcher users []api.User groups []api.Group @@ -32,6 +34,7 @@ func NewMemorySearcher(si server.LDAPServerInstance) *MemorySearcher { ms := &MemorySearcher{ si: si, log: log.WithField("logger", "authentik.outpost.ldap.searcher.memory"), + ds: direct.NewDirectSearcher(si), } ms.log.Debug("initialised memory searcher") ms.users = paginator.FetchUsers(ms.si.GetAPIClient().CoreApi.CoreUsersList(context.TODO())) @@ -39,20 +42,18 @@ func NewMemorySearcher(si server.LDAPServerInstance) *MemorySearcher { return ms } +func (ms *MemorySearcher) SearchBase(req *search.Request) (ldap.ServerSearchResult, error) { + return ms.ds.SearchBase(req) +} + +func (ms *MemorySearcher) SearchSubschema(req *search.Request) (ldap.ServerSearchResult, error) { + return ms.ds.SearchSubschema(req) +} + func (ms *MemorySearcher) Search(req *search.Request) (ldap.ServerSearchResult, error) { accsp := sentry.StartSpan(req.Context(), "authentik.providers.ldap.search.check_access") baseDN := ms.si.GetBaseDN() - filterOC, err := ldap.GetFilterObjectClass(req.Filter) - if err != nil { - metrics.RequestsRejected.With(prometheus.Labels{ - "outpost_name": ms.si.GetOutpostName(), - "type": "search", - "reason": "filter_parse_fail", - "app": ms.si.GetAppSlug(), - }).Inc() - return ldap.ServerSearchResult{ResultCode: ldap.LDAPResultOperationsError}, fmt.Errorf("Search Error: error parsing filter: %s", req.Filter) - } if len(req.BindDN) < 1 { metrics.RequestsRejected.With(prometheus.Labels{ "outpost_name": ms.si.GetOutpostName(), @@ -88,11 +89,15 @@ func (ms *MemorySearcher) Search(req *search.Request) (ldap.ServerSearchResult, entries := make([]*ldap.Entry, 0) scope := req.SearchRequest.Scope - needUsers, needGroups := ms.si.GetNeededObjects(scope, req.BaseDN, filterOC) + needUsers, needGroups := ms.si.GetNeededObjects(scope, req.BaseDN, req.FilterObjectClass) if scope >= 0 && strings.EqualFold(req.BaseDN, baseDN) { - if utils.IncludeObjectClass(filterOC, constants.GetDomainOCs()) { - entries = append(entries, ms.si.GetBaseEntry()) + if utils.IncludeObjectClass(req.FilterObjectClass, constants.GetDomainOCs()) { + rootEntries, _ := ms.SearchBase(req) + for _, e := range rootEntries.Entries { + e.DN = ms.si.GetBaseDN() + entries = append(entries, e) + } } scope -= 1 // Bring it from WholeSubtree to SingleLevel and so on @@ -100,6 +105,7 @@ func (ms *MemorySearcher) Search(req *search.Request) (ldap.ServerSearchResult, var users *[]api.User var groups []*group.LDAPGroup + var err error if needUsers { if flags.CanSearch { @@ -159,12 +165,12 @@ func (ms *MemorySearcher) Search(req *search.Request) (ldap.ServerSearchResult, if scope >= 0 && (strings.EqualFold(req.BaseDN, ms.si.GetBaseDN()) || utils.HasSuffixNoCase(req.BaseDN, ms.si.GetBaseUserDN())) { singleu := utils.HasSuffixNoCase(req.BaseDN, ","+ms.si.GetBaseUserDN()) - if !singleu && utils.IncludeObjectClass(filterOC, constants.GetContainerOCs()) { - entries = append(entries, utils.GetContainerEntry(filterOC, ms.si.GetBaseUserDN(), constants.OUUsers)) + if !singleu && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetContainerOCs()) { + entries = append(entries, utils.GetContainerEntry(req.FilterObjectClass, ms.si.GetBaseUserDN(), constants.OUUsers)) scope -= 1 } - if scope >= 0 && users != nil && utils.IncludeObjectClass(filterOC, constants.GetUserOCs()) { + if scope >= 0 && users != nil && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetUserOCs()) { for _, u := range *users { entry := ms.si.UserEntry(u) if strings.EqualFold(req.BaseDN, entry.DN) || !singleu { @@ -179,12 +185,12 @@ func (ms *MemorySearcher) Search(req *search.Request) (ldap.ServerSearchResult, if scope >= 0 && (strings.EqualFold(req.BaseDN, ms.si.GetBaseDN()) || utils.HasSuffixNoCase(req.BaseDN, ms.si.GetBaseGroupDN())) { singleg := utils.HasSuffixNoCase(req.BaseDN, ","+ms.si.GetBaseGroupDN()) - if !singleg && utils.IncludeObjectClass(filterOC, constants.GetContainerOCs()) { - entries = append(entries, utils.GetContainerEntry(filterOC, ms.si.GetBaseGroupDN(), constants.OUGroups)) + if !singleg && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetContainerOCs()) { + entries = append(entries, utils.GetContainerEntry(req.FilterObjectClass, ms.si.GetBaseGroupDN(), constants.OUGroups)) scope -= 1 } - if scope >= 0 && groups != nil && utils.IncludeObjectClass(filterOC, constants.GetGroupOCs()) { + if scope >= 0 && groups != nil && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetGroupOCs()) { for _, g := range groups { if strings.EqualFold(req.BaseDN, g.DN) || !singleg { entries = append(entries, g.Entry()) @@ -198,12 +204,12 @@ func (ms *MemorySearcher) Search(req *search.Request) (ldap.ServerSearchResult, if scope >= 0 && (strings.EqualFold(req.BaseDN, ms.si.GetBaseDN()) || utils.HasSuffixNoCase(req.BaseDN, ms.si.GetBaseVirtualGroupDN())) { singlevg := utils.HasSuffixNoCase(req.BaseDN, ","+ms.si.GetBaseVirtualGroupDN()) - if !singlevg && utils.IncludeObjectClass(filterOC, constants.GetContainerOCs()) { - entries = append(entries, utils.GetContainerEntry(filterOC, ms.si.GetBaseVirtualGroupDN(), constants.OUVirtualGroups)) + if !singlevg && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetContainerOCs()) { + entries = append(entries, utils.GetContainerEntry(req.FilterObjectClass, ms.si.GetBaseVirtualGroupDN(), constants.OUVirtualGroups)) scope -= 1 } - if scope >= 0 && users != nil && utils.IncludeObjectClass(filterOC, constants.GetVirtualGroupOCs()) { + if scope >= 0 && users != nil && utils.IncludeObjectClass(req.FilterObjectClass, constants.GetVirtualGroupOCs()) { for _, u := range *users { entry := group.FromAPIUser(u, ms.si).Entry() if strings.EqualFold(req.BaseDN, entry.DN) || !singlevg { diff --git a/internal/outpost/ldap/search/request.go b/internal/outpost/ldap/search/request.go index fd4097527..7475c5d95 100644 --- a/internal/outpost/ldap/search/request.go +++ b/internal/outpost/ldap/search/request.go @@ -15,8 +15,9 @@ import ( type Request struct { ldap.SearchRequest - BindDN string - log *log.Entry + BindDN string + FilterObjectClass string + log *log.Entry id string conn net.Conn @@ -40,13 +41,26 @@ func NewRequest(bindDN string, searchReq ldap.SearchRequest, conn net.Conn) (*Re }) span.SetTag("ldap_filter", searchReq.Filter) span.SetTag("ldap_base_dn", searchReq.BaseDN) + l := log.WithFields(log.Fields{ + "bindDN": bindDN, + "baseDN": searchReq.BaseDN, + "requestId": rid, + "scope": ldap.ScopeMap[searchReq.Scope], + "client": utils.GetIP(conn.RemoteAddr()), + "filter": searchReq.Filter, + }) + filterOC, err := ldap.GetFilterObjectClass(searchReq.Filter) + if err != nil && len(searchReq.Filter) > 0 { + l.WithError(err).WithField("objectClass", filterOC).Warning("invalid filter object class") + } return &Request{ - SearchRequest: searchReq, - BindDN: bindDN, - conn: conn, - log: log.WithField("bindDN", bindDN).WithField("requestId", rid).WithField("scope", ldap.ScopeMap[searchReq.Scope]).WithField("client", utils.GetIP(conn.RemoteAddr())).WithField("filter", searchReq.Filter).WithField("baseDN", searchReq.BaseDN), - id: rid, - ctx: span.Context(), + SearchRequest: searchReq, + BindDN: bindDN, + FilterObjectClass: filterOC, + conn: conn, + log: l, + id: rid, + ctx: span.Context(), }, span } @@ -61,3 +75,19 @@ func (r *Request) Log() *log.Entry { func (r *Request) RemoteAddr() string { return utils.GetIP(r.conn.RemoteAddr()) } + +func (r *Request) FilterLDAPAttributes(res ldap.ServerSearchResult, cb func(attr *ldap.EntryAttribute) bool) ldap.ServerSearchResult { + for _, e := range res.Entries { + newAttrs := []*ldap.EntryAttribute{} + for _, attr := range e.Attributes { + include := cb(attr) + if include { + newAttrs = append(newAttrs, attr) + } else { + r.Log().WithField("key", attr.Name).Trace("filtering out field based on LDAP request") + } + } + e.Attributes = newAttrs + } + return res +} diff --git a/internal/outpost/ldap/search/searcher.go b/internal/outpost/ldap/search/searcher.go index d3490b221..e938cc819 100644 --- a/internal/outpost/ldap/search/searcher.go +++ b/internal/outpost/ldap/search/searcher.go @@ -6,4 +6,6 @@ import ( type Searcher interface { Search(req *Request) (ldap.ServerSearchResult, error) + SearchBase(req *Request) (ldap.ServerSearchResult, error) + SearchSubschema(req *Request) (ldap.ServerSearchResult, error) } diff --git a/internal/outpost/ldap/search_route.go b/internal/outpost/ldap/search_route.go new file mode 100644 index 000000000..c91982348 --- /dev/null +++ b/internal/outpost/ldap/search_route.go @@ -0,0 +1,84 @@ +package ldap + +import ( + "strings" + + "beryju.io/ldap" + goldap "github.com/go-ldap/ldap/v3" + "goauthentik.io/internal/outpost/ldap/constants" + "goauthentik.io/internal/outpost/ldap/search" +) + +func (ls *LDAPServer) providerForRequest(req *search.Request) *ProviderInstance { + parsedBaseDN, err := goldap.ParseDN(strings.ToLower(req.BaseDN)) + if err != nil { + req.Log().WithError(err).Info("failed to parse base DN") + return nil + } + parsedBindDN, err := goldap.ParseDN(strings.ToLower(req.BindDN)) + if err != nil { + req.Log().WithError(err).Info("failed to parse bind DN") + return nil + } + var selectedProvider *ProviderInstance + longestMatch := 0 + for _, provider := range ls.providers { + providerBase, _ := goldap.ParseDN(strings.ToLower(provider.BaseDN)) + // Try to match the provider primarily based on the search request's base DN + baseDNMatches := providerBase.AncestorOf(parsedBaseDN) || providerBase.Equal(parsedBaseDN) + // But also try to match the provider based on the bind DN + bindDNMatches := providerBase.AncestorOf(parsedBindDN) || providerBase.Equal(parsedBindDN) + if baseDNMatches || bindDNMatches { + // Only select the provider if it's a more precise match than previously + if len(provider.BaseDN) > longestMatch { + req.Log().WithField("provider", provider.BaseDN).Trace("selecting provider for search request") + selectedProvider = provider + longestMatch = len(provider.BaseDN) + } + } + } + return selectedProvider +} + +func (ls *LDAPServer) searchRoute(req *search.Request, pi *ProviderInstance) (ldap.ServerSearchResult, error) { + // Route based on the base DN + if len(req.BaseDN) == 0 { + req.Log().Trace("routing to base") + return pi.searcher.SearchBase(req) + } + if strings.EqualFold(req.BaseDN, "cn=subschema") || req.FilterObjectClass == constants.OCSubSchema { + req.Log().Trace("routing to subschema") + return pi.searcher.SearchSubschema(req) + } + req.Log().Trace("routing to default") + return pi.searcher.Search(req) +} + +func (ls *LDAPServer) filterResultAttributes(req *search.Request, result ldap.ServerSearchResult) ldap.ServerSearchResult { + allowedAttributes := []string{} + if len(req.Attributes) == 1 && req.Attributes[0] == constants.SearchAttributeNone { + allowedAttributes = []string{"objectClass"} + } + if len(req.Attributes) > 0 { + // Only strictly filter allowed attributes if we haven't already narrowed the attributes + // down + if len(allowedAttributes) < 1 { + allowedAttributes = req.Attributes + } + // Filter LDAP returned attributes by search requested attributes, taking "1.1" + // into consideration + return req.FilterLDAPAttributes(result, func(attr *ldap.EntryAttribute) bool { + for _, allowed := range allowedAttributes { + if allowed == constants.SearchAttributeAllUser || + allowed == constants.SearchAttributeAllOperational { + return true + } + if strings.EqualFold(allowed, attr.Name) { + return true + } + } + return false + }) + } + return result +} diff --git a/internal/outpost/ldap/server/base.go b/internal/outpost/ldap/server/base.go index 0650598dc..d6227e77e 100644 --- a/internal/outpost/ldap/server/base.go +++ b/internal/outpost/ldap/server/base.go @@ -35,6 +35,5 @@ type LDAPServerInstance interface { GetFlags(dn string) *flags.UserFlags SetFlags(dn string, flags *flags.UserFlags) - GetBaseEntry() *ldap.Entry - GetNeededObjects(int, string, string) (bool, bool) + GetNeededObjects(scope int, baseDN string, filterOC string) (bool, bool) } diff --git a/poetry.lock b/poetry.lock index c5b5724c5..7bce24f5d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3114,41 +3114,41 @@ pyasn1 = ">=0.1.3" [[package]] name = "ruff" -version = "0.0.271" +version = "0.0.272" description = "An extremely fast Python linter, written in Rust." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.0.271-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:1a627978df924635f7d1a169a98abb2ea488c2d409da56a3f9e44a82d30606ac"}, - {file = "ruff-0.0.271-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:f47d8a192f6869e95896dc5bb7e825a4f9c554136b9c3bddd38389e43d4db08b"}, - {file = "ruff-0.0.271-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e5de841e09ea75a26956a2cda930d1260c9d8d94cbe57c13b3e881d96526860"}, - {file = "ruff-0.0.271-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:191cdddfc82165afd63ab29ad671419a90a5e699b026ac2d9c61232543965de6"}, - {file = "ruff-0.0.271-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e34ca86329a542ab5d31f4fc2702f556d62748f4217e2f6951aef93176190f0"}, - {file = "ruff-0.0.271-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7543b8a32e000ed30727ca6e570a90ab26f8899ee23dffb28806dfc2618782fb"}, - {file = "ruff-0.0.271-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fca503741f4b23a7179fd7a9bc50fc2cca637e9a4da027776f38690c50ae559f"}, - {file = "ruff-0.0.271-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f445c56cdc8c12fc28a0b16588ba33abebb6340cb5b1b5a7d5668d4c0b31ad33"}, - {file = "ruff-0.0.271-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a73ffda5548ea8e28e0afcfa698a8675bb17f7048299327f4c1a1287b6e36a2"}, - {file = "ruff-0.0.271-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:67525aa821ff0f8371eaa28c73dc467b8eea18931a8bd749775ad538fe1f35e6"}, - {file = "ruff-0.0.271-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f3fd9e7c7afb7740d2734af3348e6c88226b42acba2e10a3d1e449caa67e4652"}, - {file = "ruff-0.0.271-py3-none-musllinux_1_2_i686.whl", hash = "sha256:efdfe7fea656eb2ed54f123135c04f71744ad6e4c0c6be156d46e7a2f4730d48"}, - {file = "ruff-0.0.271-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:cd43c1aff3eefb2193a125a12124438f65a8d1a6da0e86f8545141d48f6a39fa"}, - {file = "ruff-0.0.271-py3-none-win32.whl", hash = "sha256:403e8f9de18b2279d65015a45e0e0d98d60ad878d52f46904f502a4d09465815"}, - {file = "ruff-0.0.271-py3-none-win_amd64.whl", hash = "sha256:140e912a18a662062b04b489861e5aebdbe1a1668bf416e5a951f2347aa65907"}, - {file = "ruff-0.0.271-py3-none-win_arm64.whl", hash = "sha256:45b3c3551a798d9786779c6dd7ad2224af6e06162e17f4a0e7678d3e9115ae56"}, - {file = "ruff-0.0.271.tar.gz", hash = "sha256:be4590137a31c47e7f6ef4488d60102c68102f842453355d8073193a30199aa7"}, + {file = "ruff-0.0.272-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:ae9b57546e118660175d45d264b87e9b4c19405c75b587b6e4d21e6a17bf4fdf"}, + {file = "ruff-0.0.272-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:1609b864a8d7ee75a8c07578bdea0a7db75a144404e75ef3162e0042bfdc100d"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee76b4f05fcfff37bd6ac209d1370520d509ea70b5a637bdf0a04d0c99e13dff"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:48eccf225615e106341a641f826b15224b8a4240b84269ead62f0afd6d7e2d95"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:677284430ac539bb23421a2b431b4ebc588097ef3ef918d0e0a8d8ed31fea216"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:9c4bfb75456a8e1efe14c52fcefb89cfb8f2a0d31ed8d804b82c6cf2dc29c42c"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86bc788245361a8148ff98667da938a01e1606b28a45e50ac977b09d3ad2c538"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b2ea68d2aa69fff1b20b67636b1e3e22a6a39e476c880da1282c3e4bf6ee5a"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd2bbe337a3f84958f796c77820d55ac2db1e6753f39d1d1baed44e07f13f96d"}, + {file = "ruff-0.0.272-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d5a208f8ef0e51d4746930589f54f9f92f84bb69a7d15b1de34ce80a7681bc00"}, + {file = "ruff-0.0.272-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:905ff8f3d6206ad56fcd70674453527b9011c8b0dc73ead27618426feff6908e"}, + {file = "ruff-0.0.272-py3-none-musllinux_1_2_i686.whl", hash = "sha256:19643d448f76b1eb8a764719072e9c885968971bfba872e14e7257e08bc2f2b7"}, + {file = "ruff-0.0.272-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:691d72a00a99707a4e0b2846690961157aef7b17b6b884f6b4420a9f25cd39b5"}, + {file = "ruff-0.0.272-py3-none-win32.whl", hash = "sha256:dc406e5d756d932da95f3af082814d2467943631a587339ee65e5a4f4fbe83eb"}, + {file = "ruff-0.0.272-py3-none-win_amd64.whl", hash = "sha256:a37ec80e238ead2969b746d7d1b6b0d31aa799498e9ba4281ab505b93e1f4b28"}, + {file = "ruff-0.0.272-py3-none-win_arm64.whl", hash = "sha256:06b8ee4eb8711ab119db51028dd9f5384b44728c23586424fd6e241a5b9c4a3b"}, + {file = "ruff-0.0.272.tar.gz", hash = "sha256:273a01dc8c3c4fd4c2af7ea7a67c8d39bb09bce466e640dd170034da75d14cab"}, ] [[package]] name = "selenium" -version = "4.9.1" +version = "4.10.0" description = "" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "selenium-4.9.1-py3-none-any.whl", hash = "sha256:82aedaa85d55bc861f4c89ff9609e82f6c958e2e1e3da3ffcc36703f21d3ee16"}, - {file = "selenium-4.9.1.tar.gz", hash = "sha256:3444f4376321530c36ce8355b6b357d8cf4a7d588ce5cf772183465930bbed0e"}, + {file = "selenium-4.10.0-py3-none-any.whl", hash = "sha256:40241b9d872f58959e9b34e258488bf11844cd86142fd68182bd41db9991fc5c"}, + {file = "selenium-4.10.0.tar.gz", hash = "sha256:871bf800c4934f745b909c8dfc7d15c65cf45bd2e943abd54451c810ada395e3"}, ] [package.dependencies] @@ -3159,14 +3159,14 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} [[package]] name = "sentry-sdk" -version = "1.25.0" +version = "1.25.1" description = "Python client for Sentry (https://sentry.io)" category = "main" optional = false python-versions = "*" files = [ - {file = "sentry-sdk-1.25.0.tar.gz", hash = "sha256:5be3296fc574fa8a4d9b213b4dcf8c8d0246c08f8bd78315c6286f386c37555a"}, - {file = "sentry_sdk-1.25.0-py2.py3-none-any.whl", hash = "sha256:fe85cf5d0b3d0aa3480df689f9f6dc487de783defb0a95043368375dc893645e"}, + {file = "sentry-sdk-1.25.1.tar.gz", hash = "sha256:aa796423eb6a2f4a8cd7a5b02ba6558cb10aab4ccdc0537f63a47b038c520c38"}, + {file = "sentry_sdk-1.25.1-py2.py3-none-any.whl", hash = "sha256:79afb7c896014038e358401ad1d36889f97a129dfa8031c49b3f238cd1aa3935"}, ] [package.dependencies] @@ -3590,14 +3590,14 @@ files = [ [[package]] name = "urllib3" -version = "2.0.2" +version = "2.0.3" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, - {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, + {file = "urllib3-2.0.3-py3-none-any.whl", hash = "sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1"}, + {file = "urllib3-2.0.3.tar.gz", hash = "sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"}, ] [package.dependencies] diff --git a/tests/e2e/test_provider_ldap.py b/tests/e2e/test_provider_ldap.py index e22e68596..061ebef75 100644 --- a/tests/e2e/test_provider_ldap.py +++ b/tests/e2e/test_provider_ldap.py @@ -238,88 +238,82 @@ class TestProviderLDAP(SeleniumTestCase): { "dn": f"cn={o_user.username},ou=users,dc=ldap,dc=goauthentik,dc=io", "attributes": { - "cn": [o_user.username], - "sAMAccountName": [o_user.username], - "uid": [o_user.uid], - "name": [o_user.name], - "displayName": [o_user.name], - "sn": [o_user.name], - "mail": [""], + "cn": o_user.username, + "sAMAccountName": o_user.username, + "uid": o_user.uid, + "name": o_user.name, + "displayName": o_user.name, + "sn": o_user.name, + "mail": "", "objectClass": [ "user", "organizationalPerson", "inetOrgPerson", "goauthentik.io/ldap/user", ], - "uidNumber": [str(2000 + o_user.pk)], - "gidNumber": [str(2000 + o_user.pk)], + "uidNumber": 2000 + o_user.pk, + "gidNumber": 2000 + o_user.pk, "memberOf": [], - "homeDirectory": [ - f"/home/{o_user.username}", - ], - "ak-active": ["true"], - "ak-superuser": ["false"], - "goauthentikio-user-override-ips": ["true"], - "goauthentikio-user-service-account": ["true"], + "homeDirectory": f"/home/{o_user.username}", + "ak-active": True, + "ak-superuser": False, + "goauthentikio-user-override-ips": True, + "goauthentikio-user-service-account": True, }, "type": "searchResEntry", }, { "dn": f"cn={embedded_account.username},ou=users,dc=ldap,dc=goauthentik,dc=io", "attributes": { - "cn": [embedded_account.username], - "sAMAccountName": [embedded_account.username], - "uid": [embedded_account.uid], - "name": [embedded_account.name], - "displayName": [embedded_account.name], - "sn": [embedded_account.name], - "mail": [""], + "cn": embedded_account.username, + "sAMAccountName": embedded_account.username, + "uid": embedded_account.uid, + "name": embedded_account.name, + "displayName": embedded_account.name, + "sn": embedded_account.name, + "mail": "", "objectClass": [ "user", "organizationalPerson", "inetOrgPerson", "goauthentik.io/ldap/user", ], - "uidNumber": [str(2000 + embedded_account.pk)], - "gidNumber": [str(2000 + embedded_account.pk)], + "uidNumber": 2000 + embedded_account.pk, + "gidNumber": 2000 + embedded_account.pk, "memberOf": [], - "homeDirectory": [ - f"/home/{embedded_account.username}", - ], - "ak-active": ["true"], - "ak-superuser": ["false"], - "goauthentikio-user-override-ips": ["true"], - "goauthentikio-user-service-account": ["true"], + "homeDirectory": f"/home/{embedded_account.username}", + "ak-active": True, + "ak-superuser": False, + "goauthentikio-user-override-ips": True, + "goauthentikio-user-service-account": True, }, "type": "searchResEntry", }, { "dn": f"cn={self.user.username},ou=users,dc=ldap,dc=goauthentik,dc=io", "attributes": { - "cn": [self.user.username], - "sAMAccountName": [self.user.username], - "uid": [self.user.uid], - "name": [self.user.name], - "displayName": [self.user.name], - "sn": [self.user.name], - "mail": [self.user.email], + "cn": self.user.username, + "sAMAccountName": self.user.username, + "uid": self.user.uid, + "name": self.user.name, + "displayName": self.user.name, + "sn": self.user.name, + "mail": self.user.email, "objectClass": [ "user", "organizationalPerson", "inetOrgPerson", "goauthentik.io/ldap/user", ], - "uidNumber": [str(2000 + self.user.pk)], - "gidNumber": [str(2000 + self.user.pk)], + "uidNumber": 2000 + self.user.pk, + "gidNumber": 2000 + self.user.pk, "memberOf": [ f"cn={group.name},ou=groups,dc=ldap,dc=goauthentik,dc=io" for group in self.user.ak_groups.all() ], - "homeDirectory": [ - f"/home/{self.user.username}", - ], - "ak-active": ["true"], - "ak-superuser": ["true"], + "homeDirectory": f"/home/{self.user.username}", + "ak-active": True, + "ak-superuser": True, "extraAttribute": ["bar"], }, "type": "searchResEntry", diff --git a/web/.prettierignore b/web/.prettierignore index 00c1e6be0..8fc79c97c 100644 --- a/web/.prettierignore +++ b/web/.prettierignore @@ -7,3 +7,4 @@ coverage # Import order matters poly.ts src/locale-codes.ts +src/locales/ diff --git a/web/.storybook/authentikTheme.ts b/web/.storybook/authentikTheme.ts new file mode 100644 index 000000000..d8f9a4591 --- /dev/null +++ b/web/.storybook/authentikTheme.ts @@ -0,0 +1,9 @@ +import { create } from "@storybook/theming/create"; + +export default create({ + base: "light", + brandTitle: "authentik Storybook", + brandUrl: "https://goauthentik.io", + brandImage: "https://goauthentik.io/img/icon_left_brand_colour.svg", + brandTarget: "_self", +}); diff --git a/web/.storybook/manager.ts b/web/.storybook/manager.ts new file mode 100644 index 000000000..ab364c0c4 --- /dev/null +++ b/web/.storybook/manager.ts @@ -0,0 +1,8 @@ +// .storybook/manager.js +import { addons } from "@storybook/manager-api"; + +import authentikTheme from "./authentikTheme"; + +addons.setConfig({ + theme: authentikTheme, +}); diff --git a/web/package-lock.json b/web/package-lock.json index 4c004870d..10d7ba871 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -15,7 +15,7 @@ "@codemirror/lang-xml": "^6.0.2", "@codemirror/legacy-modes": "^6.3.2", "@codemirror/theme-one-dark": "^6.1.2", - "@formatjs/intl-listformat": "^7.2.2", + "@formatjs/intl-listformat": "^7.3.0", "@fortawesome/fontawesome-free": "^6.4.0", "@goauthentik/api": "^2023.5.3-1685646044", "@lit/localize": "^0.11.4", @@ -56,11 +56,11 @@ "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-typescript": "^11.1.1", "@squoosh/cli": "^0.7.3", - "@storybook/addon-essentials": "^7.0.18", - "@storybook/addon-links": "^7.0.18", - "@storybook/blocks": "^7.0.18", - "@storybook/web-components": "^7.0.18", - "@storybook/web-components-vite": "^7.0.18", + "@storybook/addon-essentials": "^7.0.20", + "@storybook/addon-links": "^7.0.20", + "@storybook/blocks": "^7.0.20", + "@storybook/web-components": "^7.0.20", + "@storybook/web-components-vite": "^7.0.20", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/chart.js": "^2.9.37", "@types/codemirror": "5.60.8", @@ -78,7 +78,7 @@ "lit-analyzer": "^1.2.1", "npm-run-all": "^4.1.5", "prettier": "^2.8.8", - "pyright": "^1.1.312", + "pyright": "^1.1.313", "react": "^18.2.0", "react-dom": "^18.2.0", "rollup": "^2.79.1", @@ -87,7 +87,7 @@ "rollup-plugin-minify-html-literals": "^1.2.6", "rollup-plugin-postcss-lit": "^2.0.0", "rollup-plugin-terser": "^7.0.2", - "storybook": "^7.0.18", + "storybook": "^7.0.20", "ts-lit-plugin": "^1.2.1", "tslib": "^2.5.3", "turnstile-types": "^1.1.2", @@ -2865,25 +2865,28 @@ "dev": true }, "node_modules/@formatjs/ecma402-abstract": { - "version": "1.15.0", - "license": "MIT", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.16.0.tgz", + "integrity": "sha512-qIH2cmG/oHGrVdApbqDf6/YR+B2A4NdkBjKLeq369OMVkqMFsC5oPSP1xpiyL1cAn+PbNEZHxwOVMYD/C76c6g==", "dependencies": { - "@formatjs/intl-localematcher": "0.2.32", + "@formatjs/intl-localematcher": "0.3.0", "tslib": "^2.4.0" } }, "node_modules/@formatjs/intl-listformat": { - "version": "7.2.2", - "license": "MIT", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.3.0.tgz", + "integrity": "sha512-HWSST1TBcKi5frneeDi9O6YYp9NWb7HNrDSbCgnBLmz/9rpGycdp9c5bTKJqYFN6apw3E/kIo+kZHjVeiFITRQ==", "dependencies": { - "@formatjs/ecma402-abstract": "1.15.0", - "@formatjs/intl-localematcher": "0.2.32", + "@formatjs/ecma402-abstract": "1.16.0", + "@formatjs/intl-localematcher": "0.3.0", "tslib": "^2.4.0" } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.2.32", - "license": "MIT", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.3.0.tgz", + "integrity": "sha512-NFoxXX3dtZ6B53NlCErq181NxN/noMZOWKHfcEPQRNfV0a19THxyjxu2RTSNS3532wGm6fOdid5qsBQWg0Rhtw==", "dependencies": { "tslib": "^2.4.0" } @@ -3961,19 +3964,19 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.0.18.tgz", - "integrity": "sha512-3M5AU/ZD79YP88vKlFezIJbIoG/II7wCixUBTmwiC3BeQZDuVsqPNl8eiP6MGT70xwyx7a993lSM5f5N5W93vg==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.0.20.tgz", + "integrity": "sha512-otdbuEcHtzb6BzYdCYXyoZ3yNwcMdGSeGKf1aMj0b+C6b23XMnwDa90nzH3JST/sb8PJ1o5MHKWPQJ8UKt72Ug==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", - "@storybook/components": "7.0.18", - "@storybook/core-events": "7.0.18", + "@storybook/client-logger": "7.0.20", + "@storybook/components": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/theming": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/manager-api": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", "dequal": "^2.0.2", "lodash": "^4.17.21", "polished": "^4.2.2", @@ -4000,20 +4003,199 @@ } } }, - "node_modules/@storybook/addon-backgrounds": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.18.tgz", - "integrity": "sha512-cPQy1Ot7Urf4hQz+xnF1YKrqSyR0DRwozBmF+sGzceACWmueFl0CifYZC8RSmaiIyVh0RyWPxZ9F/eT67NX2lA==", + "node_modules/@storybook/addon-actions/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", - "@storybook/components": "7.0.18", - "@storybook/core-events": "7.0.18", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/theming": "7.0.18", - "@storybook/types": "7.0.18", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-actions/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-actions/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-actions/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-actions/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-actions/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-actions/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-actions/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-actions/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-actions/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-backgrounds": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.20.tgz", + "integrity": "sha512-2hMZGCWNCPDgL+p6aL7dxHVOdh31ugGC2ZDeKscSrN+dvWCMUqj1Ns4EnEKBP4+4RXjmrNTsZCKaD9RfY3Pb5g==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "@storybook/components": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "@storybook/manager-api": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", "memoizerific": "^1.11.3", "ts-dedent": "^2.0.0" }, @@ -4034,21 +4216,200 @@ } } }, - "node_modules/@storybook/addon-controls": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.18.tgz", - "integrity": "sha512-mD6DE52CCMKugXk2Uab0QxwgfE76kFJroxASmnePnXUNWfP9EZJpJXYE3cyyBbmZuxa46VHDGGEGXQWRl4+Eog==", + "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", "dev": true, "dependencies": { - "@storybook/blocks": "7.0.18", - "@storybook/client-logger": "7.0.18", - "@storybook/components": "7.0.18", - "@storybook/core-common": "7.0.18", - "@storybook/manager-api": "7.0.18", - "@storybook/node-logger": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/theming": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-backgrounds/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-controls": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.0.20.tgz", + "integrity": "sha512-wXs8QFNNly18d7wVyGne0CIPwAcptyzuq+Q0ltDSInRPvx6RadXH0L5Ah7FCsVXUozmxxRq+jt4Vne979W6mUA==", + "dev": true, + "dependencies": { + "@storybook/blocks": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/components": "7.0.20", + "@storybook/core-common": "7.0.20", + "@storybook/manager-api": "7.0.20", + "@storybook/node-logger": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -4069,29 +4430,417 @@ } } }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/core-common": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.20.tgz", + "integrity": "sha512-4uh/zMs884rlYSfPEzsZy8Z7lchitZTKI6031gigEMBBgdYZ1eHqwz91YfQK7e2dFKjxfw2y9HS1yRI57RJrQg==", + "dev": true, + "dependencies": { + "@storybook/node-logger": "7.0.20", + "@storybook/types": "7.0.20", + "@types/node": "^16.0.0", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.17.0", + "esbuild-register": "^3.4.0", + "file-system-cache": "^2.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^8.1.0", + "glob-promise": "^6.0.2", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/node-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.20.tgz", + "integrity": "sha512-CibPbHs7ELVtx7++5OGHL13lMG0vKEBGBBcb3FJFgf5fLYOor3jJ/xbiUZpfdg34mwzXHTVUi7o4MMMd4nVe+g==", + "dev": true, + "dependencies": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-controls/node_modules/@types/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", + "dev": true, + "dependencies": { + "@types/minimatch": "^5.1.2", + "@types/node": "*" + } + }, + "node_modules/@storybook/addon-controls/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/addon-controls/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@storybook/addon-controls/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/addon-controls/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/addon-controls/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@storybook/addon-controls/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/addon-controls/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/addon-controls/node_modules/glob-promise": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.2.tgz", + "integrity": "sha512-Ni2aDyD1ekD6x8/+K4hDriRDbzzfuK4yKpqSymJ4P7IxbtARiOOuU+k40kbHM0sLIlbf1Qh0qdMkAHMZYE6XJQ==", + "dev": true, + "dependencies": { + "@types/glob": "^8.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/ahmadnassri" + }, + "peerDependencies": { + "glob": "^8.0.3" + } + }, + "node_modules/@storybook/addon-controls/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/addon-controls/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-controls/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/addon-controls/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-controls/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@storybook/addon-docs": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.18.tgz", - "integrity": "sha512-oq+ZN5809gIRdTZQIpeK1F8BJtL1/VWo9rWvl6ymVOL/Xzdgd7AOfKf9Y99X35RcxAGysRIHLGJjF4bgLoY1Aw==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.0.20.tgz", + "integrity": "sha512-gxq7pGIER3eNGme9NJK5fUBqqXuHLnRwu6ng167IpAAVvcAXRnDFkP10y+KK72wAxwpZrI9squcWCOKReGr8Mg==", "dev": true, "dependencies": { "@babel/core": "^7.20.2", "@babel/plugin-transform-react-jsx": "^7.19.0", "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.0.18", - "@storybook/client-logger": "7.0.18", - "@storybook/components": "7.0.18", - "@storybook/csf-plugin": "7.0.18", - "@storybook/csf-tools": "7.0.18", + "@storybook/blocks": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/components": "7.0.20", + "@storybook/csf-plugin": "7.0.20", + "@storybook/csf-tools": "7.0.20", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.0.18", - "@storybook/postinstall": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/react-dom-shim": "7.0.18", - "@storybook/theming": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/node-logger": "7.0.20", + "@storybook/postinstall": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/react-dom-shim": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -4106,6 +4855,268 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@storybook/addon-docs/node_modules/@babel/generator": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", + "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@babel/parser": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", + "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/csf-tools": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.20.tgz", + "integrity": "sha512-m68wLgN5G7XIChQrjeILBYu+4TVHfllIrIJXMZ3Gi+iplOCHsQLfA6Oa0VtTB09Ol5K2StdMHjBCoR6HfHzsXA==", + "dev": true, + "dependencies": { + "@babel/generator": "~7.21.1", + "@babel/parser": "~7.21.2", + "@babel/traverse": "~7.21.2", + "@babel/types": "~7.21.2", + "@storybook/csf": "^0.1.0", + "@storybook/types": "7.0.20", + "fs-extra": "^11.1.0", + "recast": "^0.23.1", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/node-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.20.tgz", + "integrity": "sha512-CibPbHs7ELVtx7++5OGHL13lMG0vKEBGBBcb3FJFgf5fLYOor3jJ/xbiUZpfdg34mwzXHTVUi7o4MMMd4nVe+g==", + "dev": true, + "dependencies": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-docs/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/addon-docs/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/addon-docs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/addon-docs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@storybook/addon-docs/node_modules/fs-extra": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", @@ -4120,25 +5131,46 @@ "node": ">=14.14" } }, - "node_modules/@storybook/addon-essentials": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.18.tgz", - "integrity": "sha512-0XXu7xhtRefA1WxxorKk6BWeeB+7gQ+r2+bG1zQEfBgDYPR06YbPw4H79IZ8JiR97aJRsZBK5UUhOZMDrc5zcQ==", + "node_modules/@storybook/addon-docs/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/addon-docs/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@storybook/addon-actions": "7.0.18", - "@storybook/addon-backgrounds": "7.0.18", - "@storybook/addon-controls": "7.0.18", - "@storybook/addon-docs": "7.0.18", - "@storybook/addon-highlight": "7.0.18", - "@storybook/addon-measure": "7.0.18", - "@storybook/addon-outline": "7.0.18", - "@storybook/addon-toolbars": "7.0.18", - "@storybook/addon-viewport": "7.0.18", - "@storybook/core-common": "7.0.18", - "@storybook/manager-api": "7.0.18", - "@storybook/node-logger": "7.0.18", - "@storybook/preview-api": "7.0.18", + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/addon-essentials": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.0.20.tgz", + "integrity": "sha512-KPHHSDGQUd/3TUr5s7gS3SGDD8XTLl7GnhV//uj1r0SSMKNcIhoV9fzw99IOhADkeazMn9ODBOhkFcIShUMmfQ==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "7.0.20", + "@storybook/addon-backgrounds": "7.0.20", + "@storybook/addon-controls": "7.0.20", + "@storybook/addon-docs": "7.0.20", + "@storybook/addon-highlight": "7.0.20", + "@storybook/addon-measure": "7.0.20", + "@storybook/addon-outline": "7.0.20", + "@storybook/addon-toolbars": "7.0.20", + "@storybook/addon-viewport": "7.0.20", + "@storybook/core-common": "7.0.20", + "@storybook/manager-api": "7.0.20", + "@storybook/node-logger": "7.0.20", + "@storybook/preview-api": "7.0.20", "ts-dedent": "^2.0.0" }, "funding": { @@ -4150,15 +5182,497 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@storybook/addon-highlight": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.0.18.tgz", - "integrity": "sha512-a3nfUhbu6whoDclIZSV/fzLj132tNNjV05ENTpuN3JpLoMd3+obDUWzeQUs9TetK4RBRN3ewM7sIMEI4oBpgmg==", + "node_modules/@storybook/addon-essentials/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", "dev": true, "dependencies": { - "@storybook/core-events": "7.0.18", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.0.18" + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@storybook/core-common": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.20.tgz", + "integrity": "sha512-4uh/zMs884rlYSfPEzsZy8Z7lchitZTKI6031gigEMBBgdYZ1eHqwz91YfQK7e2dFKjxfw2y9HS1yRI57RJrQg==", + "dev": true, + "dependencies": { + "@storybook/node-logger": "7.0.20", + "@storybook/types": "7.0.20", + "@types/node": "^16.0.0", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.17.0", + "esbuild-register": "^3.4.0", + "file-system-cache": "^2.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^8.1.0", + "glob-promise": "^6.0.2", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@storybook/node-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.20.tgz", + "integrity": "sha512-CibPbHs7ELVtx7++5OGHL13lMG0vKEBGBBcb3FJFgf5fLYOor3jJ/xbiUZpfdg34mwzXHTVUi7o4MMMd4nVe+g==", + "dev": true, + "dependencies": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/@types/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", + "dev": true, + "dependencies": { + "@types/minimatch": "^5.1.2", + "@types/node": "*" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@storybook/addon-essentials/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/glob-promise": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.2.tgz", + "integrity": "sha512-Ni2aDyD1ekD6x8/+K4hDriRDbzzfuK4yKpqSymJ4P7IxbtARiOOuU+k40kbHM0sLIlbf1Qh0qdMkAHMZYE6XJQ==", + "dev": true, + "dependencies": { + "@types/glob": "^8.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/ahmadnassri" + }, + "peerDependencies": { + "glob": "^8.0.3" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-essentials/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/addon-highlight": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.0.20.tgz", + "integrity": "sha512-AHNYMNY1DtzS+tQ4y0azyXCmIAKuf2j/xp5DgPVkdZmPIHA2wkQZw3EGQj9GTDMZ/Afj3r8kMkUw28NekGYa8A==", + "dev": true, + "dependencies": { + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "@storybook/preview-api": "7.0.20" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-highlight/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-highlight/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-highlight/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-highlight/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-highlight/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-highlight/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" }, "funding": { "type": "opencollective", @@ -4166,19 +5680,19 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.18.tgz", - "integrity": "sha512-xEwflt7bp9FRoZVeqPGb6d3s2Gh+/jaSmnyIxMxrBy2oovKIqu9ptolqz1AhjFOXfaLs9c2RAmJUuFZJtETLxA==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.0.20.tgz", + "integrity": "sha512-C0eoik4ka9zxsMB1e9eE9NbvuSnNn303bdtaXnhd/U/cS5z1VzqPNWdft1L7YsIKgmF4fbUPw1QiUPORC2xnQA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", - "@storybook/core-events": "7.0.18", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/router": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/manager-api": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/router": "7.0.20", + "@storybook/types": "7.0.20", "prop-types": "^15.7.2", "ts-dedent": "^2.0.0" }, @@ -4199,19 +5713,198 @@ } } }, - "node_modules/@storybook/addon-measure": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.0.18.tgz", - "integrity": "sha512-iu8vQpGOA+CFYbWR6QNshj20o33OQ/xcTbp5P4U6xGYDUliUBbwJ2KLxcKlmIeBanBrBdz0jPFtHwY4dM1ZdKw==", + "node_modules/@storybook/addon-links/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", - "@storybook/components": "7.0.18", - "@storybook/core-events": "7.0.18", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/types": "7.0.18" + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-links/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-links/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-links/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-links/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-links/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-links/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-links/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-links/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-links/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-measure": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.0.20.tgz", + "integrity": "sha512-MFuilKpVPbf/EiB5mVB8lmsogX1Uv3N5NftYh5CVoERxc1oRhSXYDrZ60xXAwn/B1PwsIL7dGE6P/KPUVSTpkA==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "@storybook/components": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "@storybook/manager-api": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/types": "7.0.20" }, "funding": { "type": "opencollective", @@ -4230,19 +5923,198 @@ } } }, - "node_modules/@storybook/addon-outline": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.0.18.tgz", - "integrity": "sha512-3vNWO7ezo6GIvidbz8JxFrKtfVEoTQN7tnZx+wpqmCF8ihBORewkpeMUnvgb9ZKjD0X7gE8eQvvG8KKWcyHDBQ==", + "node_modules/@storybook/addon-measure/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", - "@storybook/components": "7.0.18", - "@storybook/core-events": "7.0.18", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/types": "7.0.18", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-measure/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-measure/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-measure/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-measure/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-measure/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-measure/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-measure/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-measure/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-measure/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-outline": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.0.20.tgz", + "integrity": "sha512-033r2LcJsfiqDHXrwXH8k4wVLuYdAn+W3B+0+06p0hcK32jitEyXH2w176fk6JPhRgH7etzrK+nehLN8uMriWA==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "@storybook/components": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "@storybook/manager-api": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/types": "7.0.20", "ts-dedent": "^2.0.0" }, "funding": { @@ -4262,17 +6134,196 @@ } } }, - "node_modules/@storybook/addon-toolbars": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.18.tgz", - "integrity": "sha512-mwhq962o0WloHAeFjJ6BXO2nzdTo5KE2fqawPpqcB2lwXP6tvaA2tDWwgntjPCHejqWTS+ZTdO4/1xrMhWYt/g==", + "node_modules/@storybook/addon-outline/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", - "@storybook/components": "7.0.18", - "@storybook/manager-api": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/theming": "7.0.18" + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-outline/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-outline/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-outline/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-outline/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-outline/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-outline/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-outline/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-outline/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-outline/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-toolbars": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.0.20.tgz", + "integrity": "sha512-xIEpOue1MGXtr7F02PTW65mP6j+yQTMX86iSO5ESLiXpfQnrMsCRElXCJVi0iVEr0+t4lW7y+psNAKPpBQy/Aw==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "@storybook/components": "7.0.20", + "@storybook/manager-api": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/theming": "7.0.20" }, "funding": { "type": "opencollective", @@ -4291,19 +6342,198 @@ } } }, - "node_modules/@storybook/addon-viewport": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.18.tgz", - "integrity": "sha512-aVVLBsWXfGDX3z1pc93LWWdG5RUoJbGL/JJPMZGwXdwWpP8V3OBl8D8bgPymyg+MgwhSRZZDDGgnJaVGGwZ6bQ==", + "node_modules/@storybook/addon-toolbars/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", - "@storybook/components": "7.0.18", - "@storybook/core-events": "7.0.18", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/theming": "7.0.18", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-toolbars/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-toolbars/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-toolbars/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-toolbars/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-toolbars/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-toolbars/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-toolbars/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-toolbars/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-toolbars/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/addon-viewport": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.0.20.tgz", + "integrity": "sha512-M4kR2FtaELY5bkJACRROinjCB15VxyrkCPH8UiFIGffPO8Nce2fa/4+8ZVIkA27VqD0KbLvVXAZrfn/+unyySg==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "@storybook/components": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "@storybook/manager-api": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/theming": "7.0.20", "memoizerific": "^1.11.3", "prop-types": "^15.7.2" }, @@ -4324,6 +6554,185 @@ } } }, + "node_modules/@storybook/addon-viewport/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-viewport/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-viewport/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-viewport/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-viewport/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-viewport/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-viewport/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-viewport/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/addon-viewport/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-viewport/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@storybook/addons": { "version": "7.0.18", "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-7.0.18.tgz", @@ -4372,22 +6781,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.0.18.tgz", - "integrity": "sha512-HLsuzmUdVIeFXEP5v5vyjnEePRNYjzltwTjCKQhHAlt8/aQZmREiIMOfoMoAa1Rd+On8Ib2DUd2cN10VS18H8A==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.0.20.tgz", + "integrity": "sha512-DIKJ8fyuG8Lz5Anp21EZ/dKa0UhMbrRINskxUpInQZ51dgsEYc/0ENp8hm0XmbxdF58BlT8nsEIjIpCc9ZAbVQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.18", - "@storybook/client-logger": "7.0.18", - "@storybook/components": "7.0.18", - "@storybook/core-events": "7.0.18", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/components": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/csf": "^0.1.0", - "@storybook/docs-tools": "7.0.18", + "@storybook/docs-tools": "7.0.20", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/theming": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/manager-api": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -4409,6 +6818,286 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@storybook/blocks/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/core-common": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.20.tgz", + "integrity": "sha512-4uh/zMs884rlYSfPEzsZy8Z7lchitZTKI6031gigEMBBgdYZ1eHqwz91YfQK7e2dFKjxfw2y9HS1yRI57RJrQg==", + "dev": true, + "dependencies": { + "@storybook/node-logger": "7.0.20", + "@storybook/types": "7.0.20", + "@types/node": "^16.0.0", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.17.0", + "esbuild-register": "^3.4.0", + "file-system-cache": "^2.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^8.1.0", + "glob-promise": "^6.0.2", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/docs-tools": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.20.tgz", + "integrity": "sha512-9MfQaIseC6fzU5McyBOYiVNHa4wiyVyNMG+rOgdDI4Q+JZDRm9wgf+mtB5Uc8bZZZJRUTxSKJwqeFlxn9zTJgA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.10", + "@storybook/core-common": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/types": "7.0.20", + "@types/doctrine": "^0.0.3", + "doctrine": "^3.0.0", + "lodash": "^4.17.21" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/node-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.20.tgz", + "integrity": "sha512-CibPbHs7ELVtx7++5OGHL13lMG0vKEBGBBcb3FJFgf5fLYOor3jJ/xbiUZpfdg34mwzXHTVUi7o4MMMd4nVe+g==", + "dev": true, + "dependencies": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/blocks/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks/node_modules/@types/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", + "dev": true, + "dependencies": { + "@types/minimatch": "^5.1.2", + "@types/node": "*" + } + }, + "node_modules/@storybook/blocks/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/blocks/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@storybook/blocks/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/@storybook/blocks/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -4427,35 +7116,7 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/@storybook/builder-manager": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.18.tgz", - "integrity": "sha512-yFMm3xuYkyg2hS1uz3CkvyvLzK7qJsDPVEh7lew8GiJK1Xx8cc+FnAOlRTjWNxvhfiT296wAMCTPWv7LeoSgqQ==", - "dev": true, - "dependencies": { - "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.0.18", - "@storybook/manager": "7.0.18", - "@storybook/node-logger": "7.0.18", - "@types/ejs": "^3.1.1", - "@types/find-cache-dir": "^3.2.1", - "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", - "browser-assert": "^1.2.1", - "ejs": "^3.1.8", - "esbuild": "^0.17.0", - "esbuild-plugin-alias": "^0.2.1", - "express": "^4.17.3", - "find-cache-dir": "^3.0.0", - "fs-extra": "^11.1.0", - "process": "^0.11.10", - "util": "^0.12.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/builder-manager/node_modules/fs-extra": { + "node_modules/@storybook/blocks/node_modules/fs-extra": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", @@ -4469,22 +7130,117 @@ "node": ">=14.14" } }, - "node_modules/@storybook/builder-vite": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.0.18.tgz", - "integrity": "sha512-Qze6/PwUJq+z776dBoG5uinAEVZyPalZIaU/VOWpTrN8L9FQbL0+HDrZU2E/BMNW+ZfnSjF3V2USLyiutsC1Tw==", + "node_modules/@storybook/blocks/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { - "@storybook/channel-postmessage": "7.0.18", - "@storybook/channel-websocket": "7.0.18", - "@storybook/client-logger": "7.0.18", - "@storybook/core-common": "7.0.18", - "@storybook/csf-plugin": "7.0.18", + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/blocks/node_modules/glob-promise": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.2.tgz", + "integrity": "sha512-Ni2aDyD1ekD6x8/+K4hDriRDbzzfuK4yKpqSymJ4P7IxbtARiOOuU+k40kbHM0sLIlbf1Qh0qdMkAHMZYE6XJQ==", + "dev": true, + "dependencies": { + "@types/glob": "^8.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/ahmadnassri" + }, + "peerDependencies": { + "glob": "^8.0.3" + } + }, + "node_modules/@storybook/blocks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/blocks/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/blocks/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/blocks/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/blocks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/builder-vite": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.0.20.tgz", + "integrity": "sha512-+SQMdvrqpuuYE1KGNfvGfxt0sjeshMEEXCfxvh2/iCPPIMYTEQ5WfVeEuAla+PRyXrE4JLwCZEowcZoxel1uTA==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channel-websocket": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-common": "7.0.20", + "@storybook/csf-plugin": "7.0.20", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.0.18", - "@storybook/preview": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/node-logger": "7.0.20", + "@storybook/preview": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/types": "7.0.20", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", "express": "^4.17.3", @@ -4518,6 +7274,147 @@ } } }, + "node_modules/@storybook/builder-vite/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-vite/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-vite/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-vite/node_modules/@storybook/core-common": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.20.tgz", + "integrity": "sha512-4uh/zMs884rlYSfPEzsZy8Z7lchitZTKI6031gigEMBBgdYZ1eHqwz91YfQK7e2dFKjxfw2y9HS1yRI57RJrQg==", + "dev": true, + "dependencies": { + "@storybook/node-logger": "7.0.20", + "@storybook/types": "7.0.20", + "@types/node": "^16.0.0", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.17.0", + "esbuild-register": "^3.4.0", + "file-system-cache": "^2.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^8.1.0", + "glob-promise": "^6.0.2", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-vite/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-vite/node_modules/@storybook/node-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.20.tgz", + "integrity": "sha512-CibPbHs7ELVtx7++5OGHL13lMG0vKEBGBBcb3FJFgf5fLYOor3jJ/xbiUZpfdg34mwzXHTVUi7o4MMMd4nVe+g==", + "dev": true, + "dependencies": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-vite/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-vite/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, "node_modules/@storybook/builder-vite/node_modules/@types/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", @@ -4528,6 +7425,21 @@ "@types/node": "*" } }, + "node_modules/@storybook/builder-vite/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@storybook/builder-vite/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -4537,6 +7449,40 @@ "balanced-match": "^1.0.0" } }, + "node_modules/@storybook/builder-vite/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/builder-vite/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/builder-vite/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/@storybook/builder-vite/node_modules/fs-extra": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", @@ -4589,6 +7535,15 @@ "glob": "^8.0.3" } }, + "node_modules/@storybook/builder-vite/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@storybook/builder-vite/node_modules/magic-string": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", @@ -4613,11 +7568,33 @@ "node": ">=10" } }, + "node_modules/@storybook/builder-vite/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/builder-vite/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@storybook/channel-postmessage": { "version": "7.0.18", "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.18.tgz", "integrity": "sha512-rpwBH5ANdPnugS6+7xG9qHSoS+aPSEnBxDKsONWFubfMTTXQuFkf/793rBbxGkoINdqh8kSdKOM2rIty6e9cmQ==", "dev": true, + "peer": true, "dependencies": { "@storybook/channels": "7.0.18", "@storybook/client-logger": "7.0.18", @@ -4632,13 +7609,13 @@ } }, "node_modules/@storybook/channel-websocket": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-7.0.18.tgz", - "integrity": "sha512-QYsZIfe23NN4i+oIdPKHaYBehk3a/HYk57a+M2oR3Frmv8IOqc/e31uH+xx5NxnjHrTJj7Y80ZJw6EKB682S6w==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-7.0.20.tgz", + "integrity": "sha512-nzpnvUAdOgEn1FhUlaTl/ImSoiRJQs1UmLPxDtqAOGo01W+GIlj17Y+0TYCaG3EJoRVv59XPIrqywut2o6j40Q==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.18", - "@storybook/client-logger": "7.0.18", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", "@storybook/global": "^5.0.0", "telejson": "^7.0.3" }, @@ -4647,32 +7624,56 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@storybook/channel-websocket/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/channel-websocket/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, "node_modules/@storybook/channels": { "version": "7.0.18", "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.18.tgz", "integrity": "sha512-rkA7ea0M3+dWS+71iHJdiZ5R2QuIdiVg0CgyLJHDagc1qej7pEVNhMWtppeq+X5Pwp9nkz8ZTQ7aCjTf6th0/A==", "dev": true, + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, "node_modules/@storybook/cli": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.0.18.tgz", - "integrity": "sha512-9n4J4thiCUsGSXiRc6ZysqYUaCMCrpu0/qgC+5ngfFRuMmZgUV0y5+0fmaOhT2XjsonTTgucizO82i7+ottCVg==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.0.20.tgz", + "integrity": "sha512-ZYBJL1d7nWXQok7SriF18h0YPO38Eu1YxR8b1VHgOZYKZhuQmtvhmjMTSgpoGjnynNkEaV3fvm6+KYTjSqYcnw==", "dev": true, "dependencies": { "@babel/core": "^7.20.2", "@babel/preset-env": "^7.20.2", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.0.18", - "@storybook/core-common": "7.0.18", - "@storybook/core-server": "7.0.18", - "@storybook/csf-tools": "7.0.18", - "@storybook/node-logger": "7.0.18", - "@storybook/telemetry": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/codemod": "7.0.20", + "@storybook/core-common": "7.0.20", + "@storybook/core-server": "7.0.20", + "@storybook/csf-tools": "7.0.20", + "@storybook/node-logger": "7.0.20", + "@storybook/telemetry": "7.0.20", + "@storybook/types": "7.0.20", "@types/semver": "^7.3.4", "boxen": "^5.1.2", "chalk": "^4.1.0", @@ -4712,6 +7713,353 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@storybook/cli/node_modules/@babel/generator": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", + "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/cli/node_modules/@babel/parser": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", + "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@storybook/cli/node_modules/@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/cli/node_modules/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/builder-manager": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.20.tgz", + "integrity": "sha512-D1k7fZnEn/G4a6Ob7JWR3IsDsI2IiI42DEoi1h3Rmx9vBwBJatRatvIJz2qUxbQ00l+F5rnnmp8uIHG3FOFf1A==", + "dev": true, + "dependencies": { + "@fal-works/esbuild-plugin-global-externals": "^2.1.2", + "@storybook/core-common": "7.0.20", + "@storybook/manager": "7.0.20", + "@storybook/node-logger": "7.0.20", + "@types/ejs": "^3.1.1", + "@types/find-cache-dir": "^3.2.1", + "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", + "browser-assert": "^1.2.1", + "ejs": "^3.1.8", + "esbuild": "^0.17.0", + "esbuild-plugin-alias": "^0.2.1", + "express": "^4.17.3", + "find-cache-dir": "^3.0.0", + "fs-extra": "^11.1.0", + "process": "^0.11.10", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/core-common": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.20.tgz", + "integrity": "sha512-4uh/zMs884rlYSfPEzsZy8Z7lchitZTKI6031gigEMBBgdYZ1eHqwz91YfQK7e2dFKjxfw2y9HS1yRI57RJrQg==", + "dev": true, + "dependencies": { + "@storybook/node-logger": "7.0.20", + "@storybook/types": "7.0.20", + "@types/node": "^16.0.0", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.17.0", + "esbuild-register": "^3.4.0", + "file-system-cache": "^2.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^8.1.0", + "glob-promise": "^6.0.2", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/core-server": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.20.tgz", + "integrity": "sha512-hNKwi5QZMhfeqw8+UmU6hCIIQfTC5r1ItaKZIeF43HnSt4hNKoA9fHu1UCS5UA56KddBxSAPggroEF+Ah8ZHcg==", + "dev": true, + "dependencies": { + "@aw-web-design/x-default-browser": "1.4.88", + "@discoveryjs/json-ext": "^0.5.3", + "@storybook/builder-manager": "7.0.20", + "@storybook/core-common": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/csf-tools": "7.0.20", + "@storybook/docs-mdx": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/manager": "7.0.20", + "@storybook/node-logger": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/telemetry": "7.0.20", + "@storybook/types": "7.0.20", + "@types/detect-port": "^1.3.0", + "@types/node": "^16.0.0", + "@types/node-fetch": "^2.5.7", + "@types/pretty-hrtime": "^1.0.0", + "@types/semver": "^7.3.4", + "better-opn": "^2.1.1", + "boxen": "^5.1.2", + "chalk": "^4.1.0", + "cli-table3": "^0.6.1", + "compression": "^1.7.4", + "detect-port": "^1.3.0", + "express": "^4.17.3", + "fs-extra": "^11.1.0", + "globby": "^11.0.2", + "ip": "^2.0.0", + "lodash": "^4.17.21", + "node-fetch": "^2.6.7", + "open": "^8.4.0", + "pretty-hrtime": "^1.0.3", + "prompts": "^2.4.0", + "read-pkg-up": "^7.0.1", + "semver": "^7.3.7", + "serve-favicon": "^2.5.0", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "watchpack": "^2.2.0", + "ws": "^8.2.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/csf-tools": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.20.tgz", + "integrity": "sha512-m68wLgN5G7XIChQrjeILBYu+4TVHfllIrIJXMZ3Gi+iplOCHsQLfA6Oa0VtTB09Ol5K2StdMHjBCoR6HfHzsXA==", + "dev": true, + "dependencies": { + "@babel/generator": "~7.21.1", + "@babel/parser": "~7.21.2", + "@babel/traverse": "~7.21.2", + "@babel/types": "~7.21.2", + "@storybook/csf": "^0.1.0", + "@storybook/types": "7.0.20", + "fs-extra": "^11.1.0", + "recast": "^0.23.1", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/manager": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.20.tgz", + "integrity": "sha512-m79G2FMCIBQlF5FtnCoPP3B0Uy79SWmYLSTMmK/a2d5MS26d7eNOVT1W6httPMZlgy26/OjO7JcQVQsliQ4nxw==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/node-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.20.tgz", + "integrity": "sha512-CibPbHs7ELVtx7++5OGHL13lMG0vKEBGBBcb3FJFgf5fLYOor3jJ/xbiUZpfdg34mwzXHTVUi7o4MMMd4nVe+g==", + "dev": true, + "dependencies": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/telemetry": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.20.tgz", + "integrity": "sha512-yCNPtu7yrFiBgriaM6Mq68871hTGbDmuiwAF4TXWnpEygtBKFpUomKcwVHGf8Fsc3xdXGl5m6uTfAPseWxfaVA==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "@storybook/core-common": "7.0.20", + "chalk": "^4.1.0", + "detect-package-manager": "^2.0.1", + "fetch-retry": "^5.0.2", + "fs-extra": "^11.1.0", + "isomorphic-unfetch": "^3.1.0", + "nanoid": "^3.3.1", + "read-pkg-up": "^7.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/node_modules/@types/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", + "dev": true, + "dependencies": { + "@types/minimatch": "^5.1.2", + "@types/node": "*" + } + }, "node_modules/@storybook/cli/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4727,6 +8075,15 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/@storybook/cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/@storybook/cli/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -4775,6 +8132,44 @@ "node": ">=14.14" } }, + "node_modules/@storybook/cli/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/cli/node_modules/glob-promise": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.2.tgz", + "integrity": "sha512-Ni2aDyD1ekD6x8/+K4hDriRDbzzfuK4yKpqSymJ4P7IxbtARiOOuU+k40kbHM0sLIlbf1Qh0qdMkAHMZYE6XJQ==", + "dev": true, + "dependencies": { + "@types/glob": "^8.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/ahmadnassri" + }, + "peerDependencies": { + "glob": "^8.0.3" + } + }, "node_modules/@storybook/cli/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4784,6 +8179,27 @@ "node": ">=8" } }, + "node_modules/@storybook/cli/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/cli/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@storybook/cli/node_modules/semver": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", @@ -4816,6 +8232,7 @@ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.18.tgz", "integrity": "sha512-uKgFdVedYoRDZBVrE1IBdWNHDFln1IxWEeI+7ZiNSQwREG9swHpU5Fa8DceclM/oLjJRuzG1jFzv+XZY8894+Q==", "dev": true, + "peer": true, "dependencies": { "@storybook/global": "^5.0.0" }, @@ -4825,18 +8242,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.0.18.tgz", - "integrity": "sha512-+9XFns29e8FpPLsqA8ZCQ3mNnIIKD3QnqGYkbkCVKi/G1fomvVQsIfsnkrYv5SobTbz29B4aNWxAaeSnO7/OGg==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.0.20.tgz", + "integrity": "sha512-ZyxtYxp+1yEV0Z7qGeov/neeE9yYEOzobNuHDJ/nA0HNrXkeIolmvb9TFhSpOiSxRdHJhpBQG/U76KZMdAhNdw==", "dev": true, "dependencies": { "@babel/core": "~7.21.0", "@babel/preset-env": "~7.21.0", "@babel/types": "~7.21.2", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.0.18", - "@storybook/node-logger": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/csf-tools": "7.0.20", + "@storybook/node-logger": "7.0.20", + "@storybook/types": "7.0.20", "cross-spawn": "^7.0.3", "globby": "^11.0.2", "jscodeshift": "^0.14.0", @@ -4879,6 +8296,21 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@storybook/codemod/node_modules/@babel/generator": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", + "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@storybook/codemod/node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", @@ -4896,6 +8328,18 @@ "@babel/core": "^7.4.0-0" } }, + "node_modules/@storybook/codemod/node_modules/@babel/parser": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", + "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@storybook/codemod/node_modules/@babel/preset-env": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz", @@ -4986,6 +8430,27 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@storybook/codemod/node_modules/@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@storybook/codemod/node_modules/@babel/types": { "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", @@ -5000,6 +8465,84 @@ "node": ">=6.9.0" } }, + "node_modules/@storybook/codemod/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/codemod/node_modules/@storybook/csf-tools": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.20.tgz", + "integrity": "sha512-m68wLgN5G7XIChQrjeILBYu+4TVHfllIrIJXMZ3Gi+iplOCHsQLfA6Oa0VtTB09Ol5K2StdMHjBCoR6HfHzsXA==", + "dev": true, + "dependencies": { + "@babel/generator": "~7.21.1", + "@babel/parser": "~7.21.2", + "@babel/traverse": "~7.21.2", + "@babel/types": "~7.21.2", + "@storybook/csf": "^0.1.0", + "@storybook/types": "7.0.20", + "fs-extra": "^11.1.0", + "recast": "^0.23.1", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/codemod/node_modules/@storybook/node-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.20.tgz", + "integrity": "sha512-CibPbHs7ELVtx7++5OGHL13lMG0vKEBGBBcb3FJFgf5fLYOor3jJ/xbiUZpfdg34mwzXHTVUi7o4MMMd4nVe+g==", + "dev": true, + "dependencies": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/codemod/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/codemod/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@storybook/codemod/node_modules/babel-plugin-polyfill-corejs2": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", @@ -5039,17 +8582,86 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@storybook/components": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.0.18.tgz", - "integrity": "sha512-Jn1CbF9UAKt8BVaZtuhmthpcZ02VMaCFXR0ISfDXCpiMKnylmpP0+WfXcoKLzz6yS+EW8EW5S9+Qq8xgQY8H7A==", + "node_modules/@storybook/codemod/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/codemod/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/codemod/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@storybook/codemod/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/codemod/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/codemod/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/components": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.0.20.tgz", + "integrity": "sha512-eoEtby/yVkvUKpXfktibxPOhR5UBsWnKRWQUNSxN0vYTG4iBBh3HdjgxFJYfSXV13J+6OfvpBPLlPC+enXrbrQ==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -5063,28 +8675,705 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@storybook/core-client": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.18.tgz", - "integrity": "sha512-ueExRZx6fd9LRssgdhDJ0bL4Ir2RrbXzJz/kjIT2KgYY3l7jkhe0dpT3bOgGKjQt0f7XMFU24t/r7aDLGMB+2Q==", + "node_modules/@storybook/components/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/components/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", - "@storybook/preview-api": "7.0.18" + "@storybook/global": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/core-common": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.18.tgz", - "integrity": "sha512-HZAB1NIK/Yv0x9poyzqYcue2tx39+MAF1mbHgGy+JJZRerO2fRShgo8f8VPH9ChbFCoJ7isL5wNhgGdg9kp2kA==", + "node_modules/@storybook/components/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", "dev": true, "dependencies": { - "@storybook/node-logger": "7.0.18", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/components/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-client": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.0.20.tgz", + "integrity": "sha512-POKAxwwbX+nDiqpVDjrV0H+GFmEg1IcmUWnmiE69n9GibX6zwGh3plJDKb+y0nK8eR4SRgLe8PovMEO/+W/xsw==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "@storybook/preview-api": "7.0.20" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-client/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-client/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-client/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-client/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-client/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-client/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-events": { + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.18.tgz", + "integrity": "sha512-7gxHBQDezdKOeq/u1LL80Bwjfcwsv7XOS3yWQElcgqp+gLaYB6OwwgtkCB2yV6a6l4nep9IdPWE8G3TxIzn9xw==", + "dev": true, + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/csf": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.1.tgz", + "integrity": "sha512-4hE3AlNVxR60Wc5KSC68ASYzUobjPqtSKyhV6G+ge0FIXU55N5nTY7dXGRZHQGDBPq+XqchMkIdlkHPRs8nTHg==", + "dev": true, + "dependencies": { + "type-fest": "^2.19.0" + } + }, + "node_modules/@storybook/csf-plugin": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.0.20.tgz", + "integrity": "sha512-jxEZN2Hf4qpALzDXX3gKy7c0nUM4BfDiAnUqTeJIks6nFUOF00qoU1qNqJzYScH1AXI9J7LwXJ6n8b0DSW/H3Q==", + "dev": true, + "dependencies": { + "@storybook/csf-tools": "7.0.20", + "unplugin": "^0.10.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/csf-plugin/node_modules/@babel/generator": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", + "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/csf-plugin/node_modules/@babel/parser": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", + "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@storybook/csf-plugin/node_modules/@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/csf-plugin/node_modules/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/csf-plugin/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/csf-plugin/node_modules/@storybook/csf-tools": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.20.tgz", + "integrity": "sha512-m68wLgN5G7XIChQrjeILBYu+4TVHfllIrIJXMZ3Gi+iplOCHsQLfA6Oa0VtTB09Ol5K2StdMHjBCoR6HfHzsXA==", + "dev": true, + "dependencies": { + "@babel/generator": "~7.21.1", + "@babel/parser": "~7.21.2", + "@babel/traverse": "~7.21.2", + "@babel/types": "~7.21.2", + "@storybook/csf": "^0.1.0", + "@storybook/types": "7.0.20", + "fs-extra": "^11.1.0", + "recast": "^0.23.1", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/csf-plugin/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/csf-plugin/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/docs-mdx": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz", + "integrity": "sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==", + "dev": true + }, + "node_modules/@storybook/global": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", + "dev": true + }, + "node_modules/@storybook/manager-api": { + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.18.tgz", + "integrity": "sha512-anQkm09twL96YkKGXHa+LI0+yMaY6Jxs1lRaetHdMlIqN4VHBHhizHaMgtGfH6xCTuO3WdrKTN7cZii5RH7PBQ==", + "dev": true, + "peer": true, + "dependencies": { + "@storybook/channels": "7.0.18", + "@storybook/client-logger": "7.0.18", + "@storybook/core-events": "7.0.18", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/router": "7.0.18", + "@storybook/theming": "7.0.18", "@storybook/types": "7.0.18", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "semver": "^7.3.7", + "store2": "^2.14.2", + "telejson": "^7.0.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/manager-api/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/mdx2-csf": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz", + "integrity": "sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==", + "dev": true + }, + "node_modules/@storybook/postinstall": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.0.20.tgz", + "integrity": "sha512-Aj+42Ld3fo0IGMEU3aqnrsFgK6V3EGmN07hS08PsY1g7RLBC0Xm6l0jMvehidNEyZWwUEXVro136bdnJVKnOKg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/preview": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.0.20.tgz", + "integrity": "sha512-ayC7Aud0WM91ki+UM/CInd3GbGPmkUaeT6fqs9zvH8H4QQGznr9E8sI9IUQN0dbpGWayZn0m7Ma89EHwpWOwiw==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/preview-api": { + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.18.tgz", + "integrity": "sha512-xxtC0gPGMn/DbwvS4ZuJaBwfFNsjUCf0yLYHFrNe6fxncbvcLZ550RuyUwYuIRfsiKrlgfa3QmmCa4JM/JesHQ==", + "dev": true, + "peer": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.18", + "@storybook/channels": "7.0.18", + "@storybook/client-logger": "7.0.18", + "@storybook/core-events": "7.0.18", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.18", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/react-dom-shim": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.0.20.tgz", + "integrity": "sha512-/TpK3WZFQ/wV3Z1sCYf5PN+u2XdncozE+wHdoXO0FYr3BY3w0BOeMLg6DauX9Nlbs8nh0RiIvck/sm/eBZH+qA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/router": { + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.18.tgz", + "integrity": "sha512-Mue4s/BnKgdYcsiW9yuvW3qL9k3AgYn5HIhnkBExAteyiUGdAca4IJFhArmGgFktgeLc4ecBQ7sgaCljApnbgg==", + "dev": true, + "peer": true, + "dependencies": { + "@storybook/client-logger": "7.0.18", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/theming": { + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.18.tgz", + "integrity": "sha512-P1gMKa/mKQHIMq0sxBIwTzAcF6v/6hrc62YmkuV62vXu+8zNV2YWbRwywqm3Q6faZEadmb/bL9+z8whaKhCL/g==", + "dev": true, + "peer": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.18", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/types": { + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.18.tgz", + "integrity": "sha512-qPop2CbvmX42/BX29YT9jIzW2TlMcMjAE+KCpcKLBiD1oT5DJ1fhMzpe6RW9HkMegkBxjWx54iamN4oHM/pwcQ==", + "dev": true, + "peer": true, + "dependencies": { + "@storybook/channels": "7.0.18", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.0.20.tgz", + "integrity": "sha512-N2azRnxzpKpw1svHz6/HUXwuO9RgWqUdN/ImDbswmV7eep3yLIqaL6OvsjicYYmLXFmwjVdGLhvq6/tMCZpELQ==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "@storybook/core-client": "7.0.20", + "@storybook/docs-tools": "7.0.20", + "@storybook/global": "^5.0.0", + "@storybook/manager-api": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/types": "7.0.20", + "ts-dedent": "^2.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "lit": "^2.0.0" + } + }, + "node_modules/@storybook/web-components-vite": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.0.20.tgz", + "integrity": "sha512-qqFpuc3UA2P+PqTdIeN9w0y9KPE386/GQxvJlhuVXbwxV2k2I3KUva/7DsViE9Z6eUYQ01KhveSbIJLUJ9KHcw==", + "dev": true, + "dependencies": { + "@storybook/builder-vite": "7.0.20", + "@storybook/core-server": "7.0.20", + "@storybook/node-logger": "7.0.20", + "@storybook/web-components": "7.0.20", + "magic-string": "^0.27.0" + }, + "engines": { + "node": "^14.18 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@babel/generator": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", + "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@babel/parser": { + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", + "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@storybook/builder-manager": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.0.20.tgz", + "integrity": "sha512-D1k7fZnEn/G4a6Ob7JWR3IsDsI2IiI42DEoi1h3Rmx9vBwBJatRatvIJz2qUxbQ00l+F5rnnmp8uIHG3FOFf1A==", + "dev": true, + "dependencies": { + "@fal-works/esbuild-plugin-global-externals": "^2.1.2", + "@storybook/core-common": "7.0.20", + "@storybook/manager": "7.0.20", + "@storybook/node-logger": "7.0.20", + "@types/ejs": "^3.1.1", + "@types/find-cache-dir": "^3.2.1", + "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", + "browser-assert": "^1.2.1", + "ejs": "^3.1.8", + "esbuild": "^0.17.0", + "esbuild-plugin-alias": "^0.2.1", + "express": "^4.17.3", + "find-cache-dir": "^3.0.0", + "fs-extra": "^11.1.0", + "process": "^0.11.10", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@storybook/core-common": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.20.tgz", + "integrity": "sha512-4uh/zMs884rlYSfPEzsZy8Z7lchitZTKI6031gigEMBBgdYZ1eHqwz91YfQK7e2dFKjxfw2y9HS1yRI57RJrQg==", + "dev": true, + "dependencies": { + "@storybook/node-logger": "7.0.20", + "@storybook/types": "7.0.20", "@types/node": "^16.0.0", "@types/pretty-hrtime": "^1.0.0", "chalk": "^4.1.0", @@ -5108,198 +9397,36 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/core-common/node_modules/@types/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", - "dev": true, - "dependencies": { - "@types/minimatch": "^5.1.2", - "@types/node": "*" - } - }, - "node_modules/@storybook/core-common/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@storybook/core-common/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/core-common/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/core-common/node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@storybook/core-common/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@storybook/core-common/node_modules/glob-promise": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.2.tgz", - "integrity": "sha512-Ni2aDyD1ekD6x8/+K4hDriRDbzzfuK4yKpqSymJ4P7IxbtARiOOuU+k40kbHM0sLIlbf1Qh0qdMkAHMZYE6XJQ==", - "dev": true, - "dependencies": { - "@types/glob": "^8.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/ahmadnassri" - }, - "peerDependencies": { - "glob": "^8.0.3" - } - }, - "node_modules/@storybook/core-common/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/core-common/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-events": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.18.tgz", - "integrity": "sha512-7gxHBQDezdKOeq/u1LL80Bwjfcwsv7XOS3yWQElcgqp+gLaYB6OwwgtkCB2yV6a6l4nep9IdPWE8G3TxIzn9xw==", + "node_modules/@storybook/web-components-vite/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/core-server": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.18.tgz", - "integrity": "sha512-zGSGYSoCaSXM28OYKW7zsmpo8VU1icubXLRgdF21fbMhFN1WVS+bPA5+gSkAMf8acq5RNM8uSKskh7E2YDVEqA==", + "node_modules/@storybook/web-components-vite/node_modules/@storybook/core-server": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.0.20.tgz", + "integrity": "sha512-hNKwi5QZMhfeqw8+UmU6hCIIQfTC5r1ItaKZIeF43HnSt4hNKoA9fHu1UCS5UA56KddBxSAPggroEF+Ah8ZHcg==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.88", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.0.18", - "@storybook/core-common": "7.0.18", - "@storybook/core-events": "7.0.18", + "@storybook/builder-manager": "7.0.20", + "@storybook/core-common": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.0.18", + "@storybook/csf-tools": "7.0.20", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.0.18", - "@storybook/node-logger": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/telemetry": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/manager": "7.0.20", + "@storybook/node-logger": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/telemetry": "7.0.20", + "@storybook/types": "7.0.20", "@types/detect-port": "^1.3.0", "@types/node": "^16.0.0", "@types/node-fetch": "^2.5.7", @@ -5334,7 +9461,128 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/core-server/node_modules/ansi-styles": { + "node_modules/@storybook/web-components-vite/node_modules/@storybook/csf-tools": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.20.tgz", + "integrity": "sha512-m68wLgN5G7XIChQrjeILBYu+4TVHfllIrIJXMZ3Gi+iplOCHsQLfA6Oa0VtTB09Ol5K2StdMHjBCoR6HfHzsXA==", + "dev": true, + "dependencies": { + "@babel/generator": "~7.21.1", + "@babel/parser": "~7.21.2", + "@babel/traverse": "~7.21.2", + "@babel/types": "~7.21.2", + "@storybook/csf": "^0.1.0", + "@storybook/types": "7.0.20", + "fs-extra": "^11.1.0", + "recast": "^0.23.1", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@storybook/manager": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.20.tgz", + "integrity": "sha512-m79G2FMCIBQlF5FtnCoPP3B0Uy79SWmYLSTMmK/a2d5MS26d7eNOVT1W6httPMZlgy26/OjO7JcQVQsliQ4nxw==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@storybook/node-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.20.tgz", + "integrity": "sha512-CibPbHs7ELVtx7++5OGHL13lMG0vKEBGBBcb3FJFgf5fLYOor3jJ/xbiUZpfdg34mwzXHTVUi7o4MMMd4nVe+g==", + "dev": true, + "dependencies": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", + "dev": true, + "dependencies": { + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/csf": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.0.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@storybook/telemetry": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.20.tgz", + "integrity": "sha512-yCNPtu7yrFiBgriaM6Mq68871hTGbDmuiwAF4TXWnpEygtBKFpUomKcwVHGf8Fsc3xdXGl5m6uTfAPseWxfaVA==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "7.0.20", + "@storybook/core-common": "7.0.20", + "chalk": "^4.1.0", + "detect-package-manager": "^2.0.1", + "fetch-retry": "^5.0.2", + "fs-extra": "^11.1.0", + "isomorphic-unfetch": "^3.1.0", + "nanoid": "^3.3.1", + "read-pkg-up": "^7.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/@types/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", + "dev": true, + "dependencies": { + "@types/minimatch": "^5.1.2", + "@types/node": "*" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -5349,7 +9597,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@storybook/core-server/node_modules/chalk": { + "node_modules/@storybook/web-components-vite/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -5365,7 +9622,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/core-server/node_modules/color-convert": { + "node_modules/@storybook/web-components-vite/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -5377,13 +9634,13 @@ "node": ">=7.0.0" } }, - "node_modules/@storybook/core-server/node_modules/color-name": { + "node_modules/@storybook/web-components-vite/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/@storybook/core-server/node_modules/fs-extra": { + "node_modules/@storybook/web-components-vite/node_modules/fs-extra": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", @@ -5397,7 +9654,45 @@ "node": ">=14.14" } }, - "node_modules/@storybook/core-server/node_modules/has-flag": { + "node_modules/@storybook/web-components-vite/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/glob-promise": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.2.tgz", + "integrity": "sha512-Ni2aDyD1ekD6x8/+K4hDriRDbzzfuK4yKpqSymJ4P7IxbtARiOOuU+k40kbHM0sLIlbf1Qh0qdMkAHMZYE6XJQ==", + "dev": true, + "dependencies": { + "@types/glob": "^8.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/ahmadnassri" + }, + "peerDependencies": { + "glob": "^8.0.3" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -5406,7 +9701,40 @@ "node": ">=8" } }, - "node_modules/@storybook/core-server/node_modules/semver": { + "node_modules/@storybook/web-components-vite/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/web-components-vite/node_modules/semver": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", @@ -5421,7 +9749,7 @@ "node": ">=10" } }, - "node_modules/@storybook/core-server/node_modules/supports-color": { + "node_modules/@storybook/web-components-vite/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -5433,43 +9761,71 @@ "node": ">=8" } }, - "node_modules/@storybook/csf": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.1.tgz", - "integrity": "sha512-4hE3AlNVxR60Wc5KSC68ASYzUobjPqtSKyhV6G+ge0FIXU55N5nTY7dXGRZHQGDBPq+XqchMkIdlkHPRs8nTHg==", + "node_modules/@storybook/web-components/node_modules/@storybook/channel-postmessage": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-7.0.20.tgz", + "integrity": "sha512-GhVI40gbCnq20+Wjk/f8RD/T4gruLNKCjuwTnCAoKIQpMOVAB6ddx0469f9lF5tAha6alZn0MLk5CXPK8LAn5w==", "dev": true, "dependencies": { - "type-fest": "^2.19.0" - } - }, - "node_modules/@storybook/csf-plugin": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.0.18.tgz", - "integrity": "sha512-Cr/Qr4/H4JIYgbbmDjQIYuqjp6nOaZga73R3KZcuClk27B90sI2ADegMYvORgbFgSkwweNQjgak6hLoOyogAhw==", - "dev": true, - "dependencies": { - "@storybook/csf-tools": "7.0.18", - "unplugin": "^0.10.2" + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.0.3" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/csf-tools": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.0.18.tgz", - "integrity": "sha512-0IJ2qdrxleTl67FUzsEvGcy96CY0OKyERE33tAsLNbvWcabdJKpLHP+rJwbsCw4z6IlS+kkmEffeFf5qRPTwkQ==", + "node_modules/@storybook/web-components/node_modules/@storybook/channels": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.0.20.tgz", + "integrity": "sha512-AL5GGSQ8WTDUoh3gitKEzo3fu7Vq5okXq2pAknAZlQA2Oio+HHO5nMeXvOfGdvo/tzbpNE3n5utmCJz006xrCA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components/node_modules/@storybook/client-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.0.20.tgz", + "integrity": "sha512-h0maWgvrhoDVALrbQ6ZFF0/7koVAazMbqWLmV/SF4JB2cBSgfgO0gmrCmKzUAe+KOABK/TMQTEQc1S1js0Dorw==", "dev": true, "dependencies": { - "@babel/generator": "~7.21.1", - "@babel/parser": "~7.21.2", - "@babel/traverse": "~7.21.2", - "@babel/types": "~7.21.2", - "@storybook/csf": "^0.1.0", - "@storybook/types": "7.0.18", + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/web-components/node_modules/@storybook/core-common": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.0.20.tgz", + "integrity": "sha512-4uh/zMs884rlYSfPEzsZy8Z7lchitZTKI6031gigEMBBgdYZ1eHqwz91YfQK7e2dFKjxfw2y9HS1yRI57RJrQg==", + "dev": true, + "dependencies": { + "@storybook/node-logger": "7.0.20", + "@storybook/types": "7.0.20", + "@types/node": "^16.0.0", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.17.0", + "esbuild-register": "^3.4.0", + "file-system-cache": "^2.0.0", + "find-up": "^5.0.0", "fs-extra": "^11.1.0", - "recast": "^0.23.1", + "glob": "^8.1.0", + "glob-promise": "^6.0.2", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", "ts-dedent": "^2.0.0" }, "funding": { @@ -5477,98 +9833,26 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/csf-tools/node_modules/@babel/generator": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.9.tgz", - "integrity": "sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==", + "node_modules/@storybook/web-components/node_modules/@storybook/core-events": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.0.20.tgz", + "integrity": "sha512-gUBQsbcDmRufmg8LdH7D57c/9BQ+cPi2vBcXdudmxeJFafGwDmLRu1mlv9rxlW4kicn/LZWJjKXtq4XXzF4OGg==", "dev": true, - "dependencies": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/csf-tools/node_modules/@babel/parser": { - "version": "7.21.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.9.tgz", - "integrity": "sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@storybook/csf-tools/node_modules/@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@storybook/csf-tools/node_modules/@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@storybook/csf-tools/node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@storybook/docs-mdx": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz", - "integrity": "sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==", - "dev": true - }, - "node_modules/@storybook/docs-tools": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.18.tgz", - "integrity": "sha512-H95dW2DquGQ75ZVrFjvznPdCxT0eW6esDnemzLJB61KitcYZrWRavfrZzFtUcpzIa84OgY5pllFYt636v11LHQ==", + "node_modules/@storybook/web-components/node_modules/@storybook/docs-tools": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.0.20.tgz", + "integrity": "sha512-9MfQaIseC6fzU5McyBOYiVNHa4wiyVyNMG+rOgdDI4Q+JZDRm9wgf+mtB5Uc8bZZZJRUTxSKJwqeFlxn9zTJgA==", "dev": true, "dependencies": { "@babel/core": "^7.12.10", - "@storybook/core-common": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/core-common": "7.0.20", + "@storybook/preview-api": "7.0.20", + "@storybook/types": "7.0.20", "@types/doctrine": "^0.0.3", "doctrine": "^3.0.0", "lodash": "^4.17.21" @@ -5578,36 +9862,20 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/global": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", - "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", - "dev": true - }, - "node_modules/@storybook/manager": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.0.18.tgz", - "integrity": "sha512-hasb8XDmkT9lyX2cwb3Xg0ngcNQ1QCNHKurl2YJtXowb1CvawGKokhnVUTso15NCnurolDyw/Wqka1sagfm+Mg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/manager-api": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.18.tgz", - "integrity": "sha512-anQkm09twL96YkKGXHa+LI0+yMaY6Jxs1lRaetHdMlIqN4VHBHhizHaMgtGfH6xCTuO3WdrKTN7cZii5RH7PBQ==", + "node_modules/@storybook/web-components/node_modules/@storybook/manager-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.0.20.tgz", + "integrity": "sha512-/f4L63SWcj4OCck8hdKItnlq/QDZAF6fn4QDLdqXNhPsoi+G6YUMVBX23bW0ygyTM0nrOoAPLVP934H33Xb9Bg==", "dev": true, "dependencies": { - "@storybook/channels": "7.0.18", - "@storybook/client-logger": "7.0.18", - "@storybook/core-events": "7.0.18", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.0.18", - "@storybook/theming": "7.0.18", - "@storybook/types": "7.0.18", + "@storybook/router": "7.0.20", + "@storybook/theming": "7.0.20", + "@storybook/types": "7.0.20", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -5625,31 +9893,10 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@storybook/manager-api/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/mdx2-csf": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz", - "integrity": "sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==", - "dev": true - }, - "node_modules/@storybook/node-logger": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.18.tgz", - "integrity": "sha512-cIeKEBvELtoVP/5UeQ01GJWZ7wM69/9Q+R5uOtNQBlwWFcCD6AVFWMRqq7ObMvdJG/okhXSF+sDetb+BF3zvdw==", + "node_modules/@storybook/web-components/node_modules/@storybook/node-logger": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.0.20.tgz", + "integrity": "sha512-CibPbHs7ELVtx7++5OGHL13lMG0vKEBGBBcb3FJFgf5fLYOor3jJ/xbiUZpfdg34mwzXHTVUi7o4MMMd4nVe+g==", "dev": true, "dependencies": { "@types/npmlog": "^4.1.2", @@ -5662,109 +9909,19 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/node-logger/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@storybook/web-components/node_modules/@storybook/preview-api": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.20.tgz", + "integrity": "sha512-obtzMnI8X1GkOFivHUHsvXu8B0Lr/EECF+y35La1puGKbugviKj/k5vip2rlXmTDuqlxjexHZQOFz4n9NIeHiw==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/node-logger/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/node-logger/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/node-logger/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/node-logger/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/node-logger/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/postinstall": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.0.18.tgz", - "integrity": "sha512-ObIwAK2UiYhXN/7UifISQgBoH5jnyxh6T8kvCw83YhC78SDOPNgIGjToJECizJ7iubtqAWtCfCT5TrGEpyLGbg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/preview": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.0.18.tgz", - "integrity": "sha512-L53p2eo8G12U6tp7hD3mk5tdWFXLvdEyV9e7a1x9bw1LfH15K/bp8lO6U/W1kkpse7+rqWBqoTjJC1Ktm5Sxog==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/preview-api": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.0.18.tgz", - "integrity": "sha512-xxtC0gPGMn/DbwvS4ZuJaBwfFNsjUCf0yLYHFrNe6fxncbvcLZ550RuyUwYuIRfsiKrlgfa3QmmCa4JM/JesHQ==", - "dev": true, - "dependencies": { - "@storybook/channel-postmessage": "7.0.18", - "@storybook/channels": "7.0.18", - "@storybook/client-logger": "7.0.18", - "@storybook/core-events": "7.0.18", + "@storybook/channel-postmessage": "7.0.20", + "@storybook/channels": "7.0.20", + "@storybook/client-logger": "7.0.20", + "@storybook/core-events": "7.0.20", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.0.18", + "@storybook/types": "7.0.20", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5779,27 +9936,13 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/react-dom-shim": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.0.18.tgz", - "integrity": "sha512-O1FRypR8q1katjbznnxI+NtALd2gaWa7KnTwbIDf+ddZltXHMZ8xMiEGEtAMrfXlIuqIr9UvmLRfKZC/ysuA+g==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/router": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.18.tgz", - "integrity": "sha512-Mue4s/BnKgdYcsiW9yuvW3qL9k3AgYn5HIhnkBExAteyiUGdAca4IJFhArmGgFktgeLc4ecBQ7sgaCljApnbgg==", + "node_modules/@storybook/web-components/node_modules/@storybook/router": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.0.20.tgz", + "integrity": "sha512-Nzyy62hlP4QR3Dub2/PBqi2E7NjKUd1HBEMXFg2ggWF7ak2h9M1iPI0gGk6sUuC5NBVzYP20eF9wrz3Fe9eq8Q==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", + "@storybook/client-logger": "7.0.20", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -5812,28 +9955,53 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@storybook/telemetry": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.0.18.tgz", - "integrity": "sha512-JP5Z7lGU+oKjNmz2cZW5J7EerwyWBBPOU+NvvooZsymIx02ZvJ4ClmFtolJnBM7m4KoAy50JxV5NQWi+q8PicQ==", + "node_modules/@storybook/web-components/node_modules/@storybook/theming": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.20.tgz", + "integrity": "sha512-qmo/RKygt7W+NoHCfszChhSOFKe7eNeGzax4YR7yeX3brTzUQqGnb0onGv7MPtoCPhMFpbktK80u4biZtC7XhQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.0.18", - "@storybook/core-common": "7.0.18", - "chalk": "^4.1.0", - "detect-package-manager": "^2.0.1", - "fetch-retry": "^5.0.2", - "fs-extra": "^11.1.0", - "isomorphic-unfetch": "^3.1.0", - "nanoid": "^3.3.1", - "read-pkg-up": "^7.0.1" + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@storybook/client-logger": "7.0.20", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/web-components/node_modules/@storybook/types": { + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.20.tgz", + "integrity": "sha512-Z7RhHRnhrPd2jXPZtjbOILj1QgylqlsD3cFIYMcSz3yvUvxLRx3BKCftXyFbIuxr0QoCJE38adRp7YGO9uJnQQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.0.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/telemetry/node_modules/ansi-styles": { + "node_modules/@storybook/web-components/node_modules/@types/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", + "dev": true, + "dependencies": { + "@types/minimatch": "^5.1.2", + "@types/node": "*" + } + }, + "node_modules/@storybook/web-components/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -5848,7 +10016,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@storybook/telemetry/node_modules/chalk": { + "node_modules/@storybook/web-components/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@storybook/web-components/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -5864,7 +10041,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/telemetry/node_modules/color-convert": { + "node_modules/@storybook/web-components/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -5876,13 +10053,13 @@ "node": ">=7.0.0" } }, - "node_modules/@storybook/telemetry/node_modules/color-name": { + "node_modules/@storybook/web-components/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/@storybook/telemetry/node_modules/fs-extra": { + "node_modules/@storybook/web-components/node_modules/fs-extra": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", @@ -5896,7 +10073,45 @@ "node": ">=14.14" } }, - "node_modules/@storybook/telemetry/node_modules/has-flag": { + "node_modules/@storybook/web-components/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/web-components/node_modules/glob-promise": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.2.tgz", + "integrity": "sha512-Ni2aDyD1ekD6x8/+K4hDriRDbzzfuK4yKpqSymJ4P7IxbtARiOOuU+k40kbHM0sLIlbf1Qh0qdMkAHMZYE6XJQ==", + "dev": true, + "dependencies": { + "@types/glob": "^8.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/ahmadnassri" + }, + "peerDependencies": { + "glob": "^8.0.3" + } + }, + "node_modules/@storybook/web-components/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -5905,7 +10120,43 @@ "node": ">=8" } }, - "node_modules/@storybook/telemetry/node_modules/supports-color": { + "node_modules/@storybook/web-components/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/web-components/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/web-components/node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/web-components/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -5917,104 +10168,6 @@ "node": ">=8" } }, - "node_modules/@storybook/theming": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.0.18.tgz", - "integrity": "sha512-P1gMKa/mKQHIMq0sxBIwTzAcF6v/6hrc62YmkuV62vXu+8zNV2YWbRwywqm3Q6faZEadmb/bL9+z8whaKhCL/g==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.0.18", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/types": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.0.18.tgz", - "integrity": "sha512-qPop2CbvmX42/BX29YT9jIzW2TlMcMjAE+KCpcKLBiD1oT5DJ1fhMzpe6RW9HkMegkBxjWx54iamN4oHM/pwcQ==", - "dev": true, - "dependencies": { - "@storybook/channels": "7.0.18", - "@types/babel__core": "^7.0.0", - "@types/express": "^4.7.0", - "file-system-cache": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/web-components": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.0.18.tgz", - "integrity": "sha512-nDs9AuRd9vvAXg2E7M/pN1ChQcUHKkmqqvswT8KUlr0o0qoZnAtUloeFVH+4X06s/OZco7ROkHn1CQp1vbH5Sw==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.0.18", - "@storybook/core-client": "7.0.18", - "@storybook/docs-tools": "7.0.18", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.0.18", - "@storybook/preview-api": "7.0.18", - "@storybook/types": "7.0.18", - "ts-dedent": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "lit": "^2.0.0" - } - }, - "node_modules/@storybook/web-components-vite": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.0.18.tgz", - "integrity": "sha512-OQbaSnwNHikC9nfz3dSZIvD1RhrDT5AIst+ZYxGbYLkgxlmZv/SBmEt+XH4nX1XLhR9gFu6Qd3b+r/4xT2b/WA==", - "dev": true, - "dependencies": { - "@storybook/builder-vite": "7.0.18", - "@storybook/core-server": "7.0.18", - "@storybook/node-logger": "7.0.18", - "@storybook/web-components": "7.0.18", - "magic-string": "^0.27.0" - }, - "engines": { - "node": "^14.18 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/web-components-vite/node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@trivago/prettier-plugin-sort-imports": { "version": "4.1.1", "dev": true, @@ -6405,9 +10558,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.2.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.8.tgz", - "integrity": "sha512-lTyWUNrd8ntVkqycEEplasWy2OxNlShj3zqS0LuB1ENUGis5HodmhM7DtCoUGbxj3VW/WsGA0DUhpG6XrM7gPA==", + "version": "18.2.9", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.9.tgz", + "integrity": "sha512-pL3JAesUkF7PEQGxh5XOwdXGV907te6m1/Qe1ERJLgomojS6Ne790QiA7GUl434JEkFA2aAaB6qJ5z4e1zJn/w==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -14860,9 +19013,9 @@ } }, "node_modules/pyright": { - "version": "1.1.312", - "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.312.tgz", - "integrity": "sha512-9i2pQ+QepgAJAWxzKQGBza9XQupv+3l8YArTrG5DyEmryCDVGJpBnnsGxe6H7DnEUAkOiHrpUBpfkGqnCbzjsg==", + "version": "1.1.313", + "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.313.tgz", + "integrity": "sha512-oQfcr3CpR27gkULXhQbNFOyQ6NuRG6pmSiBqPX6DzYkfrBJG47VEnYU9wGvzoHaZirSt2DnLwzTjqsdiQNgWbA==", "dev": true, "bin": { "pyright": "index.js", @@ -16409,12 +20562,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.0.18.tgz", - "integrity": "sha512-FXMmTiomSlLPTHty7vGLr0prPf6pCV07EwAmNOYYYTskitEYV0R7hlhawByd7HuobjIhHvSTKesa1Whl86zLNA==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.0.20.tgz", + "integrity": "sha512-QxMdqeY7oigiwnVqVPp8550CUtfWW5fujkVXUhgyI1u4i9dpmJxkxWRvfSvhGKAvHf0n2BZ550SevZRPrCr+Tg==", "dev": true, "dependencies": { - "@storybook/cli": "7.0.18" + "@storybook/cli": "7.0.20" }, "bin": { "sb": "index.js", diff --git a/web/package.json b/web/package.json index 48797c24f..675ac137c 100644 --- a/web/package.json +++ b/web/package.json @@ -32,7 +32,7 @@ "@codemirror/lang-xml": "^6.0.2", "@codemirror/legacy-modes": "^6.3.2", "@codemirror/theme-one-dark": "^6.1.2", - "@formatjs/intl-listformat": "^7.2.2", + "@formatjs/intl-listformat": "^7.3.0", "@fortawesome/fontawesome-free": "^6.4.0", "@goauthentik/api": "^2023.5.3-1685646044", "@lit/localize": "^0.11.4", @@ -73,11 +73,11 @@ "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-typescript": "^11.1.1", "@squoosh/cli": "^0.7.3", - "@storybook/addon-essentials": "^7.0.18", - "@storybook/addon-links": "^7.0.18", - "@storybook/blocks": "^7.0.18", - "@storybook/web-components": "^7.0.18", - "@storybook/web-components-vite": "^7.0.18", + "@storybook/addon-essentials": "^7.0.20", + "@storybook/addon-links": "^7.0.20", + "@storybook/blocks": "^7.0.20", + "@storybook/web-components": "^7.0.20", + "@storybook/web-components-vite": "^7.0.20", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/chart.js": "^2.9.37", "@types/codemirror": "5.60.8", @@ -95,7 +95,7 @@ "lit-analyzer": "^1.2.1", "npm-run-all": "^4.1.5", "prettier": "^2.8.8", - "pyright": "^1.1.312", + "pyright": "^1.1.313", "react": "^18.2.0", "react-dom": "^18.2.0", "rollup": "^2.79.1", @@ -104,7 +104,7 @@ "rollup-plugin-minify-html-literals": "^1.2.6", "rollup-plugin-postcss-lit": "^2.0.0", "rollup-plugin-terser": "^7.0.2", - "storybook": "^7.0.18", + "storybook": "^7.0.20", "ts-lit-plugin": "^1.2.1", "tslib": "^2.5.3", "turnstile-types": "^1.1.2", diff --git a/web/src/assets/images/flow_background.jpg b/web/src/assets/images/flow_background.jpg index 487b20e96..89c4fd2b3 100644 Binary files a/web/src/assets/images/flow_background.jpg and b/web/src/assets/images/flow_background.jpg differ diff --git a/web/src/flow/FlowExecutor.ts b/web/src/flow/FlowExecutor.ts index bcc712509..49348b8e5 100644 --- a/web/src/flow/FlowExecutor.ts +++ b/web/src/flow/FlowExecutor.ts @@ -525,7 +525,8 @@ export class FlowExecutor extends Interface implements StageHost { ${this.flowInfo?.background?.startsWith("/static") ? html`