26 |
--------------------------------------------------------------------------------
/_data/MES Outcomes - CMS-Required DSSDW.csv:
--------------------------------------------------------------------------------
1 | Reference #,CMS Required Outcomes,Default Metrics,Regulatory Sources
2 | DSS/DW1,The system supports various business processes' reporting requirements, - Verify and validate the CMS annual report provisions from 431.428 (1) through 431.428 (11) are met annually. ,42 CFR 431.428
3 | DSS/DW2,The solution includes analytical and reporting capabilities to support key policy decision making, - Produce data-driven reporting on transaction data and performance to meet 433.112 (b) (15).,42 CFR 433.112
4 |
--------------------------------------------------------------------------------
/assets/types/Review/ReviewLink.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export interface ReviewLinkProps {
4 | /**
5 | * Provide this value to give screenreaders longer, more descriptive text to
6 | * explain the context of the link.
7 | */
8 | ariaLabel?: string;
9 | className?: string;
10 | children: React.ReactNode;
11 | href: string;
12 | onClick?: (...args: any[]) => any;
13 | }
14 |
15 | export default class ReviewLink extends React.Component {
16 | render(): JSX.Element;
17 | }
18 |
--------------------------------------------------------------------------------
/assets/images/checkmark-white.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/issue_template.md:
--------------------------------------------------------------------------------
1 | ## What is the goal or purpose of this issue?
2 | _Insert a clear and concise description of the purpose of this issue.
3 | Ex: The purpose of this issue is to revise outcome statements for readability and clarity.
4 | Ex: The purpose of this issue is to update the Roadmap markdown file._
5 |
6 | ## This issue is resolved when...
7 | - [ ] thing 1
8 | - [ ] thing 2
9 | - [ ] thing 3
10 | - [ ] ...
11 |
12 | ## Additional context
13 | _Add any other context, screenshots, or links about the request here_
14 |
--------------------------------------------------------------------------------
/assets/scss/settings/variables/_animation.scss:
--------------------------------------------------------------------------------
1 | $ease-in-out-expo: cubic-bezier(1, 0, 0, 1) !default;
2 |
3 | // Changing the base to a larger number will slow down all animations.
4 | // This can be useful when debugging animations.
5 | $speed-base: 1 !default;
6 | // 250ms is the quickest an animation can be for it to even be noticeable
7 | $animation-speed-1: 0.25s * $speed-base !default;
8 | $animation-speed-2: 0.3s * $speed-base !default;
9 | $animation-speed-3: 0.5s * $speed-base !default;
10 | $animation-speed-4: 0.8s * $speed-base !default;
11 |
--------------------------------------------------------------------------------
/_includes/header.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 | MES Certification Repository
13 |
14 |
15 |
--------------------------------------------------------------------------------
/assets/types/StepList/Step.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { StepObjectWithSubStep } from './StepList';
3 |
4 | export interface StepProps {
5 | step: StepObjectWithSubStep;
6 | onStepLinkClick?: (...args: any[]) => any;
7 | showSubSubSteps?: boolean;
8 | completedText: string;
9 | editText: string;
10 | resumeText: string;
11 | startText: string;
12 | actionsLabelText?: string;
13 | descriptionLabelText?: string;
14 | substepsLabelText?: string;
15 | }
16 |
17 | declare const Step: React.FC;
18 |
19 | export default Step;
20 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | This pull request resolves #
2 |
3 | **This pull request changes...**
4 | - expected change 1
5 | - expected change 2
6 |
7 | **Steps to manually review and verify this change...**
8 | 1. steps to view and verify change
9 | 2. ...
10 | 3. ...
11 |
12 | ### This pull request can be merged when…
13 | - [ ] The above pull request description is complete
14 | - [ ] The pull request author has tested the change successfully
15 | - [ ] The pull request author has assigned a CMS reviewer
16 | - [ ] The change has been reviewed and approved by CMS
17 |
--------------------------------------------------------------------------------
/assets/types/Table/TableRow.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export interface TableRowProps {
4 | /**
5 | * The table row contents, usually `TableCell`.
6 | */
7 | children?: React.ReactNode;
8 | /**
9 | * @hide-prop This gets set from the parent `TableHead`
10 | */
11 | _isTableHeadChild?: boolean;
12 | /**
13 | * @hide-prop This gets set from the parent `Table`
14 | */
15 | _stackable?: boolean;
16 | }
17 |
18 | declare const TableRow: React.FC & TableRowProps>;
19 |
20 | export default TableRow;
21 |
--------------------------------------------------------------------------------
/_scss/color_schemes/cmms.scss:
--------------------------------------------------------------------------------
1 |
2 | $body-background-color: $grey-dk-300;
3 | $sidebar-color: $grey-dk-300;
4 | $border-color: $grey-dk-200;
5 |
6 | $body-text-color: $grey-lt-300;
7 | $body-heading-color: $grey-lt-000;
8 | $nav-child-link-color: $grey-dk-000;
9 | $search-result-preview-color: $grey-dk-000;
10 |
11 | $link-color: $blue-000;
12 | $btn-primary-color: $blue-200;
13 | $base-button-color: $grey-dk-250;
14 |
15 | $code-background-color: $grey-dk-250;
16 | $search-background-color: $grey-dk-250;
17 | $table-background-color: $grey-dk-250;
18 | $feedback-color: darken($sidebar-color, 3%);
--------------------------------------------------------------------------------
/assets/types/StepList/StepLink.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export type StepLinkComponent = React.ReactElement | ((...args: any[]) => any);
4 |
5 | export interface StepLinkProps {
6 | /**
7 | * Label text or HTML.
8 | */
9 | children: React.ReactNode;
10 | href: string;
11 | stepId?: string;
12 | screenReaderText?: string;
13 | className?: string;
14 | onClick?: (...args: any[]) => any;
15 | component?: StepLinkComponent;
16 | }
17 |
18 | export default class StepLink extends React.Component {
19 | render(): JSX.Element;
20 | }
21 |
--------------------------------------------------------------------------------
/_layouts/csv.html:
--------------------------------------------------------------------------------
1 | {% assign source = page.source | remove: ".csv" | replace: " ", "_" %}
2 | {%- for row in site.data[source] -%}
3 | {%- if forloop.first -%}
4 | {%- for pair in row -%}
5 | "{{ pair[0] }}"{%- unless forloop.last %},{% endunless -%}
6 | {% if forloop.last %}
7 | {% endif %}
8 | {%- endfor -%}
9 | {%- endif -%}
10 | {% raw %}
11 | {% endraw %}
12 | {%- for pair in row -%}
13 | "{{ pair[1] }}"{%- unless forloop.last %},{% endunless -%}
14 | {% if forloop.last %}
15 | {% endif %}
16 | {%- endfor -%}
17 | {%- endfor -%}
18 |
--------------------------------------------------------------------------------
/assets/images/usa-banner-flag.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/types/InlineError/InlineError.d.ts:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | /**
3 | * is an internal component used by and
4 | * is also exported for advanced design system use cases, where the internal component can be leveraged to build custom form components
5 | */
6 | interface InlineErrorProps {
7 | children?: React.ReactNode;
8 | className?: string;
9 | id?: string;
10 | inversed?: boolean;
11 | }
12 | export declare function InlineError({ children, className, id, inversed, }: InlineErrorProps): React.ReactElement;
13 | export default InlineError;
14 |
--------------------------------------------------------------------------------
/assets/images/usa-banner-flag-es.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/scss/settings/variables/_build.scss:
--------------------------------------------------------------------------------
1 | // Paths
2 | $font-path: '../fonts' !default;
3 | $image-path: '../images' !default;
4 |
5 | // Override these variables to change what CSS rulesets get outputted when
6 | // the Sass is transpiled to CSS
7 | $ds-include-base-html-rulesets: true !default;
8 |
9 | // Set $ds-include-focus-styles to enable the CMSDS focus styles.
10 | $ds-include-focus-styles: true !default;
11 |
12 | // Set $ds-include-choice-error-highlight to automatically add an error highlight to choice components inside a ChoiceList with an errorMessage.
13 | $ds-include-choice-error-highlight: false !default;
14 |
--------------------------------------------------------------------------------
/assets/scss/settings/variables/_shadow.scss:
--------------------------------------------------------------------------------
1 | // Shadows can be used to indicate focus or depth, and should behave as if there
2 | // is one light source. In practice, this means the offsets should be similar and
3 | // different elements shouldn't have contradicting offsets (ie. one is positive
4 | // and the other is negative).
5 | $shadow-base-offset-x: 2px !default;
6 | $shadow-base-offset-y: 2px !default;
7 | $shadow-base-blur-radius: 4px !default;
8 | $shadow-base-color: rgba(0, 0, 0, 0.25) !default;
9 | $shadow-base: $shadow-base-offset-x $shadow-base-offset-y $shadow-base-blur-radius
10 | $shadow-base-color !default;
11 |
--------------------------------------------------------------------------------
/assets/images/close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/scss/settings/mixins/_layout.scss:
--------------------------------------------------------------------------------
1 | @mixin clearfix {
2 | &::before {
3 | content: '';
4 | display: table;
5 | }
6 |
7 | &::after {
8 | clear: both;
9 | content: '';
10 | display: table;
11 | }
12 | }
13 |
14 | @mixin flexbox-col($size) {
15 | flex: 0 0 percentage($size / $grid-columns);
16 | max-width: percentage($size / $grid-columns); // IE10+ and Firefox
17 | }
18 |
19 | @mixin equal-width-flexbox-col() {
20 | flex-basis: 0;
21 | flex-grow: 1;
22 | max-width: 100%;
23 | }
24 |
25 | @mixin auto-width-flexbox-col() {
26 | flex: 0 0 auto;
27 | max-width: none;
28 | width: auto;
29 | }
30 |
--------------------------------------------------------------------------------
/assets/types/flags.d.ts:
--------------------------------------------------------------------------------
1 | declare type errorPlacementValue = 'top' | 'bottom';
2 | export declare function errorPlacementDefault(): errorPlacementValue;
3 | export declare function setErrorPlacementDefault(value: errorPlacementValue): void;
4 | export declare function alertSendsAnalytics(): boolean;
5 | export declare function setAlertSendsAnalytics(value: boolean): void;
6 | export declare function dialogSendsAnalytics(): boolean;
7 | export declare function setDialogSendsAnalytics(value: boolean): void;
8 | export declare function helpDrawerSendsAnalytics(): boolean;
9 | export declare function setHelpDrawerSendsAnalytics(value: boolean): void;
10 | export {};
11 |
--------------------------------------------------------------------------------
/assets/components/Tabs/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | Object.defineProperty(exports, "Tabs", {
7 | enumerable: true,
8 | get: function get() {
9 | return _Tabs.default;
10 | }
11 | });
12 | Object.defineProperty(exports, "TabPanel", {
13 | enumerable: true,
14 | get: function get() {
15 | return _TabPanel.default;
16 | }
17 | });
18 |
19 | var _Tabs = _interopRequireDefault(require("./Tabs"));
20 |
21 | var _TabPanel = _interopRequireDefault(require("./TabPanel"));
22 |
23 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
--------------------------------------------------------------------------------
/assets/images/close--primary.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/components/Dropdown/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | Object.defineProperty(exports, "Dropdown", {
7 | enumerable: true,
8 | get: function get() {
9 | return _Dropdown.default;
10 | }
11 | });
12 | Object.defineProperty(exports, "Select", {
13 | enumerable: true,
14 | get: function get() {
15 | return _Select.default;
16 | }
17 | });
18 |
19 | var _Dropdown = _interopRequireDefault(require("./Dropdown"));
20 |
21 | var _Select = _interopRequireDefault(require("./Select"));
22 |
23 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
--------------------------------------------------------------------------------
/assets/esnext/DateField/defaultDateFormatter.js:
--------------------------------------------------------------------------------
1 | // Prevents day/month greater than 2 digits and year greater than 4 digits
2 | var standardLengthFormatter = function standardLengthFormatter(_ref) {
3 | var day = _ref.day,
4 | month = _ref.month,
5 | year = _ref.year;
6 | return {
7 | day: day.length > 2 ? day.substring(0, 2) : day,
8 | month: month.length > 2 ? month.substring(0, 2) : month,
9 | year: year.length > 4 ? year.substring(0, 4) : year
10 | };
11 | };
12 |
13 | export var defaultDateFormatter = function defaultDateFormatter(dateObject) {
14 | return standardLengthFormatter(dateObject);
15 | };
16 | export default defaultDateFormatter;
--------------------------------------------------------------------------------
/assets/types/UsaBanner/UsaBanner.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export type LocaleLanguage = 'en' | 'es';
4 |
5 | export interface UsaBannerProps {
6 | /**
7 | * Additional classes to be added to the root `section` element
8 | */
9 | className?: string;
10 | /**
11 | * A unique ID to be applied to the banner content. A unique ID will be generated if one isn't provided.
12 | */
13 | id?: string;
14 | /**
15 | * The language the USA Banner will be presented in.
16 | */
17 | locale?: LocaleLanguage,
18 | }
19 |
20 | export default class UsaBanner extends React.Component {
21 | render(): JSX.Element;
22 | }
23 |
--------------------------------------------------------------------------------
/assets/images/close--primary-darker.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/components/ChoiceList/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | Object.defineProperty(exports, "ChoiceList", {
7 | enumerable: true,
8 | get: function get() {
9 | return _ChoiceList.default;
10 | }
11 | });
12 | Object.defineProperty(exports, "Choice", {
13 | enumerable: true,
14 | get: function get() {
15 | return _Choice.default;
16 | }
17 | });
18 |
19 | var _ChoiceList = _interopRequireDefault(require("./ChoiceList"));
20 |
21 | var _Choice = _interopRequireDefault(require("./Choice"));
22 |
23 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
--------------------------------------------------------------------------------
/assets/components/DateField/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | Object.defineProperty(exports, "DateField", {
7 | enumerable: true,
8 | get: function get() {
9 | return _DateField.default;
10 | }
11 | });
12 | Object.defineProperty(exports, "DateInput", {
13 | enumerable: true,
14 | get: function get() {
15 | return _DateInput.default;
16 | }
17 | });
18 |
19 | var _DateField = _interopRequireDefault(require("./DateField"));
20 |
21 | var _DateInput = _interopRequireDefault(require("./DateInput"));
22 |
23 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
--------------------------------------------------------------------------------
/assets/components/Tooltip/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | Object.defineProperty(exports, "Tooltip", {
7 | enumerable: true,
8 | get: function get() {
9 | return _Tooltip.default;
10 | }
11 | });
12 | Object.defineProperty(exports, "TooltipIcon", {
13 | enumerable: true,
14 | get: function get() {
15 | return _TooltipIcon.default;
16 | }
17 | });
18 |
19 | var _Tooltip = _interopRequireDefault(require("./Tooltip"));
20 |
21 | var _TooltipIcon = _interopRequireDefault(require("./TooltipIcon"));
22 |
23 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
--------------------------------------------------------------------------------
/assets/scss/index.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * index.scss - SCSS entry point
3 | */
4 | // Settings: Globally-available variables, mixins, functions and config (Sass code that doesn't output CSS)
5 | @import 'settings/index';
6 | // Fonts are unique from other settings because font-faces are compiled and included css build files
7 | // TODO: use @use or some other solution to handle fontfaces and font/image paths better
8 | @import 'font';
9 |
10 | // Base: Namespaced selectors for HTML elements (i.e. ds-base, ds-h1, ds-text)
11 | @import 'base/index';
12 |
13 | // Components: Designed UI units
14 | @import 'components/index';
15 |
16 | // Utilities: Overrides, helpers
17 | @import 'utilities/index';
18 |
--------------------------------------------------------------------------------
/assets/types/SkipNav/SkipNav.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export interface SkipNavProps {
4 | /**
5 | * Skip nav label
6 | */
7 | children: React.ReactNode;
8 | /**
9 | * The anchor or target for the link (where the link will jump the user to)
10 | */
11 | href: string;
12 | /**
13 | * An onClick handler used for manually setting focus on the content.
14 | * Sometimes it's necessary to manually set focus, like when an app uses hash
15 | * routing and element-id links will be mistaken for routes.
16 | */
17 | onClick?: (...args: any[]) => any;
18 | }
19 |
20 | declare const SkipNav: React.FC;
21 |
22 | export default SkipNav;
23 |
--------------------------------------------------------------------------------
/assets/components/MonthPicker/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | Object.defineProperty(exports, "MonthPicker", {
7 | enumerable: true,
8 | get: function get() {
9 | return _MonthPicker.default;
10 | }
11 | });
12 | Object.defineProperty(exports, "getMonthNames", {
13 | enumerable: true,
14 | get: function get() {
15 | return _getMonthNames.getMonthNames;
16 | }
17 | });
18 |
19 | var _MonthPicker = _interopRequireDefault(require("./MonthPicker"));
20 |
21 | var _getMonthNames = require("./getMonthNames");
22 |
23 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
--------------------------------------------------------------------------------
/assets/css/style.scss:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 | @import "{{ site.theme }}";
5 |
6 | $color-primary: #0071BC;
7 | $color-primary-darker: #205493;
8 | $color-primary-darkest: #112E51;
9 | $color-black: #000000;
10 | $color-base: #212121;
11 | $color-gray-dark: #323A45;
12 | $color-gray-light: #AEB0B5;
13 | $color-white: #FFFFFF;
14 |
15 | a {
16 | color: $color-primary;
17 | text-decoration:none;
18 | }
19 |
20 | a:hover, a:focus {
21 | color: $color-primary-darker;
22 | font-weight: bold;
23 | }
24 |
25 | a small {
26 | font-size:11px;
27 | color:#777;
28 | margin-top:-0.3em;
29 | display:block;
30 | }
31 |
32 | a:hover small {
33 | color:#777;
34 | }
--------------------------------------------------------------------------------
/assets/components/Accordion/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | Object.defineProperty(exports, "Accordion", {
7 | enumerable: true,
8 | get: function get() {
9 | return _Accordion.default;
10 | }
11 | });
12 | Object.defineProperty(exports, "AccordionItem", {
13 | enumerable: true,
14 | get: function get() {
15 | return _AccordionItem.default;
16 | }
17 | });
18 |
19 | var _Accordion = _interopRequireDefault(require("./Accordion"));
20 |
21 | var _AccordionItem = _interopRequireDefault(require("./AccordionItem"));
22 |
23 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
--------------------------------------------------------------------------------
/assets/components/HelpDrawer/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | Object.defineProperty(exports, "HelpDrawer", {
7 | enumerable: true,
8 | get: function get() {
9 | return _HelpDrawer.default;
10 | }
11 | });
12 | Object.defineProperty(exports, "HelpDrawerToggle", {
13 | enumerable: true,
14 | get: function get() {
15 | return _HelpDrawerToggle.default;
16 | }
17 | });
18 |
19 | var _HelpDrawer = _interopRequireDefault(require("./HelpDrawer"));
20 |
21 | var _HelpDrawerToggle = _interopRequireDefault(require("./HelpDrawerToggle"));
22 |
23 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
--------------------------------------------------------------------------------
/assets/scss/components/_Mask.scss:
--------------------------------------------------------------------------------
1 | @import '../settings/index.scss';
2 |
3 | .ds-c-field-mask {
4 | position: relative;
5 | }
6 |
7 | .ds-c-field__before {
8 | bottom: $input-padding;
9 | left: $input-padding;
10 | position: absolute;
11 | top: $input-padding;
12 | }
13 |
14 | .ds-c-field__before--currency {
15 | // Increase currency size so it serves more as an icon and
16 | // better aligns with the input value text
17 | font-size: $base-font-size + 2;
18 | font-weight: $font-bold;
19 | // Adjust to better align icon with value's baseline
20 | padding-top: 1px;
21 | }
22 |
23 | .ds-c-field--currency {
24 | // Normal padding + space for the icon + normal padding
25 | padding-left: $input-padding + 4px + $input-padding;
26 | }
27 |
--------------------------------------------------------------------------------
/assets/types/VerticalNav/VerticalNavItemLabel.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export type VerticalNavItemLabelComponent =
4 | | React.ReactElement
5 | | any
6 | | ((...args: any[]) => any);
7 |
8 | export interface VerticalNavItemLabelProps {
9 | ariaCollapsedStateButtonLabel?: string;
10 | ariaExpandedStateButtonLabel?: string;
11 | collapsed?: boolean;
12 | component?: VerticalNavItemLabelComponent;
13 | hasSubnav?: boolean;
14 | label: React.ReactNode;
15 | onClick?: (...args: any[]) => any;
16 | selected?: boolean;
17 | subnavId: string;
18 | url?: string;
19 | }
20 |
21 | export default class VerticalNavItemLabel extends React.Component {
22 | render(): JSX.Element;
23 | }
24 |
--------------------------------------------------------------------------------
/assets/scss/utilities/index.scss:
--------------------------------------------------------------------------------
1 | // Utilities Sass
2 | @import 'background-color.scss';
3 | @import 'border.scss';
4 | @import 'border-radius.scss';
5 | @import 'display-visibility.scss';
6 | @import 'flexbox.scss';
7 | @import 'float.scss';
8 | @import 'font-family.scss';
9 | @import 'font-size.scss';
10 | @import 'font-style.scss';
11 | @import 'font-weight.scss';
12 | @import 'grid.scss';
13 | @import 'line-height.scss';
14 | @import 'margin.scss';
15 | @import 'measure.scss';
16 | @import 'overflow.scss';
17 | @import 'padding.scss';
18 | @import 'text-align.scss';
19 | @import 'text-color.scss';
20 | @import 'text-decoration.scss';
21 | @import 'text-transform.scss';
22 | @import 'truncate.scss';
23 | @import 'vertical-align.scss';
24 | @import 'word-break.scss';
25 |
--------------------------------------------------------------------------------
/assets/scss/components/_Badge.scss:
--------------------------------------------------------------------------------
1 | @import '../settings/index.scss';
2 |
3 | .ds-c-badge {
4 | background-color: $color-gray;
5 | border-radius: $border-radius-pill;
6 | color: $color-white;
7 | display: inline-block;
8 | font-size: $font-size-sm;
9 | line-height: $heading-line-height;
10 | margin-right: $spacer-half;
11 | padding: $spacer-half $spacer-1;
12 |
13 | &:only-of-type {
14 | margin-right: 0;
15 | }
16 | }
17 |
18 | .ds-c-badge--info {
19 | background-color: $color-primary;
20 | }
21 |
22 | .ds-c-badge--success {
23 | background-color: $color-success;
24 | }
25 |
26 | .ds-c-badge--warn {
27 | background-color: $color-warn;
28 | color: $color-base;
29 | }
30 |
31 | .ds-c-badge--alert {
32 | background-color: $color-error;
33 | }
34 |
--------------------------------------------------------------------------------
/assets/locale/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "usaBanner": {
3 | "bannerLabel": "Official government website",
4 | "bannerText": "An official website of the United States government",
5 | "bannerActionText": "Here’s how you know",
6 | "domainHeaderText": "Official websites use .gov",
7 | "domainAText": "A",
8 | "domainText": "website belongs to an official government organization in the United States.",
9 | "govText": ".gov",
10 | "httpsHeaderText": "Secure .gov websites use HTTPS",
11 | "httpsOrText": "or",
12 | "httpsText": "https://",
13 | "httpsAText": "A",
14 | "httpsLockText": "lock",
15 | "httpsDetailText": "means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites. "
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/assets/esnext/MonthPicker/getMonthNames.js:
--------------------------------------------------------------------------------
1 | export var NUM_MONTHS = 12;
2 | /**
3 | * Generates an array of month names according to the given or default locale
4 | *
5 | * @param {string} [locale] locale for generating month names
6 | * @param {boolean} [short] whether to return short month names
7 | * @return {string[]} array of month names
8 | */
9 |
10 | export function getMonthNames(locale) {
11 | var short = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
12 | var options = {
13 | month: short ? 'short' : 'long'
14 | };
15 | var months = [];
16 |
17 | for (var i = 0; i < NUM_MONTHS; i++) {
18 | var date = new Date();
19 | date.setMonth(i, 1);
20 | months.push(date.toLocaleString(locale, options));
21 | }
22 |
23 | return months;
24 | }
--------------------------------------------------------------------------------
/assets/types/Badge/Badge.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export type BadgeSize = 'big';
4 |
5 | export type BadgeVariation = 'info' | 'success' | 'warn' | 'alert';
6 |
7 | export interface BadgeProps {
8 | /**
9 | * Additional classes to be added to the root badge element.
10 | * Useful for adding utility classes.
11 | */
12 | className?: string;
13 | /**
14 | * Label text or HTML.
15 | */
16 | children: React.ReactNode;
17 | /**
18 | * Sets the font size of the Badge
19 | */
20 | size?: BadgeSize;
21 | /**
22 | * A string corresponding to the badge-component variation classes
23 | */
24 | variation?: BadgeVariation;
25 | }
26 |
27 | declare const Badge: React.FC & BadgeProps>;
28 |
29 | export default Badge;
30 |
--------------------------------------------------------------------------------
/assets/types/TextField/maskHelpers.d.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Performs various transforms to format provided string as currency.
3 | * @param {String} value - a string containing at least one digit
4 | * @returns {String}
5 | */
6 | export declare function toCurrency(value: string): string;
7 | /**
8 | * Returns the value with additional masking characters, or the same value back if invalid numeric string
9 | * @param {String} value
10 | * @returns {String}
11 | */
12 | export declare function maskValue(value: string, mask: string): string;
13 | /**
14 | * Remove mask characters from value, or the same value back if invalid numeric string
15 | * @param {String} value
16 | * @param {String} mask
17 | * @returns {String}
18 | */
19 | export declare function unmaskValue(value: string, mask: string): string;
20 |
--------------------------------------------------------------------------------
/_includes/table.html:
--------------------------------------------------------------------------------
1 | {% if include.table %}
2 |
3 | {% assign table = include.table | replace: " ", "_" %}
4 |
5 | {% for row in site.data[table] %}
6 | {% if forloop.first %}
7 |
8 |
24 | {% else %}
25 | {% endif %}
26 |
27 |
--------------------------------------------------------------------------------
/assets/types/Tabs/Tabs.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export interface TabsProps {
4 | /**
5 | * Must only contain `TabPanel` components
6 | */
7 | children: React.ReactNode;
8 | /**
9 | * Sets the initial selected `TabPanel` state. If this isn't set, the first
10 | * `TabPanel` will be selected.
11 | */
12 | defaultSelectedId?: string;
13 | /**
14 | * A callback function that's invoked when the selected tab is changed.
15 | * `(selectedId, prevSelectedId) => void`
16 | */
17 | onChange?: (...args: any[]) => any;
18 | /**
19 | * Additional classes to be added to the component wrapping the tabs
20 | */
21 | tablistClassName?: string;
22 | }
23 |
24 | export default class Tabs extends React.Component {
25 | render(): JSX.Element;
26 | }
27 |
--------------------------------------------------------------------------------
/assets/scss/utilities/_float.scss:
--------------------------------------------------------------------------------
1 | /* stylelint-disable declaration-no-important */
2 | @import '../settings/index.scss';
3 |
4 | .ds-u-float--left {
5 | float: left !important;
6 | }
7 |
8 | .ds-u-float--right {
9 | float: right !important;
10 | }
11 |
12 | .ds-u-float--none {
13 | float: none !important;
14 | }
15 |
16 | @each $breakpoint in map-keys($breakpoints) {
17 | $value: map-get($breakpoints, $breakpoint);
18 |
19 | @media (min-width: $value) {
20 | .ds-u-#{$breakpoint}-float--left {
21 | float: left !important;
22 | }
23 |
24 | .ds-u-#{$breakpoint}-float--right {
25 | float: right !important;
26 | }
27 |
28 | .ds-u-#{$breakpoint}-float--none {
29 | float: none !important;
30 | }
31 | }
32 | }
33 |
34 | .ds-u-clearfix {
35 | @include clearfix;
36 | }
37 |
--------------------------------------------------------------------------------
/assets/scss/components/_DateField.scss:
--------------------------------------------------------------------------------
1 | @import '../settings/index.scss';
2 |
3 | .ds-c-field--month,
4 | .ds-c-field--day,
5 | .ds-c-field--year {
6 | box-sizing: content-box; // allows us to set width based on # of characters
7 | }
8 |
9 | .ds-c-field--month,
10 | .ds-c-field--day {
11 | width: 4ch; // provide additional spacing for browser UI
12 | }
13 |
14 | .ds-c-field--year {
15 | width: 6ch; // provide additional spacing for browser UI
16 | }
17 |
18 | .ds-c-datefield__separator {
19 | font-size: $font-size-2xl;
20 | line-height: $input-line-height * $base-font-size; // vertical dimensions should match adjacent inputs
21 | margin: ($input-border-width + $spacer-half) 0;
22 | padding: $input-padding 0;
23 | }
24 |
25 | .ds-c-datefield__label {
26 | font-weight: $font-normal;
27 | margin-top: $spacer-1;
28 | }
29 |
--------------------------------------------------------------------------------
/assets/locale/es.json:
--------------------------------------------------------------------------------
1 | {
2 | "usaBanner": {
3 | "bannerLabel": "Sitio web oficial del gobierno",
4 | "bannerText": "Un sitio oficial del Gobierno de Estados Unidos",
5 | "bannerActionText": "Así es como usted puede verificarlo",
6 | "domainHeaderText": "Los sitios web oficiales usan .gov",
7 | "domainAText": "Un sitio web",
8 | "domainText": "pertenece a una organización oficial del Gobierno de Estados Unidos.",
9 | "govText": ".gov",
10 | "httpsHeaderText": "Los sitios web seguros .gov usan HTTPS",
11 | "httpsOrText": "o",
12 | "httpsText": "https://",
13 | "httpsAText": "Un",
14 | "httpsLockText": "candado",
15 | "httpsDetailText": "significa que usted se conectó de forma segura a un sitio web .gov. Comparta información sensible sólo en sitios web oficiales y seguros."
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/assets/scss/components/_Dropdown.scss:
--------------------------------------------------------------------------------
1 | @import '../settings/index.scss';
2 |
3 | // stylelint-disable selector-no-qualifying-type
4 | select.ds-c-field {
5 | $select-icon-size: 10px;
6 | appearance: none;
7 | background-color: $color-white;
8 | background-image: url('#{$image-path}/arrow-both.svg');
9 | background-position: right $spacer-1 center;
10 | background-repeat: no-repeat;
11 | background-size: $select-icon-size;
12 | padding-right: ($select-icon-size * 2) + $spacer-1;
13 |
14 | &[multiple] {
15 | background-image: none;
16 | }
17 |
18 | @if $ds-include-focus-styles {
19 | // Removes inner outline on select elements in Firefox.
20 | &:-moz-focusring {
21 | color: transparent;
22 | text-shadow: 0 0 0 #000;
23 | }
24 | }
25 | }
26 |
27 | // stylelint-enable selector-no-qualifying-type
28 |
--------------------------------------------------------------------------------
/assets/types/Spinner/Spinner.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export type SpinnerSize = 'small' | 'big';
4 |
5 | export interface SpinnerProps {
6 | /**
7 | * The text announced to screen readers
8 | */
9 | 'aria-valuetext'?: string;
10 | /**
11 | * Additional classes to be added to the spinner element.
12 | * Useful for adding utility classes.
13 | */
14 | className?: string;
15 | /**
16 | * Applies the inverse theme styling
17 | */
18 | inversed?: boolean;
19 | /**
20 | * Adds a background behind the spinner for extra contrast
21 | */
22 | filled?: boolean;
23 | /**
24 | * Landmark role so the spinner can receive keyboard focus
25 | */
26 | role?: string;
27 | /**
28 | * Smaller or larger variant
29 | */
30 | size?: SpinnerSize;
31 | }
32 |
33 | declare const Spinner: React.FC;
34 |
35 | export default Spinner;
36 |
--------------------------------------------------------------------------------
/Ongoing Reporting/Module Abbreviations/readme.md:
--------------------------------------------------------------------------------
1 | # Module Abbreviations
2 |
3 | The table below lists the MES module and their approved abbreviation for metrics reporting.
4 |
5 | | Module Abbreviation | Module Type |
6 | | ------------------- | ----------- |
7 | | CP | Claims Processing |
8 | | DSSDW | Decision Support System & Data Warehouse |
9 | | EE | Eligibility & Enrollment |
10 | | EPS | Encounter Processing System |
11 | | EVV | Electronic Visit Verification |
12 | | FM | Financial Management |
13 | | HIE | Health Information Exchange |
14 | | LTSS | Long Term Services and Support |
15 | | MM | Member Management |
16 | | OT | Other module not listed (do not use or create an abbreviation not listed in this table) |
17 | | PBM | Pharmacy Benefits Manager |
18 | | PDMP | Prescription Drug Monitoring Program |
19 | | PI | Program Integrity |
20 | | PM | Provider Management |
21 | | TPL | Third Party Liability |
22 |
--------------------------------------------------------------------------------
/assets/types/Table/TableCaption.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export interface TableCaptionProps {
4 | /**
5 | * The table caption contents.
6 | */
7 | children?: React.ReactNode;
8 | /**
9 | * Additional classes to be added to the caption element.
10 | */
11 | className?: string;
12 | /**
13 | * @hide-prop This gets passed from the parent `Table` component when the table `scrollable` prop is set.
14 | */
15 | _id?: string;
16 | /**
17 | * @hide-prop This gets passed from the parent `Table` component when the table `scrollable` prop is set.
18 | */
19 | _scrollActive?: boolean;
20 | /**
21 | * @hide-prop This gets passed from the parent `Table` component when the table `scrollable` prop is set.
22 | */
23 | _scrollableNotice?: React.ReactNode;
24 | }
25 |
26 | declare const TableCaption: React.FC;
27 |
28 | export default TableCaption;
29 |
--------------------------------------------------------------------------------
/assets/components/DateField/defaultDateFormatter.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = exports.defaultDateFormatter = void 0;
7 |
8 | // Prevents day/month greater than 2 digits and year greater than 4 digits
9 | var standardLengthFormatter = function standardLengthFormatter(_ref) {
10 | var day = _ref.day,
11 | month = _ref.month,
12 | year = _ref.year;
13 | return {
14 | day: day.length > 2 ? day.substring(0, 2) : day,
15 | month: month.length > 2 ? month.substring(0, 2) : month,
16 | year: year.length > 4 ? year.substring(0, 4) : year
17 | };
18 | };
19 |
20 | var defaultDateFormatter = function defaultDateFormatter(dateObject) {
21 | return standardLengthFormatter(dateObject);
22 | };
23 |
24 | exports.defaultDateFormatter = defaultDateFormatter;
25 | var _default = defaultDateFormatter;
26 | exports.default = _default;
--------------------------------------------------------------------------------
/assets/esnext/index.esm.js:
--------------------------------------------------------------------------------
1 | /**
2 | * index.js - JS entry point
3 | */
4 | export * from './Accordion';
5 | export * from './Alert';
6 | export * from './Autocomplete';
7 | export * from './Badge';
8 | export * from './Button';
9 | export * from './ChoiceList';
10 | export * from './DateField';
11 | export * from './Dialog';
12 | export * from './Dropdown';
13 | export * from './FilterChip';
14 | export * from './FormControl';
15 | export * from './FormLabel';
16 | export * from './HelpDrawer';
17 | export * from './InlineError';
18 | export * from './MonthPicker';
19 | export * from './Review';
20 | export * from './SkipNav';
21 | export * from './Spinner';
22 | export * from './StepList';
23 | export * from './Table';
24 | export * from './Tabs';
25 | export * from './TextField';
26 | export * from './Tooltip';
27 | export * from './UsaBanner';
28 | export * from './VerticalNav';
29 | export * from './analytics';
30 | export * from './flags';
--------------------------------------------------------------------------------
/assets/scss/components/index.scss:
--------------------------------------------------------------------------------
1 | // Component Sass
2 | @import 'Accordion.scss';
3 | @import 'Alert.scss';
4 | @import 'Autocomplete.scss';
5 | @import 'Badge.scss';
6 | @import 'Button.scss';
7 | @import 'Choice.scss'; // This should eventually be renamed to `ChoiceList`
8 | @import 'Dialog.scss';
9 | @import 'Dropdown.scss';
10 | @import 'FilterChip.scss';
11 | @import 'FormLabel.scss';
12 | @import 'HelpDrawer.scss';
13 | @import 'List.scss';
14 | @import 'MonthPicker.scss';
15 | @import 'Review.scss';
16 | @import 'SkipNav.scss';
17 | @import 'Spinner.scss';
18 | @import 'StepList.scss';
19 | @import 'Table.scss';
20 | @import 'Tabs.scss';
21 | // Mask and Date field styles need imported
22 | // after TextField since they modify it
23 | @import 'TextField.scss';
24 | @import 'Tooltip.scss';
25 | @import 'TooltipIcon.scss';
26 | @import 'Mask.scss';
27 | @import 'DateField.scss';
28 | @import 'UsaBanner.scss';
29 | @import 'VerticalNav.scss';
30 |
--------------------------------------------------------------------------------
/assets/images/success-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/pdf.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/warning.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/types/Tabs/TabPanel.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export interface TabPanelProps {
4 | children: React.ReactNode;
5 | /**
6 | * Additional classes to be added to the root element.
7 | */
8 | className?: string;
9 | /**
10 | * A unique `id`, to be used on the rendered panel element.
11 | */
12 | id: string;
13 | selected?: boolean;
14 | disabled?: boolean;
15 | /**
16 | * eslint-disable react/no-unused-prop-types
17 | */
18 | tab?: string;
19 | /**
20 | * Additional classes for the associated tab. Only applicable when the panel
21 | * is a child of `Tabs`.
22 | */
23 | tabClassName?: string;
24 | /**
25 | * The associated tab's `href`. Only applicable when the panel is a
26 | * child of `Tabs`.
27 | */
28 | tabHref?: string;
29 | /**
30 | * eslint-enable react/no-unused-prop-types
31 | */
32 | tabId?: string;
33 | }
34 |
35 | declare const TabPanel: React.FC;
36 |
37 | export default TabPanel;
38 |
--------------------------------------------------------------------------------
/assets/components/MonthPicker/getMonthNames.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.getMonthNames = getMonthNames;
7 | exports.NUM_MONTHS = void 0;
8 | var NUM_MONTHS = 12;
9 | /**
10 | * Generates an array of month names according to the given or default locale
11 | *
12 | * @param {string} [locale] locale for generating month names
13 | * @param {boolean} [short] whether to return short month names
14 | * @return {string[]} array of month names
15 | */
16 |
17 | exports.NUM_MONTHS = NUM_MONTHS;
18 |
19 | function getMonthNames(locale) {
20 | var short = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
21 | var options = {
22 | month: short ? 'short' : 'long'
23 | };
24 | var months = [];
25 |
26 | for (var i = 0; i < NUM_MONTHS; i++) {
27 | var date = new Date();
28 | date.setMonth(i, 1);
29 | months.push(date.toLocaleString(locale, options));
30 | }
31 |
32 | return months;
33 | }
--------------------------------------------------------------------------------
/assets/esnext/flags.js:
--------------------------------------------------------------------------------
1 | // featureFlags.js
2 | var flags = {
3 | ERROR_PLACEMENT_DEFAULT: 'top',
4 | ALERT_SENDS_ANALYTICS: false,
5 | DIALOG_SENDS_ANALYTICS: false,
6 | HELP_DRAWER_SENDS_ANALYTICS: false
7 | };
8 | export function errorPlacementDefault() {
9 | return flags.ERROR_PLACEMENT_DEFAULT;
10 | }
11 | export function setErrorPlacementDefault(value) {
12 | flags.ERROR_PLACEMENT_DEFAULT = value;
13 | }
14 | export function alertSendsAnalytics() {
15 | return flags.ALERT_SENDS_ANALYTICS;
16 | }
17 | export function setAlertSendsAnalytics(value) {
18 | flags.ALERT_SENDS_ANALYTICS = value;
19 | }
20 | export function dialogSendsAnalytics() {
21 | return flags.DIALOG_SENDS_ANALYTICS;
22 | }
23 | export function setDialogSendsAnalytics(value) {
24 | flags.DIALOG_SENDS_ANALYTICS = value;
25 | }
26 | export function helpDrawerSendsAnalytics() {
27 | return flags.HELP_DRAWER_SENDS_ANALYTICS;
28 | }
29 | export function setHelpDrawerSendsAnalytics(value) {
30 | flags.HELP_DRAWER_SENDS_ANALYTICS = value;
31 | }
--------------------------------------------------------------------------------
/assets/esnext/InlineError/InlineError.js:
--------------------------------------------------------------------------------
1 | import _pt from "prop-types";
2 | import React from 'react';
3 | import classNames from 'classnames';
4 | /**
5 | * is an internal component used by and
6 | * is also exported for advanced design system use cases, where the internal component can be leveraged to build custom form components
7 | */
8 |
9 | export function InlineError(_ref) {
10 | var children = _ref.children,
11 | className = _ref.className,
12 | id = _ref.id,
13 | inversed = _ref.inversed;
14 | var classes = classNames('ds-c-field__error-message', {
15 | 'ds-c-field__error-message--inverse': inversed
16 | }, className);
17 | return /*#__PURE__*/React.createElement("span", {
18 | className: classes,
19 | id: id,
20 | role: "alert"
21 | }, children);
22 | }
23 | InlineError.propTypes = {
24 | children: _pt.node,
25 | className: _pt.string,
26 | id: _pt.string,
27 | inversed: _pt.bool
28 | };
29 | export default InlineError;
--------------------------------------------------------------------------------
/assets/esnext/Tooltip/TooltipIcon.js:
--------------------------------------------------------------------------------
1 | var InformationIcon = function InformationIcon(props) {
2 | return /*#__PURE__*/React.createElement("svg", props, /*#__PURE__*/React.createElement("path", {
3 | d: "M8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8zm1-3.7V6.4H7v5.9h2zM7 4.9c0 .6.3.9 1 .9s1-.3 1-.9c0-.3-.1-.5-.2-.7-.2-.1-.5-.2-.8-.2-.3 0-.6.1-.8.2-.1.2-.2.4-.2.7z"
4 | }));
5 | };
6 |
7 | InformationIcon.defaultProps = {
8 | xmlns: "http://www.w3.org/2000/svg"
9 | };
10 | import PropTypes from 'prop-types';
11 | import React from 'react';
12 | import classNames from 'classnames';
13 | export var TooltipIcon = function TooltipIcon(props) {
14 | return /*#__PURE__*/React.createElement("span", {
15 | className: "ds-c-tooltip-icon__container"
16 | }, /*#__PURE__*/React.createElement(InformationIcon, {
17 | className: classNames('ds-c-tooltip-icon', {
18 | 'ds-c-tooltip-icon--inverse': props.inversed
19 | })
20 | }));
21 | };
22 | TooltipIcon.propTypes = {
23 | inversed: PropTypes.bool
24 | };
25 | export default TooltipIcon;
--------------------------------------------------------------------------------
/assets/components/TextField/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | Object.defineProperty(exports, "TextField", {
7 | enumerable: true,
8 | get: function get() {
9 | return _TextField.default;
10 | }
11 | });
12 | Object.defineProperty(exports, "TextInput", {
13 | enumerable: true,
14 | get: function get() {
15 | return _TextInput.default;
16 | }
17 | });
18 | Object.defineProperty(exports, "maskValue", {
19 | enumerable: true,
20 | get: function get() {
21 | return _maskHelpers.maskValue;
22 | }
23 | });
24 | Object.defineProperty(exports, "unmaskValue", {
25 | enumerable: true,
26 | get: function get() {
27 | return _maskHelpers.unmaskValue;
28 | }
29 | });
30 |
31 | var _TextField = _interopRequireDefault(require("./TextField"));
32 |
33 | var _TextInput = _interopRequireDefault(require("./TextInput"));
34 |
35 | var _maskHelpers = require("./maskHelpers");
36 |
37 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
--------------------------------------------------------------------------------
/assets/images/error.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/esnext/SkipNav/SkipNav.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types';
2 | import React from 'react';
3 | export function SkipNav(_ref) {
4 | var children = _ref.children,
5 | href = _ref.href,
6 | onClick = _ref.onClick;
7 | return /*#__PURE__*/React.createElement("a", {
8 | className: "ds-c-skip-nav",
9 | href: href,
10 | onClick: onClick
11 | }, children);
12 | }
13 | SkipNav.defaultProps = {
14 | children: 'Skip to main content'
15 | };
16 | SkipNav.propTypes = {
17 | /**
18 | * Skip nav label
19 | */
20 | children: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,
21 |
22 | /**
23 | * The anchor or target for the link (where the link will jump the user to)
24 | */
25 | href: PropTypes.string.isRequired,
26 |
27 | /**
28 | * An onClick handler used for manually setting focus on the content.
29 | * Sometimes it's necessary to manually set focus, like when an app uses hash
30 | * routing and element-id links will be mistaken for routes.
31 | */
32 | onClick: PropTypes.func
33 | };
34 | export default SkipNav;
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
35 |
--------------------------------------------------------------------------------
/assets/types/HelpDrawer/HelpDrawerToggle.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export interface HelpDrawerToggleProps {
4 | /**
5 | * Whether or not the Help Drawer controlled by this toggle is open or closed.
6 | * This value is used to re-focus the toggle that opened the drawer when the drawer closes.
7 | */
8 | helpDrawerOpen: boolean;
9 | /**
10 | * The HelpDrawerToggle content
11 | */
12 | children: React.ReactNode;
13 | /**
14 | * Additional classes for the toggle button anchor element.
15 | */
16 | className?: string;
17 | /**
18 | * Adds `display: inline` to the HelpDrawerToggle.
19 | */
20 | inline?: boolean;
21 | /**
22 | * This function is called with an id that the toggle generates.
23 | * It can be used in implementing the help drawer for keeping track of the drawer the toggle controls
24 | */
25 | showDrawer: (...args: any[]) => any;
26 | }
27 |
28 | export default class HelpDrawerToggle extends React.Component<
29 | React.ComponentPropsWithRef<'button'> & HelpDrawerToggleProps,
30 | any
31 | > {
32 | render(): JSX.Element;
33 | }
34 |
--------------------------------------------------------------------------------
/assets/esnext/FilterChip/ClearIconAlternate.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | /**
3 | * is an internal component used by
4 | */
5 |
6 | export function ClearIconAlternate() {
7 | return /*#__PURE__*/React.createElement("svg", {
8 | className: "ds-c-clear-icon",
9 | height: "14",
10 | viewBox: "0 0 14 14",
11 | width: "14",
12 | xmlns: "http://www.w3.org/2000/svg"
13 | }, /*#__PURE__*/React.createElement("path", {
14 | d: "m8.6002309 7 5.2573243-5.25732429c.1899264-.1899264.1899264-.49704142 0-.68696782l-.9132631-.91326309c-.1899264-.1899264-.4970414-.1899264-.6869678 0l-5.2573243 5.2573243-5.25732429-5.2573243c-.1899264-.1899264-.49704142-.1899264-.68696782 0l-.91326309.91326309c-.1899264.1899264-.1899264.49704142 0 .68696782l5.2573243 5.25732429-5.2573243 5.2573243c-.1899264.1899264-.1899264.4970414 0 .6869678l.91326309.9132631c.1899264.1899264.49704142.1899264.68696782 0l5.25732429-5.2573243 5.2573243 5.2573243c.1899264.1899264.4970414.1899264.6869678 0l.9132631-.9132631c.1899264-.1899264.1899264-.4970414 0-.6869678z"
15 | }));
16 | }
17 | export default ClearIconAlternate;
--------------------------------------------------------------------------------
/.circleci/config.yml:
--------------------------------------------------------------------------------
1 | version: 2.1
2 |
3 | jobs:
4 | deploy-prod-from-main:
5 | docker:
6 | - image: cimg/base:stable
7 | steps:
8 | - checkout
9 | # Add deployment key fingerprint from prod repo for CircleCI to use for a push at https://github.com/CMSgov/MESCertificationRepo/settings/keys
10 | - add_ssh_keys:
11 | fingerprints:
12 | - "00:5c:4a:a0:67:2f:28:b1:81:83:b2:d3:40:da:c3:5e"
13 | # update this line when the repo is renamed
14 | - run: git remote add prod_repo git@github.com:CMSgov/CMCS-DSG-DSS-Certification.git
15 | - run: git config --global user.email "jerome.lee@cms.hhs.gov"
16 | - run: git config --global user.name "Jerome Lee"
17 | - run: git fetch origin
18 | - run: git merge origin/main --allow-unrelated-histories -X theirs
19 | - run:
20 | name: "Updating prod"
21 | command: "git push prod_repo main:main --force"
22 |
23 | workflows:
24 | # Workflow to deploy staging repo changes to prod on changes to main
25 | deploy-prod-workflow:
26 | jobs:
27 | - deploy-prod-from-main:
28 | filters:
29 | branches:
30 | only:
31 | - main
32 |
--------------------------------------------------------------------------------
/assets/types/FilterChip/FilterChip.d.ts:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | export interface FilterChipProps {
3 | /**
4 | * Id for filter chip button. If not provided, a unique id will be automatically generated and used.
5 | */
6 | id?: string;
7 | /**
8 | * Class to be applied to the outer `
` that contains filter chip button.
9 | */
10 | className?: string;
11 | /**
12 | * Text for the filter chip
13 | */
14 | label: string;
15 | /**
16 | * For screenreaders, text to read for removal
17 | */
18 | ariaClearLabel: string;
19 | /**
20 | * Function to call when filter chip is dismissed
21 | */
22 | onDelete: () => void;
23 | /**
24 | * Use alternate thinner close icon in place of standard
25 | */
26 | useAlternateIcon?: boolean;
27 | /**
28 | * Sets the size of the chip to larger version
29 | */
30 | size?: 'big';
31 | }
32 | export declare class FilterChip extends React.Component {
33 | constructor(props: FilterChipProps);
34 | handleClick(): void;
35 | handleKeyDown(evt: React.KeyboardEvent): void;
36 | render(): React.ReactNode;
37 | }
38 | export default FilterChip;
39 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 | # Hello! This is where you manage which Jekyll version is used to run.
3 | # When you want to use a different version, change it below, save the
4 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
5 | #
6 | # bundle exec jekyll serve
7 | #
8 | # This will help ensure the proper Jekyll version is running.
9 | # Happy Jekylling!
10 | # gem "jekyll", "~> 4.2.0"
11 | # # This is the default theme for new Jekyll sites. You may change this to anything you like.
12 | # gem "minima", "~> 2.5"
13 |
14 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
15 | # uncomment the line below. To upgrade, run `bundle update github-pages`.
16 | gem "github-pages", group: :jekyll_plugins
17 | # If you have any plugins, put them here!
18 | group :jekyll_plugins do
19 | gem "jekyll-feed", "~> 0.12"
20 | end
21 |
22 | # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
23 | # and associated library.
24 | platforms :mingw, :x64_mingw, :mswin, :jruby do
25 | gem "tzinfo", "~> 1.2"
26 | gem "tzinfo-data"
27 | end
28 |
29 | # Performance-booster for watching directories on Windows
30 | gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
31 |
32 |
--------------------------------------------------------------------------------
/assets/types/Review/Review.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export type ReviewHeadingLevel = '1' | '2' | '3' | '4' | '5';
4 |
5 | export interface ReviewProps {
6 | /**
7 | * `Review` component's body HTML.
8 | */
9 | children: React.ReactNode;
10 | className?: string;
11 | /**
12 | * Optional label to give screenreaders longer, more descriptive text to
13 | * explain the context of an edit link.
14 | */
15 | editAriaLabel?: string;
16 | /**
17 | * An optional node in place of the edit link. If this defined, no edit link will be shown.
18 | */
19 | editContent?: React.ReactNode;
20 | /**
21 | * Href for the edit link. If this is undefined, no edit link will be shown.
22 | */
23 | editHref?: string;
24 | editText?: React.ReactNode;
25 | heading?: React.ReactNode;
26 | /**
27 | * Heading type to override default `
`.
28 | */
29 | headingLevel?: ReviewHeadingLevel;
30 | /**
31 | * An optional function that is executed on edit link click. The event and
32 | * props.editHref value are passed to this function.
33 | */
34 | onEditClick?: (...args: any[]) => any;
35 | }
36 |
37 | export default class Review extends React.Component {
38 | render(): JSX.Element;
39 | }
40 |
--------------------------------------------------------------------------------
/assets/components/InlineError/InlineError.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.InlineError = InlineError;
7 | exports.default = void 0;
8 |
9 | var _propTypes = _interopRequireDefault(require("prop-types"));
10 |
11 | var _react = _interopRequireDefault(require("react"));
12 |
13 | var _classnames = _interopRequireDefault(require("classnames"));
14 |
15 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16 |
17 | function InlineError(_ref) {
18 | var children = _ref.children,
19 | className = _ref.className,
20 | id = _ref.id,
21 | inversed = _ref.inversed;
22 | var classes = (0, _classnames.default)('ds-c-field__error-message', {
23 | 'ds-c-field__error-message--inverse': inversed
24 | }, className);
25 | return /*#__PURE__*/_react.default.createElement("span", {
26 | className: classes,
27 | id: id,
28 | role: "alert"
29 | }, children);
30 | }
31 |
32 | InlineError.propTypes = {
33 | children: _propTypes.default.node,
34 | className: _propTypes.default.string,
35 | id: _propTypes.default.string,
36 | inversed: _propTypes.default.bool
37 | };
38 | var _default = InlineError;
39 | exports.default = _default;
--------------------------------------------------------------------------------
/assets/images/information.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # This config controls the live site.
2 |
3 | title: "CMCS-DSG-DSS-Certification"
4 | email: your-email@example.com
5 | description: >- # this means to ignore newlines until "baseurl:"
6 | Welcome to the MES Certification Repository, a collaborative community for CMS, states, and vendors.
7 | # this should page the repository name, available at site.github.repository_name, with a prepended slash
8 | baseurl: "/CMCS-DSG-DSS-Certification-Staging"
9 | url: ""
10 | # twitter_username: jekyllrb
11 | # github_username: jekyll
12 |
13 | # Build settings
14 | # theme: just-the-docs
15 | # remote_theme: pages-themes/minimal@v0.2.0
16 | # plugins:
17 | # - jekyll-remote-theme
18 | # # - jekyll-feed
19 |
20 | # Exclude from processing.
21 | exclude:
22 | - .sass-cache/
23 | - .jekyll-cache/
24 | - gemfiles/
25 | - Gemfile
26 | - Gemfile.lock
27 | - node_modules/
28 | - vendor/bundle/
29 | - vendor/cache/
30 | - vendor/gems/
31 | - vendor/ruby/
32 |
33 | defaults:
34 | - scope:
35 | path: "/Outcomes and Metrics/*/*.csv"
36 | values:
37 | layout: "csv"
38 | - scope:
39 | path: "/Conditions for Enhanced Funding/*.csv"
40 | values:
41 | layout: "csv"
42 |
43 | titles_from_headings:
44 | enabled: true
45 | strip_title: true
46 |
--------------------------------------------------------------------------------
/assets/esnext/Spinner/Spinner.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types';
2 | import React from 'react';
3 | import classNames from 'classnames';
4 | export var Spinner = function Spinner(props) {
5 | var className = classNames('ds-c-spinner', props.size && "ds-c-spinner--".concat(props.size), props.inversed && 'ds-u-fill--background-inverse ds-u-color--base-inverse', props.filled && 'ds-c-spinner--filled', props.className);
6 | return /*#__PURE__*/React.createElement("span", {
7 | className: className,
8 | "aria-valuetext": props['aria-valuetext'],
9 | role: props.role
10 | });
11 | };
12 | Spinner.propTypes = {
13 | /** The text announced to screen readers */
14 | 'aria-valuetext': PropTypes.string,
15 |
16 | /**
17 | * Additional classes to be added to the spinner element.
18 | * Useful for adding utility classes.
19 | */
20 | className: PropTypes.string,
21 |
22 | /** Applies the inverse theme styling */
23 | inversed: PropTypes.bool,
24 |
25 | /** Adds a background behind the spinner for extra contrast */
26 | filled: PropTypes.bool,
27 |
28 | /** Landmark role so the spinner can receive keyboard focus */
29 | role: PropTypes.string,
30 |
31 | /** Smaller or larger variant */
32 | size: PropTypes.oneOf(['small', 'big'])
33 | };
34 | Spinner.defaultProps = {
35 | 'aria-valuetext': 'Loading',
36 | role: 'progressbar'
37 | };
38 | export default Spinner;
--------------------------------------------------------------------------------
/assets/types/TextField/Mask.d.ts:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | export declare type MaskMask = 'currency' | 'phone' | 'ssn' | 'zip';
3 | export interface MaskProps {
4 | /**
5 | * Must contain a `TextField` component
6 | */
7 | children: React.ReactNode;
8 | mask?: MaskMask;
9 | }
10 | export declare class Mask extends React.PureComponent {
11 | constructor(props: MaskProps);
12 | componentDidUpdate(prevProps: MaskProps): void;
13 | debouncedOnBlurEvent: any;
14 | /**
15 | * Get the child text field. Called as a method so that
16 | * updates to the field cause the mask to re-render
17 | * @returns {React.ReactElement} Child TextField
18 | */
19 | field(): React.ReactElement;
20 | /**
21 | * To avoid a jarring experience for screen readers, we only
22 | * add/remove characters after the field has been blurred,
23 | * rather than when the user is typing in the field
24 | * @param {Object} evt
25 | * @param {React.Element} field - Child TextField
26 | */
27 | handleBlur(evt: React.ChangeEvent, field: React.ReactElement): void;
28 | /**
29 | * @param {Object} evt
30 | * @param {React.Element} field - Child TextField
31 | */
32 | handleChange(evt: React.ChangeEvent, field: React.ReactElement): void;
33 | render(): React.ReactNode;
34 | }
35 | export default Mask;
36 |
--------------------------------------------------------------------------------
/assets/types/Tabs/Tab.d.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | export interface TabProps {
4 | /**
5 | * Tab label text or HTML.
6 | */
7 | children: React.ReactNode;
8 | /**
9 | * Additional classes to be added to the root tab element.
10 | */
11 | className?: string;
12 | /**
13 | * A unique `id`, to be used on the rendered tab element.
14 | */
15 | id: string;
16 | /**
17 | * Sets the `href` attribute used for the tab. This can be useful if you want
18 | * to use relative links rather than a URL hash (the default).
19 | */
20 | href?: string;
21 | /**
22 | * Called when the tab is clicked, with the following arguments:
23 | * [`SyntheticEvent`](https://facebook.github.io/react/docs/events.html),
24 | * `panelId`, `id`, `href`
25 | */
26 | onClick?: (...args: any[]) => any;
27 | /**
28 | * Called when the tab is selected and a keydown event is triggered.
29 | * Called with the following arguments:
30 | * [`SyntheticEvent`](https://facebook.github.io/react/docs/events.html),
31 | * `panelId`, `id`, `href`
32 | */
33 | onKeyDown?: (...args: any[]) => any;
34 | /**
35 | * The `id` of the associated `TabPanel`. Used for the `aria-controls` attribute.
36 | */
37 | panelId: string;
38 | selected?: boolean;
39 | disabled?: boolean;
40 | }
41 |
42 | export default class Tab extends React.Component {
43 | render(): JSX.Element;
44 | }
45 |
--------------------------------------------------------------------------------
/_posts/2021-08-19-welcome-to-jekyll.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Welcome to Jekyll!"
4 | date: 2021-08-19 15:52:40 +0000
5 | categories: jekyll update
6 | ---
7 | You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
8 |
9 | Jekyll requires blog post files to be named according to the following format:
10 |
11 | `YEAR-MONTH-DAY-title.MARKUP`
12 |
13 | Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
14 |
15 | Jekyll also offers powerful support for code snippets:
16 |
17 | {% highlight ruby %}
18 | def print_hi(name)
19 | puts "Hi, #{name}"
20 | end
21 | print_hi('Tom')
22 | #=> prints 'Hi, Tom' to STDOUT.
23 | {% endhighlight %}
24 |
25 | Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
26 |
27 | [jekyll-docs]: https://jekyllrb.com/docs/home
28 | [jekyll-gh]: https://github.com/jekyll/jekyll
29 | [jekyll-talk]: https://talk.jekyllrb.com/
30 |
--------------------------------------------------------------------------------
/assets/components/FilterChip/ClearIconAlternate.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.ClearIconAlternate = ClearIconAlternate;
7 | exports.default = void 0;
8 |
9 | var _react = _interopRequireDefault(require("react"));
10 |
11 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12 |
13 | /**
14 | * is an internal component used by
15 | */
16 | function ClearIconAlternate() {
17 | return /*#__PURE__*/_react.default.createElement("svg", {
18 | className: "ds-c-clear-icon",
19 | height: "14",
20 | viewBox: "0 0 14 14",
21 | width: "14",
22 | xmlns: "http://www.w3.org/2000/svg"
23 | }, /*#__PURE__*/_react.default.createElement("path", {
24 | d: "m8.6002309 7 5.2573243-5.25732429c.1899264-.1899264.1899264-.49704142 0-.68696782l-.9132631-.91326309c-.1899264-.1899264-.4970414-.1899264-.6869678 0l-5.2573243 5.2573243-5.25732429-5.2573243c-.1899264-.1899264-.49704142-.1899264-.68696782 0l-.91326309.91326309c-.1899264.1899264-.1899264.49704142 0 .68696782l5.2573243 5.25732429-5.2573243 5.2573243c-.1899264.1899264-.1899264.4970414 0 .6869678l.91326309.9132631c.1899264.1899264.49704142.1899264.68696782 0l5.25732429-5.2573243 5.2573243 5.2573243c.1899264.1899264.4970414.1899264.6869678 0l.9132631-.9132631c.1899264-.1899264.1899264-.4970414 0-.6869678z"
25 | }));
26 | }
27 |
28 | var _default = ClearIconAlternate;
29 | exports.default = _default;
--------------------------------------------------------------------------------
/assets/components/SkipNav/SkipNav.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.SkipNav = SkipNav;
7 | exports.default = void 0;
8 |
9 | var _propTypes = _interopRequireDefault(require("prop-types"));
10 |
11 | var _react = _interopRequireDefault(require("react"));
12 |
13 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14 |
15 | function SkipNav(_ref) {
16 | var children = _ref.children,
17 | href = _ref.href,
18 | onClick = _ref.onClick;
19 | return /*#__PURE__*/_react.default.createElement("a", {
20 | className: "ds-c-skip-nav",
21 | href: href,
22 | onClick: onClick
23 | }, children);
24 | }
25 |
26 | SkipNav.defaultProps = {
27 | children: 'Skip to main content'
28 | };
29 | SkipNav.propTypes = {
30 | /**
31 | * Skip nav label
32 | */
33 | children: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]).isRequired,
34 |
35 | /**
36 | * The anchor or target for the link (where the link will jump the user to)
37 | */
38 | href: _propTypes.default.string.isRequired,
39 |
40 | /**
41 | * An onClick handler used for manually setting focus on the content.
42 | * Sometimes it's necessary to manually set focus, like when an app uses hash
43 | * routing and element-id links will be mistaken for routes.
44 | */
45 | onClick: _propTypes.default.func
46 | };
47 | var _default = SkipNav;
48 | exports.default = _default;
--------------------------------------------------------------------------------
/assets/scss/components/_TooltipIcon.scss:
--------------------------------------------------------------------------------
1 | // Icon container is the border that appears on hover or focus
2 | .ds-c-tooltip-icon__container {
3 | border: 4px solid rgba(0, 0, 0, 0);
4 | border-radius: 100%;
5 | box-sizing: border-box;
6 | display: inline-block;
7 | height: $tooltip-icon-container-size;
8 | position: relative;
9 | vertical-align: middle;
10 | width: $tooltip-icon-container-size;
11 | }
12 |
13 | // SVG icon styles/positioning
14 | .ds-c-tooltip-icon {
15 | display: inline-block;
16 | fill: $tooltip-icon-color;
17 | height: $tooltip-icon-size;
18 | left: 0;
19 | // stylelint-disable declaration-no-important
20 | // fixes clipping issue in Firefox, overrides vendor style
21 | overflow: visible !important;
22 | // stylelint-enable declaration-no-important
23 | position: absolute;
24 | text-align: center;
25 | top: 0;
26 | width: $tooltip-icon-size;
27 | }
28 |
29 | // Add border style when tooltip is activated in addition to on hover
30 | .ds-c-tooltip-icon--active {
31 | .ds-c-tooltip-icon__container {
32 | border-color: $tooltip-icon-color;
33 | border-color: rgba($tooltip-icon-color, 0.25);
34 | }
35 | }
36 |
37 | .ds-c-tooltip-icon--inverse {
38 | fill: $tooltip-icon-color-inverse;
39 | }
40 |
41 | .ds-c-tooltip__trigger--inverse {
42 | &.ds-c-tooltip-icon--active {
43 | .ds-c-tooltip-icon__container {
44 | border-color: $tooltip-icon-color-inverse;
45 | border-color: rgba($tooltip-icon-color-inverse, 0.25);
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/assets/types/analytics/SendAnalytics.d.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Functions for sending events to Tealium/Google Analytics
3 | * Based on HRA Tool & SEP screener & Coverage Tools analytics service:
4 | * - hra-tool/src/services/analytics.js
5 | * - screener/src/assets/js/utils/analytics-util.js
6 | * - coverage-tools-frontend/src/helpers/objectUtilities.ts
7 | */
8 | declare global {
9 | interface Window {
10 | utag?: {
11 | link: (params: AnalyticsPayload) => void;
12 | };
13 | }
14 | }
15 | declare type EventType = 'link';
16 | export interface AnalyticsPayload {
17 | ga_eventAction: string;
18 | ga_eventCategory: string;
19 | ga_eventLabel: string;
20 | ga_eventType: string;
21 | ga_eventValue: string;
22 | [additional_props: string]: unknown;
23 | }
24 | export declare const EVENT_CATEGORY: {
25 | contentTools: string;
26 | uiComponents: string;
27 | uiInteraction: string;
28 | };
29 | export declare const MAX_LENGTH = 100;
30 | interface AnalyticsEventProps {
31 | ga_eventAction: string;
32 | ga_eventCategory: string;
33 | ga_eventLabel: string;
34 | ga_eventType?: string;
35 | ga_eventValue?: string;
36 | [additional_props: string]: unknown;
37 | }
38 | export declare function sendAnalytics(event: EventType, props: AnalyticsPayload, retry?: number): string;
39 | export declare function sendAnalyticsEvent(overrides: boolean | Record, defaultPayload: AnalyticsEventProps): string;
40 | export default sendAnalytics;
41 |
--------------------------------------------------------------------------------
/Ongoing Reporting/State Abbreviations/readme.md:
--------------------------------------------------------------------------------
1 | # State Abbreviations
2 |
3 | The table below lists the states with their approved code for metrics reporting.
4 |
5 | | State | Abbreviation |
6 | | ----- | ------------ |
7 | | Alabama | AL |
8 | | Alaska | AK |
9 | | American Samoa | AS |
10 | | Arizona | AZ |
11 | | Arkansas | AR |
12 | | California | CA |
13 | | Colorado | CO |
14 | | Connecticut | CT |
15 | | Delaware | DE |
16 | | District of Columbia | DC |
17 | | Florida | FL |
18 | | Georgia | GA |
19 | | Guam | GU |
20 | | Hawaii | HI |
21 | | Idaho | ID |
22 | | Illinois | IL |
23 | | Indiana | IN |
24 | | Iowa | IA |
25 | | Kentucky | KY |
26 | | Louisiana | LA |
27 | | Maine | ME |
28 | | Maryland | MD |
29 | | Massachusetts | MA |
30 | | Michigan | MI |
31 | | Minnesota | MN |
32 | | Mississippi | MS |
33 | | Missouri | MO |
34 | | Montana | MT |
35 | | Nebraska | NE |
36 | | Nevada | NV |
37 | | New Hampshire | NH |
38 | | New Jersey | NJ |
39 | | New Mexico | NM |
40 | | New York | NY |
41 | | North Carolina | NC |
42 | | North Dakota | ND |
43 | | Northern Mariana Islands | MP |
44 | | Ohio | OH |
45 | | Oklahoma | OK |
46 | | Oregon | OR |
47 | | Pennsylvania | PA |
48 | | Puerto Rico | PR |
49 | | Rhode Island | RI |
50 | | South Carolina | SC |
51 | | South Dakota | SD |
52 | | Tennessee | TN |
53 | | Texas | TX |
54 | | US Virgin Islands | VI |
55 | | Utah | UT |
56 | | Vermont | VT |
57 | | Virginia | VA |
58 | | Washington | WA |
59 | | West Virginia | WV |
60 | | Wisconsin | WI |
61 | | Wyoming | WY |
62 |
--------------------------------------------------------------------------------
/assets/scss/settings/variables/_forms.scss:
--------------------------------------------------------------------------------
1 | // These variables apply to form fields (input, select, textarea, button)
2 | $input-line-height: 1.3 !default;
3 | $input-border-width: 2px !default;
4 | $input-small-width: 6em !default;
5 | $input-medium-width: 12em !default;
6 | $input-max-width: 460px !default;
7 | $input-padding: $spacer-1 !default;
8 | $input-border-radius: $border-radius !default;
9 | $input-border-color: $color-base !default;
10 | $input-border-color-inverse: $color-black !default;
11 |
12 | // Choice theme variables
13 | $choice-background-color: $color-background !default;
14 | $choice-border-color: $color-base !default;
15 | $choice-checked-background-color: $color-primary !default;
16 | $choice-checked-border-color: $color-primary !default;
17 | $choice-disabled-background-color: $color-gray-lighter !default;
18 | $choice-disabled-border-color: $color-gray-light !default;
19 | $choice-background-color-inverse: transparent !default;
20 | $choice-border-color-inverse: $color-white !default;
21 | $choice-disabled-background-color-inverse: rgba($color-muted-inverse, 0.15) !default;
22 | $choice-disabled-border-color-inverse: $color-gray-light !default;
23 | $choice-border-width: 2px !default;
24 | $choice-border-radius: 0 !default;
25 | $choice-size: $spacer-4 !default;
26 | $choice-size-small: 20px !default;
27 |
28 | $button-border-width: 1px !default;
29 | $button-primary-bg: $color-primary !default;
30 | $button-primary-bg--hover: $color-primary-darker !default;
31 | $button-primary-bg--active: $color-primary-darkest !default;
32 |
--------------------------------------------------------------------------------
/assets/components/Tooltip/TooltipIcon.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = exports.TooltipIcon = void 0;
7 |
8 | var _propTypes = _interopRequireDefault(require("prop-types"));
9 |
10 | var _react = _interopRequireDefault(require("react"));
11 |
12 | var _classnames = _interopRequireDefault(require("classnames"));
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | var InformationIcon = function InformationIcon(props) {
17 | return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("path", {
18 | d: "M8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8zm1-3.7V6.4H7v5.9h2zM7 4.9c0 .6.3.9 1 .9s1-.3 1-.9c0-.3-.1-.5-.2-.7-.2-.1-.5-.2-.8-.2-.3 0-.6.1-.8.2-.1.2-.2.4-.2.7z"
19 | }));
20 | };
21 |
22 | InformationIcon.defaultProps = {
23 | xmlns: "http://www.w3.org/2000/svg"
24 | };
25 |
26 | var TooltipIcon = function TooltipIcon(props) {
27 | return /*#__PURE__*/_react.default.createElement("span", {
28 | className: "ds-c-tooltip-icon__container"
29 | }, /*#__PURE__*/_react.default.createElement(InformationIcon, {
30 | className: (0, _classnames.default)('ds-c-tooltip-icon', {
31 | 'ds-c-tooltip-icon--inverse': props.inversed
32 | })
33 | }));
34 | };
35 |
36 | exports.TooltipIcon = TooltipIcon;
37 | TooltipIcon.propTypes = {
38 | inversed: _propTypes.default.bool
39 | };
40 | var _default = TooltipIcon;
41 | exports.default = _default;
--------------------------------------------------------------------------------
/Templates/readme.md:
--------------------------------------------------------------------------------
1 | # Templates
2 |
3 | The [State Health Official Letter (SHO) #25-003](https://www.medicaid.gov/federal-policy-guidance/downloads/sho25003.pdf), released on August 6, 2025 clarifies previous guidance for state reporting on MES projects and will support certification of systems through the SMC framework. To achieve these goals, CMS developed new templates which will be published after Paperwork Reduction Act (PRA) review. Please reach out to your State Officer to get those templates.
4 |
5 | ## Required
6 | - Intake Form- Used to track information about a state’s single Medicaid Enterprise Systems (MES) project undergoing certification
7 | - Operational Report Workbook - States must use this template to submit metrics data
8 | - Monthly Project Status Reporting Template - States must use this template for status reports
9 |
10 | ## Recommended
11 | - [Sample SMC Certification Request Letter Template](../Sample_SMC_Certification_Request_Letter_Template.docx) - States must submit the Certification Request Letter to CMS via email to their CMS MES State Officer and MES@cms.hhs.gov to officially request certification
12 | - [System Acceptance Letter Template](../SMC%20System%20Acceptance%20Letter%20Sample_v2.docx) - The required System Acceptance Letter must accompany the Certification Request Letter for any official certification request
13 | - [ORR Sample Agenda](../ORR%20Sample%20Agenda.docx) - An example agenda for an Operational Readiness Review
14 | - [CR Sample Agenda](../CR%20Sample%20Agenda.docx) - An example agenda for a Certification Review
15 |
--------------------------------------------------------------------------------
/assets/scss/components/_Autocomplete.scss:
--------------------------------------------------------------------------------
1 | @import '../settings/index.scss';
2 |
3 | .ds-c-autocomplete {
4 | max-width: $input-max-width;
5 | position: relative;
6 | // Undoing the clearfix class on the div containing the label element
7 | .ds-u-clearfix {
8 | &::before {
9 | content: none;
10 | display: block;
11 | }
12 | &::after {
13 | clear: none;
14 | content: none;
15 | display: block;
16 | }
17 | }
18 | @if $ds-include-focus-styles {
19 | input:focus {
20 | @include focus-styles-position;
21 | }
22 | }
23 | }
24 |
25 | .ds-c-autocomplete__list {
26 | background-color: $color-white;
27 | box-sizing: border-box;
28 | max-height: ($base-font-size + $spacer-2) * 10;
29 | overflow-y: auto;
30 | position: absolute;
31 | width: 100%;
32 | z-index: $z-dialog;
33 | }
34 |
35 | .ds-c-autocomplete__list-item {
36 | color: $color-primary;
37 | padding: $spacer-1;
38 | }
39 |
40 | .ds-c-autocomplete__list-item--active {
41 | background-color: $color-primary-alt-darkest;
42 | color: $color-white;
43 | }
44 |
45 | .ds-c-autocomplete__list-item--message {
46 | color: $color-muted;
47 | padding: $spacer-1;
48 | }
49 |
50 | // Need a custom class so the bottom error message does not conflict with the clear search button
51 | .ds-c-autocomplete__error-message {
52 | float: left;
53 | }
54 |
55 | // Need a custom class for bottom error message to make space for the clear search button
56 | .ds-c-autocomplete__error-message--clear-btn {
57 | width: calc(100% - 110px);
58 | }
59 |
--------------------------------------------------------------------------------
/assets/components/Table/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | Object.defineProperty(exports, "Table", {
7 | enumerable: true,
8 | get: function get() {
9 | return _Table.default;
10 | }
11 | });
12 | Object.defineProperty(exports, "TableBody", {
13 | enumerable: true,
14 | get: function get() {
15 | return _TableBody.default;
16 | }
17 | });
18 | Object.defineProperty(exports, "TableCaption", {
19 | enumerable: true,
20 | get: function get() {
21 | return _TableCaption.default;
22 | }
23 | });
24 | Object.defineProperty(exports, "TableCell", {
25 | enumerable: true,
26 | get: function get() {
27 | return _TableCell.default;
28 | }
29 | });
30 | Object.defineProperty(exports, "TableHead", {
31 | enumerable: true,
32 | get: function get() {
33 | return _TableHead.default;
34 | }
35 | });
36 | Object.defineProperty(exports, "TableRow", {
37 | enumerable: true,
38 | get: function get() {
39 | return _TableRow.default;
40 | }
41 | });
42 |
43 | var _Table = _interopRequireDefault(require("./Table"));
44 |
45 | var _TableBody = _interopRequireDefault(require("./TableBody"));
46 |
47 | var _TableCaption = _interopRequireDefault(require("./TableCaption"));
48 |
49 | var _TableCell = _interopRequireDefault(require("./TableCell"));
50 |
51 | var _TableHead = _interopRequireDefault(require("./TableHead"));
52 |
53 | var _TableRow = _interopRequireDefault(require("./TableRow"));
54 |
55 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
--------------------------------------------------------------------------------
/assets/components/flags.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.errorPlacementDefault = errorPlacementDefault;
7 | exports.setErrorPlacementDefault = setErrorPlacementDefault;
8 | exports.alertSendsAnalytics = alertSendsAnalytics;
9 | exports.setAlertSendsAnalytics = setAlertSendsAnalytics;
10 | exports.dialogSendsAnalytics = dialogSendsAnalytics;
11 | exports.setDialogSendsAnalytics = setDialogSendsAnalytics;
12 | exports.helpDrawerSendsAnalytics = helpDrawerSendsAnalytics;
13 | exports.setHelpDrawerSendsAnalytics = setHelpDrawerSendsAnalytics;
14 | // featureFlags.js
15 | var flags = {
16 | ERROR_PLACEMENT_DEFAULT: 'top',
17 | ALERT_SENDS_ANALYTICS: false,
18 | DIALOG_SENDS_ANALYTICS: false,
19 | HELP_DRAWER_SENDS_ANALYTICS: false
20 | };
21 |
22 | function errorPlacementDefault() {
23 | return flags.ERROR_PLACEMENT_DEFAULT;
24 | }
25 |
26 | function setErrorPlacementDefault(value) {
27 | flags.ERROR_PLACEMENT_DEFAULT = value;
28 | }
29 |
30 | function alertSendsAnalytics() {
31 | return flags.ALERT_SENDS_ANALYTICS;
32 | }
33 |
34 | function setAlertSendsAnalytics(value) {
35 | flags.ALERT_SENDS_ANALYTICS = value;
36 | }
37 |
38 | function dialogSendsAnalytics() {
39 | return flags.DIALOG_SENDS_ANALYTICS;
40 | }
41 |
42 | function setDialogSendsAnalytics(value) {
43 | flags.DIALOG_SENDS_ANALYTICS = value;
44 | }
45 |
46 | function helpDrawerSendsAnalytics() {
47 | return flags.HELP_DRAWER_SENDS_ANALYTICS;
48 | }
49 |
50 | function setHelpDrawerSendsAnalytics(value) {
51 | flags.HELP_DRAWER_SENDS_ANALYTICS = value;
52 | }
--------------------------------------------------------------------------------
/assets/scss/components/_FormLabel.scss:
--------------------------------------------------------------------------------
1 | @import '../settings/index.scss';
2 |
3 | .ds-c-label {
4 | // Correct color inheritance for `legend` elements in IE11
5 | // https://github.com/necolas/normalize.css/blob/master/normalize.css#L235
6 | color: inherit;
7 | display: block;
8 | font-size: $base-font-size;
9 | font-weight: $font-bold;
10 | margin-bottom: 0;
11 | margin-top: $spacer-3;
12 | max-width: $input-max-width;
13 | // Remove default padding on