@raystack/apsara 0.0.1 → 0.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/box/box.d.ts +1 -1
- package/dist/box/box.d.ts.map +1 -1
- package/dist/flex/flex.d.ts +1 -1
- package/dist/flex/flex.d.ts.map +1 -1
- package/dist/index.cjs +15820 -74
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +74 -5
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15766 -35
- package/dist/index.js.map +1 -1
- package/dist/inputfield/index.d.ts +2 -0
- package/dist/inputfield/index.d.ts.map +1 -0
- package/dist/inputfield/inputfield.d.ts +16 -0
- package/dist/inputfield/inputfield.d.ts.map +1 -0
- package/dist/label/label.d.ts +1 -1
- package/dist/label/label.d.ts.map +1 -1
- package/dist/sidebar/sidebar.d.ts +3 -3
- package/dist/sidebar/sidebar.d.ts.map +1 -1
- package/dist/table/datatable.d.ts +6 -4
- package/dist/table/datatable.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/avatar/avatar.cjs +0 -76
- package/dist/avatar/avatar.cjs.map +0 -1
- package/dist/avatar/avatar.js +0 -55
- package/dist/avatar/avatar.js.map +0 -1
- package/dist/avatar/avatar.module.css.cjs +0 -6
- package/dist/avatar/avatar.module.css.cjs.map +0 -1
- package/dist/avatar/avatar.module.css.js +0 -4
- package/dist/avatar/avatar.module.css.js.map +0 -1
- package/dist/badge/badge.cjs +0 -20
- package/dist/badge/badge.cjs.map +0 -1
- package/dist/badge/badge.js +0 -18
- package/dist/badge/badge.js.map +0 -1
- package/dist/badge/badge.module.css.cjs +0 -6
- package/dist/badge/badge.module.css.cjs.map +0 -1
- package/dist/badge/badge.module.css.js +0 -4
- package/dist/badge/badge.module.css.js.map +0 -1
- package/dist/body/body.cjs +0 -24
- package/dist/body/body.cjs.map +0 -1
- package/dist/body/body.js +0 -22
- package/dist/body/body.js.map +0 -1
- package/dist/body/body.module.css.cjs +0 -6
- package/dist/body/body.module.css.cjs.map +0 -1
- package/dist/body/body.module.css.js +0 -4
- package/dist/body/body.module.css.js.map +0 -1
- package/dist/box/box.cjs +0 -13
- package/dist/box/box.cjs.map +0 -1
- package/dist/box/box.js +0 -11
- package/dist/box/box.js.map +0 -1
- package/dist/box/box.module.css.cjs +0 -6
- package/dist/box/box.module.css.cjs.map +0 -1
- package/dist/box/box.module.css.js +0 -4
- package/dist/box/box.module.css.js.map +0 -1
- package/dist/button/button.cjs +0 -32
- package/dist/button/button.cjs.map +0 -1
- package/dist/button/button.js +0 -30
- package/dist/button/button.js.map +0 -1
- package/dist/button/button.module.css.cjs +0 -6
- package/dist/button/button.module.css.cjs.map +0 -1
- package/dist/button/button.module.css.js +0 -4
- package/dist/button/button.module.css.js.map +0 -1
- package/dist/checkbox/checkbox.cjs +0 -48
- package/dist/checkbox/checkbox.cjs.map +0 -1
- package/dist/checkbox/checkbox.js +0 -27
- package/dist/checkbox/checkbox.js.map +0 -1
- package/dist/checkbox/checkbox.module.css.cjs +0 -6
- package/dist/checkbox/checkbox.module.css.cjs.map +0 -1
- package/dist/checkbox/checkbox.module.css.js +0 -4
- package/dist/checkbox/checkbox.module.css.js.map +0 -1
- package/dist/command/command.cjs +0 -52
- package/dist/command/command.cjs.map +0 -1
- package/dist/command/command.js +0 -50
- package/dist/command/command.js.map +0 -1
- package/dist/command/command.module.css.cjs +0 -6
- package/dist/command/command.module.css.cjs.map +0 -1
- package/dist/command/command.module.css.js +0 -4
- package/dist/command/command.module.css.js.map +0 -1
- package/dist/container/container.cjs +0 -25
- package/dist/container/container.cjs.map +0 -1
- package/dist/container/container.js +0 -23
- package/dist/container/container.js.map +0 -1
- package/dist/container/container.module.css.cjs +0 -6
- package/dist/container/container.module.css.cjs.map +0 -1
- package/dist/container/container.module.css.js +0 -4
- package/dist/container/container.module.css.js.map +0 -1
- package/dist/dialog/dialog.cjs +0 -52
- package/dist/dialog/dialog.cjs.map +0 -1
- package/dist/dialog/dialog.js +0 -29
- package/dist/dialog/dialog.js.map +0 -1
- package/dist/dialog/dialog.module.css.cjs +0 -6
- package/dist/dialog/dialog.module.css.cjs.map +0 -1
- package/dist/dialog/dialog.module.css.js +0 -4
- package/dist/dialog/dialog.module.css.js.map +0 -1
- package/dist/display/display.cjs +0 -24
- package/dist/display/display.cjs.map +0 -1
- package/dist/display/display.js +0 -22
- package/dist/display/display.js.map +0 -1
- package/dist/display/display.module.css.cjs +0 -6
- package/dist/display/display.module.css.cjs.map +0 -1
- package/dist/display/display.module.css.js +0 -4
- package/dist/display/display.module.css.js.map +0 -1
- package/dist/dropdown-menu/dropdown-menu.cjs +0 -54
- package/dist/dropdown-menu/dropdown-menu.cjs.map +0 -1
- package/dist/dropdown-menu/dropdown-menu.js +0 -32
- package/dist/dropdown-menu/dropdown-menu.js.map +0 -1
- package/dist/dropdown-menu/dropdown-menu.module.css.cjs +0 -6
- package/dist/dropdown-menu/dropdown-menu.module.css.cjs.map +0 -1
- package/dist/dropdown-menu/dropdown-menu.module.css.js +0 -4
- package/dist/dropdown-menu/dropdown-menu.module.css.js.map +0 -1
- package/dist/emptystate/emptystate.cjs +0 -13
- package/dist/emptystate/emptystate.cjs.map +0 -1
- package/dist/emptystate/emptystate.js +0 -11
- package/dist/emptystate/emptystate.js.map +0 -1
- package/dist/emptystate/emptystate.module.css.cjs +0 -6
- package/dist/emptystate/emptystate.module.css.cjs.map +0 -1
- package/dist/emptystate/emptystate.module.css.js +0 -4
- package/dist/emptystate/emptystate.module.css.js.map +0 -1
- package/dist/flex/flex.cjs +0 -53
- package/dist/flex/flex.cjs.map +0 -1
- package/dist/flex/flex.js +0 -51
- package/dist/flex/flex.js.map +0 -1
- package/dist/flex/flex.module.css.cjs +0 -6
- package/dist/flex/flex.module.css.cjs.map +0 -1
- package/dist/flex/flex.module.css.js +0 -4
- package/dist/flex/flex.module.css.js.map +0 -1
- package/dist/grid/grid.cjs +0 -72
- package/dist/grid/grid.cjs.map +0 -1
- package/dist/grid/grid.js +0 -70
- package/dist/grid/grid.js.map +0 -1
- package/dist/grid/grid.module.css.cjs +0 -6
- package/dist/grid/grid.module.css.cjs.map +0 -1
- package/dist/grid/grid.module.css.js +0 -4
- package/dist/grid/grid.module.css.js.map +0 -1
- package/dist/headline/headline.cjs +0 -24
- package/dist/headline/headline.cjs.map +0 -1
- package/dist/headline/headline.js +0 -22
- package/dist/headline/headline.js.map +0 -1
- package/dist/headline/headline.module.css.cjs +0 -6
- package/dist/headline/headline.module.css.cjs.map +0 -1
- package/dist/headline/headline.module.css.js +0 -4
- package/dist/headline/headline.module.css.js.map +0 -1
- package/dist/image/image.cjs +0 -13
- package/dist/image/image.cjs.map +0 -1
- package/dist/image/image.js +0 -11
- package/dist/image/image.js.map +0 -1
- package/dist/image/image.module.css.cjs +0 -6
- package/dist/image/image.module.css.cjs.map +0 -1
- package/dist/image/image.module.css.js +0 -4
- package/dist/image/image.module.css.js.map +0 -1
- package/dist/label/label.cjs +0 -24
- package/dist/label/label.cjs.map +0 -1
- package/dist/label/label.js +0 -22
- package/dist/label/label.js.map +0 -1
- package/dist/label/label.module.css.cjs +0 -6
- package/dist/label/label.module.css.cjs.map +0 -1
- package/dist/label/label.module.css.js +0 -4
- package/dist/label/label.module.css.js.map +0 -1
- package/dist/link/link.cjs +0 -24
- package/dist/link/link.cjs.map +0 -1
- package/dist/link/link.js +0 -22
- package/dist/link/link.js.map +0 -1
- package/dist/link/link.module.css.cjs +0 -6
- package/dist/link/link.module.css.cjs.map +0 -1
- package/dist/link/link.module.css.js +0 -4
- package/dist/link/link.module.css.js.map +0 -1
- package/dist/popover/popover.cjs +0 -35
- package/dist/popover/popover.cjs.map +0 -1
- package/dist/popover/popover.js +0 -14
- package/dist/popover/popover.js.map +0 -1
- package/dist/popover/popover.module.css.cjs +0 -6
- package/dist/popover/popover.module.css.cjs.map +0 -1
- package/dist/popover/popover.module.css.js +0 -4
- package/dist/popover/popover.module.css.js.map +0 -1
- package/dist/radio/radio.cjs +0 -51
- package/dist/radio/radio.cjs.map +0 -1
- package/dist/radio/radio.js +0 -29
- package/dist/radio/radio.js.map +0 -1
- package/dist/radio/radio.module.css.cjs +0 -6
- package/dist/radio/radio.module.css.cjs.map +0 -1
- package/dist/radio/radio.module.css.js +0 -4
- package/dist/radio/radio.module.css.js.map +0 -1
- package/dist/scroll-area/scrollarea.cjs +0 -38
- package/dist/scroll-area/scrollarea.cjs.map +0 -1
- package/dist/scroll-area/scrollarea.js +0 -15
- package/dist/scroll-area/scrollarea.js.map +0 -1
- package/dist/scroll-area/scrollarea.module.css.cjs +0 -6
- package/dist/scroll-area/scrollarea.module.css.cjs.map +0 -1
- package/dist/scroll-area/scrollarea.module.css.js +0 -4
- package/dist/scroll-area/scrollarea.module.css.js.map +0 -1
- package/dist/select/select.cjs +0 -56
- package/dist/select/select.cjs.map +0 -1
- package/dist/select/select.js +0 -34
- package/dist/select/select.js.map +0 -1
- package/dist/select/select.module.css.cjs +0 -6
- package/dist/select/select.module.css.cjs.map +0 -1
- package/dist/select/select.module.css.js +0 -4
- package/dist/select/select.module.css.js.map +0 -1
- package/dist/separator/separator.cjs +0 -44
- package/dist/separator/separator.cjs.map +0 -1
- package/dist/separator/separator.js +0 -23
- package/dist/separator/separator.js.map +0 -1
- package/dist/separator/separator.module.css.cjs +0 -6
- package/dist/separator/separator.module.css.cjs.map +0 -1
- package/dist/separator/separator.module.css.js +0 -4
- package/dist/separator/separator.module.css.js.map +0 -1
- package/dist/sheet/sheet.cjs +0 -67
- package/dist/sheet/sheet.cjs.map +0 -1
- package/dist/sheet/sheet.js +0 -43
- package/dist/sheet/sheet.js.map +0 -1
- package/dist/sheet/sheet.module.css.cjs +0 -6
- package/dist/sheet/sheet.module.css.cjs.map +0 -1
- package/dist/sheet/sheet.module.css.js +0 -4
- package/dist/sheet/sheet.module.css.js.map +0 -1
- package/dist/sidebar/sidebar.cjs +0 -44
- package/dist/sidebar/sidebar.cjs.map +0 -1
- package/dist/sidebar/sidebar.js +0 -42
- package/dist/sidebar/sidebar.js.map +0 -1
- package/dist/sidebar/sidebar.module.css.cjs +0 -6
- package/dist/sidebar/sidebar.module.css.cjs.map +0 -1
- package/dist/sidebar/sidebar.module.css.js +0 -4
- package/dist/sidebar/sidebar.module.css.js.map +0 -1
- package/dist/switch/switch.cjs +0 -35
- package/dist/switch/switch.cjs.map +0 -1
- package/dist/switch/switch.js +0 -14
- package/dist/switch/switch.js.map +0 -1
- package/dist/switch/switch.module.css.cjs +0 -6
- package/dist/switch/switch.module.css.cjs.map +0 -1
- package/dist/switch/switch.module.css.js +0 -4
- package/dist/switch/switch.module.css.js.map +0 -1
- package/dist/table/DataTableClearFilter.cjs +0 -18
- package/dist/table/DataTableClearFilter.cjs.map +0 -1
- package/dist/table/DataTableClearFilter.js +0 -16
- package/dist/table/DataTableClearFilter.js.map +0 -1
- package/dist/table/DataTableFilterChips.cjs +0 -25
- package/dist/table/DataTableFilterChips.cjs.map +0 -1
- package/dist/table/DataTableFilterChips.js +0 -23
- package/dist/table/DataTableFilterChips.js.map +0 -1
- package/dist/table/DataTableFilterOptions.cjs +0 -22
- package/dist/table/DataTableFilterOptions.cjs.map +0 -1
- package/dist/table/DataTableFilterOptions.js +0 -20
- package/dist/table/DataTableFilterOptions.js.map +0 -1
- package/dist/table/DataTableFooter.cjs +0 -12
- package/dist/table/DataTableFooter.cjs.map +0 -1
- package/dist/table/DataTableFooter.js +0 -10
- package/dist/table/DataTableFooter.js.map +0 -1
- package/dist/table/DataTableGloabalSearch.cjs +0 -13
- package/dist/table/DataTableGloabalSearch.cjs.map +0 -1
- package/dist/table/DataTableGloabalSearch.js +0 -11
- package/dist/table/DataTableGloabalSearch.js.map +0 -1
- package/dist/table/DataTableToolbar.cjs +0 -12
- package/dist/table/DataTableToolbar.cjs.map +0 -1
- package/dist/table/DataTableToolbar.js +0 -10
- package/dist/table/DataTableToolbar.js.map +0 -1
- package/dist/table/DataTableViewOptions.cjs +0 -22
- package/dist/table/DataTableViewOptions.cjs.map +0 -1
- package/dist/table/DataTableViewOptions.js +0 -20
- package/dist/table/DataTableViewOptions.js.map +0 -1
- package/dist/table/FilteredChip.cjs +0 -57
- package/dist/table/FilteredChip.cjs.map +0 -1
- package/dist/table/FilteredChip.js +0 -55
- package/dist/table/FilteredChip.js.map +0 -1
- package/dist/table/TableBottomContainer.cjs +0 -11
- package/dist/table/TableBottomContainer.cjs.map +0 -1
- package/dist/table/TableBottomContainer.js +0 -9
- package/dist/table/TableBottomContainer.js.map +0 -1
- package/dist/table/TableContext.cjs +0 -8
- package/dist/table/TableContext.cjs.map +0 -1
- package/dist/table/TableContext.js +0 -6
- package/dist/table/TableContext.js.map +0 -1
- package/dist/table/TableDetailContainer.cjs +0 -11
- package/dist/table/TableDetailContainer.cjs.map +0 -1
- package/dist/table/TableDetailContainer.js +0 -9
- package/dist/table/TableDetailContainer.js.map +0 -1
- package/dist/table/TableTopContainer.cjs +0 -11
- package/dist/table/TableTopContainer.cjs.map +0 -1
- package/dist/table/TableTopContainer.d.ts +0 -6
- package/dist/table/TableTopContainer.d.ts.map +0 -1
- package/dist/table/TableTopContainer.js +0 -9
- package/dist/table/TableTopContainer.js.map +0 -1
- package/dist/table/datatable.cjs +0 -86
- package/dist/table/datatable.cjs.map +0 -1
- package/dist/table/datatable.js +0 -84
- package/dist/table/datatable.js.map +0 -1
- package/dist/table/datatable.module.css.cjs +0 -6
- package/dist/table/datatable.module.css.cjs.map +0 -1
- package/dist/table/datatable.module.css.js +0 -4
- package/dist/table/datatable.module.css.js.map +0 -1
- package/dist/table/hooks/useOnClickOutside.cjs +0 -17
- package/dist/table/hooks/useOnClickOutside.cjs.map +0 -1
- package/dist/table/hooks/useOnClickOutside.js +0 -15
- package/dist/table/hooks/useOnClickOutside.js.map +0 -1
- package/dist/table/hooks/useRowSelection.cjs +0 -45
- package/dist/table/hooks/useRowSelection.cjs.map +0 -1
- package/dist/table/hooks/useRowSelection.js +0 -43
- package/dist/table/hooks/useRowSelection.js.map +0 -1
- package/dist/table/hooks/useTable.cjs +0 -15
- package/dist/table/hooks/useTable.cjs.map +0 -1
- package/dist/table/hooks/useTable.js +0 -13
- package/dist/table/hooks/useTable.js.map +0 -1
- package/dist/table/hooks/useTableColumn.cjs +0 -29
- package/dist/table/hooks/useTableColumn.cjs.map +0 -1
- package/dist/table/hooks/useTableColumn.js +0 -27
- package/dist/table/hooks/useTableColumn.js.map +0 -1
- package/dist/table/hooks/useTableFilter.d.ts +0 -11
- package/dist/table/hooks/useTableFilter.d.ts.map +0 -1
- package/dist/table/table.cjs +0 -62
- package/dist/table/table.cjs.map +0 -1
- package/dist/table/table.js +0 -41
- package/dist/table/table.js.map +0 -1
- package/dist/table/table.module.css.cjs +0 -6
- package/dist/table/table.module.css.cjs.map +0 -1
- package/dist/table/table.module.css.js +0 -4
- package/dist/table/table.module.css.js.map +0 -1
- package/dist/tabs/tabs.cjs +0 -56
- package/dist/tabs/tabs.cjs.map +0 -1
- package/dist/tabs/tabs.js +0 -35
- package/dist/tabs/tabs.js.map +0 -1
- package/dist/tabs/tabs.module.css.cjs +0 -6
- package/dist/tabs/tabs.module.css.cjs.map +0 -1
- package/dist/tabs/tabs.module.css.js +0 -4
- package/dist/tabs/tabs.module.css.js.map +0 -1
- package/dist/text/text.cjs +0 -31
- package/dist/text/text.cjs.map +0 -1
- package/dist/text/text.js +0 -29
- package/dist/text/text.js.map +0 -1
- package/dist/text/text.module.css.cjs +0 -6
- package/dist/text/text.module.css.cjs.map +0 -1
- package/dist/text/text.module.css.js +0 -4
- package/dist/text/text.module.css.js.map +0 -1
- package/dist/textfield/textfield.cjs +0 -28
- package/dist/textfield/textfield.cjs.map +0 -1
- package/dist/textfield/textfield.js +0 -26
- package/dist/textfield/textfield.js.map +0 -1
- package/dist/textfield/textfield.module.css.cjs +0 -6
- package/dist/textfield/textfield.module.css.cjs.map +0 -1
- package/dist/textfield/textfield.module.css.js +0 -4
- package/dist/textfield/textfield.module.css.js.map +0 -1
- package/dist/themprovider/OSPreference.cjs +0 -34
- package/dist/themprovider/OSPreference.cjs.map +0 -1
- package/dist/themprovider/OSPreference.js +0 -31
- package/dist/themprovider/OSPreference.js.map +0 -1
- package/dist/themprovider/storage.cjs +0 -33
- package/dist/themprovider/storage.cjs.map +0 -1
- package/dist/themprovider/storage.js +0 -29
- package/dist/themprovider/storage.js.map +0 -1
- package/dist/themprovider/switcher.cjs +0 -22
- package/dist/themprovider/switcher.cjs.map +0 -1
- package/dist/themprovider/switcher.js +0 -20
- package/dist/themprovider/switcher.js.map +0 -1
- package/dist/themprovider/themeprovider.cjs +0 -86
- package/dist/themprovider/themeprovider.cjs.map +0 -1
- package/dist/themprovider/themeprovider.js +0 -82
- package/dist/themprovider/themeprovider.js.map +0 -1
- package/dist/themprovider/useTheme.cjs +0 -74
- package/dist/themprovider/useTheme.cjs.map +0 -1
- package/dist/themprovider/useTheme.d.ts +0 -14
- package/dist/themprovider/useTheme.d.ts.map +0 -1
- package/dist/themprovider/useTheme.js +0 -70
- package/dist/themprovider/useTheme.js.map +0 -1
- package/dist/title/title.cjs +0 -24
- package/dist/title/title.cjs.map +0 -1
- package/dist/title/title.js +0 -22
- package/dist/title/title.js.map +0 -1
- package/dist/title/title.module.css.cjs +0 -6
- package/dist/title/title.module.css.cjs.map +0 -1
- package/dist/title/title.module.css.js +0 -4
- package/dist/title/title.module.css.js.map +0 -1
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
const themeLocalStorageKey = "theme";
|
|
2
|
-
function isValidThemePreference(theme) {
|
|
3
|
-
return theme == "auto" || theme == "dark" || theme == "light";
|
|
4
|
-
}
|
|
5
|
-
const saveThemePreference = (newTheme) => {
|
|
6
|
-
try {
|
|
7
|
-
if (typeof newTheme === "string")
|
|
8
|
-
window.localStorage.setItem(themeLocalStorageKey, newTheme);
|
|
9
|
-
}
|
|
10
|
-
catch (e) {
|
|
11
|
-
console.warn(e);
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
const getSavedThemePreference = () => {
|
|
15
|
-
try {
|
|
16
|
-
const savedMode = window.localStorage.getItem(themeLocalStorageKey);
|
|
17
|
-
// If the user has explicitly chosen a colour mode,
|
|
18
|
-
// let's use it. Otherwise, this value will be null.
|
|
19
|
-
return isValidThemePreference(savedMode) ? savedMode : null;
|
|
20
|
-
}
|
|
21
|
-
catch (e) {
|
|
22
|
-
// When Chrome in incognito, localStorage cannot be accessed
|
|
23
|
-
console.warn(e);
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export { getSavedThemePreference, isValidThemePreference, saveThemePreference };
|
|
29
|
-
//# sourceMappingURL=storage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sources":["../../../themprovider/storage.ts"],"sourcesContent":["const themeLocalStorageKey = \"theme\";\n\nexport type ThemePreference = \"auto\" | \"dark\" | \"light\";\nexport function isValidThemePreference(\n theme: string | null\n): theme is ThemePreference {\n return theme == \"auto\" || theme == \"dark\" || theme == \"light\";\n}\n\nexport const saveThemePreference = (newTheme: ThemePreference) => {\n try {\n if (typeof newTheme === \"string\")\n window.localStorage.setItem(themeLocalStorageKey, newTheme);\n } catch (e) {\n console.warn(e);\n }\n};\n\nexport const getSavedThemePreference = (): ThemePreference | null => {\n try {\n const savedMode = window.localStorage.getItem(themeLocalStorageKey);\n // If the user has explicitly chosen a colour mode,\n // let's use it. Otherwise, this value will be null.\n return isValidThemePreference(savedMode) ? savedMode : null;\n } catch (e) {\n // When Chrome in incognito, localStorage cannot be accessed\n console.warn(e);\n return null;\n }\n};\n"],"names":[],"mappings":"AAAA,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAG/B,SAAU,sBAAsB,CACpC,KAAoB,EAAA;IAEpB,OAAO,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,CAAC;AAChE,CAAC;AAEY,MAAA,mBAAmB,GAAG,CAAC,QAAyB,KAAI;IAC/D,IAAI;QACF,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAC9B,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAC/D,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,KAAA;AACH,EAAE;AAEK,MAAM,uBAAuB,GAAG,MAA6B;IAClE,IAAI;QACF,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;;;AAGpE,QAAA,OAAO,sBAAsB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAC7D,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;;AAEV,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACH;;;;"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var reactIcons = require('@radix-ui/react-icons');
|
|
5
|
-
var box = require('../box/box.cjs');
|
|
6
|
-
var themeprovider = require('./themeprovider.cjs');
|
|
7
|
-
|
|
8
|
-
var Theme;
|
|
9
|
-
(function (Theme) {
|
|
10
|
-
Theme["DARK"] = "dark";
|
|
11
|
-
Theme["LIGHT"] = "light";
|
|
12
|
-
})(Theme || (Theme = {}));
|
|
13
|
-
function ThemeSwitcher({ size = 30, ...props }) {
|
|
14
|
-
const { themeName, setTheme } = themeprovider.useApsaraTheme();
|
|
15
|
-
const onClickHandler = () => {
|
|
16
|
-
setTheme(themeName === Theme.DARK ? Theme.LIGHT : Theme.DARK);
|
|
17
|
-
};
|
|
18
|
-
return (jsxRuntime.jsx(box.Box, { ...props, children: themeName === Theme.DARK ? (jsxRuntime.jsx(reactIcons.SunIcon, { width: size, height: size, onClick: onClickHandler })) : (jsxRuntime.jsx(reactIcons.MoonIcon, { width: size, height: size, onClick: onClickHandler })) }));
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
exports.ThemeSwitcher = ThemeSwitcher;
|
|
22
|
-
//# sourceMappingURL=switcher.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switcher.cjs","sources":["../../../themprovider/switcher.tsx"],"sourcesContent":["import { MoonIcon, SunIcon } from \"@radix-ui/react-icons\";\nimport { Box } from \"~/box\";\nimport { useApsaraTheme } from \"./themeprovider\";\n\nenum Theme {\n DARK = \"dark\",\n LIGHT = \"light\",\n}\n\ntype Props = { size?: number };\nexport function ThemeSwitcher({ size = 30, ...props }: Props) {\n const { themeName, setTheme } = useApsaraTheme();\n const onClickHandler = () => {\n setTheme(themeName === Theme.DARK ? Theme.LIGHT : Theme.DARK);\n };\n\n return (\n <Box {...props}>\n {themeName === Theme.DARK ? (\n <SunIcon width={size} height={size} onClick={onClickHandler} />\n ) : (\n <MoonIcon width={size} height={size} onClick={onClickHandler} />\n )}\n </Box>\n );\n}\n"],"names":["useApsaraTheme","_jsx","Box","SunIcon","MoonIcon"],"mappings":";;;;;;;AAIA,IAAK,KAGJ,CAAA;AAHD,CAAA,UAAK,KAAK,EAAA;AACR,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHI,KAAK,KAAL,KAAK,GAGT,EAAA,CAAA,CAAA,CAAA;AAGK,SAAU,aAAa,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,KAAK,EAAS,EAAA;IAC1D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAGA,4BAAc,EAAE,CAAC;IACjD,MAAM,cAAc,GAAG,MAAK;AAC1B,QAAA,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAChE,KAAC,CAAC;IAEF,QACEC,cAAC,CAAAC,OAAG,EAAK,EAAA,GAAA,KAAK,YACX,SAAS,KAAK,KAAK,CAAC,IAAI,IACvBD,cAAC,CAAAE,kBAAO,EAAC,EAAA,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAI,CAAA,KAE/DF,cAAA,CAACG,mBAAQ,EAAA,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAI,CAAA,CACjE,EACG,CAAA,EACN;AACJ;;;;"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { SunIcon, MoonIcon } from '@radix-ui/react-icons';
|
|
3
|
-
import { Box } from '../box/box.js';
|
|
4
|
-
import { useApsaraTheme } from './themeprovider.js';
|
|
5
|
-
|
|
6
|
-
var Theme;
|
|
7
|
-
(function (Theme) {
|
|
8
|
-
Theme["DARK"] = "dark";
|
|
9
|
-
Theme["LIGHT"] = "light";
|
|
10
|
-
})(Theme || (Theme = {}));
|
|
11
|
-
function ThemeSwitcher({ size = 30, ...props }) {
|
|
12
|
-
const { themeName, setTheme } = useApsaraTheme();
|
|
13
|
-
const onClickHandler = () => {
|
|
14
|
-
setTheme(themeName === Theme.DARK ? Theme.LIGHT : Theme.DARK);
|
|
15
|
-
};
|
|
16
|
-
return (jsx(Box, { ...props, children: themeName === Theme.DARK ? (jsx(SunIcon, { width: size, height: size, onClick: onClickHandler })) : (jsx(MoonIcon, { width: size, height: size, onClick: onClickHandler })) }));
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { ThemeSwitcher };
|
|
20
|
-
//# sourceMappingURL=switcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switcher.js","sources":["../../../themprovider/switcher.tsx"],"sourcesContent":["import { MoonIcon, SunIcon } from \"@radix-ui/react-icons\";\nimport { Box } from \"~/box\";\nimport { useApsaraTheme } from \"./themeprovider\";\n\nenum Theme {\n DARK = \"dark\",\n LIGHT = \"light\",\n}\n\ntype Props = { size?: number };\nexport function ThemeSwitcher({ size = 30, ...props }: Props) {\n const { themeName, setTheme } = useApsaraTheme();\n const onClickHandler = () => {\n setTheme(themeName === Theme.DARK ? Theme.LIGHT : Theme.DARK);\n };\n\n return (\n <Box {...props}>\n {themeName === Theme.DARK ? (\n <SunIcon width={size} height={size} onClick={onClickHandler} />\n ) : (\n <MoonIcon width={size} height={size} onClick={onClickHandler} />\n )}\n </Box>\n );\n}\n"],"names":["_jsx"],"mappings":";;;;;AAIA,IAAK,KAGJ,CAAA;AAHD,CAAA,UAAK,KAAK,EAAA;AACR,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHI,KAAK,KAAL,KAAK,GAGT,EAAA,CAAA,CAAA,CAAA;AAGK,SAAU,aAAa,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,KAAK,EAAS,EAAA;IAC1D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IACjD,MAAM,cAAc,GAAG,MAAK;AAC1B,QAAA,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAChE,KAAC,CAAC;IAEF,QACEA,GAAC,CAAA,GAAG,EAAK,EAAA,GAAA,KAAK,YACX,SAAS,KAAK,KAAK,CAAC,IAAI,IACvBA,GAAC,CAAA,OAAO,EAAC,EAAA,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAI,CAAA,KAE/DA,GAAA,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAI,CAAA,CACjE,EACG,CAAA,EACN;AACJ;;;;"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var OSPreference = require('./OSPreference.cjs');
|
|
6
|
-
var storage = require('./storage.cjs');
|
|
7
|
-
|
|
8
|
-
const { createContext, useState, useEffect } = React;
|
|
9
|
-
const defaultThemeName = "dark";
|
|
10
|
-
const initialValues = {
|
|
11
|
-
themeName: defaultThemeName,
|
|
12
|
-
themePreference: defaultThemeName,
|
|
13
|
-
setTheme: () => { },
|
|
14
|
-
};
|
|
15
|
-
const ApsaraThemeContext = createContext(initialValues);
|
|
16
|
-
ApsaraThemeContext.displayName = "ApsaraThemeContext ";
|
|
17
|
-
const useTheme = () => {
|
|
18
|
-
const [themePreference, setThemePreference] = useState(defaultThemeName);
|
|
19
|
-
const [themeName, setThemeName] = useState(defaultThemeName);
|
|
20
|
-
const [osTheme, setOsTheme] = useState(OSPreference.getMediaTheme());
|
|
21
|
-
// in the future this should prefer auto if no saved
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
const initialTheme = storage.getSavedThemePreference();
|
|
24
|
-
if (storage.isValidThemePreference(initialTheme)) {
|
|
25
|
-
setThemePreference(initialTheme);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
setThemePreference(defaultThemeName);
|
|
29
|
-
}
|
|
30
|
-
}, []);
|
|
31
|
-
useEffect(() => {
|
|
32
|
-
if (themePreference == "auto") {
|
|
33
|
-
setThemeName(osTheme ?? defaultThemeName);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
setThemeName(themePreference);
|
|
37
|
-
}
|
|
38
|
-
}, [themePreference]);
|
|
39
|
-
useEffect(() => {
|
|
40
|
-
// if os theme changes and we are in auto mode, change up
|
|
41
|
-
if (themePreference == "auto") {
|
|
42
|
-
setThemeName(osTheme ?? defaultThemeName);
|
|
43
|
-
}
|
|
44
|
-
}, [osTheme]);
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
const html = document.documentElement;
|
|
47
|
-
for (const k of ["dark", "light"]) {
|
|
48
|
-
html.classList.remove(k);
|
|
49
|
-
}
|
|
50
|
-
html.classList.add(themeName);
|
|
51
|
-
}, [themeName]);
|
|
52
|
-
OSPreference.listenForOSPreferenceChanges((osPref) => {
|
|
53
|
-
if (osPref === osTheme)
|
|
54
|
-
return;
|
|
55
|
-
setOsTheme(osPref);
|
|
56
|
-
});
|
|
57
|
-
return {
|
|
58
|
-
themeName,
|
|
59
|
-
themePreference: themePreference,
|
|
60
|
-
setTheme: (newTheme) => {
|
|
61
|
-
setThemePreference(newTheme);
|
|
62
|
-
storage.saveThemePreference(newTheme);
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
const ApsaraThemeProvider = ({ children }) => {
|
|
67
|
-
const { themePreference, setTheme, themeName } = useTheme();
|
|
68
|
-
return (jsxRuntime.jsx(ApsaraThemeContext.Provider, { value: {
|
|
69
|
-
themeName,
|
|
70
|
-
themePreference,
|
|
71
|
-
setTheme,
|
|
72
|
-
}, children: children }));
|
|
73
|
-
};
|
|
74
|
-
function useApsaraTheme() {
|
|
75
|
-
const context = React.useContext(ApsaraThemeContext);
|
|
76
|
-
if (!context) {
|
|
77
|
-
throw new Error("[Apsara UI 2.0]: useApsaraTheme must be used within a ApsaraThemeProvider");
|
|
78
|
-
}
|
|
79
|
-
const { themePreference, setTheme, themeName } = context;
|
|
80
|
-
return { themePreference, setTheme, themeName };
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
exports.ApsaraThemeContext = ApsaraThemeContext;
|
|
84
|
-
exports.ApsaraThemeProvider = ApsaraThemeProvider;
|
|
85
|
-
exports.useApsaraTheme = useApsaraTheme;
|
|
86
|
-
//# sourceMappingURL=themeprovider.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"themeprovider.cjs","sources":["../../../themprovider/themeprovider.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\n\nimport {\n getMediaTheme,\n listenForOSPreferenceChanges,\n MediaTheme,\n} from \"./OSPreference\";\n\nimport {\n getSavedThemePreference,\n isValidThemePreference,\n saveThemePreference,\n ThemePreference,\n} from \"./storage\";\n\nconst { createContext, useState, useEffect } = React;\n\nconst defaultThemeName = \"dark\";\ntype Theme = \"dark\" | \"light\";\n\nfunction isValidTheme(theme: string): theme is Theme {\n return theme == \"dark\" || theme == \"light\";\n}\n\ntype ThemeProviderType = {\n themeName: Theme;\n themePreference: ThemePreference;\n setTheme(newTheme: string): void;\n};\n\nconst initialValues: ThemeProviderType = {\n themeName: defaultThemeName,\n themePreference: defaultThemeName,\n setTheme: () => {},\n};\n\nconst ApsaraThemeContext = createContext<ThemeProviderType>(initialValues);\nApsaraThemeContext.displayName = \"ApsaraThemeContext \";\n\nconst useTheme = (): ThemeProviderType => {\n const [themePreference, setThemePreference] =\n useState<ThemePreference>(defaultThemeName);\n const [themeName, setThemeName] = useState<Theme>(defaultThemeName);\n const [osTheme, setOsTheme] = useState<MediaTheme | null>(getMediaTheme());\n\n // in the future this should prefer auto if no saved\n useEffect(() => {\n const initialTheme = getSavedThemePreference();\n if (isValidThemePreference(initialTheme)) {\n setThemePreference(initialTheme);\n } else {\n setThemePreference(defaultThemeName);\n }\n }, []);\n\n useEffect(() => {\n if (themePreference == \"auto\") {\n setThemeName(osTheme ?? defaultThemeName);\n } else {\n setThemeName(themePreference);\n }\n }, [themePreference]);\n\n useEffect(() => {\n // if os theme changes and we are in auto mode, change up\n if (themePreference == \"auto\") {\n setThemeName(osTheme ?? defaultThemeName);\n }\n }, [osTheme]);\n\n useEffect(() => {\n const html = document.documentElement;\n for (const k of [\"dark\", \"light\"]) {\n html.classList.remove(k);\n }\n html.classList.add(themeName);\n }, [themeName]);\n\n listenForOSPreferenceChanges((osPref) => {\n if (osPref === osTheme) return;\n setOsTheme(osPref);\n });\n\n return {\n themeName,\n themePreference: themePreference,\n setTheme: (newTheme: ThemePreference) => {\n setThemePreference(newTheme);\n saveThemePreference(newTheme);\n },\n };\n};\n\nconst ApsaraThemeProvider = ({ children }: { children: React.ReactNode }) => {\n const { themePreference, setTheme, themeName } = useTheme();\n return (\n <ApsaraThemeContext.Provider\n value={{\n themeName,\n themePreference,\n setTheme,\n }}\n >\n {children}\n </ApsaraThemeContext.Provider>\n );\n};\n\nexport function useApsaraTheme() {\n const context = useContext(ApsaraThemeContext);\n\n if (!context) {\n throw new Error(\n \"[Apsara UI 2.0]: useApsaraTheme must be used within a ApsaraThemeProvider\"\n );\n }\n\n const { themePreference, setTheme, themeName } = context;\n return { themePreference, setTheme, themeName };\n}\n\nexport { ApsaraThemeContext, ApsaraThemeProvider };\n"],"names":["getMediaTheme","getSavedThemePreference","isValidThemePreference","listenForOSPreferenceChanges","saveThemePreference","_jsx","useContext"],"mappings":"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"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import React__default, { useContext } from 'react';
|
|
3
|
-
import { getMediaTheme, listenForOSPreferenceChanges } from './OSPreference.js';
|
|
4
|
-
import { getSavedThemePreference, isValidThemePreference, saveThemePreference } from './storage.js';
|
|
5
|
-
|
|
6
|
-
const { createContext, useState, useEffect } = React__default;
|
|
7
|
-
const defaultThemeName = "dark";
|
|
8
|
-
const initialValues = {
|
|
9
|
-
themeName: defaultThemeName,
|
|
10
|
-
themePreference: defaultThemeName,
|
|
11
|
-
setTheme: () => { },
|
|
12
|
-
};
|
|
13
|
-
const ApsaraThemeContext = createContext(initialValues);
|
|
14
|
-
ApsaraThemeContext.displayName = "ApsaraThemeContext ";
|
|
15
|
-
const useTheme = () => {
|
|
16
|
-
const [themePreference, setThemePreference] = useState(defaultThemeName);
|
|
17
|
-
const [themeName, setThemeName] = useState(defaultThemeName);
|
|
18
|
-
const [osTheme, setOsTheme] = useState(getMediaTheme());
|
|
19
|
-
// in the future this should prefer auto if no saved
|
|
20
|
-
useEffect(() => {
|
|
21
|
-
const initialTheme = getSavedThemePreference();
|
|
22
|
-
if (isValidThemePreference(initialTheme)) {
|
|
23
|
-
setThemePreference(initialTheme);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
setThemePreference(defaultThemeName);
|
|
27
|
-
}
|
|
28
|
-
}, []);
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
if (themePreference == "auto") {
|
|
31
|
-
setThemeName(osTheme ?? defaultThemeName);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
setThemeName(themePreference);
|
|
35
|
-
}
|
|
36
|
-
}, [themePreference]);
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
// if os theme changes and we are in auto mode, change up
|
|
39
|
-
if (themePreference == "auto") {
|
|
40
|
-
setThemeName(osTheme ?? defaultThemeName);
|
|
41
|
-
}
|
|
42
|
-
}, [osTheme]);
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
const html = document.documentElement;
|
|
45
|
-
for (const k of ["dark", "light"]) {
|
|
46
|
-
html.classList.remove(k);
|
|
47
|
-
}
|
|
48
|
-
html.classList.add(themeName);
|
|
49
|
-
}, [themeName]);
|
|
50
|
-
listenForOSPreferenceChanges((osPref) => {
|
|
51
|
-
if (osPref === osTheme)
|
|
52
|
-
return;
|
|
53
|
-
setOsTheme(osPref);
|
|
54
|
-
});
|
|
55
|
-
return {
|
|
56
|
-
themeName,
|
|
57
|
-
themePreference: themePreference,
|
|
58
|
-
setTheme: (newTheme) => {
|
|
59
|
-
setThemePreference(newTheme);
|
|
60
|
-
saveThemePreference(newTheme);
|
|
61
|
-
},
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
const ApsaraThemeProvider = ({ children }) => {
|
|
65
|
-
const { themePreference, setTheme, themeName } = useTheme();
|
|
66
|
-
return (jsx(ApsaraThemeContext.Provider, { value: {
|
|
67
|
-
themeName,
|
|
68
|
-
themePreference,
|
|
69
|
-
setTheme,
|
|
70
|
-
}, children: children }));
|
|
71
|
-
};
|
|
72
|
-
function useApsaraTheme() {
|
|
73
|
-
const context = useContext(ApsaraThemeContext);
|
|
74
|
-
if (!context) {
|
|
75
|
-
throw new Error("[Apsara UI 2.0]: useApsaraTheme must be used within a ApsaraThemeProvider");
|
|
76
|
-
}
|
|
77
|
-
const { themePreference, setTheme, themeName } = context;
|
|
78
|
-
return { themePreference, setTheme, themeName };
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export { ApsaraThemeContext, ApsaraThemeProvider, useApsaraTheme };
|
|
82
|
-
//# sourceMappingURL=themeprovider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"themeprovider.js","sources":["../../../themprovider/themeprovider.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\n\nimport {\n getMediaTheme,\n listenForOSPreferenceChanges,\n MediaTheme,\n} from \"./OSPreference\";\n\nimport {\n getSavedThemePreference,\n isValidThemePreference,\n saveThemePreference,\n ThemePreference,\n} from \"./storage\";\n\nconst { createContext, useState, useEffect } = React;\n\nconst defaultThemeName = \"dark\";\ntype Theme = \"dark\" | \"light\";\n\nfunction isValidTheme(theme: string): theme is Theme {\n return theme == \"dark\" || theme == \"light\";\n}\n\ntype ThemeProviderType = {\n themeName: Theme;\n themePreference: ThemePreference;\n setTheme(newTheme: string): void;\n};\n\nconst initialValues: ThemeProviderType = {\n themeName: defaultThemeName,\n themePreference: defaultThemeName,\n setTheme: () => {},\n};\n\nconst ApsaraThemeContext = createContext<ThemeProviderType>(initialValues);\nApsaraThemeContext.displayName = \"ApsaraThemeContext \";\n\nconst useTheme = (): ThemeProviderType => {\n const [themePreference, setThemePreference] =\n useState<ThemePreference>(defaultThemeName);\n const [themeName, setThemeName] = useState<Theme>(defaultThemeName);\n const [osTheme, setOsTheme] = useState<MediaTheme | null>(getMediaTheme());\n\n // in the future this should prefer auto if no saved\n useEffect(() => {\n const initialTheme = getSavedThemePreference();\n if (isValidThemePreference(initialTheme)) {\n setThemePreference(initialTheme);\n } else {\n setThemePreference(defaultThemeName);\n }\n }, []);\n\n useEffect(() => {\n if (themePreference == \"auto\") {\n setThemeName(osTheme ?? defaultThemeName);\n } else {\n setThemeName(themePreference);\n }\n }, [themePreference]);\n\n useEffect(() => {\n // if os theme changes and we are in auto mode, change up\n if (themePreference == \"auto\") {\n setThemeName(osTheme ?? defaultThemeName);\n }\n }, [osTheme]);\n\n useEffect(() => {\n const html = document.documentElement;\n for (const k of [\"dark\", \"light\"]) {\n html.classList.remove(k);\n }\n html.classList.add(themeName);\n }, [themeName]);\n\n listenForOSPreferenceChanges((osPref) => {\n if (osPref === osTheme) return;\n setOsTheme(osPref);\n });\n\n return {\n themeName,\n themePreference: themePreference,\n setTheme: (newTheme: ThemePreference) => {\n setThemePreference(newTheme);\n saveThemePreference(newTheme);\n },\n };\n};\n\nconst ApsaraThemeProvider = ({ children }: { children: React.ReactNode }) => {\n const { themePreference, setTheme, themeName } = useTheme();\n return (\n <ApsaraThemeContext.Provider\n value={{\n themeName,\n themePreference,\n setTheme,\n }}\n >\n {children}\n </ApsaraThemeContext.Provider>\n );\n};\n\nexport function useApsaraTheme() {\n const context = useContext(ApsaraThemeContext);\n\n if (!context) {\n throw new Error(\n \"[Apsara UI 2.0]: useApsaraTheme must be used within a ApsaraThemeProvider\"\n );\n }\n\n const { themePreference, setTheme, themeName } = context;\n return { themePreference, setTheme, themeName };\n}\n\nexport { ApsaraThemeContext, ApsaraThemeProvider };\n"],"names":["React","_jsx"],"mappings":"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"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
|
|
6
|
-
var Theme;
|
|
7
|
-
(function (Theme) {
|
|
8
|
-
Theme["LIGHT"] = "light";
|
|
9
|
-
Theme["DARK"] = "dark";
|
|
10
|
-
})(Theme || (Theme = {}));
|
|
11
|
-
const KEY = "mode";
|
|
12
|
-
const defaultContextData = {
|
|
13
|
-
dark: false,
|
|
14
|
-
toggleDark: () => { },
|
|
15
|
-
};
|
|
16
|
-
const ThemeContext = React.createContext(defaultContextData);
|
|
17
|
-
const useTheme = () => React.useContext(ThemeContext);
|
|
18
|
-
const storage = {
|
|
19
|
-
get: (init) => window.localStorage.getItem(KEY) || init,
|
|
20
|
-
set: (value) => window.localStorage.setItem(KEY, value),
|
|
21
|
-
};
|
|
22
|
-
const supportsDarkMode = () => window.matchMedia("(prefers-color-scheme: dark)").matches === true;
|
|
23
|
-
const useDarkMode = () => {
|
|
24
|
-
const [themeState, setThemeState] = React.useState(Theme.LIGHT);
|
|
25
|
-
const setThemeStateEnhanced = (themeValue) => {
|
|
26
|
-
setThemeState((prevState) => {
|
|
27
|
-
const nextState = themeValue
|
|
28
|
-
? themeValue
|
|
29
|
-
: prevState === Theme.LIGHT
|
|
30
|
-
? Theme.DARK
|
|
31
|
-
: Theme.LIGHT;
|
|
32
|
-
document.body.classList.remove("apsara-" + prevState);
|
|
33
|
-
document.body.classList.add("apsara-" + nextState);
|
|
34
|
-
document.documentElement.style.setProperty("color-scheme", nextState);
|
|
35
|
-
storage.set(nextState);
|
|
36
|
-
return nextState;
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
React.useEffect(() => {
|
|
40
|
-
const storedMode = storage.get();
|
|
41
|
-
if (!storedMode && supportsDarkMode()) {
|
|
42
|
-
return setThemeStateEnhanced(Theme.DARK);
|
|
43
|
-
}
|
|
44
|
-
if (!storedMode || storedMode === themeState) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
setThemeStateEnhanced();
|
|
48
|
-
}, [themeState]);
|
|
49
|
-
return [themeState, setThemeStateEnhanced];
|
|
50
|
-
};
|
|
51
|
-
const ThemeProvider = (props) => {
|
|
52
|
-
const { children } = props;
|
|
53
|
-
const [themeState, setThemeStateEnhanced] = useDarkMode();
|
|
54
|
-
const toggleDark = React.useCallback(() => {
|
|
55
|
-
console.log("sds");
|
|
56
|
-
setThemeStateEnhanced();
|
|
57
|
-
}, [setThemeStateEnhanced]);
|
|
58
|
-
React.useEffect(() => {
|
|
59
|
-
window
|
|
60
|
-
.matchMedia("(prefers-color-scheme: dark)")
|
|
61
|
-
.addEventListener("change", (e) => {
|
|
62
|
-
setThemeStateEnhanced(e.matches ? Theme.DARK : Theme.LIGHT);
|
|
63
|
-
});
|
|
64
|
-
}, [setThemeStateEnhanced, toggleDark]);
|
|
65
|
-
return (jsxRuntime.jsx(ThemeContext.Provider, { value: {
|
|
66
|
-
dark: themeState === Theme.DARK,
|
|
67
|
-
toggleDark,
|
|
68
|
-
}, children: children }));
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
exports.ThemeContext = ThemeContext;
|
|
72
|
-
exports.ThemeProvider = ThemeProvider;
|
|
73
|
-
exports.useTheme = useTheme;
|
|
74
|
-
//# sourceMappingURL=useTheme.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.cjs","sources":["../../../themprovider/useTheme.tsx"],"sourcesContent":["import React from \"react\";\n\nenum Theme {\n LIGHT = \"light\",\n DARK = \"dark\",\n}\n\nconst KEY = \"mode\";\n\nconst defaultContextData = {\n dark: false,\n toggleDark: () => {},\n};\n\nexport const ThemeContext = React.createContext(defaultContextData);\n\nconst useTheme = () => React.useContext(ThemeContext);\n\nconst storage = {\n get: (init?: Theme) => window.localStorage.getItem(KEY) || init,\n set: (value: Theme) => window.localStorage.setItem(KEY, value),\n};\n\nconst supportsDarkMode = () =>\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches === true;\n\nconst useDarkMode = (): [Theme, (theme?: Theme) => void] => {\n const [themeState, setThemeState] = React.useState(Theme.LIGHT);\n\n const setThemeStateEnhanced = (themeValue?: Theme) => {\n setThemeState((prevState) => {\n const nextState = themeValue\n ? themeValue\n : prevState === Theme.LIGHT\n ? Theme.DARK\n : Theme.LIGHT;\n\n document.body.classList.remove(\"apsara-\" + prevState);\n document.body.classList.add(\"apsara-\" + nextState);\n document.documentElement.style.setProperty(\"color-scheme\", nextState);\n storage.set(nextState);\n\n return nextState;\n });\n };\n\n React.useEffect(() => {\n const storedMode = storage.get();\n if (!storedMode && supportsDarkMode()) {\n return setThemeStateEnhanced(Theme.DARK);\n }\n\n if (!storedMode || storedMode === themeState) {\n return;\n }\n\n setThemeStateEnhanced();\n }, [themeState]);\n\n return [themeState, setThemeStateEnhanced];\n};\n\nconst ThemeProvider = (props: { children: React.ReactNode }) => {\n const { children } = props;\n const [themeState, setThemeStateEnhanced] = useDarkMode();\n const toggleDark = React.useCallback(() => {\n console.log(\"sds\");\n setThemeStateEnhanced();\n }, [setThemeStateEnhanced]);\n\n React.useEffect(() => {\n window\n .matchMedia(\"(prefers-color-scheme: dark)\")\n .addEventListener(\"change\", (e) => {\n setThemeStateEnhanced(e.matches ? Theme.DARK : Theme.LIGHT);\n });\n }, [setThemeStateEnhanced, toggleDark]);\n\n return (\n <ThemeContext.Provider\n value={{\n dark: themeState === Theme.DARK,\n toggleDark,\n }}\n >\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport { ThemeProvider, useTheme };\n"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
export declare const ThemeContext: React.Context<{
|
|
3
|
-
dark: boolean;
|
|
4
|
-
toggleDark: () => void;
|
|
5
|
-
}>;
|
|
6
|
-
declare const useTheme: () => {
|
|
7
|
-
dark: boolean;
|
|
8
|
-
toggleDark: () => void;
|
|
9
|
-
};
|
|
10
|
-
declare const ThemeProvider: (props: {
|
|
11
|
-
children: React.ReactNode;
|
|
12
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export { ThemeProvider, useTheme };
|
|
14
|
-
//# sourceMappingURL=useTheme.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../themprovider/useTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,eAAO,MAAM,YAAY;;;EAA0C,CAAC;AAEpE,QAAA,MAAM,QAAQ;;;CAAuC,CAAC;AA8CtD,QAAA,MAAM,aAAa,UAAW;IAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;CAAE,4CA0B1D,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
|
|
4
|
-
var Theme;
|
|
5
|
-
(function (Theme) {
|
|
6
|
-
Theme["LIGHT"] = "light";
|
|
7
|
-
Theme["DARK"] = "dark";
|
|
8
|
-
})(Theme || (Theme = {}));
|
|
9
|
-
const KEY = "mode";
|
|
10
|
-
const defaultContextData = {
|
|
11
|
-
dark: false,
|
|
12
|
-
toggleDark: () => { },
|
|
13
|
-
};
|
|
14
|
-
const ThemeContext = React__default.createContext(defaultContextData);
|
|
15
|
-
const useTheme = () => React__default.useContext(ThemeContext);
|
|
16
|
-
const storage = {
|
|
17
|
-
get: (init) => window.localStorage.getItem(KEY) || init,
|
|
18
|
-
set: (value) => window.localStorage.setItem(KEY, value),
|
|
19
|
-
};
|
|
20
|
-
const supportsDarkMode = () => window.matchMedia("(prefers-color-scheme: dark)").matches === true;
|
|
21
|
-
const useDarkMode = () => {
|
|
22
|
-
const [themeState, setThemeState] = React__default.useState(Theme.LIGHT);
|
|
23
|
-
const setThemeStateEnhanced = (themeValue) => {
|
|
24
|
-
setThemeState((prevState) => {
|
|
25
|
-
const nextState = themeValue
|
|
26
|
-
? themeValue
|
|
27
|
-
: prevState === Theme.LIGHT
|
|
28
|
-
? Theme.DARK
|
|
29
|
-
: Theme.LIGHT;
|
|
30
|
-
document.body.classList.remove("apsara-" + prevState);
|
|
31
|
-
document.body.classList.add("apsara-" + nextState);
|
|
32
|
-
document.documentElement.style.setProperty("color-scheme", nextState);
|
|
33
|
-
storage.set(nextState);
|
|
34
|
-
return nextState;
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
React__default.useEffect(() => {
|
|
38
|
-
const storedMode = storage.get();
|
|
39
|
-
if (!storedMode && supportsDarkMode()) {
|
|
40
|
-
return setThemeStateEnhanced(Theme.DARK);
|
|
41
|
-
}
|
|
42
|
-
if (!storedMode || storedMode === themeState) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
setThemeStateEnhanced();
|
|
46
|
-
}, [themeState]);
|
|
47
|
-
return [themeState, setThemeStateEnhanced];
|
|
48
|
-
};
|
|
49
|
-
const ThemeProvider = (props) => {
|
|
50
|
-
const { children } = props;
|
|
51
|
-
const [themeState, setThemeStateEnhanced] = useDarkMode();
|
|
52
|
-
const toggleDark = React__default.useCallback(() => {
|
|
53
|
-
console.log("sds");
|
|
54
|
-
setThemeStateEnhanced();
|
|
55
|
-
}, [setThemeStateEnhanced]);
|
|
56
|
-
React__default.useEffect(() => {
|
|
57
|
-
window
|
|
58
|
-
.matchMedia("(prefers-color-scheme: dark)")
|
|
59
|
-
.addEventListener("change", (e) => {
|
|
60
|
-
setThemeStateEnhanced(e.matches ? Theme.DARK : Theme.LIGHT);
|
|
61
|
-
});
|
|
62
|
-
}, [setThemeStateEnhanced, toggleDark]);
|
|
63
|
-
return (jsx(ThemeContext.Provider, { value: {
|
|
64
|
-
dark: themeState === Theme.DARK,
|
|
65
|
-
toggleDark,
|
|
66
|
-
}, children: children }));
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export { ThemeContext, ThemeProvider, useTheme };
|
|
70
|
-
//# sourceMappingURL=useTheme.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.js","sources":["../../../themprovider/useTheme.tsx"],"sourcesContent":["import React from \"react\";\n\nenum Theme {\n LIGHT = \"light\",\n DARK = \"dark\",\n}\n\nconst KEY = \"mode\";\n\nconst defaultContextData = {\n dark: false,\n toggleDark: () => {},\n};\n\nexport const ThemeContext = React.createContext(defaultContextData);\n\nconst useTheme = () => React.useContext(ThemeContext);\n\nconst storage = {\n get: (init?: Theme) => window.localStorage.getItem(KEY) || init,\n set: (value: Theme) => window.localStorage.setItem(KEY, value),\n};\n\nconst supportsDarkMode = () =>\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches === true;\n\nconst useDarkMode = (): [Theme, (theme?: Theme) => void] => {\n const [themeState, setThemeState] = React.useState(Theme.LIGHT);\n\n const setThemeStateEnhanced = (themeValue?: Theme) => {\n setThemeState((prevState) => {\n const nextState = themeValue\n ? themeValue\n : prevState === Theme.LIGHT\n ? Theme.DARK\n : Theme.LIGHT;\n\n document.body.classList.remove(\"apsara-\" + prevState);\n document.body.classList.add(\"apsara-\" + nextState);\n document.documentElement.style.setProperty(\"color-scheme\", nextState);\n storage.set(nextState);\n\n return nextState;\n });\n };\n\n React.useEffect(() => {\n const storedMode = storage.get();\n if (!storedMode && supportsDarkMode()) {\n return setThemeStateEnhanced(Theme.DARK);\n }\n\n if (!storedMode || storedMode === themeState) {\n return;\n }\n\n setThemeStateEnhanced();\n }, [themeState]);\n\n return [themeState, setThemeStateEnhanced];\n};\n\nconst ThemeProvider = (props: { children: React.ReactNode }) => {\n const { children } = props;\n const [themeState, setThemeStateEnhanced] = useDarkMode();\n const toggleDark = React.useCallback(() => {\n console.log(\"sds\");\n setThemeStateEnhanced();\n }, [setThemeStateEnhanced]);\n\n React.useEffect(() => {\n window\n .matchMedia(\"(prefers-color-scheme: dark)\")\n .addEventListener(\"change\", (e) => {\n setThemeStateEnhanced(e.matches ? Theme.DARK : Theme.LIGHT);\n });\n }, [setThemeStateEnhanced, toggleDark]);\n\n return (\n <ThemeContext.Provider\n value={{\n dark: themeState === Theme.DARK,\n toggleDark,\n }}\n >\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport { ThemeProvider, useTheme };\n"],"names":["React","_jsx"],"mappings":"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"}
|
package/dist/title/title.cjs
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var classVarianceAuthority = require('class-variance-authority');
|
|
5
|
-
var title_module = require('./title.module.css.cjs');
|
|
6
|
-
|
|
7
|
-
const title = classVarianceAuthority.cva(title_module.title, {
|
|
8
|
-
variants: {
|
|
9
|
-
size: {
|
|
10
|
-
small: title_module["title-small"],
|
|
11
|
-
medium: title_module["title-medium"],
|
|
12
|
-
large: title_module["title-large"],
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
defaultVariants: {
|
|
16
|
-
size: "small",
|
|
17
|
-
},
|
|
18
|
-
});
|
|
19
|
-
function Title({ children, className, size, ...props }) {
|
|
20
|
-
return (jsxRuntime.jsx("span", { className: title({ size, className }), ...props, children: children }));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
exports.Title = Title;
|
|
24
|
-
//# sourceMappingURL=title.cjs.map
|
package/dist/title/title.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"title.cjs","sources":["../../../title/title.tsx"],"sourcesContent":["import { cva, VariantProps } from \"class-variance-authority\";\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\nimport styles from \"./title.module.css\";\n\nconst title = cva(styles.title, {\n variants: {\n size: {\n small: styles[\"title-small\"],\n medium: styles[\"title-medium\"],\n large: styles[\"title-large\"],\n },\n },\n defaultVariants: {\n size: \"small\",\n },\n});\n\ntype TitleProps = PropsWithChildren<VariantProps<typeof title>> &\n HTMLAttributes<HTMLSpanElement>;\n\nexport function Title({ children, className, size, ...props }: TitleProps) {\n return (\n <span className={title({ size, className })} {...props}>\n {children}\n </span>\n );\n}\n"],"names":["cva","styles","_jsx"],"mappings":";;;;;;AAIA,MAAM,KAAK,GAAGA,0BAAG,CAACC,YAAM,CAAC,KAAK,EAAE;AAC9B,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAEA,YAAM,CAAC,aAAa,CAAC;AAC5B,YAAA,MAAM,EAAEA,YAAM,CAAC,cAAc,CAAC;AAC9B,YAAA,KAAK,EAAEA,YAAM,CAAC,aAAa,CAAC;AAC7B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,OAAO;AACd,KAAA;AACF,CAAA,CAAC,CAAC;AAKa,SAAA,KAAK,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAc,EAAA;AACvE,IAAA,QACEC,cAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAM,GAAA,KAAK,YACnD,QAAQ,EAAA,CACJ,EACP;AACJ;;;;"}
|
package/dist/title/title.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { cva } from 'class-variance-authority';
|
|
3
|
-
import styles from './title.module.css.js';
|
|
4
|
-
|
|
5
|
-
const title = cva(styles.title, {
|
|
6
|
-
variants: {
|
|
7
|
-
size: {
|
|
8
|
-
small: styles["title-small"],
|
|
9
|
-
medium: styles["title-medium"],
|
|
10
|
-
large: styles["title-large"],
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
defaultVariants: {
|
|
14
|
-
size: "small",
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
function Title({ children, className, size, ...props }) {
|
|
18
|
-
return (jsx("span", { className: title({ size, className }), ...props, children: children }));
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export { Title };
|
|
22
|
-
//# sourceMappingURL=title.js.map
|
package/dist/title/title.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"title.js","sources":["../../../title/title.tsx"],"sourcesContent":["import { cva, VariantProps } from \"class-variance-authority\";\nimport { HTMLAttributes, PropsWithChildren } from \"react\";\nimport styles from \"./title.module.css\";\n\nconst title = cva(styles.title, {\n variants: {\n size: {\n small: styles[\"title-small\"],\n medium: styles[\"title-medium\"],\n large: styles[\"title-large\"],\n },\n },\n defaultVariants: {\n size: \"small\",\n },\n});\n\ntype TitleProps = PropsWithChildren<VariantProps<typeof title>> &\n HTMLAttributes<HTMLSpanElement>;\n\nexport function Title({ children, className, size, ...props }: TitleProps) {\n return (\n <span className={title({ size, className })} {...props}>\n {children}\n </span>\n );\n}\n"],"names":["_jsx"],"mappings":";;;;AAIA,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC;AAC5B,YAAA,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;AAC9B,YAAA,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC;AAC7B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,OAAO;AACd,KAAA;AACF,CAAA,CAAC,CAAC;AAKa,SAAA,KAAK,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAc,EAAA;AACvE,IAAA,QACEA,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAM,GAAA,KAAK,YACnD,QAAQ,EAAA,CACJ,EACP;AACJ;;;;"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var styles = {"title":"title-module_title__r78X4","title-small":"title-module_title-small__aS4B3","title-medium":"title-module_title-medium__e8yQc","title-large":"title-module_title-large__TVRRL"};
|
|
4
|
-
|
|
5
|
-
module.exports = styles;
|
|
6
|
-
//# sourceMappingURL=title.module.css.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"title.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var styles = {"title":"title-module_title__r78X4","title-small":"title-module_title-small__aS4B3","title-medium":"title-module_title-medium__e8yQc","title-large":"title-module_title-large__TVRRL"};
|
|
2
|
-
|
|
3
|
-
export { styles as default };
|
|
4
|
-
//# sourceMappingURL=title.module.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"title.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|